Changeset 3786


Ignore:
Timestamp:
Nov 25, 2020, 10:29:26 AM (3 years ago)
Author:
asima
Message:

Makes LMDZ-SPLA work again.
Minimal - but not minor - modifications required by going from LMDZ5 to LMDZ6.
For the time being, SPLA input files (including correction coefficient files for aerosols emissions) are only available for the 128x88 grid zoomed on N Africa, used by Jeronimo Escribano and Binta Diallo.

Location:
LMDZ6/trunk/libf/phylmd/Dust
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/Dust/dustemission_mod.F90

    r2630 r3786  
    153153!======================================================================================
    154154!--------------------------------------------------------------------------------------
     155
     156  SUBROUTINE dustemis_out_init()
     157
     158    USE dimphy
     159
     160    !AS: moved here from subroutine initdust
     161    ALLOCATE( m1dflux(klon) )
     162    ALLOCATE( m2dflux(klon) )
     163    ALLOCATE( m3dflux(klon) )
     164
     165  END SUBROUTINE dustemis_out_init
    155166
    156167  SUBROUTINE dustemission( debutphy, xlat, xlon, &    !Input
     
    625636    ALLOCATE( srel(nats,nclass) )
    626637    ALLOCATE( srel2(nats,nclass) )
    627     ALLOCATE( m1dflux(klon) )
    628     ALLOCATE( m2dflux(klon) )
    629     ALLOCATE( m3dflux(klon) )
     638    !!AS: moved to subroutine dustemission_output_init
     639    !ALLOCATE( m1dflux(klon) )
     640    !ALLOCATE( m2dflux(klon) )
     641    !ALLOCATE( m3dflux(klon) )
    630642
    631643
  • LMDZ6/trunk/libf/phylmd/Dust/lsc_scav_spl.F90

    r2630 r3786  
    179179
    180180!  pressure and size of the layer
    181   DO k=klev-1, 1, -1
     181  DO k=klev, 1, -1
    182182   DO i=1, klon
    183183     zrho(i,k)=pplay(i,k)/t(i,k)/RD   
  • LMDZ6/trunk/libf/phylmd/Dust/phys_output_write_spl_mod.F90

    r3630 r3786  
    6868       flux_sparam_sscoa,u10m_ss,v10m_ss
    6969
    70   USE dustemission_mod, ONLY : m1dflux, m2dflux, m3dflux
     70  USE dustemission_mod, ONLY : m1dflux, m2dflux, m3dflux 
    7171
    7272!  USE phytrac_mod, ONLY : d_tr_cl, d_tr_th, d_tr_cv, d_tr_lessi_impa, &
     
    8282CONTAINS
    8383
    84   ! ug Routine pour définir (los du premier passageà) ET sortir les variables
     84  ! ug Routine pour définir (lors du premier passageà) ET sortir les variables
    8585  SUBROUTINE phys_output_write_spl(itap, pdtphys, paprs, pphis, &
    8686       pplay, lmax_th, aerosol_couple,         &
     
    9090
    9191    ! This subroutine does the actual writing of diagnostics that were
    92     ! defined and initialised in phys_output_mod.F90
     92    ! defined and initialised mainly in phytracr_spl_mod.F90 (SPLA tracers, subroutine phytracr_spl_out_init)
    9393
    9494    USE dimphy, ONLY: klon, klev, klevp1
     
    148148         o_alp_bl_fluct_m, o_alp_bl_fluct_tke, &
    149149         o_alp_bl_conv, o_alp_bl_stat, &
    150          o_slab_qflux, o_tslab, o_slab_bils, &
     150         o_slab_qflux, o_tslab, &
     151         !o_slab_bils, &
    151152         o_slab_bilg, o_slab_sic, o_slab_tice, &
    152153         o_weakinv, o_dthmin, o_cldtau, &
    153154         o_cldemi, o_pr_con_l, o_pr_con_i, &
    154155         o_pr_lsc_l, o_pr_lsc_i, o_re, o_fl, &
    155          o_rh2m, o_rh2m_min, o_rh2m_max, &
     156         o_rh2m, &
     157         !o_rh2m_min, o_rh2m_max, &
    156158         o_qsat2m, o_tpot, o_tpote, o_SWnetOR, &
    157159         o_LWdownOR, o_snowl, &
    158160         o_solldown, o_dtsvdfo, o_dtsvdft, &
    159161         o_dtsvdfg, o_dtsvdfi, o_z0m, o_z0h, o_od550aer, &
    160          o_od865aer, o_absvisaer, o_od550lt1aer, &
     162         o_od865aer, o_abs550aer, o_od550lt1aer, &
    161163         o_sconcso4, o_sconcno3, o_sconcoa, o_sconcbc, &
    162164         o_sconcss, o_sconcdust, o_concso4, o_concno3, &
     
    300302         ema_cbmf, Ma, fm_therm, ale_bl, alp_bl, ale, &
    301303         alp, cin, wake_pe, wake_s, wake_deltat, &
     304         ale_wake, ale_bl_stat, &
    302305         wake_deltaq, ftd, fqd, ale_bl_trig, albsol1, &
    303306         rnebcon, wo, falb1, albsol2, coefh, clwcon0, &
     
    323326         t2m, fluxt, fluxlat, fsollw, fsolsw, &
    324327         wfbils, wfbilo, cdragm, cdragh, cldl, cldm, &
    325          cldh, cldt, JrNt, cldljn, cldmjn, cldhjn, &
    326          cldtjn, cldq, flwp, fiwp, ue, ve, uq, vq, &
     328         cldh, cldt, JrNt, &
     329         ! cldljn, cldmjn, cldhjn, cldtjn &
     330         cldq, flwp, fiwp, ue, ve, uq, vq, &
    327331         plcl, plfc, wbeff, upwd, dnwd, dnwd0, prw, &
    328332         s_pblh, s_pblt, s_lcl, s_therm, uwriteSTD, &
    329333         vwriteSTD, wwriteSTD, phiwriteSTD, qwriteSTD, &
    330          twriteSTD, ale_wake, alp_wake, wake_h, &
     334         twriteSTD, alp_wake, wake_h, &
     335         !ale_wake, &
    331336         wake_omg, d_t_wake, d_q_wake, Vprecip, &
    332337         wdtrainA, wdtrainM, n2, s2, proba_notrig, &
    333          random_notrig, ale_bl_stat, &
     338         random_notrig, &
     339         !ale_bl_stat, &
    334340         alp_bl_det, alp_bl_fluct_m, alp_bl_conv, &
    335341         alp_bl_stat, alp_bl_fluct_tke, slab_wfbils, &
     
    337343         pmflxr, pmflxs, prfl, psfl, re, fl, rh2m, &
    338344         qsat2m, tpote, tpot, d_ts, od550aer, &
    339          od865aer, absvisaer, od550lt1aer, sconcso4, sconcno3, &
     345         od865aer, abs550aer, od550lt1aer, sconcso4, sconcno3, &
    340346         sconcoa, sconcbc, sconcss, sconcdust, concso4, concno3, &
    341347         concoa, concbc, concss, concdust, loadso4, &
     
    372378         bils_ec,bils_ech, bils_tke, bils_kinetic, bils_latent, bils_enthalp, &
    373379         itau_con, nfiles, clef_files, nid_files, zvstr_gwd_rando
    374     USE ocean_slab_mod, ONLY: tslab, slab_bils, slab_bilg, tice, seaice
     380    USE ocean_slab_mod, ONLY: tslab, slab_bilg, tice, seaice
    375381    USE pbl_surface_mod, ONLY: snow
    376382    USE indice_sol_mod, ONLY: nbsrf
     
    405411    INTEGER, DIMENSION(klon) :: lmax_th
    406412    LOGICAL :: aerosol_couple, ok_sync
     413    LOGICAL :: ok_ade, ok_aie
    407414    LOGICAL, DIMENSION(klon, klev) :: ptconv, ptconvth
    408415    REAL :: pdtphys
     
    442449    CALL set_itau_iophy(itau_w)
    443450
    444     IF (.NOT.vars_defined) THEN
    445        iinitend = 2
    446     ELSE
    447        iinitend = 1
    448     ENDIF
     451!AS, vu avec LF : le test est fait maintenant au debut du pdt, pas a la fin, alors on ne passe plus qu'une fois
     452! Donc le "IF (.NOT.vars_defined)" devient inutile, et la boucle "DO iinit=1, iinitend" pourra etre eliminee
     453!  ainsi que iinit, iinitend
     454!    IF (.NOT.vars_defined) THEN
     455!       iinitend = 2
     456!    ELSE
     457!       iinitend = 1
     458!    ENDIF
    449459
    450460    ! ug la boucle qui suit ne sert qu'une fois, pour l'initialisation, sinon il n'y a toujours qu'un seul passage:
     
    735745       CALL histwrite_phy(o_cldt, cldt)
    736746       CALL histwrite_phy(o_JrNt, JrNt)
    737        CALL histwrite_phy(o_cldljn, cldl*JrNt)
    738        CALL histwrite_phy(o_cldmjn, cldm*JrNt)
    739        CALL histwrite_phy(o_cldhjn, cldh*JrNt)
    740        CALL histwrite_phy(o_cldtjn, cldt*JrNt)
     747
     748       !CALL histwrite_phy(o_cldljn, cldl*JrNt)
     749       IF (vars_defined)  zx_tmp_fi2d=cldl*JrNt
     750       CALL histwrite_phy(o_cldljn, zx_tmp_fi2d)
     751       !CALL histwrite_phy(o_cldmjn, cldm*JrNt)
     752       IF (vars_defined)  zx_tmp_fi2d=cldm*JrNt
     753       CALL histwrite_phy(o_cldmjn, zx_tmp_fi2d)
     754       !CALL histwrite_phy(o_cldhjn, cldh*JrNt)
     755       IF (vars_defined)  zx_tmp_fi2d=cldh*JrNt
     756       CALL histwrite_phy(o_cldhjn, zx_tmp_fi2d)
     757       !CALL histwrite_phy(o_cldtjn, cldt*JrNt)
     758       IF (vars_defined)  zx_tmp_fi2d=cldt*JrNt
     759       CALL histwrite_phy(o_cldtjn, zx_tmp_fi2d)
     760
    741761       CALL histwrite_phy(o_cldq, cldq)
    742762       IF (vars_defined)       zx_tmp_fi2d(1:klon) = flwp(1:klon)
     
    932952       IF (type_ocean=='slab ') THEN
    933953          CALL histwrite_phy(o_slab_qflux, slab_wfbils)
    934           CALL histwrite_phy(o_slab_bils, slab_bils)
     954          !CALL histwrite_phy(o_slab_bils, slab_bils)
    935955          IF (nslay.EQ.1) THEN
    936956              zx_tmp_fi2d(:)=tslab(:,1)
     
    967987          ENDDO
    968988       ENDIF
    969        CALL histwrite_phy(o_rh2m_min, zx_tmp_fi2d)
     989       !CALL histwrite_phy(o_rh2m_min, zx_tmp_fi2d)
    970990
    971991       IF (vars_defined) THEN
     
    974994          ENDDO
    975995       ENDIF
    976        CALL histwrite_phy(o_rh2m_max, zx_tmp_fi2d)
     996       !CALL histwrite_phy(o_rh2m_max, zx_tmp_fi2d)
    977997
    978998       CALL histwrite_phy(o_qsat2m, qsat2m)
     
    9961016          CALL histwrite_phy(o_od550aer, od550aer)
    9971017          CALL histwrite_phy(o_od865aer, od865aer)
    998           CALL histwrite_phy(o_absvisaer, absvisaer)
     1018          CALL histwrite_phy(o_abs550aer, abs550aer)
    9991019          CALL histwrite_phy(o_od550lt1aer, od550lt1aer)
    10001020          CALL histwrite_phy(o_sconcso4, sconcso4)
     
    11361156       CALL histwrite_phy(o_rnebjn, zx_tmp_fi3d)
    11371157       CALL histwrite_phy(o_rhum, zx_rh)
    1138        CALL histwrite_phy(o_ozone, &
    1139             wo(:, :, 1) * dobson_u * 1e3 / zmasse / rmo3 * rmd)
     1158       !CALL histwrite_phy(o_ozone, &
     1159       !     wo(:, :, 1) * dobson_u * 1e3 / zmasse / rmo3 * rmd)
     1160       IF (vars_defined) zx_tmp_fi3d = wo(:, :, 1) * dobson_u * 1e3 / zmasse / rmo3 * rmd
     1161       CALL histwrite_phy(o_ozone, zx_tmp_fi3d)
    11401162
    11411163       IF (read_climoz == 2) THEN
    1142           CALL histwrite_phy(o_ozone_light, &
    1143                wo(:, :, 2) * dobson_u * 1e3 / zmasse / rmo3 * rmd)
    1144        ENDIF
    1145 
     1164         !CALL histwrite_phy(o_ozone_light, &
     1165         !     wo(:, :, 2) * dobson_u * 1e3 / zmasse / rmo3 * rmd)
     1166         IF (vars_defined) zx_tmp_fi3d = wo(:, :, 2) * dobson_u * 1e3 / zmasse / rmo3 * rmd
     1167         CALL histwrite_phy(o_ozone_light, zx_tmp_fi3d)
     1168       ENDIF
     1169
     1170       !AS: dans phys_output_write il y a en plus : CALL histwrite_phy(o_duphy, d_u)
    11461171       CALL histwrite_phy(o_dtphy, d_t)
    11471172       CALL histwrite_phy(o_dqphy,  d_qx(:,:,ivap))
     
    15851610#endif
    15861611!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    1587         IF (nqtot.GE.nqo+1) THEN
    1588             DO iq=nqo+1,nqtot
    1589               IF (type_trac == 'lmdz' .OR. type_trac == 'repr') THEN
    1590 
     1612       IF (nqtot.GE.nqo+1) THEN
     1613         !AS: type_trac = 'lmdz' par defaut dans libf/dyn3d/conf_gcm.F90
     1614         !Changé par inca, repr(obus), coag(ulation), co2i(nteractif), PAS par SPLA
     1615         !Cet "if" est donc inutile : IF (type_trac == 'lmdz' .OR. type_trac == 'repr') THEN
     1616           DO iq=nqo+1,nqtot
    15911617             CALL histwrite_phy(o_trac(iq-nqo), tr_seri(:,:,iq-nqo))
    15921618             CALL histwrite_phy(o_dtr_vdf(iq-nqo),d_tr_cl(:,:,iq-nqo))
     
    16121638             ENDIF
    16131639             CALL histwrite_phy(o_trac_cum(iq-nqo), zx_tmp_fi2d)
    1614              ENDIF
    1615           ENDDO
     1640           ENDDO
     1641         !ENDIF
    16161642       ENDIF
    16171643
     
    16391665       ENDIF
    16401666
    1641     ENDDO
     1667    ENDDO ! iinit
    16421668
    16431669    IF (vars_defined) THEN
  • LMDZ6/trunk/libf/phylmd/Dust/phytracr_spl_mod.F90

    r2648 r3786  
    33
    44MODULE phytracr_spl_mod
    5 
    65
    76! Recuperation des morceaux de la physique de Jeronimo specifiques
     
    445444!
    446445!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     446SUBROUTINE phytracr_spl_out_init()
     447!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     448!AS : This new subroutine centralises les ALLOCATE dont on a besoin au premier appel
     449!     de phys_output_write_spl dans physiq
     450
     451    USE dimphy
     452    USE infotrac_phy, ONLY: nbtr
     453    USE dustemission_mod, ONLY :  dustemis_out_init
     454
     455    ! pour les variables m[1-3]dflux
     456    CALL dustemis_out_init()
     457
     458    !AS: moved here from  section INITIALISATIONS of subroutine phytracr_spl_ini
     459    !    ALLOCATE variables from spla_output_write.h, section "traceur"
     460
     461!traceur
     462      ALLOCATE( diff_aod550_tot(klon)     )
     463      ALLOCATE( diag_aod670_tot(klon)     )
     464      ALLOCATE( diag_aod865_tot(klon)     )
     465      ALLOCATE( diff_aod550_tr2(klon)     )
     466      ALLOCATE( diag_aod670_tr2(klon)     )
     467      ALLOCATE( diag_aod865_tr2(klon)     )
     468      ALLOCATE( diag_aod550_ss(klon)      )
     469      ALLOCATE( diag_aod670_ss(klon)      )
     470      ALLOCATE( diag_aod865_ss(klon)      )
     471      ALLOCATE( diag_aod550_dust(klon)    )
     472      ALLOCATE( diag_aod670_dust(klon)    )
     473      ALLOCATE( diag_aod865_dust(klon)    )
     474      ALLOCATE( diag_aod550_dustsco(klon)  )
     475      ALLOCATE( diag_aod670_dustsco(klon)  )
     476      ALLOCATE( diag_aod865_dustsco(klon)  )
     477      !AS: les 15 vars _terra et 15 _aqua suivantes sont groupees differemment dans spla_output_write.h
     478      ALLOCATE( aod550_terra(klon))
     479      ALLOCATE( aod550_tr2_terra(klon))
     480      ALLOCATE( aod550_ss_terra(klon))
     481      ALLOCATE( aod550_dust_terra(klon))
     482      ALLOCATE( aod550_dustsco_terra(klon))
     483      ALLOCATE( aod670_terra(klon))
     484      ALLOCATE( aod670_tr2_terra(klon))
     485      ALLOCATE( aod670_ss_terra(klon))
     486      ALLOCATE( aod670_dust_terra(klon))
     487      ALLOCATE( aod670_dustsco_terra(klon))
     488      ALLOCATE( aod865_terra(klon))
     489      ALLOCATE( aod865_tr2_terra(klon))
     490      ALLOCATE( aod865_ss_terra(klon))
     491      ALLOCATE( aod865_dust_terra(klon))
     492      ALLOCATE( aod865_dustsco_terra(klon))
     493
     494      ALLOCATE( aod550_aqua(klon))
     495      ALLOCATE( aod550_tr2_aqua(klon))
     496      ALLOCATE( aod550_ss_aqua(klon))
     497      ALLOCATE( aod550_dust_aqua(klon))
     498      ALLOCATE( aod550_dustsco_aqua(klon))
     499      ALLOCATE( aod670_aqua(klon))
     500      ALLOCATE( aod670_tr2_aqua(klon))
     501      ALLOCATE( aod670_ss_aqua(klon))
     502      ALLOCATE( aod670_dust_aqua(klon))
     503      ALLOCATE( aod670_dustsco_aqua(klon))
     504      ALLOCATE( aod865_aqua(klon))
     505      ALLOCATE( aod865_tr2_aqua(klon))
     506      ALLOCATE( aod865_ss_aqua(klon))
     507      ALLOCATE( aod865_dust_aqua(klon))
     508      ALLOCATE( aod865_dustsco_aqua(klon))
     509
     510      ALLOCATE(  sconc01(klon)     )
     511      ALLOCATE(  trm01(klon)     )
     512      ALLOCATE(  sconc02(klon)     )
     513      ALLOCATE(  trm02(klon)     )
     514      ALLOCATE(  sconc03(klon)     )
     515      ALLOCATE(  trm03(klon)     )
     516      ALLOCATE(  sconc04(klon)     )
     517      ALLOCATE(  trm04(klon)     )
     518      ALLOCATE(  sconc05(klon)     )
     519      ALLOCATE(  trm05(klon)     )
     520
     521! Lessivage
     522      ALLOCATE(  flux01(klon)     )
     523      ALLOCATE(  flux02(klon)     )
     524      ALLOCATE(  flux03(klon)     )
     525      ALLOCATE(  flux04(klon)     )
     526      ALLOCATE(  flux05(klon)     )
     527      ALLOCATE(  ds01(klon)     )
     528      ALLOCATE(  ds02(klon)     )
     529      ALLOCATE(  ds03(klon)     )
     530      ALLOCATE(  ds04(klon)     )
     531      ALLOCATE(  ds05(klon)     )
     532      ALLOCATE(  dh01(klon)     )
     533      ALLOCATE(  dh02(klon)     )
     534      ALLOCATE(  dh03(klon)     )
     535      ALLOCATE(  dh04(klon)     )
     536      ALLOCATE(  dh05(klon)     )
     537      ALLOCATE(  dtrconv01(klon)     )
     538      ALLOCATE(  dtrconv02(klon)     )
     539      ALLOCATE(  dtrconv03(klon)     )
     540      ALLOCATE(  dtrconv04(klon)     )
     541      ALLOCATE(  dtrconv05(klon)     )
     542      ALLOCATE(  dtherm01(klon)     )
     543      ALLOCATE(  dtherm02(klon)     )
     544      ALLOCATE(  dtherm03(klon)     )
     545      ALLOCATE(  dtherm04(klon)     )
     546      ALLOCATE(  dtherm05(klon)     )
     547      ALLOCATE(  dhkecv01(klon)     )
     548      ALLOCATE(  dhkecv02(klon)     )
     549      ALLOCATE(  dhkecv03(klon)     )
     550      ALLOCATE(  dhkecv04(klon)     )
     551      ALLOCATE(  dhkecv05(klon)     )
     552      ALLOCATE(  d_tr_ds01(klon)     )
     553      ALLOCATE(  d_tr_ds02(klon)     )
     554      ALLOCATE(  d_tr_ds03(klon)     )
     555      ALLOCATE(  d_tr_ds04(klon)     )
     556      ALLOCATE(  d_tr_ds05(klon)     )
     557      ALLOCATE(  dhkelsc01(klon)     )
     558      ALLOCATE(  dhkelsc02(klon)     )
     559      ALLOCATE(  dhkelsc03(klon)     )
     560      ALLOCATE(  dhkelsc04(klon)     )
     561      ALLOCATE(  dhkelsc05(klon)     )
     562      ALLOCATE(  d_tr_cv01(klon,klev))
     563      ALLOCATE(  d_tr_cv02(klon,klev))
     564      ALLOCATE(  d_tr_cv03(klon,klev))
     565      ALLOCATE(  d_tr_cv04(klon,klev))
     566      ALLOCATE(  d_tr_cv05(klon,klev))
     567      ALLOCATE(  d_tr_trsp01(klon,klev))
     568      ALLOCATE(  d_tr_trsp02(klon,klev))
     569      ALLOCATE(  d_tr_trsp03(klon,klev))
     570      ALLOCATE(  d_tr_trsp04(klon,klev))
     571      ALLOCATE(  d_tr_trsp05(klon,klev))
     572      ALLOCATE(  d_tr_sscav01(klon,klev))
     573      ALLOCATE(  d_tr_sscav02(klon,klev))
     574      ALLOCATE(  d_tr_sscav03(klon,klev))
     575      ALLOCATE(  d_tr_sscav04(klon,klev))
     576      ALLOCATE(  d_tr_sscav05(klon,klev))
     577      ALLOCATE(  d_tr_sat01(klon,klev))
     578      ALLOCATE(  d_tr_sat02(klon,klev))
     579      ALLOCATE(  d_tr_sat03(klon,klev))
     580      ALLOCATE(  d_tr_sat04(klon,klev))
     581      ALLOCATE(  d_tr_sat05(klon,klev))
     582      ALLOCATE(  d_tr_uscav01(klon,klev))
     583      ALLOCATE(  d_tr_uscav02(klon,klev))
     584      ALLOCATE(  d_tr_uscav03(klon,klev))
     585      ALLOCATE(  d_tr_uscav04(klon,klev))
     586      ALLOCATE(  d_tr_uscav05(klon,klev))
     587!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     588      ALLOCATE(  d_tr_insc01(klon,klev))
     589      ALLOCATE(  d_tr_insc02(klon,klev))
     590      ALLOCATE(  d_tr_insc03(klon,klev))
     591      ALLOCATE(  d_tr_insc04(klon,klev))
     592      ALLOCATE(  d_tr_insc05(klon,klev))
     593      ALLOCATE(  d_tr_bcscav01(klon,klev))
     594      ALLOCATE(  d_tr_bcscav02(klon,klev))
     595      ALLOCATE(  d_tr_bcscav03(klon,klev))
     596      ALLOCATE(  d_tr_bcscav04(klon,klev))
     597      ALLOCATE(  d_tr_bcscav05(klon,klev))
     598      ALLOCATE(  d_tr_evapls01(klon,klev))
     599      ALLOCATE(  d_tr_evapls02(klon,klev))
     600      ALLOCATE(  d_tr_evapls03(klon,klev))
     601      ALLOCATE(  d_tr_evapls04(klon,klev))
     602      ALLOCATE(  d_tr_evapls05(klon,klev))
     603      ALLOCATE(  d_tr_ls01(klon,klev))
     604      ALLOCATE(  d_tr_ls02(klon,klev))
     605      ALLOCATE(  d_tr_ls03(klon,klev))
     606      ALLOCATE(  d_tr_ls04(klon,klev))
     607      ALLOCATE(  d_tr_ls05(klon,klev))
     608
     609      ALLOCATE(  d_tr_dyn01(klon,klev))
     610      ALLOCATE(  d_tr_dyn02(klon,klev))
     611      ALLOCATE(  d_tr_dyn03(klon,klev))
     612      ALLOCATE(  d_tr_dyn04(klon,klev))
     613      ALLOCATE(  d_tr_dyn05(klon,klev))
     614
     615      ALLOCATE(  d_tr_cl01(klon,klev))
     616      ALLOCATE(  d_tr_cl02(klon,klev))
     617      ALLOCATE(  d_tr_cl03(klon,klev))
     618      ALLOCATE(  d_tr_cl04(klon,klev))
     619      ALLOCATE(  d_tr_cl05(klon,klev))
     620      ALLOCATE(  d_tr_th01(klon,klev))
     621      ALLOCATE(  d_tr_th02(klon,klev))
     622      ALLOCATE(  d_tr_th03(klon,klev))
     623      ALLOCATE(  d_tr_th04(klon,klev))
     624      ALLOCATE(  d_tr_th05(klon,klev))
     625
     626      ALLOCATE( sed_ss(klon))
     627      ALLOCATE( sed_dust(klon))
     628      ALLOCATE( sed_dustsco(klon))
     629      ALLOCATE( his_g2pgas(klon))
     630      ALLOCATE( his_g2paer(klon))
     631
     632!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     633      ALLOCATE( sed_ss3D(klon,klev))
     634      ALLOCATE( sed_dust3D(klon,klev))
     635      ALLOCATE( sed_dustsco3D(klon,klev))
     636!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     637
     638!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     639! histrac_spl
     640!
     641      ALLOCATE( fluxbb(klon))
     642      ALLOCATE( fluxff(klon))
     643      ALLOCATE( fluxbcbb(klon))
     644      ALLOCATE( fluxbcff(klon))
     645      ALLOCATE( fluxbcnff(klon))
     646      ALLOCATE( fluxbcba(klon))
     647      ALLOCATE( fluxbc(klon))
     648      ALLOCATE( fluxombb(klon))
     649      ALLOCATE( fluxomff(klon))
     650      ALLOCATE( fluxomnff(klon))
     651      ALLOCATE( fluxomba(klon))
     652      ALLOCATE( fluxomnat(klon))
     653      ALLOCATE( fluxom(klon))
     654      ALLOCATE( fluxh2sff(klon))
     655      ALLOCATE( fluxh2snff(klon))
     656      ALLOCATE( fluxso2ff(klon))
     657      ALLOCATE( fluxso2nff(klon))
     658      ALLOCATE( fluxso2bb(klon))
     659      ALLOCATE( fluxso2vol(klon))
     660      ALLOCATE( fluxso2ba(klon))
     661      ALLOCATE( fluxso2(klon))
     662      ALLOCATE( fluxso4ff(klon))
     663      ALLOCATE( fluxso4nff(klon))
     664      ALLOCATE( fluxso4bb(klon))
     665      ALLOCATE( fluxso4ba(klon))
     666      ALLOCATE( fluxso4(klon))
     667      ALLOCATE( fluxdms(klon))
     668      ALLOCATE( fluxh2sbio(klon))
     669      ALLOCATE( fluxdustec(klon))
     670      ALLOCATE( fluxddfine(klon))
     671      ALLOCATE( fluxddcoa(klon))
     672      ALLOCATE( fluxddsco(klon))
     673      ALLOCATE( fluxdd(klon))
     674      ALLOCATE( fluxssfine(klon))
     675      ALLOCATE( fluxsscoa(klon))
     676      ALLOCATE( fluxss(klon))
     677      ALLOCATE( flux_sparam_ind(klon))
     678      ALLOCATE( flux_sparam_bb(klon))
     679      ALLOCATE( flux_sparam_ff(klon))
     680      ALLOCATE( flux_sparam_ddfine(klon))
     681      ALLOCATE( flux_sparam_ddcoa(klon))
     682      ALLOCATE( flux_sparam_ddsco(klon))
     683      ALLOCATE( flux_sparam_ssfine(klon))
     684      ALLOCATE( flux_sparam_sscoa(klon))
     685      ALLOCATE( u10m_ss(klon))
     686      ALLOCATE( v10m_ss(klon))
     687
     688!AS: dans phys_output_write_spl, hors spla_output_write.h
     689!------------------------------------------------------
     690      ALLOCATE(d_tr_cl(klon,klev,nbtr))
     691      ALLOCATE(d_tr_th(klon,klev,nbtr))
     692      ALLOCATE(d_tr_cv(klon,klev,nbtr))
     693      ALLOCATE(d_tr_lessi_impa(klon,klev,nbtr))
     694      ALLOCATE(d_tr_lessi_nucl(klon,klev,nbtr))
     695      ALLOCATE(d_tr_insc(klon,klev,nbtr))
     696      ALLOCATE(d_tr_bcscav(klon,klev,nbtr))
     697      ALLOCATE(d_tr_evapls(klon,klev,nbtr))
     698      ALLOCATE(d_tr_ls(klon,klev,nbtr))
     699      ALLOCATE(d_tr_trsp(klon,klev,nbtr))
     700      ALLOCATE(d_tr_sscav(klon,klev,nbtr))
     701      ALLOCATE(d_tr_sat(klon,klev,nbtr))
     702      ALLOCATE(d_tr_uscav(klon,klev,nbtr))
     703     
     704END SUBROUTINE phytracr_spl_out_init
     705
     706!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    447707SUBROUTINE phytracr_spl_ini(klon,nbreg_ind,nbreg_bb,nbreg_dust,nbreg_wstardust)
    448708!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    10811341  print *,'JE: jD_cur:',jD_cur,' ijulday:',ijulday,' jH_cur:',jH_cur,' pdtphys:',pdtphys
    10821342  print *,'JE: now read_newemissions:'
    1083   print *,'lmt_so2ff_l AVANT' , MINVAL(lmt_so2ff_l), MAXVAL(lmt_so2ff_l)
     1343!AS: La ligne suivante fait planter a l'execution : lmt_so2ff_l pas initialise
     1344!  print *,'lmt_so2ff_l AVANT' , MINVAL(lmt_so2ff_l), MAXVAL(lmt_so2ff_l)
    10841345  call read_newemissions(ijulday,jH_cur ,edgar, flag_dms,debutphy, & !I
    10851346                         pdtphys, lafin, nbjour, pctsrf,  &       !I
     
    12891550
    12901551      ! convective KE lessivage aer params:
     1552      ! AS: #DFB (Binta) a aussi teste ccntrAA_spla=ccntrENV_spla=0.9/1.0/0.9/0.9
     1553      !     mais effet negligeable sur l'AOD
    12911554      ccntrAA_spla(:)=0.
    12921555      if(id_prec>0)  ccntrAA_spla(id_prec)=-9999.
     
    13021565      if(id_codu>0)  ccntrENV_spla(id_codu)=0.7
    13031566      if(id_scdu>0)  ccntrENV_spla(id_scdu)=0.7
    1304 
     1567      ! #DFB
    13051568      coefcoli_spla(:)=0.
    13061569      if(id_prec>0)  coefcoli_spla(id_prec)=-9999.
     
    18752138!$OMP MASTER
    18762139
    1877       ALLOCATE(d_tr_cl(klon,klev,nbtr),d_tr_dry(klon,nbtr))
     2140      !ALLOCATE(d_tr_cl(klon,klev,nbtr),d_tr_dry(klon,nbtr))
     2141      ALLOCATE(d_tr_dry(klon,nbtr))
    18782142      ALLOCATE(flux_tr_dry(klon,nbtr),d_tr_dec(klon,klev,nbtr))
    1879       ALLOCATE(d_tr_cv(klon,klev,nbtr))
    1880       ALLOCATE(d_tr_insc(klon,klev,nbtr),d_tr_bcscav(klon,klev,nbtr))
    1881       ALLOCATE(d_tr_evapls(klon,klev,nbtr),d_tr_ls(klon,klev,nbtr))
    1882       ALLOCATE(qPrls(klon,nbtr),d_tr_trsp(klon,klev,nbtr))
    1883       ALLOCATE(d_tr_sscav(klon,klev,nbtr),d_tr_sat(klon,klev,nbtr))
    1884       ALLOCATE(d_tr_uscav(klon,klev,nbtr),qPr(klon,klev,nbtr))
     2143      !ALLOCATE(d_tr_cv(klon,klev,nbtr))
     2144      !ALLOCATE(d_tr_insc(klon,klev,nbtr),d_tr_bcscav(klon,klev,nbtr))
     2145      !ALLOCATE(d_tr_evapls(klon,klev,nbtr),d_tr_ls(klon,klev,nbtr))
     2146      !ALLOCATE(qPrls(klon,nbtr),d_tr_trsp(klon,klev,nbtr))
     2147      ALLOCATE(qPrls(klon,nbtr),qPr(klon,klev,nbtr))
     2148      !ALLOCATE(d_tr_sscav(klon,klev,nbtr),d_tr_sat(klon,klev,nbtr))
     2149      !ALLOCATE(d_tr_uscav(klon,klev,nbtr),qPr(klon,klev,nbtr))
    18852150      ALLOCATE(qDi(klon,klev,nbtr))
    18862151      ALLOCATE(qPa(klon,klev,nbtr),qMel(klon,klev,nbtr))
    18872152      ALLOCATE(qTrdi(klon,klev,nbtr),dtrcvMA(klon,klev,nbtr))
    1888       ALLOCATE(d_tr_th(klon,klev,nbtr))
    1889       ALLOCATE(d_tr_lessi_impa(klon,klev,nbtr))
    1890       ALLOCATE(d_tr_lessi_nucl(klon,klev,nbtr))
    1891 
    1892       ALLOCATE( diff_aod550_tot(klon)     )
    1893       ALLOCATE( diag_aod670_tot(klon)     )
    1894       ALLOCATE( diag_aod865_tot(klon)     )
    1895       ALLOCATE( diff_aod550_tr2(klon)     )
    1896       ALLOCATE( diag_aod670_tr2(klon)     )
    1897       ALLOCATE( diag_aod865_tr2(klon)     )
    1898       ALLOCATE( diag_aod550_ss(klon)      )
    1899       ALLOCATE( diag_aod670_ss(klon)      )
    1900       ALLOCATE( diag_aod865_ss(klon)      )
    1901       ALLOCATE( diag_aod550_dust(klon)    )
    1902       ALLOCATE( diag_aod670_dust(klon)    )
    1903       ALLOCATE( diag_aod865_dust(klon)    )
    1904       ALLOCATE( diag_aod550_dustsco(klon)  )
    1905       ALLOCATE( diag_aod670_dustsco(klon)  )
    1906       ALLOCATE( diag_aod865_dustsco(klon)  )
    1907 
    1908 
    1909       ALLOCATE(  sconc01(klon)     )
    1910       ALLOCATE(  trm01(klon)     )
    1911       ALLOCATE(  sconc02(klon)     )
    1912       ALLOCATE(  trm02(klon)     )
    1913       ALLOCATE(  sconc03(klon)     )
    1914       ALLOCATE(  trm03(klon)     )
    1915       ALLOCATE(  sconc04(klon)     )
    1916       ALLOCATE(  trm04(klon)     )
    1917       ALLOCATE(  sconc05(klon)     )
    1918       ALLOCATE(  trm05(klon)     )
    1919 
    1920 
    1921       ALLOCATE(  flux01(klon)     )
    1922       ALLOCATE(  flux02(klon)     )
    1923       ALLOCATE(  flux03(klon)     )
    1924       ALLOCATE(  flux04(klon)     )
    1925       ALLOCATE(  flux05(klon)     )
    1926       ALLOCATE(  ds01(klon)     )
    1927       ALLOCATE(  ds02(klon)     )
    1928       ALLOCATE(  ds03(klon)     )
    1929       ALLOCATE(  ds04(klon)     )
    1930       ALLOCATE(  ds05(klon)     )
    1931       ALLOCATE(  dh01(klon)     )
    1932       ALLOCATE(  dh02(klon)     )
    1933       ALLOCATE(  dh03(klon)     )
    1934       ALLOCATE(  dh04(klon)     )
    1935       ALLOCATE(  dh05(klon)     )
    1936       ALLOCATE(  dtrconv01(klon)     )
    1937       ALLOCATE(  dtrconv02(klon)     )
    1938       ALLOCATE(  dtrconv03(klon)     )
    1939       ALLOCATE(  dtrconv04(klon)     )
    1940       ALLOCATE(  dtrconv05(klon)     )
    1941       ALLOCATE(  dtherm01(klon)     )
    1942       ALLOCATE(  dtherm02(klon)     )
    1943       ALLOCATE(  dtherm03(klon)     )
    1944       ALLOCATE(  dtherm04(klon)     )
    1945       ALLOCATE(  dtherm05(klon)     )
    1946       ALLOCATE(  dhkecv01(klon)     )
    1947       ALLOCATE(  dhkecv02(klon)     )
    1948       ALLOCATE(  dhkecv03(klon)     )
    1949       ALLOCATE(  dhkecv04(klon)     )
    1950       ALLOCATE(  dhkecv05(klon)     )
    1951       ALLOCATE(  d_tr_ds01(klon)     )
    1952       ALLOCATE(  d_tr_ds02(klon)     )
    1953       ALLOCATE(  d_tr_ds03(klon)     )
    1954       ALLOCATE(  d_tr_ds04(klon)     )
    1955       ALLOCATE(  d_tr_ds05(klon)     )
    1956       ALLOCATE(  dhkelsc01(klon)     )
    1957       ALLOCATE(  dhkelsc02(klon)     )
    1958       ALLOCATE(  dhkelsc03(klon)     )
    1959       ALLOCATE(  dhkelsc04(klon)     )
    1960       ALLOCATE(  dhkelsc05(klon)     )
    1961       ALLOCATE(  d_tr_cv01(klon,klev))
    1962       ALLOCATE(  d_tr_cv02(klon,klev))
    1963       ALLOCATE(  d_tr_cv03(klon,klev))
    1964       ALLOCATE(  d_tr_cv04(klon,klev))
    1965       ALLOCATE(  d_tr_cv05(klon,klev))
    1966       ALLOCATE(  d_tr_trsp01(klon,klev))
    1967       ALLOCATE(  d_tr_trsp02(klon,klev))
    1968       ALLOCATE(  d_tr_trsp03(klon,klev))
    1969       ALLOCATE(  d_tr_trsp04(klon,klev))
    1970       ALLOCATE(  d_tr_trsp05(klon,klev))
    1971       ALLOCATE(  d_tr_sscav01(klon,klev))
    1972       ALLOCATE(  d_tr_sscav02(klon,klev))
    1973       ALLOCATE(  d_tr_sscav03(klon,klev))
    1974       ALLOCATE(  d_tr_sscav04(klon,klev))
    1975       ALLOCATE(  d_tr_sscav05(klon,klev))
    1976       ALLOCATE(  d_tr_sat01(klon,klev))
    1977       ALLOCATE(  d_tr_sat02(klon,klev))
    1978       ALLOCATE(  d_tr_sat03(klon,klev))
    1979       ALLOCATE(  d_tr_sat04(klon,klev))
    1980       ALLOCATE(  d_tr_sat05(klon,klev))
    1981       ALLOCATE(  d_tr_uscav01(klon,klev))
    1982       ALLOCATE(  d_tr_uscav02(klon,klev))
    1983       ALLOCATE(  d_tr_uscav03(klon,klev))
    1984       ALLOCATE(  d_tr_uscav04(klon,klev))
    1985       ALLOCATE(  d_tr_uscav05(klon,klev))
     2153      !ALLOCATE(d_tr_th(klon,klev,nbtr))
     2154      !ALLOCATE(d_tr_lessi_impa(klon,klev,nbtr))
     2155      !ALLOCATE(d_tr_lessi_nucl(klon,klev,nbtr))
     2156
     2157      !ALLOCATE( diff_aod550_tot(klon)     )
     2158      !ALLOCATE( diag_aod670_tot(klon)     )
     2159      !ALLOCATE( diag_aod865_tot(klon)     )
     2160      !ALLOCATE( diff_aod550_tr2(klon)     )
     2161      !ALLOCATE( diag_aod670_tr2(klon)     )
     2162      !ALLOCATE( diag_aod865_tr2(klon)     )
     2163      !ALLOCATE( diag_aod550_ss(klon)      )
     2164      !ALLOCATE( diag_aod670_ss(klon)      )
     2165      !ALLOCATE( diag_aod865_ss(klon)      )
     2166      !ALLOCATE( diag_aod550_dust(klon)    )
     2167      !ALLOCATE( diag_aod670_dust(klon)    )
     2168      !ALLOCATE( diag_aod865_dust(klon)    )
     2169      !ALLOCATE( diag_aod550_dustsco(klon)  )
     2170      !ALLOCATE( diag_aod670_dustsco(klon)  )
     2171      !ALLOCATE( diag_aod865_dustsco(klon)  )
     2172
     2173
     2174      !ALLOCATE(  sconc01(klon)     )
     2175      !ALLOCATE(  trm01(klon)     )
     2176      !ALLOCATE(  sconc02(klon)     )
     2177      !ALLOCATE(  trm02(klon)     )
     2178      !ALLOCATE(  sconc03(klon)     )
     2179      !ALLOCATE(  trm03(klon)     )
     2180      !ALLOCATE(  sconc04(klon)     )
     2181      !ALLOCATE(  trm04(klon)     )
     2182      !ALLOCATE(  sconc05(klon)     )
     2183      !ALLOCATE(  trm05(klon)     )
     2184
     2185
     2186      !ALLOCATE(  flux01(klon)     )
     2187      !ALLOCATE(  flux02(klon)     )
     2188      !ALLOCATE(  flux03(klon)     )
     2189      !ALLOCATE(  flux04(klon)     )
     2190      !ALLOCATE(  flux05(klon)     )
     2191      !ALLOCATE(  ds01(klon)     )
     2192      !ALLOCATE(  ds02(klon)     )
     2193      !ALLOCATE(  ds03(klon)     )
     2194      !ALLOCATE(  ds04(klon)     )
     2195      !ALLOCATE(  ds05(klon)     )
     2196      !ALLOCATE(  dh01(klon)     )
     2197      !ALLOCATE(  dh02(klon)     )
     2198      !ALLOCATE(  dh03(klon)     )
     2199      !ALLOCATE(  dh04(klon)     )
     2200      !ALLOCATE(  dh05(klon)     )
     2201      !ALLOCATE(  dtrconv01(klon)     )
     2202      !ALLOCATE(  dtrconv02(klon)     )
     2203      !ALLOCATE(  dtrconv03(klon)     )
     2204      !ALLOCATE(  dtrconv04(klon)     )
     2205      !ALLOCATE(  dtrconv05(klon)     )
     2206      !ALLOCATE(  dtherm01(klon)     )
     2207      !ALLOCATE(  dtherm02(klon)     )
     2208      !ALLOCATE(  dtherm03(klon)     )
     2209      !ALLOCATE(  dtherm04(klon)     )
     2210      !ALLOCATE(  dtherm05(klon)     )
     2211      !ALLOCATE(  dhkecv01(klon)     )
     2212      !ALLOCATE(  dhkecv02(klon)     )
     2213      !ALLOCATE(  dhkecv03(klon)     )
     2214      !ALLOCATE(  dhkecv04(klon)     )
     2215      !ALLOCATE(  dhkecv05(klon)     )
     2216      !ALLOCATE(  d_tr_ds01(klon)     )
     2217      !ALLOCATE(  d_tr_ds02(klon)     )
     2218      !ALLOCATE(  d_tr_ds03(klon)     )
     2219      !ALLOCATE(  d_tr_ds04(klon)     )
     2220      !ALLOCATE(  d_tr_ds05(klon)     )
     2221      !ALLOCATE(  dhkelsc01(klon)     )
     2222      !ALLOCATE(  dhkelsc02(klon)     )
     2223      !ALLOCATE(  dhkelsc03(klon)     )
     2224      !ALLOCATE(  dhkelsc04(klon)     )
     2225      !ALLOCATE(  dhkelsc05(klon)     )
     2226      !ALLOCATE(  d_tr_cv01(klon,klev))
     2227      !ALLOCATE(  d_tr_cv02(klon,klev))
     2228      !ALLOCATE(  d_tr_cv03(klon,klev))
     2229      !ALLOCATE(  d_tr_cv04(klon,klev))
     2230      !ALLOCATE(  d_tr_cv05(klon,klev))
     2231      !ALLOCATE(  d_tr_trsp01(klon,klev))
     2232      !ALLOCATE(  d_tr_trsp02(klon,klev))
     2233      !ALLOCATE(  d_tr_trsp03(klon,klev))
     2234      !ALLOCATE(  d_tr_trsp04(klon,klev))
     2235      !ALLOCATE(  d_tr_trsp05(klon,klev))
     2236      !ALLOCATE(  d_tr_sscav01(klon,klev))
     2237      !ALLOCATE(  d_tr_sscav02(klon,klev))
     2238      !ALLOCATE(  d_tr_sscav03(klon,klev))
     2239      !ALLOCATE(  d_tr_sscav04(klon,klev))
     2240      !ALLOCATE(  d_tr_sscav05(klon,klev))
     2241      !ALLOCATE(  d_tr_sat01(klon,klev))
     2242      !ALLOCATE(  d_tr_sat02(klon,klev))
     2243      !ALLOCATE(  d_tr_sat03(klon,klev))
     2244      !ALLOCATE(  d_tr_sat04(klon,klev))
     2245      !ALLOCATE(  d_tr_sat05(klon,klev))
     2246      !ALLOCATE(  d_tr_uscav01(klon,klev))
     2247      !ALLOCATE(  d_tr_uscav02(klon,klev))
     2248      !ALLOCATE(  d_tr_uscav03(klon,klev))
     2249      !ALLOCATE(  d_tr_uscav04(klon,klev))
     2250      !ALLOCATE(  d_tr_uscav05(klon,klev))
    19862251     
    19872252!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    19882253!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    1989       ALLOCATE(  d_tr_insc01(klon,klev))
    1990       ALLOCATE(  d_tr_insc02(klon,klev))
    1991       ALLOCATE(  d_tr_insc03(klon,klev))
    1992       ALLOCATE(  d_tr_insc04(klon,klev))
    1993       ALLOCATE(  d_tr_insc05(klon,klev))
    1994       ALLOCATE(  d_tr_bcscav01(klon,klev))
    1995       ALLOCATE(  d_tr_bcscav02(klon,klev))
    1996       ALLOCATE(  d_tr_bcscav03(klon,klev))
    1997       ALLOCATE(  d_tr_bcscav04(klon,klev))
    1998       ALLOCATE(  d_tr_bcscav05(klon,klev))
    1999       ALLOCATE(  d_tr_evapls01(klon,klev))
    2000       ALLOCATE(  d_tr_evapls02(klon,klev))
    2001       ALLOCATE(  d_tr_evapls03(klon,klev))
    2002       ALLOCATE(  d_tr_evapls04(klon,klev))
    2003       ALLOCATE(  d_tr_evapls05(klon,klev))
    2004       ALLOCATE(  d_tr_ls01(klon,klev))
    2005       ALLOCATE(  d_tr_ls02(klon,klev))
    2006       ALLOCATE(  d_tr_ls03(klon,klev))
    2007       ALLOCATE(  d_tr_ls04(klon,klev))
    2008       ALLOCATE(  d_tr_ls05(klon,klev))
    2009       ALLOCATE(  d_tr_dyn01(klon,klev))
    2010       ALLOCATE(  d_tr_dyn02(klon,klev))
    2011       ALLOCATE(  d_tr_dyn03(klon,klev))
    2012       ALLOCATE(  d_tr_dyn04(klon,klev))
    2013       ALLOCATE(  d_tr_dyn05(klon,klev))
    2014       ALLOCATE(  d_tr_cl01(klon,klev))
    2015       ALLOCATE(  d_tr_cl02(klon,klev))
    2016       ALLOCATE(  d_tr_cl03(klon,klev))
    2017       ALLOCATE(  d_tr_cl04(klon,klev))
    2018       ALLOCATE(  d_tr_cl05(klon,klev))
    2019       ALLOCATE(  d_tr_th01(klon,klev))
    2020       ALLOCATE(  d_tr_th02(klon,klev))
    2021       ALLOCATE(  d_tr_th03(klon,klev))
    2022       ALLOCATE(  d_tr_th04(klon,klev))
    2023       ALLOCATE(  d_tr_th05(klon,klev))
    2024 
    2025       ALLOCATE( sed_ss3D(klon,klev))
    2026       ALLOCATE( sed_dust3D(klon,klev))
    2027       ALLOCATE( sed_dustsco3D(klon,klev))
     2254      !ALLOCATE(  d_tr_insc01(klon,klev))
     2255      !ALLOCATE(  d_tr_insc02(klon,klev))
     2256      !ALLOCATE(  d_tr_insc03(klon,klev))
     2257      !ALLOCATE(  d_tr_insc04(klon,klev))
     2258      !ALLOCATE(  d_tr_insc05(klon,klev))
     2259      !ALLOCATE(  d_tr_bcscav01(klon,klev))
     2260      !ALLOCATE(  d_tr_bcscav02(klon,klev))
     2261      !ALLOCATE(  d_tr_bcscav03(klon,klev))
     2262      !ALLOCATE(  d_tr_bcscav04(klon,klev))
     2263      !ALLOCATE(  d_tr_bcscav05(klon,klev))
     2264      !ALLOCATE(  d_tr_evapls01(klon,klev))
     2265      !ALLOCATE(  d_tr_evapls02(klon,klev))
     2266      !ALLOCATE(  d_tr_evapls03(klon,klev))
     2267      !ALLOCATE(  d_tr_evapls04(klon,klev))
     2268      !ALLOCATE(  d_tr_evapls05(klon,klev))
     2269      !ALLOCATE(  d_tr_ls01(klon,klev))
     2270      !ALLOCATE(  d_tr_ls02(klon,klev))
     2271      !ALLOCATE(  d_tr_ls03(klon,klev))
     2272      !ALLOCATE(  d_tr_ls04(klon,klev))
     2273      !ALLOCATE(  d_tr_ls05(klon,klev))
     2274      !ALLOCATE(  d_tr_dyn01(klon,klev))
     2275      !ALLOCATE(  d_tr_dyn02(klon,klev))
     2276      !ALLOCATE(  d_tr_dyn03(klon,klev))
     2277      !ALLOCATE(  d_tr_dyn04(klon,klev))
     2278      !ALLOCATE(  d_tr_dyn05(klon,klev))
     2279      !ALLOCATE(  d_tr_cl01(klon,klev))
     2280      !ALLOCATE(  d_tr_cl02(klon,klev))
     2281      !ALLOCATE(  d_tr_cl03(klon,klev))
     2282      !ALLOCATE(  d_tr_cl04(klon,klev))
     2283      !ALLOCATE(  d_tr_cl05(klon,klev))
     2284      !ALLOCATE(  d_tr_th01(klon,klev))
     2285      !ALLOCATE(  d_tr_th02(klon,klev))
     2286      !ALLOCATE(  d_tr_th03(klon,klev))
     2287      !ALLOCATE(  d_tr_th04(klon,klev))
     2288      !ALLOCATE(  d_tr_th05(klon,klev))
     2289
     2290      !ALLOCATE( sed_ss3D(klon,klev))
     2291      !ALLOCATE( sed_dust3D(klon,klev))
     2292      !ALLOCATE( sed_dustsco3D(klon,klev))
    20282293
    20292294!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    20302295!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    20312296
    2032       ALLOCATE( sed_ss(klon))
    2033       ALLOCATE( sed_dust(klon))
    2034       ALLOCATE( sed_dustsco(klon))
    2035       ALLOCATE( his_g2pgas(klon))
    2036       ALLOCATE( his_g2paer(klon))
    2037 
    2038       ALLOCATE( fluxbb(klon))
    2039       ALLOCATE( fluxff(klon))
    2040       ALLOCATE( fluxbcbb(klon))
    2041       ALLOCATE( fluxbcff(klon))
    2042       ALLOCATE( fluxbcnff(klon))
    2043       ALLOCATE( fluxbcba(klon))
    2044       ALLOCATE( fluxbc(klon))
    2045       ALLOCATE( fluxombb(klon))
    2046       ALLOCATE( fluxomff(klon))
    2047       ALLOCATE( fluxomnff(klon))
    2048       ALLOCATE( fluxomba(klon))
    2049       ALLOCATE( fluxomnat(klon))
    2050       ALLOCATE( fluxom(klon))
    2051       ALLOCATE( fluxh2sff(klon))
    2052       ALLOCATE( fluxh2snff(klon))
    2053       ALLOCATE( fluxso2ff(klon))
    2054       ALLOCATE( fluxso2nff(klon))
    2055       ALLOCATE( fluxso2bb(klon))
    2056       ALLOCATE( fluxso2vol(klon))
    2057       ALLOCATE( fluxso2ba(klon))
    2058       ALLOCATE( fluxso2(klon))
    2059       ALLOCATE( fluxso4ff(klon))
    2060       ALLOCATE( fluxso4nff(klon))
    2061       ALLOCATE( fluxso4bb(klon))
    2062       ALLOCATE( fluxso4ba(klon))
    2063       ALLOCATE( fluxso4(klon))
    2064       ALLOCATE( fluxdms(klon))
    2065       ALLOCATE( fluxh2sbio(klon))
    2066       ALLOCATE( fluxdustec(klon))
    2067       ALLOCATE( fluxddfine(klon))
    2068       ALLOCATE( fluxddcoa(klon))
    2069       ALLOCATE( fluxddsco(klon))
    2070       ALLOCATE( fluxdd(klon))
    2071       ALLOCATE( fluxssfine(klon))
    2072       ALLOCATE( fluxsscoa(klon))
    2073       ALLOCATE( fluxss(klon))
    2074       ALLOCATE( flux_sparam_ind(klon))
    2075       ALLOCATE( flux_sparam_bb(klon))
    2076       ALLOCATE( flux_sparam_ff(klon))
    2077       ALLOCATE( flux_sparam_ddfine(klon))
    2078       ALLOCATE( flux_sparam_ddcoa(klon))
    2079       ALLOCATE( flux_sparam_ddsco(klon))
    2080       ALLOCATE( flux_sparam_ssfine(klon))
    2081       ALLOCATE( flux_sparam_sscoa(klon))
    2082       ALLOCATE( u10m_ss(klon))
    2083       ALLOCATE( v10m_ss(klon))
     2297      !ALLOCATE( sed_ss(klon))
     2298      !ALLOCATE( sed_dust(klon))
     2299      !ALLOCATE( sed_dustsco(klon))
     2300      !ALLOCATE( his_g2pgas(klon))
     2301      !ALLOCATE( his_g2paer(klon))
     2302
     2303      !ALLOCATE( fluxbb(klon))
     2304      !ALLOCATE( fluxff(klon))
     2305      !ALLOCATE( fluxbcbb(klon))
     2306      !ALLOCATE( fluxbcff(klon))
     2307      !ALLOCATE( fluxbcnff(klon))
     2308      !ALLOCATE( fluxbcba(klon))
     2309      !ALLOCATE( fluxbc(klon))
     2310      !ALLOCATE( fluxombb(klon))
     2311      !ALLOCATE( fluxomff(klon))
     2312      !ALLOCATE( fluxomnff(klon))
     2313      !ALLOCATE( fluxomba(klon))
     2314      !ALLOCATE( fluxomnat(klon))
     2315      !ALLOCATE( fluxom(klon))
     2316      !ALLOCATE( fluxh2sff(klon))
     2317      !ALLOCATE( fluxh2snff(klon))
     2318      !ALLOCATE( fluxso2ff(klon))
     2319      !ALLOCATE( fluxso2nff(klon))
     2320      !ALLOCATE( fluxso2bb(klon))
     2321      !ALLOCATE( fluxso2vol(klon))
     2322      !ALLOCATE( fluxso2ba(klon))
     2323      !ALLOCATE( fluxso2(klon))
     2324      !ALLOCATE( fluxso4ff(klon))
     2325      !ALLOCATE( fluxso4nff(klon))
     2326      !ALLOCATE( fluxso4bb(klon))
     2327      !ALLOCATE( fluxso4ba(klon))
     2328      !ALLOCATE( fluxso4(klon))
     2329      !ALLOCATE( fluxdms(klon))
     2330      !ALLOCATE( fluxh2sbio(klon))
     2331      !ALLOCATE( fluxdustec(klon))
     2332      !ALLOCATE( fluxddfine(klon))
     2333      !ALLOCATE( fluxddcoa(klon))
     2334      !ALLOCATE( fluxddsco(klon))
     2335      !ALLOCATE( fluxdd(klon))
     2336      !ALLOCATE( fluxssfine(klon))
     2337      !ALLOCATE( fluxsscoa(klon))
     2338      !ALLOCATE( fluxss(klon))
     2339      !ALLOCATE( flux_sparam_ind(klon))
     2340      !ALLOCATE( flux_sparam_bb(klon))
     2341      !ALLOCATE( flux_sparam_ff(klon))
     2342      !ALLOCATE( flux_sparam_ddfine(klon))
     2343      !ALLOCATE( flux_sparam_ddcoa(klon))
     2344      !ALLOCATE( flux_sparam_ddsco(klon))
     2345      !ALLOCATE( flux_sparam_ssfine(klon))
     2346      !ALLOCATE( flux_sparam_sscoa(klon))
     2347      !ALLOCATE( u10m_ss(klon))
     2348      !ALLOCATE( v10m_ss(klon))
    20842349
    20852350
     
    21172382!       ALLOCATE(aod865_terra(klon))
    21182383
    2119       ALLOCATE( aod550_terra(klon)) 
    2120       ALLOCATE( aod550_tr2_terra(klon)) 
    2121       ALLOCATE( aod550_ss_terra(klon))   
    2122       ALLOCATE( aod550_dust_terra(klon))   
    2123       ALLOCATE( aod550_dustsco_terra(klon))   
    2124       ALLOCATE( aod670_terra(klon))   
    2125       ALLOCATE( aod670_tr2_terra(klon)) 
    2126       ALLOCATE( aod670_ss_terra(klon)) 
    2127       ALLOCATE( aod670_dust_terra(klon)) 
    2128       ALLOCATE( aod670_dustsco_terra(klon)) 
    2129       ALLOCATE( aod865_terra(klon))   
    2130       ALLOCATE( aod865_tr2_terra(klon)) 
    2131       ALLOCATE( aod865_ss_terra(klon)) 
    2132       ALLOCATE( aod865_dust_terra(klon)) 
    2133       ALLOCATE( aod865_dustsco_terra(klon)) 
    2134 
    2135       ALLOCATE( aod550_aqua(klon)) 
    2136       ALLOCATE( aod550_tr2_aqua(klon)) 
    2137       ALLOCATE( aod550_ss_aqua(klon))   
    2138       ALLOCATE( aod550_dust_aqua(klon))   
    2139       ALLOCATE( aod550_dustsco_aqua(klon))   
    2140       ALLOCATE( aod670_aqua(klon))   
    2141       ALLOCATE( aod670_tr2_aqua(klon)) 
    2142       ALLOCATE( aod670_ss_aqua(klon)) 
    2143       ALLOCATE( aod670_dust_aqua(klon)) 
    2144       ALLOCATE( aod670_dustsco_aqua(klon)) 
    2145       ALLOCATE( aod865_aqua(klon))   
    2146       ALLOCATE( aod865_tr2_aqua(klon)) 
    2147       ALLOCATE( aod865_ss_aqua(klon)) 
    2148       ALLOCATE( aod865_dust_aqua(klon)) 
    2149       ALLOCATE( aod865_dustsco_aqua(klon)) 
     2384      !ALLOCATE( aod550_terra(klon)) 
     2385      !ALLOCATE( aod550_tr2_terra(klon)) 
     2386      !ALLOCATE( aod550_ss_terra(klon))   
     2387      !ALLOCATE( aod550_dust_terra(klon))   
     2388      !ALLOCATE( aod550_dustsco_terra(klon))   
     2389      !ALLOCATE( aod670_terra(klon))   
     2390      !ALLOCATE( aod670_tr2_terra(klon)) 
     2391      !ALLOCATE( aod670_ss_terra(klon)) 
     2392      !ALLOCATE( aod670_dust_terra(klon)) 
     2393      !ALLOCATE( aod670_dustsco_terra(klon)) 
     2394      !ALLOCATE( aod865_terra(klon))   
     2395      !ALLOCATE( aod865_tr2_terra(klon)) 
     2396      !ALLOCATE( aod865_ss_terra(klon)) 
     2397      !ALLOCATE( aod865_dust_terra(klon)) 
     2398      !ALLOCATE( aod865_dustsco_terra(klon)) 
     2399
     2400      !ALLOCATE( aod550_aqua(klon)) 
     2401      !ALLOCATE( aod550_tr2_aqua(klon)) 
     2402      !ALLOCATE( aod550_ss_aqua(klon))   
     2403      !ALLOCATE( aod550_dust_aqua(klon))   
     2404      !ALLOCATE( aod550_dustsco_aqua(klon))   
     2405      !ALLOCATE( aod670_aqua(klon))   
     2406      !ALLOCATE( aod670_tr2_aqua(klon)) 
     2407      !ALLOCATE( aod670_ss_aqua(klon)) 
     2408      !ALLOCATE( aod670_dust_aqua(klon)) 
     2409      !ALLOCATE( aod670_dustsco_aqua(klon)) 
     2410      !ALLOCATE( aod865_aqua(klon))   
     2411      !ALLOCATE( aod865_tr2_aqua(klon)) 
     2412      !ALLOCATE( aod865_ss_aqua(klon)) 
     2413      !ALLOCATE( aod865_dust_aqua(klon)) 
     2414      !ALLOCATE( aod865_dustsco_aqua(klon)) 
    21502415 
    21512416
     
    36823947! choix du lessivage
    36833948      IF (iflag_lscav .EQ. 3 .OR. iflag_lscav .EQ. 4) THEN
    3684       print *,'JE iflag_lscav',iflag_lscav
    3685        DO it = 1, nbtr
     3949      !IF (.false.) THEN  ! test #DFB (Binta) sans lsc_scav_spl
     3950        print *,'JE iflag_lscav',iflag_lscav
     3951        DO it = 1, nbtr
    36863952
    36873953!       incloud scavenging and removal by large scale rain ! orig : ql_incl
     
    36943960!     .               t_seri,tr_seri,d_tr_insc,
    36953961!     .               d_tr_bcscav,d_tr_evapls,qPrls)
    3696        CALL lsc_scav_spl(pdtphys,it,iflag_lscav,ql_incl,prfl,psfl,  &
     3962          CALL lsc_scav_spl(pdtphys,it,iflag_lscav,ql_incl,prfl,psfl,  &
    36973963                    rneb,beta_fisrt, beta_v1,pplay,paprs,      &
    36983964                    t_seri,tr_seri,d_tr_insc,                  &
     
    37023968
    37033969!large scale scavenging tendency
    3704        DO k = 1, klev
    3705         DO i = 1, klon
    3706          d_tr_ls(i,k,it)=d_tr_insc(i,k,it)+d_tr_bcscav(i,k,it) &
     3970          DO k = 1, klev
     3971           DO i = 1, klon
     3972                d_tr_ls(i,k,it)=d_tr_insc(i,k,it)+d_tr_bcscav(i,k,it) &
    37073973                        +d_tr_evapls(i,k,it)
    3708          tr_seri(i,k,it)=tr_seri(i,k,it)+d_tr_ls(i,k,it)
    3709           tmp_var(i,k)=d_tr_ls(i,k,it)
    3710         ENDDO
    3711        ENDDO
    3712 
    3713        CALL kg_to_cm3(pplay,t_seri,tmp_var)
    3714          DO k=1,klev
    3715             DO i=1,klon
     3974                tr_seri(i,k,it)=tr_seri(i,k,it)+d_tr_ls(i,k,it)
     3975                         tmp_var(i,k)=d_tr_ls(i,k,it)
     3976           ENDDO
     3977          ENDDO
     3978
     3979          CALL kg_to_cm3(pplay,t_seri,tmp_var)
     3980
     3981          DO k=1,klev
     3982           DO i=1,klon
    37163983            his_dhkelsc(i,it)=his_dhkelsc(i,it)-tmp_var(i,k)    &
    37173984                     /RNAVO*masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys
    37183985     
    3719             END DO
    3720          END DO
    3721 
    3722        END DO  !tr
     3986           END DO
     3987          END DO
     3988
     3989        END DO  !it=1,nbtr
     3990
    37233991      ELSE
    3724         his_dhkelsc(i,it)=0.0
    37253992        print *,'WARNING: NO lsc_scav, Please choose iflag_lscav=3 or 4'
    3726        ENDIF !iflag_lscav
     3993        DO it = 1, nbtr
     3994          DO i=1,klon
     3995            his_dhkelsc(i,it)=0.0
     3996          END DO  ! klon
     3997         END DO  !it=1,nbtr
     3998      ENDIF !iflag_lscav
    37273999
    37284000       print *,' AFTER lsc_scav '
     
    55995871      d_tr_th04(i,k)=0.
    56005872      d_tr_th05(i,k)=0.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     5873        ENDDO
     5874      ENDDO
     5875
     5876      IF(1==0) THEN
     5877      ! calcul in original trunk version; problem: budget not closed. Corrected in "ELSE"
     5878      DO i=1, klon
     5879        DO k=1,klev
     5880
    56015881      if(id_prec>0)        d_tr_cv01(i,k)   =d_tr_cv_o(i,k,id_prec)
    56025882      if(id_fine>0)        d_tr_cv02(i,k)   =d_tr_cv_o(i,k,id_fine)
     
    56415921        ENDDO
    56425922      ENDDO
    5643       IF(1==0) THEN
     5923      ELSE ! correction pour fermeture de bilan, par FH dans les simus de Binta pour Habib
     5924      DO i=1, klon
     5925        DO k=1,klev
     5926      if(id_prec>0)        d_tr_cv01(i,k)   =d_tr_cv(i,k,id_prec)/pdtphys
     5927      if(id_fine>0)        d_tr_cv02(i,k)   =d_tr_cv(i,k,id_fine)/pdtphys
     5928      if(id_coss>0)        d_tr_cv03(i,k)   =d_tr_cv(i,k,id_coss)/pdtphys
     5929      if(id_codu>0)        d_tr_cv04(i,k)   =d_tr_cv(i,k,id_codu)/pdtphys
     5930      if(id_scdu>0)        d_tr_cv05(i,k)   =d_tr_cv(i,k,id_scdu)/pdtphys
     5931      if(id_prec>0)        d_tr_trsp01(i,k) =d_tr_trsp(i,k,id_prec)/pdtphys
     5932      if(id_fine>0)        d_tr_trsp02(i,k) =d_tr_trsp(i,k,id_fine)/pdtphys
     5933      if(id_coss>0)        d_tr_trsp03(i,k) =d_tr_trsp(i,k,id_coss)/pdtphys
     5934      if(id_codu>0)        d_tr_trsp04(i,k) =d_tr_trsp(i,k,id_codu)/pdtphys
     5935      if(id_scdu>0)        d_tr_trsp05(i,k) =d_tr_trsp(i,k,id_scdu)/pdtphys
     5936      if(id_prec>0)        d_tr_sscav01(i,k)=d_tr_sscav(i,k,id_prec)/pdtphys
     5937      if(id_fine>0)        d_tr_sscav02(i,k)=d_tr_sscav(i,k,id_fine)/pdtphys
     5938      if(id_coss>0)        d_tr_sscav03(i,k)=d_tr_sscav(i,k,id_coss)/pdtphys
     5939      if(id_codu>0)        d_tr_sscav04(i,k)=d_tr_sscav(i,k,id_codu)/pdtphys
     5940      if(id_scdu>0)        d_tr_sscav05(i,k)=d_tr_sscav(i,k,id_scdu)/pdtphys
     5941      if(id_prec>0)        d_tr_sat01(i,k)  =d_tr_sat(i,k,id_prec)/pdtphys
     5942      if(id_fine>0)        d_tr_sat02(i,k)  =d_tr_sat(i,k,id_fine)/pdtphys
     5943      if(id_coss>0)        d_tr_sat03(i,k)  =d_tr_sat(i,k,id_coss)/pdtphys
     5944      if(id_codu>0)        d_tr_sat04(i,k)  =d_tr_sat(i,k,id_codu)/pdtphys
     5945      if(id_scdu>0)        d_tr_sat05(i,k)  =d_tr_sat(i,k,id_scdu)/pdtphys
     5946      if(id_prec>0)        d_tr_uscav01(i,k)=d_tr_uscav(i,k,id_prec)/pdtphys
     5947      if(id_fine>0)        d_tr_uscav02(i,k)=d_tr_uscav(i,k,id_fine)/pdtphys
     5948      if(id_coss>0)        d_tr_uscav03(i,k)=d_tr_uscav(i,k,id_coss)/pdtphys
     5949      if(id_codu>0)        d_tr_uscav04(i,k)=d_tr_uscav(i,k,id_codu)/pdtphys
     5950      if(id_scdu>0)        d_tr_uscav05(i,k)=d_tr_uscav(i,k,id_scdu)/pdtphys
     5951      if(id_prec>0)        d_tr_insc01(i,k)=d_tr_insc(i,k,id_prec)/pdtphys
     5952      if(id_fine>0)        d_tr_insc02(i,k)=d_tr_insc(i,k,id_fine)/pdtphys
     5953      if(id_coss>0)        d_tr_insc03(i,k)=d_tr_insc(i,k,id_coss)/pdtphys
     5954      if(id_codu>0)        d_tr_insc04(i,k)=d_tr_insc(i,k,id_codu)/pdtphys
     5955      if(id_scdu>0)        d_tr_insc05(i,k)=d_tr_insc(i,k,id_scdu)/pdtphys
     5956      if(id_prec>0)        d_tr_bcscav01(i,k)=d_tr_bcscav(i,k,id_prec)/pdtphys
     5957      if(id_fine>0)        d_tr_bcscav02(i,k)=d_tr_bcscav(i,k,id_fine)/pdtphys
     5958      if(id_coss>0)        d_tr_bcscav03(i,k)=d_tr_bcscav(i,k,id_coss)/pdtphys
     5959      if(id_codu>0)        d_tr_bcscav04(i,k)=d_tr_bcscav(i,k,id_codu)/pdtphys
     5960      if(id_scdu>0)        d_tr_bcscav05(i,k)=d_tr_bcscav(i,k,id_scdu)/pdtphys
     5961      if(id_prec>0)        d_tr_evapls01(i,k)=d_tr_evapls(i,k,id_prec)/pdtphys
     5962      if(id_fine>0)        d_tr_evapls02(i,k)=d_tr_evapls(i,k,id_fine)/pdtphys
     5963      if(id_coss>0)        d_tr_evapls03(i,k)=d_tr_evapls(i,k,id_coss)/pdtphys
     5964      if(id_codu>0)        d_tr_evapls04(i,k)=d_tr_evapls(i,k,id_codu)/pdtphys
     5965      if(id_scdu>0)        d_tr_evapls05(i,k)=d_tr_evapls(i,k,id_scdu)/pdtphys
     5966        ENDDO
     5967      ENDDO
     5968      ENDIF
     5969
     5970      IF(1==0) THEN  ! This "if" is as in original trunk
    56445971      DO i=1, klon
    56455972        DO k=1,klev
  • LMDZ6/trunk/libf/phylmd/Dust/read_dust.F

    r2630 r3786  
    1414      real dust_ec_glo(klon_glo)
    1515c
    16       real dust_nc(iip1,jjp1)
     16c as      real dust_nc(iip1,jjp1)
    1717      real dust_nc_glo(nbp_lon+1,nbp_lat)
    1818      real rcode
     
    5959c--upside down + physical grid
    6060c
    61 c--OB=change jjp1 to 1 here
     61c--OB=change jjp1 to 1 here ;
     62c----AS: OB's change is needed if lats N to S (90 to -90) in dust.nc
    6263!      dust_ec(1)=MAX(dust_nc(1,jjp1),0.0)
    63       dust_ec(1)=MAX(dust_nc(1,nbp_lat),0.0)
     64      dust_ec_glo(1)=MAX(dust_nc_glo(1,nbp_lat),0.0)
    6465      ig=2
    6566!      DO j=2,jjm
  • LMDZ6/trunk/libf/phylmd/Dust/read_newemissions.F

    r2630 r3786  
    5959!$OMP THREADPRIVATE(u10m_ec1, v10m_ec1, dust_ec1)
    6060!$OMP THREADPRIVATE(u10m_ec2, v10m_ec2, dust_ec2)
    61       REAL u10m_nc(iip1,jjp1), v10m_nc(iip1,jjp1)
     61c as      REAL u10m_nc(iip1,jjp1), v10m_nc(iip1,jjp1)
    6262      REAL u10m_ec(klon), v10m_ec(klon), dust_ec(klon)
    6363c      REAL cly(klon), wth(klon), zprecipinsoil(klon)
  • LMDZ6/trunk/libf/phylmd/Dust/spla_output_write.h

    r2752 r3786  
    99      CALL histwrite_phy( o_taue670          , diag_aod670_tot  )
    1010      CALL histwrite_phy( o_taue865          , diag_aod865_tot  )
    11       IF(id_fine>0) CALL histwrite_phy( o_taue550_tr2      , diff_aod550_tr2  )
    12       IF(id_fine>0) CALL histwrite_phy( o_taue670_tr2      , diag_aod670_tr2  )
    13       IF(id_fine>0) CALL histwrite_phy( o_taue865_tr2      , diag_aod865_tr2  )
    14       IF(id_coss>0) CALL histwrite_phy( o_taue550_ss       , diag_aod550_ss   )
    15       IF(id_coss>0) CALL histwrite_phy( o_taue670_ss       , diag_aod670_ss   )
    16       IF(id_coss>0) CALL histwrite_phy( o_taue865_ss       , diag_aod865_ss   )
    17       IF(id_codu>0) CALL histwrite_phy( o_taue550_dust     , diag_aod550_dust )
    18       IF(id_codu>0) CALL histwrite_phy( o_taue670_dust     , diag_aod670_dust )
    19       IF(id_codu>0) CALL histwrite_phy( o_taue865_dust     , diag_aod865_dust )
    20       IF(id_scdu>0) CALL histwrite_phy( o_taue550_dustsco  , diag_aod550_dustsco )
    21       IF(id_scdu>0) CALL histwrite_phy( o_taue670_dustsco  , diag_aod670_dustsco )
    22       IF(id_scdu>0) CALL histwrite_phy( o_taue865_dustsco  , diag_aod865_dustsco )
     11      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue550_tr2      , diff_aod550_tr2  )
     12      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue670_tr2      , diag_aod670_tr2  )
     13      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue865_tr2      , diag_aod865_tr2  )
     14      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue550_ss       , diag_aod550_ss   )
     15      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue670_ss       , diag_aod670_ss   )
     16      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue865_ss       , diag_aod865_ss   )
     17      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue550_dust     , diag_aod550_dust )
     18      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue670_dust     , diag_aod670_dust )
     19      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue865_dust     , diag_aod865_dust )
     20      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue550_dustsco  , diag_aod550_dustsco )
     21      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue670_dustsco  , diag_aod670_dustsco )
     22      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue865_dustsco  , diag_aod865_dustsco )
    2323      CALL histwrite_phy( o_taue550_aqua     , aod550_aqua  )
    2424      CALL histwrite_phy( o_taue550_terra    , aod550_terra )
     
    2828      CALL histwrite_phy( o_taue865_terra    , aod865_terra )
    2929
    30       IF(id_fine>0) CALL histwrite_phy( o_taue550_fine_aqua     ,aod550_tr2_aqua   )
    31       IF(id_fine>0) CALL histwrite_phy( o_taue670_fine_aqua     ,aod670_tr2_aqua   )
    32       IF(id_fine>0) CALL histwrite_phy( o_taue865_fine_aqua     ,aod865_tr2_aqua   )
    33       IF(id_coss>0) CALL histwrite_phy( o_taue550_coss_aqua      ,aod550_ss_aqua   )
    34       IF(id_coss>0) CALL histwrite_phy( o_taue670_coss_aqua      ,aod670_ss_aqua   )
    35       IF(id_coss>0) CALL histwrite_phy( o_taue865_coss_aqua      ,aod865_ss_aqua   )
    36       IF(id_codu>0) CALL histwrite_phy( o_taue550_codu_aqua    ,aod550_dust_aqua   )
    37       IF(id_codu>0) CALL histwrite_phy( o_taue670_codu_aqua    ,aod670_dust_aqua   )
    38       IF(id_codu>0) CALL histwrite_phy( o_taue865_codu_aqua    ,aod865_dust_aqua   )
    39       IF(id_scdu>0) CALL histwrite_phy( o_taue670_scdu_aqua ,aod670_dustsco_aqua   )
    40       IF(id_scdu>0) CALL histwrite_phy( o_taue550_scdu_aqua ,aod550_dustsco_aqua   )
    41       IF(id_scdu>0) CALL histwrite_phy( o_taue865_scdu_aqua ,aod865_dustsco_aqua   )
     30      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue550_fine_aqua     ,aod550_tr2_aqua   )
     31      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue670_fine_aqua     ,aod670_tr2_aqua   )
     32      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue865_fine_aqua     ,aod865_tr2_aqua   )
     33      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue550_coss_aqua      ,aod550_ss_aqua   )
     34      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue670_coss_aqua      ,aod670_ss_aqua   )
     35      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue865_coss_aqua      ,aod865_ss_aqua   )
     36      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue550_codu_aqua    ,aod550_dust_aqua   )
     37      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue670_codu_aqua    ,aod670_dust_aqua   )
     38      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue865_codu_aqua    ,aod865_dust_aqua   )
     39      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue670_scdu_aqua ,aod670_dustsco_aqua   )
     40      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue550_scdu_aqua ,aod550_dustsco_aqua   )
     41      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue865_scdu_aqua ,aod865_dustsco_aqua   )
    4242     
    43       IF(id_fine>0) CALL histwrite_phy( o_taue550_fine_terra     ,aod550_tr2_terra   )
    44       IF(id_fine>0) CALL histwrite_phy( o_taue670_fine_terra     ,aod670_tr2_terra   )
    45       IF(id_fine>0) CALL histwrite_phy( o_taue865_fine_terra     ,aod865_tr2_terra   )
    46       IF(id_coss>0) CALL histwrite_phy( o_taue550_coss_terra      ,aod550_ss_terra   )
    47       IF(id_coss>0) CALL histwrite_phy( o_taue670_coss_terra      ,aod670_ss_terra   )
    48       IF(id_coss>0) CALL histwrite_phy( o_taue865_coss_terra      ,aod865_ss_terra   )
    49       IF(id_codu>0) CALL histwrite_phy( o_taue550_codu_terra    ,aod550_dust_terra   )
    50       IF(id_codu>0) CALL histwrite_phy( o_taue670_codu_terra    ,aod670_dust_terra   )
    51       IF(id_codu>0) CALL histwrite_phy( o_taue865_codu_terra    ,aod865_dust_terra   )
    52       IF(id_scdu>0) CALL histwrite_phy( o_taue670_scdu_terra ,aod670_dustsco_terra   )
    53       IF(id_scdu>0) CALL histwrite_phy( o_taue550_scdu_terra ,aod550_dustsco_terra   )
    54       IF(id_scdu>0) CALL histwrite_phy( o_taue865_scdu_terra ,aod865_dustsco_terra   )
    55 
    56 
    57       IF(id_prec>0) CALL histwrite_phy( o_trm01 , trm01 )
    58       IF(id_fine>0) CALL histwrite_phy( o_trm02 , trm02 )
    59       IF(id_coss>0) CALL histwrite_phy( o_trm03 , trm03 )
    60       IF(id_codu>0) CALL histwrite_phy( o_trm04 , trm04 )
    61       IF(id_scdu>0) CALL histwrite_phy( o_trm05 , trm05 )
    62       IF(id_prec>0) CALL histwrite_phy( o_sconc01 , sconc01 )
    63       IF(id_fine>0) CALL histwrite_phy( o_sconc02 , sconc02 )
    64       IF(id_coss>0) CALL histwrite_phy( o_sconc03 , sconc03 )
    65       IF(id_codu>0) CALL histwrite_phy( o_sconc04 , sconc04 )
    66       IF(id_scdu>0) CALL histwrite_phy( o_sconc05 , sconc05 )
     43      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue550_fine_terra     ,aod550_tr2_terra   )
     44      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue670_fine_terra     ,aod670_tr2_terra   )
     45      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue865_fine_terra     ,aod865_tr2_terra   )
     46      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue550_coss_terra      ,aod550_ss_terra   )
     47      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue670_coss_terra      ,aod670_ss_terra   )
     48      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue865_coss_terra      ,aod865_ss_terra   )
     49      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue550_codu_terra    ,aod550_dust_terra   )
     50      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue670_codu_terra    ,aod670_dust_terra   )
     51      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue865_codu_terra    ,aod865_dust_terra   )
     52      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue670_scdu_terra ,aod670_dustsco_terra   )
     53      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue550_scdu_terra ,aod550_dustsco_terra   )
     54      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_taue865_scdu_terra ,aod865_dustsco_terra   )
     55
     56
     57      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_trm01 , trm01 )
     58      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_trm02 , trm02 )
     59      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_trm03 , trm03 )
     60      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_trm04 , trm04 )
     61      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_trm05 , trm05 )
     62      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_sconc01 , sconc01 )
     63      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_sconc02 , sconc02 )
     64      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_sconc03 , sconc03 )
     65      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_sconc04 , sconc04 )
     66      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_sconc05 , sconc05 )
    6767
    6868! Lessivage
    6969
    70       IF(id_prec>0) CALL histwrite_phy( o_flux01       , flux01 )
    71       IF(id_fine>0) CALL histwrite_phy( o_flux02       , flux02 )
    72       IF(id_coss>0) CALL histwrite_phy( o_flux03       , flux03 )
    73       IF(id_codu>0) CALL histwrite_phy( o_flux04       , flux04 )
    74       IF(id_scdu>0) CALL histwrite_phy( o_flux05       , flux05 )
    75       IF(id_prec>0) CALL histwrite_phy( o_ds01         , ds01 )
    76       IF(id_fine>0) CALL histwrite_phy( o_ds02         , ds02 )
    77       IF(id_coss>0) CALL histwrite_phy( o_ds03         , ds03 )
    78       IF(id_codu>0) CALL histwrite_phy( o_ds04         , ds04 )
    79       IF(id_scdu>0) CALL histwrite_phy( o_ds05         , ds05 )
    80       IF(id_prec>0) CALL histwrite_phy( o_dh01         , dh01 )
    81       IF(id_fine>0) CALL histwrite_phy( o_dh02         , dh02 )
    82       IF(id_coss>0) CALL histwrite_phy( o_dh03         , dh03 )
    83       IF(id_codu>0) CALL histwrite_phy( o_dh04         , dh04 )
    84       IF(id_scdu>0) CALL histwrite_phy( o_dh05         , dh05 )
    85       IF(id_prec>0) CALL histwrite_phy( o_dtrconv01    , dtrconv01 )
    86       IF(id_fine>0) CALL histwrite_phy( o_dtrconv02    , dtrconv02 )
    87       IF(id_coss>0) CALL histwrite_phy( o_dtrconv03    , dtrconv03 )
    88       IF(id_codu>0) CALL histwrite_phy( o_dtrconv04    , dtrconv04 )
    89       IF(id_scdu>0) CALL histwrite_phy( o_dtrconv05    , dtrconv05 )
    90       IF(id_prec>0) CALL histwrite_phy( o_dtherm01     , dtherm01 )
    91       IF(id_fine>0) CALL histwrite_phy( o_dtherm02     , dtherm02 )
    92       IF(id_coss>0) CALL histwrite_phy( o_dtherm03     , dtherm03 )
    93       IF(id_codu>0) CALL histwrite_phy( o_dtherm04     , dtherm04 )
    94       IF(id_scdu>0) CALL histwrite_phy( o_dtherm05     , dtherm05 )
    95       IF(id_prec>0) CALL histwrite_phy( o_dhkecv01     , dhkecv01 )
    96       IF(id_fine>0) CALL histwrite_phy( o_dhkecv02     , dhkecv02 )
    97       IF(id_coss>0) CALL histwrite_phy( o_dhkecv03     , dhkecv03 )
    98       IF(id_codu>0) CALL histwrite_phy( o_dhkecv04     , dhkecv04 )
    99       IF(id_scdu>0) CALL histwrite_phy( o_dhkecv05     , dhkecv05 )
    100       IF(id_prec>0) CALL histwrite_phy( o_d_tr_ds01     , d_tr_ds01 )
    101       IF(id_fine>0) CALL histwrite_phy( o_d_tr_ds02     , d_tr_ds02 )
    102       IF(id_coss>0) CALL histwrite_phy( o_d_tr_ds03     , d_tr_ds03 )
    103       IF(id_codu>0) CALL histwrite_phy( o_d_tr_ds04     , d_tr_ds04 )
    104       IF(id_scdu>0) CALL histwrite_phy( o_d_tr_ds05     , d_tr_ds05 )
    105       IF(id_prec>0) CALL histwrite_phy( o_dhkelsc01    , dhkelsc01 )
    106       IF(id_fine>0) CALL histwrite_phy( o_dhkelsc02    , dhkelsc02 )
    107       IF(id_coss>0) CALL histwrite_phy( o_dhkelsc03    , dhkelsc03 )
    108       IF(id_codu>0) CALL histwrite_phy( o_dhkelsc04    , dhkelsc04 )
    109       IF(id_scdu>0) CALL histwrite_phy( o_dhkelsc05    , dhkelsc05 )
    110       IF(id_prec>0) CALL histwrite_phy( o_d_tr_cv01    , d_tr_cv01 )
    111       IF(id_fine>0) CALL histwrite_phy( o_d_tr_cv02    , d_tr_cv02 )
    112       IF(id_coss>0) CALL histwrite_phy( o_d_tr_cv03    , d_tr_cv03 )
    113       IF(id_codu>0) CALL histwrite_phy( o_d_tr_cv04    , d_tr_cv04 )
    114       IF(id_scdu>0) CALL histwrite_phy( o_d_tr_cv05    , d_tr_cv05 )
    115       IF(id_prec>0) CALL histwrite_phy( o_d_tr_trsp01  , d_tr_trsp01 )
    116       IF(id_fine>0) CALL histwrite_phy( o_d_tr_trsp02  , d_tr_trsp02 )
    117       IF(id_coss>0) CALL histwrite_phy( o_d_tr_trsp03  , d_tr_trsp03 )
    118       IF(id_codu>0) CALL histwrite_phy( o_d_tr_trsp04  , d_tr_trsp04 )
    119       IF(id_scdu>0) CALL histwrite_phy( o_d_tr_trsp05  , d_tr_trsp05 )
    120       IF(id_prec>0) CALL histwrite_phy( o_d_tr_sscav01 , d_tr_sscav01 )
    121       IF(id_fine>0) CALL histwrite_phy( o_d_tr_sscav02 , d_tr_sscav02 )
    122       IF(id_coss>0) CALL histwrite_phy( o_d_tr_sscav03 , d_tr_sscav03 )
    123       IF(id_codu>0) CALL histwrite_phy( o_d_tr_sscav04 , d_tr_sscav04 )
    124       IF(id_scdu>0) CALL histwrite_phy( o_d_tr_sscav05 , d_tr_sscav05 )
    125       IF(id_prec>0) CALL histwrite_phy( o_d_tr_sat01   , d_tr_sat01 )
    126       IF(id_fine>0) CALL histwrite_phy( o_d_tr_sat02   , d_tr_sat02 )
    127       IF(id_coss>0) CALL histwrite_phy( o_d_tr_sat03   , d_tr_sat03 )
    128       IF(id_codu>0) CALL histwrite_phy( o_d_tr_sat04   , d_tr_sat04 )
    129       IF(id_scdu>0) CALL histwrite_phy( o_d_tr_sat05   , d_tr_sat05 )
    130       IF(id_prec>0) CALL histwrite_phy( o_d_tr_uscav01 , d_tr_uscav01 )
    131       IF(id_fine>0) CALL histwrite_phy( o_d_tr_uscav02 , d_tr_uscav02 )
    132       IF(id_coss>0) CALL histwrite_phy( o_d_tr_uscav03 , d_tr_uscav03 )
    133       IF(id_codu>0) CALL histwrite_phy( o_d_tr_uscav04 , d_tr_uscav04 )
    134       IF(id_scdu>0) CALL histwrite_phy( o_d_tr_uscav05 , d_tr_uscav05 )
    135       IF(id_prec>0) CALL histwrite_phy( o_d_tr_insc01 , d_tr_insc01 )
    136       IF(id_fine>0) CALL histwrite_phy( o_d_tr_insc02 , d_tr_insc02 )
    137       IF(id_coss>0) CALL histwrite_phy( o_d_tr_insc03 , d_tr_insc03 )
    138       IF(id_codu>0) CALL histwrite_phy( o_d_tr_insc04 , d_tr_insc04 )
    139       IF(id_scdu>0) CALL histwrite_phy( o_d_tr_insc05 , d_tr_insc05 )
    140       IF(id_prec>0) CALL histwrite_phy( o_d_tr_bcscav01 , d_tr_bcscav01 )
    141       IF(id_fine>0) CALL histwrite_phy( o_d_tr_bcscav02 , d_tr_bcscav02 )
    142       IF(id_coss>0) CALL histwrite_phy( o_d_tr_bcscav03 , d_tr_bcscav03 )
    143       IF(id_codu>0) CALL histwrite_phy( o_d_tr_bcscav04 , d_tr_bcscav04 )
    144       IF(id_scdu>0) CALL histwrite_phy( o_d_tr_bcscav05 , d_tr_bcscav05 )
    145       IF(id_prec>0) CALL histwrite_phy( o_d_tr_evapls01 , d_tr_evapls01 )
    146       IF(id_fine>0) CALL histwrite_phy( o_d_tr_evapls02 , d_tr_evapls02 )
    147       IF(id_coss>0) CALL histwrite_phy( o_d_tr_evapls03 , d_tr_evapls03 )
    148       IF(id_codu>0) CALL histwrite_phy( o_d_tr_evapls04 , d_tr_evapls04 )
    149       IF(id_scdu>0) CALL histwrite_phy( o_d_tr_evapls05 , d_tr_evapls05 )
    150       IF(id_prec>0) CALL histwrite_phy( o_d_tr_ls01 , d_tr_ls01 )
    151       IF(id_fine>0) CALL histwrite_phy( o_d_tr_ls02 , d_tr_ls02 )
    152       IF(id_coss>0) CALL histwrite_phy( o_d_tr_ls03 , d_tr_ls03 )
    153       IF(id_codu>0) CALL histwrite_phy( o_d_tr_ls04 , d_tr_ls04 )
    154       IF(id_scdu>0) CALL histwrite_phy( o_d_tr_ls05 , d_tr_ls05 )
    155 
    156       IF(id_prec>0) CALL histwrite_phy( o_d_tr_dyn01 , d_tr_dyn01 )
    157       IF(id_fine>0) CALL histwrite_phy( o_d_tr_dyn02 , d_tr_dyn02 )
    158       IF(id_coss>0) CALL histwrite_phy( o_d_tr_dyn03 , d_tr_dyn03 )
    159       IF(id_codu>0) CALL histwrite_phy( o_d_tr_dyn04 , d_tr_dyn04 )
    160       IF(id_scdu>0) CALL histwrite_phy( o_d_tr_dyn05 , d_tr_dyn05 )
     70      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_flux01       , flux01 )
     71      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_flux02       , flux02 )
     72      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_flux03       , flux03 )
     73      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_flux04       , flux04 )
     74      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_flux05       , flux05 )
     75      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_ds01         , ds01 )
     76      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_ds02         , ds02 )
     77      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_ds03         , ds03 )
     78      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_ds04         , ds04 )
     79      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_ds05         , ds05 )
     80      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dh01         , dh01 )
     81      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dh02         , dh02 )
     82      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dh03         , dh03 )
     83      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dh04         , dh04 )
     84      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dh05         , dh05 )
     85      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dtrconv01    , dtrconv01 )
     86      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dtrconv02    , dtrconv02 )
     87      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dtrconv03    , dtrconv03 )
     88      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dtrconv04    , dtrconv04 )
     89      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dtrconv05    , dtrconv05 )
     90      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dtherm01     , dtherm01 )
     91      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dtherm02     , dtherm02 )
     92      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dtherm03     , dtherm03 )
     93      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dtherm04     , dtherm04 )
     94      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dtherm05     , dtherm05 )
     95      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dhkecv01     , dhkecv01 )
     96      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dhkecv02     , dhkecv02 )
     97      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dhkecv03     , dhkecv03 )
     98      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dhkecv04     , dhkecv04 )
     99      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dhkecv05     , dhkecv05 )
     100      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_ds01     , d_tr_ds01 )
     101      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_ds02     , d_tr_ds02 )
     102      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_ds03     , d_tr_ds03 )
     103      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_ds04     , d_tr_ds04 )
     104      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_ds05     , d_tr_ds05 )
     105      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dhkelsc01    , dhkelsc01 )
     106      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dhkelsc02    , dhkelsc02 )
     107      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dhkelsc03    , dhkelsc03 )
     108      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dhkelsc04    , dhkelsc04 )
     109      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_dhkelsc05    , dhkelsc05 )
     110      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_cv01    , d_tr_cv01 )
     111      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_cv02    , d_tr_cv02 )
     112      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_cv03    , d_tr_cv03 )
     113      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_cv04    , d_tr_cv04 )
     114      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_cv05    , d_tr_cv05 )
     115      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_trsp01  , d_tr_trsp01 )
     116      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_trsp02  , d_tr_trsp02 )
     117      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_trsp03  , d_tr_trsp03 )
     118      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_trsp04  , d_tr_trsp04 )
     119      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_trsp05  , d_tr_trsp05 )
     120      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_sscav01 , d_tr_sscav01 )
     121      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_sscav02 , d_tr_sscav02 )
     122      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_sscav03 , d_tr_sscav03 )
     123      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_sscav04 , d_tr_sscav04 )
     124      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_sscav05 , d_tr_sscav05 )
     125      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_sat01   , d_tr_sat01 )
     126      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_sat02   , d_tr_sat02 )
     127      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_sat03   , d_tr_sat03 )
     128      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_sat04   , d_tr_sat04 )
     129      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_sat05   , d_tr_sat05 )
     130      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_uscav01 , d_tr_uscav01 )
     131      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_uscav02 , d_tr_uscav02 )
     132      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_uscav03 , d_tr_uscav03 )
     133      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_uscav04 , d_tr_uscav04 )
     134      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_uscav05 , d_tr_uscav05 )
     135      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_insc01 , d_tr_insc01 )
     136      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_insc02 , d_tr_insc02 )
     137      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_insc03 , d_tr_insc03 )
     138      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_insc04 , d_tr_insc04 )
     139      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_insc05 , d_tr_insc05 )
     140      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_bcscav01 , d_tr_bcscav01 )
     141      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_bcscav02 , d_tr_bcscav02 )
     142      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_bcscav03 , d_tr_bcscav03 )
     143      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_bcscav04 , d_tr_bcscav04 )
     144      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_bcscav05 , d_tr_bcscav05 )
     145      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_evapls01 , d_tr_evapls01 )
     146      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_evapls02 , d_tr_evapls02 )
     147      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_evapls03 , d_tr_evapls03 )
     148      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_evapls04 , d_tr_evapls04 )
     149      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_evapls05 , d_tr_evapls05 )
     150      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_ls01 , d_tr_ls01 )
     151      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_ls02 , d_tr_ls02 )
     152      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_ls03 , d_tr_ls03 )
     153      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_ls04 , d_tr_ls04 )
     154      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_ls05 , d_tr_ls05 )
     155
     156      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_dyn01 , d_tr_dyn01 )
     157      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_dyn02 , d_tr_dyn02 )
     158      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_dyn03 , d_tr_dyn03 )
     159      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_dyn04 , d_tr_dyn04 )
     160      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_dyn05 , d_tr_dyn05 )
    161161     
    162       IF(id_prec>0) CALL histwrite_phy( o_d_tr_cl01 , d_tr_cl01 )
    163       IF(id_fine>0) CALL histwrite_phy( o_d_tr_cl02 , d_tr_cl02 )
    164       IF(id_coss>0) CALL histwrite_phy( o_d_tr_cl03 , d_tr_cl03 )
    165       IF(id_codu>0) CALL histwrite_phy( o_d_tr_cl04 , d_tr_cl04 )
    166       IF(id_scdu>0) CALL histwrite_phy( o_d_tr_cl05 , d_tr_cl05 )
    167       IF(id_prec>0) CALL histwrite_phy( o_d_tr_th01 , d_tr_th01 )
    168       IF(id_fine>0) CALL histwrite_phy( o_d_tr_th02 , d_tr_th02 )
    169       IF(id_coss>0) CALL histwrite_phy( o_d_tr_th03 , d_tr_th03 )
    170       IF(id_codu>0) CALL histwrite_phy( o_d_tr_th04 , d_tr_th04 )
    171       IF(id_scdu>0) CALL histwrite_phy( o_d_tr_th05 , d_tr_th05 )
    172 
    173       IF(id_coss>0) CALL histwrite_phy( o_sed_ss , sed_ss)
    174       IF(id_codu>0) CALL histwrite_phy( o_sed_dust , sed_dust)
    175       IF(id_scdu>0) CALL histwrite_phy( o_sed_dustsco , sed_dustsco)
    176       IF(id_prec>0) CALL histwrite_phy( o_g2p_gas , his_g2pgas )
    177       IF(id_fine>0) CALL histwrite_phy( o_g2p_aer , his_g2paer)
     162      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_cl01 , d_tr_cl01 )
     163      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_cl02 , d_tr_cl02 )
     164      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_cl03 , d_tr_cl03 )
     165      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_cl04 , d_tr_cl04 )
     166      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_cl05 , d_tr_cl05 )
     167      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_th01 , d_tr_th01 )
     168      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_th02 , d_tr_th02 )
     169      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_th03 , d_tr_th03 )
     170      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_th04 , d_tr_th04 )
     171      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_d_tr_th05 , d_tr_th05 )
     172
     173      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_sed_ss , sed_ss)
     174      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_sed_dust , sed_dust)
     175      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_sed_dustsco , sed_dustsco)
     176      IF(id_prec>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_g2p_gas , his_g2pgas )
     177      IF(id_fine>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_g2p_aer , his_g2paer)
    178178
    179179!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    180       IF(id_coss>0) CALL histwrite_phy( o_sed_ss3D , sed_ss3D)
    181       IF(id_codu>0) CALL histwrite_phy( o_sed_dust3D , sed_dust3D)
    182       IF(id_scdu>0) CALL histwrite_phy( o_sed_dustsco3D , sed_dustsco3D)
     180      IF(id_coss>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_sed_ss3D , sed_ss3D)
     181      IF(id_codu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_sed_dust3D , sed_dust3D)
     182      IF(id_scdu>0 .OR. .NOT. vars_defined) CALL histwrite_phy( o_sed_dustsco3D , sed_dustsco3D)
    183183!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    184184! histrac_spl
Note: See TracChangeset for help on using the changeset viewer.