Ignore:
Timestamp:
Feb 22, 2021, 12:44:07 PM (4 years ago)
Author:
dcugnet
Message:

Update the branch to the current trunk.

Location:
LMDZ6/branches/LMDZ-tracers
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/LMDZ-tracers

  • LMDZ6/branches/LMDZ-tracers/libf/phylmd/Dust/phytracr_spl_mod.F90

    r2648 r3851  
    33
    44MODULE phytracr_spl_mod
    5 
    65
    76! Recuperation des morceaux de la physique de Jeronimo specifiques
     
    3534  CHARACTER*800 fileregionsdimsbb
    3635  CHARACTER*800 fileregionsdimswstar
    37 !  CHARACTER*800 filescaleparamsind
    38 !  CHARACTER*800 filescaleparamsdust
    39 !  CHARACTER*800 filescaleparamsbb
    4036  CHARACTER*100 paramname_ind
    4137  CHARACTER*100 paramname_bb
     
    424420!$OMP THREADPRIVATE(flux_sparam_sscoa,u10m_ss,v10m_ss)
    425421
    426 ! Select dust emission scheme ver the Sahara:
     422! Select dust emission scheme for the Sahara:
    427423!      LOGICAL,PARAMETER,SAVE ::  ok_chimeredust=.FALSE.
    428424      LOGICAL,PARAMETER ::  ok_chimeredust=.TRUE.
    429425!!!!!! !$OMP THREADPRIVATE(ok_chimeredust)
    430426
    431 !OH   REAL,SAVE :: scale_param_ssacc  !Scaling parameter for Fine Sea Salt
    432 !OH   REAL,SAVE :: scale_param_sscoa  !Scaling parameter for Coarse Sea Salt
    433 !OH   REAL,ALLOCATABLE,SAVE :: scale_param_ind(nbreg_ind) !Scaling parameter for industrial emissionsi of SO2
    434 !OH   REAL,ALLOCATABLE,SAVE :: scale_param_bb(nbreg_bb)  !Scaling parameter for biomas burning (SO2, BC & OM)
    435 !OH   REAL,ALLOCATABLE,SAVE :: scale_param_ff(nbreg_ind)  !Scaling parameter for industrial emissions (fossil fuel)
    436 !OH   REAL,ALLOCATABLE,SAVE :: scale_param_dustacc(nbreg_dust)  !Scaling parameter for Fine Dust
    437 !OH   REAL,ALLOCATABLE,SAVE :: scale_param_dustcoa(nbreg_dust)  !Scaling parameter for Coarse Dust
    438 !OH   REAL,ALLOCATABLE,SAVE :: scale_param_dustsco(nbreg_dust)  !Scaling parameter for SCoarse Dust
    439 !OH   REAL,ALLOCATABLE,SAVE :: param_wstarBLperregion(nbreg_wstardust)
    440 !OH   REAL,ALLOCATABLE,SAVE :: param_wstarWAKEperregion(nbreg_wstardust)
    441 !!!! !$OMP THREADPRIVATE( scale_param_ssacc, scale_param_sscoa, scale_param_ind, scale_param_bb, scale_param_ff, scale_param_dustacc, scale_param_dustcoa, scale_param_dustsco, param_wstarBLperregion, param_wstarWAKEperregion)
    442 
    443427
    444428CONTAINS
    445429!
    446430!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    447 SUBROUTINE phytracr_spl_ini(klon,nbreg_ind,nbreg_bb,nbreg_dust,nbreg_wstardust)
     431SUBROUTINE phytracr_spl_out_init()
    448432!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    449 
    450 
    451   IMPLICIT NONE
    452   INTEGER klon,nbreg_ind,nbreg_bb,nbreg_dust,nbreg_wstardust
    453 
    454   ALLOCATE(  tsol(klon)              )
    455   fileregionsdimsind='regions_ind_meta'
    456   fileregionsdimsdust='regions_dustacc_meta'
    457 !  fileregionsdimsdust='regions_dust_meta'
    458   fileregionsdimsbb='regions_bb_meta'
    459   fileregionsdimswstar='regions_pwstarwake_meta'
    460   call  readregionsdims2_spl(nbreg_ind,fileregionsdimsind)
    461   call  readregionsdims2_spl(nbreg_dust,fileregionsdimsdust)
    462   call  readregionsdims2_spl(nbreg_bb,fileregionsdimsbb)
    463   call  readregionsdims2_spl(nbreg_wstardust,fileregionsdimswstar)
    464 
    465 !readregions_spl()
    466 
    467   ALLOCATE(scale_param_ind(nbreg_ind))
    468   ALLOCATE(scale_param_bb(nbreg_bb))
    469   ALLOCATE(scale_param_ff(nbreg_ind))
    470   ALLOCATE(scale_param_dustacc(nbreg_dust))
    471   ALLOCATE(scale_param_dustcoa(nbreg_dust))
    472   ALLOCATE(scale_param_dustsco(nbreg_dust))
    473   ALLOCATE(param_wstarBLperregion(nbreg_wstardust))
    474   ALLOCATE(param_wstarWAKEperregion(nbreg_wstardust))
    475   ALLOCATE(  dust_ec(klon)           )
    476   ALLOCATE(  u10m_ec(klon)           )
    477   ALLOCATE(  v10m_ec(klon)           )
    478   ALLOCATE(  lmt_so2volc_cont(klon)  )
    479   ALLOCATE(  lmt_altvolc_cont(klon)  )
    480   ALLOCATE(  lmt_so2volc_expl(klon)  )
    481   ALLOCATE(  lmt_altvolc_expl(klon)  )
    482   ALLOCATE(  lmt_so2ff_l(klon)       )   
    483   ALLOCATE(  lmt_so2ff_h(klon)       ) 
    484   ALLOCATE(  lmt_so2nff(klon)        ) 
    485   ALLOCATE(  lmt_so2ba(klon)         ) 
    486   ALLOCATE(  lmt_so2bb_l(klon)       )
    487   ALLOCATE(  lmt_so2bb_h(klon)       ) 
    488   ALLOCATE(  lmt_dmsconc(klon)       ) 
    489   ALLOCATE(  lmt_dmsbio(klon)        ) 
    490   ALLOCATE(  lmt_h2sbio(klon)        ) 
    491   ALLOCATE(  lmt_bcff(klon)          )
    492   ALLOCATE(  lmt_bcnff(klon)         )
    493   ALLOCATE(  lmt_bcbb_l(klon)        )
    494   ALLOCATE(  lmt_bcbb_h(klon)        )
    495   ALLOCATE(  lmt_bcba(klon)          )
    496   ALLOCATE(  lmt_omff(klon)          ) 
    497   ALLOCATE(  lmt_omnff(klon)         ) 
    498   ALLOCATE(  lmt_ombb_l(klon)        ) 
    499   ALLOCATE(  lmt_ombb_h(klon)        ) 
    500   ALLOCATE(  lmt_omnat(klon)         ) 
    501   ALLOCATE(  lmt_omba(klon)          )           
    502   ALLOCATE(lmt_sea_salt(klon,ss_bins))
    503 
    504 
    505 
    506 
    507   !temporal hardcoded null inicialization of assimilation emmision factors
    508   scale_param_ssacc=1.
    509   scale_param_sscoa=1.
    510   scale_param_ind(:)=1.
    511   scale_param_bb(:)=1.
    512   scale_param_ff(:)=1.
    513   scale_param_dustacc(:)=1.
    514   scale_param_dustcoa(:)=1.
    515   scale_param_dustsco(:)=1.
    516   param_wstarBLperregion(:)=0.
    517   param_wstarWAKEperregion(:)=0.
    518 
    519 
    520 
    521 RETURN
    522 END SUBROUTINE phytracr_spl_ini
    523 
    524 
    525 
    526 
    527 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    528       SUBROUTINE phytracr_spl ( debutphy,lafin,jD_cur,jH_cur,iflag_conv, &  ! I
    529                       pdtphys,ftsol,                                   &  ! I
    530                       t_seri,q_seri,paprs,pplay,RHcl,                  &  ! I
    531                       pmfu, pmfd, pen_u, pde_u, pen_d, pde_d,          &  ! I
    532                       coefh, cdragh, cdragm, yu1, yv1,                 &  ! I
    533                       u_seri, v_seri, rlat,rlon,                       &  ! I
    534                       pphis,pctsrf,pmflxr,pmflxs,prfl,psfl,            &  ! I
    535                       da,phi,phi2,d1a,dam,mp,ep,sigd,sij,clw,elij,     &  ! I
    536                       epmlmMm,eplaMm,upwd,dnwd,itop_con,ibas_con,      &  ! I
    537                       evapls,wdtrainA,  wdtrainM,wght_cvfd,              &  ! I
    538                       fm_therm, entr_therm, rneb,                      &  ! I
    539                       beta_fisrt,beta_v1,                              &  ! I
    540                       zu10m,zv10m,wstar,ale_bl,ale_wake,               &  ! I
    541                       d_tr_dyn,tr_seri)                                            ! O
    542 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    543 
    544       USE mod_grid_phy_lmdz
    545       USE mod_phys_lmdz_para
    546       USE IOIPSL
    547       USE dimphy
    548       USE infotrac
    549       USE indice_sol_mod
    550       USE write_field_phy
    551      
    552 
    553       USE mod_phys_lmdz_transfert_para
    554 
    555   USE phys_cal_mod, only: jD_1jan,year_len, mth_len, days_elapsed, jh_1jan, year_cur, &
    556        mth_cur, phys_cal_update
    557 
    558 !
    559       IMPLICIT none
    560 !
    561 
    562 !======================================================================
    563 ! Auteur(s) FH
    564 ! Objet: Moniteur general des tendances traceurs
    565 !
    566 ! Remarques en vrac:
    567 ! ------------------
    568 ! 1/ le call phytrac se fait avec nqmax-2 donc nous avons bien
    569 ! les vrais traceurs (nbtr) dans phytrac (pas la vapeur ni eau liquide)
    570 !======================================================================
    571 #include "dimensions.h"
    572 #include "chem.h"
    573 #include "chem_spla.h"
    574 #include "YOMCST.h"
    575 #include "YOETHF.h"
    576 #include "paramet.h"
    577 #include "thermcell.h"
    578 
    579 !======================================================================
    580 
    581 ! Arguments:
    582 !
    583 !  EN ENTREE:
    584 !  ==========
    585 !
    586 !  divers:
    587 !  -------
    588 !
    589       real,intent(in) :: pdtphys  ! pas d'integration pour la physique (seconde)
    590       REAL, intent(in):: jD_cur, jH_cur
    591       real, intent(in) ::  ftsol(klon,nbsrf)  ! temperature du sol par type
    592       real, intent(in) ::  t_seri(klon,klev)  ! temperature
    593       real, intent(in) ::  u_seri(klon,klev)  ! vent
    594       real , intent(in) :: v_seri(klon,klev)  ! vent
    595       real , intent(in) :: q_seri(klon,klev)  ! vapeur d eau kg/kg
    596 
    597 LOGICAL,  INTENT(IN)                          :: lafin
    598 
    599       real tr_seri(klon,klev,nbtr) ! traceur 
    600       real tmp_var(klon,klev) ! auxiliary variable to replace traceur 
    601       real tmp_var2(klon,nbtr) ! auxiliary variable to replace source
    602       real tmp_var3(klon,klev,nbtr) ! auxiliary variable 3D 
    603       real dummy1d ! JE auxiliary variable
    604       real aux_var2(klon) ! auxiliary variable to replace traceur 
    605       real aux_var3(klon,klev) ! auxiliary variable to replace traceur 
    606       real d_tr(klon,klev,nbtr)    ! traceur  tendance
    607       real sconc_seri(klon,nbtr) ! surface concentration of traceur 
    608 !
    609       integer nbjour
    610       save nbjour
    611 !$OMP THREADPRIVATE(nbjour)
    612 !
    613       INTEGER  masque_aqua_cur(klon)
    614       INTEGER  masque_terra_cur(klon)
    615       INTEGER, DIMENSION(:), ALLOCATABLE, SAVE :: masque_aqua  !mask for 1 day
    616       INTEGER, DIMENSION(:), ALLOCATABLE, SAVE :: masque_terra !
    617 !$OMP THREADPRIVATE(masque_aqua,masque_terra)
    618 !!$OMP THREADPRIVATE(aod550_aqua,aod550_terra,aod670_aqua,aod670_terra)
    619 !!$OMP THREADPRIVATE(aod865_aqua,aod865_terra)
    620 
    621   INTEGER, SAVE :: nbreg_dust, nbreg_ind, nbreg_bb, nbreg_ss,nbreg_wstardust
    622   !$OMP THREADPRIVATE(nbreg_dust, nbreg_ind, nbreg_bb,nbreg_ss,nbreg_wstardust)
    623 
    624 
    625 
    626       REAL lmt_dms(klon)           ! emissions de dms
    627 
    628 !JE20150518<<
    629       REAL, DIMENSION(klon_glo)  :: aod550_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
    630       REAL, DIMENSION(klon_glo)  :: aod550_tr2_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
    631       REAL, DIMENSION(klon_glo)  :: aod550_ss_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
    632       REAL, DIMENSION(klon_glo)  :: aod550_dust_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
    633       REAL, DIMENSION(klon_glo)  :: aod550_dustsco_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
    634       REAL, DIMENSION(klon_glo)  :: aod670_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
    635       REAL, DIMENSION(klon_glo)  :: aod670_tr2_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
    636       REAL, DIMENSION(klon_glo)  :: aod670_ss_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
    637       REAL, DIMENSION(klon_glo)  :: aod670_dust_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
    638       REAL, DIMENSION(klon_glo)  :: aod670_dustsco_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
    639       REAL, DIMENSION(klon_glo)  :: aod865_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
    640       REAL, DIMENSION(klon_glo)  :: aod865_tr2_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
    641       REAL, DIMENSION(klon_glo)  :: aod865_ss_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
    642       REAL, DIMENSION(klon_glo)  :: aod865_dust_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
    643       REAL, DIMENSION(klon_glo)  :: aod865_dustsco_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
    644 
    645       REAL, DIMENSION(klon_glo)  :: aod550_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
    646       REAL, DIMENSION(klon_glo)  :: aod550_tr2_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
    647       REAL, DIMENSION(klon_glo)  :: aod550_ss_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
    648       REAL, DIMENSION(klon_glo)  :: aod550_dust_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
    649       REAL, DIMENSION(klon_glo)  :: aod550_dustsco_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
    650       REAL, DIMENSION(klon_glo)  :: aod670_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
    651       REAL, DIMENSION(klon_glo)  :: aod670_tr2_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
    652       REAL, DIMENSION(klon_glo)  :: aod670_ss_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
    653       REAL, DIMENSION(klon_glo)  :: aod670_dust_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
    654       REAL, DIMENSION(klon_glo)  :: aod670_dustsco_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
    655       REAL, DIMENSION(klon_glo)  :: aod865_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
    656       REAL, DIMENSION(klon_glo)  :: aod865_tr2_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
    657       REAL, DIMENSION(klon_glo)  :: aod865_ss_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
    658       REAL, DIMENSION(klon_glo)  :: aod865_dust_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
    659       REAL, DIMENSION(klon_glo)  :: aod865_dustsco_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
    660 !!!!!!!!!!!!!
    661 !JE20150518>>
    662 
    663 
    664 
    665 
    666       real , intent(in) :: paprs(klon,klev+1)  ! pression pour chaque inter-couche (en Pa)
    667       real , intent(in) :: pplay(klon,klev)  ! pression pour le mileu de chaque couche (en Pa)
    668       real , intent(in) :: RHcl(klon,klev)  ! humidite relativen ciel clair
    669       real znivsig(klev)  ! indice des couches
    670       real paire(klon)
    671       real, intent(in) ::  pphis(klon)
    672       real, intent(in) ::  pctsrf(klon,nbsrf)
    673       logical , intent(in) :: debutphy   ! le flag de l'initialisation de la physique
    674 !
    675 !  Scaling Parameters:
    676 !  ----------------------
    677 !
    678       CHARACTER*50 c_Directory
    679       CHARACTER*80 c_FileName1
    680       CHARACTER*80 c_FileName2
    681       CHARACTER*130 c_FullName1
    682       CHARACTER*130 c_FullName2
    683       INTEGER :: xidx, yidx
    684       INTEGER,DIMENSION(klon) :: mask_bbreg
    685       INTEGER,DIMENSION(klon) :: mask_ffso2reg
    686       INTEGER :: aux_mask1
    687       INTEGER :: aux_mask2
    688       INTEGER, DIMENSION(:), ALLOCATABLE, SAVE :: iregion_so4 !Defines regions for SO4
    689       INTEGER, DIMENSION(:), ALLOCATABLE, SAVE :: iregion_ind  !Defines regions for SO2, BC & OM
    690       INTEGER, DIMENSION(:), ALLOCATABLE, SAVE :: iregion_bb   !Defines regions for SO2, BC & OM
    691       INTEGER, DIMENSION(:), ALLOCATABLE, SAVE :: iregion_dust !Defines  dust regions
    692       INTEGER, DIMENSION(:), ALLOCATABLE, SAVE :: iregion_wstardust !Defines  dust regions
    693 !$OMP THREADPRIVATE(iregion_so4,iregion_ind,iregion_bb,iregion_dust,iregion_wstardust)
    694 
    695 !  Emissions:
    696 
    697 !
    698 !---------------------------- SEA SALT & DUST emissions ------------------------
    699       REAL lmt_sea_salt(klon,ss_bins) !Sea salt 0.03-8.0 um
    700       REAL u10m_ec1(klon),v10m_ec1(klon)
    701       REAL u10m_ec2(klon),v10m_ec2(klon),dust_ec2(klon)
    702       REAL dust_ec(klon)
    703 !     new dust emission chimere je20140522
    704       REAL,DIMENSION(klon),INTENT(IN)                     :: zu10m
    705       REAL,DIMENSION(klon),INTENT(IN)                     :: zv10m
    706       REAL,DIMENSION(klon),INTENT(IN)  :: wstar,ale_bl,ale_wake
    707 
    708 
    709 !
    710 !  Rem : nbtr : nombre de vrais traceurs est defini dans dimphy.h
    711 
    712 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    713      !Dynamique
    714      !--------
    715       REAL,DIMENSION(klon,klev,nbtr),INTENT(IN)    :: d_tr_dyn
    716 
    717 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    718 !  convection:
    719 !  -----------
    720 !
    721       REAL , intent(in) :: pmfu(klon,klev)  ! flux de masse dans le panache montant
    722       REAL , intent(in) :: pmfd(klon,klev)  ! flux de masse dans le panache descendant
    723       REAL, intent(in) ::  pen_u(klon,klev) ! flux entraine dans le panache montant
    724       REAL, intent(in) ::  pde_u(klon,klev) ! flux detraine dans le panache montant
    725       REAL, intent(in) ::  pen_d(klon,klev) ! flux entraine dans le panache descendant
    726       REAL, intent(in) ::  pde_d(klon,klev) ! flux detraine dans le panache descendant
    727 !
    728 !  Convection KE scheme:
    729 !  ---------------------
    730 !
    731 !! Variables pour le lessivage convectif
    732        REAL,DIMENSION(klon,klev),INTENT(IN)     :: da
    733        REAL,DIMENSION(klon,klev,klev),INTENT(IN):: phi
    734        REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: phi2
    735        REAL,DIMENSION(klon,klev),INTENT(IN)      :: d1a,dam
    736        REAL,DIMENSION(klon,klev),INTENT(IN)     :: mp
    737        REAL,DIMENSION(klon,klev),INTENT(IN)     :: upwd      ! saturated
    738 !            updraft mass flux
    739        REAL,DIMENSION(klon,klev),INTENT(IN)     :: dnwd      ! saturated
    740 !            downdraft mass flux
    741        INTEGER,DIMENSION(klon),INTENT(IN)     :: itop_con
    742        INTEGER,DIMENSION(klon),INTENT(IN)     :: ibas_con
    743        REAL,DIMENSION(klon,klev)      :: evapls
    744        REAL,DIMENSION(klon,klev),INTENT(IN)      :: wdtrainA
    745        REAL,DIMENSION(klon,klev),INTENT(IN)      :: wdtrainM
    746 
    747 
    748        REAL,DIMENSION(klon,klev),INTENT(IN)      :: ep
    749        REAL,DIMENSION(klon),INTENT(IN)           :: sigd
    750        REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: sij
    751        REAL,DIMENSION(klon,klev),INTENT(IN)      :: clw
    752        REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: elij
    753        REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: epmlmMm
    754        REAL,DIMENSION(klon,klev),INTENT(IN)      :: eplaMm
    755        REAL,DIMENSION(klon,klev),INTENT(IN)      :: wght_cvfd          !RL
    756 
    757 
    758 !     KE: Tendances de traceurs (Td) et flux de traceurs:
    759 !     ------------------------
    760        REAL,DIMENSION(klon,klev)      :: Mint
    761        REAL,DIMENSION(klon,klev,nbtr) :: zmfd1a
    762        REAL,DIMENSION(klon,klev,nbtr) :: zmfdam
    763        REAL,DIMENSION(klon,klev,nbtr) :: zmfphi2
    764 
    765 !                                                        !tra dans pluie LS a la surf.
    766 !      outputs for cvltr_spl
    767        REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_cv_o 
    768        REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_trsp_o
    769        REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_sscav_o
    770        REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_sat_o
    771        REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_uscav_o
    772      !!!!!!!!!!!!!!!!!
    773      !!!!!!!!!!!!!!!!!
    774      !!!!!!!!!!!!!!!!!
    775        REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_insc_o
    776        REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_bcscav_o
    777        REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_evapls_o
    778        REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_ls_o
    779        REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_dyn_o
    780        REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_cl_o
    781        REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_th_o
    782      !!!!!!!!!!!!!!!!!
    783      !!!!!!!!!!!!!!!!!
    784      !!!!!!!!!!!!!!!!!
    785 
    786 !$OMP THREADPRIVATE(d_tr_cv_o,d_tr_trsp_o,d_tr_sscav_o,d_tr_sat_o,d_tr_uscav_o)
    787 !$OMP THREADPRIVATE(d_tr_insc_o,d_tr_bcscav_o,d_tr_evapls_o,d_tr_ls_o)
    788 !$OMP THREADPRIVATE(d_tr_dyn_o,d_tr_cl_o,d_tr_th_o)
    789 
    790 
    791        INTEGER ::  nsplit
    792 !
    793 
    794      
    795 
    796 !
    797 !  Lessivage
    798 !  ---------
    799 !
    800       REAL, intent(in) ::  pmflxr(klon,klev+1), pmflxs(klon,klev+1)   !--convection
    801       REAL, intent(in) ::  prfl(klon,klev+1),   psfl(klon,klev+1)     !--large-scale
    802 ! JE      REAL pmflxr(klon,klev), pmflxs(klon,klev)   !--convection       ! Titane
    803 ! JE      REAL prfl(klon,klev),   psfl(klon,klev)     !--large-scale      ! Titane
    804       REAL :: ql_incl ! contenu en eau liquide nuageuse dans le nuage ! ql_incl=oliq/rneb
    805       REAL  :: ql_incloud_ref    ! ref value of in-cloud condensed water content
    806 
    807        REAL,DIMENSION(klon,klev),INTENT(IN)   :: rneb    ! fraction nuageuse (grande echelle)
    808 !
    809 
    810       REAL,DIMENSION(klon,klev) :: beta_fisrt ! taux de conversion
    811 !                                                          ! de l'eau cond (de fisrtilp)
    812       REAL,DIMENSION(klon,klev) :: beta_v1    ! -- (originale version)
    813       INTEGER,SAVE  :: iflag_lscav_omp,iflag_lscav
    814 !$OMP THREADPRIVATE(iflag_lscav_omp,iflag_lscav)
    815 
    816 
    817 
    818 
    819 !Thermiques:
    820 !----------
    821       REAL,DIMENSION(klon,klev+1),INTENT(IN)   :: fm_therm
    822       REAL,DIMENSION(klon,klev),INTENT(IN)     :: entr_therm
    823 
    824 
    825 !
    826 !  Couche limite:
    827 !  --------------
    828 !
    829       REAL , intent(in) :: coefh(klon,klev) ! coeff melange CL
    830       REAL , intent(in) :: cdragh(klon), cdragm(klon)
    831       REAL, intent(in) ::  yu1(klon)        ! vent dans la 1iere couche
    832       REAL, intent(in) ::  yv1(klon)        ! vent dans la 1iere couche
    833 !
    834 !
    835 !----------------------------------------------------------------------
    836       REAL his_ds(klon,nbtr)
    837       REAL his_dh(klon,nbtr)
    838       REAL his_dhlsc(klon,nbtr)        ! in-cloud scavenging lsc
    839       REAL his_dhcon(klon,nbtr)       ! in-cloud scavenging con
    840       REAL his_dhbclsc(klon,nbtr)      ! below-cloud scavenging lsc
    841       REAL his_dhbccon(klon,nbtr)      ! below-cloud scavenging con
    842       REAL trm(klon,nbtr)
    843 !
    844       REAL u10m_ec(klon), v10m_ec(klon)
    845 !
    846       REAL his_th(klon,nbtr)
    847       REAL his_dhkecv(klon,nbtr)
    848       REAL his_dhkelsc(klon,nbtr)
    849 
    850 
    851 !
    852 !  Coordonnees
    853 !  -----------
    854 !
    855       REAL, intent(in) ::  rlat(klon)       ! latitudes pour chaque point
    856       REAL, intent(in) ::  rlon(klon)       ! longitudes pour chaque point
    857 !
    858       INTEGER i, k, it, j, ig
    859 !
    860 ! DEFINITION OF DIAGNOSTIC VARIABLES
    861 !
    862       REAL diag_trm(nbtr), diag_drydep(nbtr)
    863       REAL diag_wetdep(nbtr), diag_cvtdep(nbtr)
    864       REAL diag_emissn(nbtr), diag_g2part
    865       REAL diag_sedimt
    866       REAL trm_aux(nbtr), src_aux(nbtr)
    867 !
    868 ! Variables locales pour effectuer les appels en serie
    869 !----------------------------------------------------
    870       REAL source_tr(klon,nbtr)
    871       REAL flux_tr(klon,nbtr)
    872       REAL m_conc(klon,klev)
    873 !      REAL sed_ss(klon)    ! corresponds to tracer 3
    874 !      REAL sed_dust(klon)  ! corresponds to tracer 4
    875 !      REAL sed_dustsco(klon)  ! corresponds to tracer 4
    876       REAL henry(nbtr)  !--cste de Henry  mol/l/atm
    877       REAL kk(nbtr)     !--coefficient de var avec T (K)
    878       REAL alpha_r(nbtr)!--coefficient d'impaction pour la pluie
    879       REAL alpha_s(nbtr)!--coefficient d'impaction pour la neige
    880       REAL vdep_oce(nbtr), vdep_sic(nbtr)
    881       REAL vdep_ter(nbtr), vdep_lic(nbtr)
    882       REAL ccntrAA_spla(nbtr)
    883       REAL ccntrENV_spla(nbtr)
    884       REAL coefcoli_spla(nbtr)
    885       REAL dtrconv(klon,nbtr)
    886       REAL zrho(klon,klev), zdz(klon,klev)
    887       REAL zalt(klon,klev)
    888       REAL,DIMENSION(klon,klev)      :: zmasse    ! densité atmosphérique
    889 !     .                                              Kg/m2
    890       REAL,DIMENSION(klon,klev)      :: ztra_th
    891       REAL qmin, qmax, aux
    892 !      PARAMETER (qmin=0.0, qmax=1.e33)
    893       PARAMETER (qmin=1.e33, qmax=-1.e33)
    894 
    895 ! Variables to save data into file
    896 !----------------------------------
    897    
    898       CHARACTER*2 str2
    899       LOGICAL ok_histrac
    900 !JE2014124      PARAMETER (ok_histrac=.true.)
    901       PARAMETER (ok_histrac=.false.)
    902 !      PARAMETER (ok_chimeredust=.false.)
    903 !      PARAMETER (ok_chimeredust=.true.)
    904       INTEGER ndex2d(iim*(jjm+1)), ndex3d(iim*(jjm+1)*klev)
    905       INTEGER nhori1, nhori2, nhori3, nhori4, nhori5, nvert
    906       INTEGER nid_tra1, nid_tra2, nid_tra3, nid_tra4, nid_tra5
    907       SAVE nid_tra1, nid_tra2, nid_tra3, nid_tra4, nid_tra5
    908 !$OMP THREADPRIVATE(nid_tra1, nid_tra2, nid_tra3, nid_tra4, nid_tra5)
    909       INTEGER itra
    910       SAVE itra                    ! compteur pour la physique
    911 !$OMP THREADPRIVATE(itra)
    912       INTEGER ecrit_tra, ecrit_tra_h, ecrit_tra_m
    913       SAVE ecrit_tra, ecrit_tra_h, ecrit_tra_m
    914 !$OMP THREADPRIVATE(ecrit_tra, ecrit_tra_h, ecrit_tra_m)
    915       REAL presnivs(klev) ! pressions approximat. des milieux couches ( en PA)
    916       REAL zx_tmp_2d(iim,jjm+1), zx_tmp_3d(iim,jjm+1,klev)
    917       REAL zx_tmp_fi2d(klon), zx_tmp_fi3d(klon, klev)
    918 !      REAL zx_lon(iim,jjm+1), zx_lat(iim,jjm+1)
    919       REAL zx_lon_glo(nbp_lon,nbp_lat), zx_lat_glo(nbp_lon,nbp_lat)
    920       REAL zsto, zout, zout_h, zout_m, zjulian
    921 
    922 !------Molar Masses
    923       REAL masse(nbtr)
    924 !
    925       REAL fracso2emis                              !--fraction so2 emis en so2
    926       PARAMETER (fracso2emis=0.95)
    927       REAL frach2sofso2                             !--fraction h2s from so2
    928       PARAMETER (frach2sofso2=0.0426)
    929 !
    930 !  Controles
    931 !-------------
    932       LOGICAL convection,lessivage,lminmax,lcheckmass
    933       DATA convection,lessivage,lminmax,lcheckmass &
    934           /.true.,.true.,.true.,.false./
    935 !
    936       REAL xconv(nbtr)
    937 !
    938       LOGICAL anthropo, bateau, edgar
    939       DATA anthropo,bateau,edgar/.true.,.true.,.true./
    940 !
    941 !c bc_source
    942       INTEGER kminbc, kmaxbc
    943 !JE20150715      PARAMETER (kminbc=3, kmaxbc=5)
    944       PARAMETER (kminbc=4, kmaxbc=7)
    945 !
    946       REAL tr1_cont, tr2_cont, tr3_cont, tr4_cont
    947 !
    948 ! JE for updating in  cltrac
    949       REAL,DIMENSION(klon,klev)             :: delp     ! epaisseur de couche (Pa)
    950 !JE20140507      REAL,DIMENSION(klon,nbtr)       :: d_tr_dry ! Td depot sec/traceur (1st layer),ALLOCATABLE,SAVE  jyg
    951 !JE20140507      REAL,DIMENSION(klon,nbtr)        ::  flux_tr_dry
    952 !      SAVE  d_tr_dry
    953 !! JE for include gas to particle conversion in output
    954 !      REAL his_g2pgas(klon)      ! gastoparticle in gas units (check!)
    955 !      REAL his_g2paer(klon)      ! gastoparticle in aerosol units (check!)
    956 !
    957       INTEGER ,intent(in) :: iflag_conv
    958       LOGICAL iscm3  ! debug variable. for checkmass ! JE
    959 
    960 !------------------------------------------------------------------------
    961 !  only to compute time consumption of each process
    962 !----
    963       INTEGER clock_start,clock_end,clock_rate,clock_start_spla
    964       INTEGER clock_end_outphytracr,clock_start_outphytracr
    965       INTEGER ti_init,dife,ti_inittype,ti_inittwrite
    966       INTEGER ti_spla,ti_emis,ti_depo,ti_cltr,ti_ther
    967       INTEGER ti_sedi,ti_gasp,ti_wetap,ti_cvltr,ti_lscs,ti_brop,ti_outs
    968       INTEGER ti_nophytracr,clock_per_max
    969       REAL tia_init,tia_inittype,tia_inittwrite
    970       REAL tia_spla,tia_emis,tia_depo,tia_cltr,tia_ther
    971       REAL tia_sedi,tia_gasp,tia_wetap,tia_cvltr,tia_lscs
    972       REAL tia_brop,tia_outs
    973       REAL tia_nophytracr
    974  
    975       SAVE tia_init,tia_inittype,tia_inittwrite
    976       SAVE tia_spla,tia_emis,tia_depo,tia_cltr,tia_ther
    977       SAVE tia_sedi,tia_gasp,tia_wetap,tia_cvltr,tia_lscs
    978       SAVE tia_brop,tia_outs
    979       SAVE ti_nophytracr
    980       SAVE tia_nophytracr
    981       SAVE clock_end_outphytracr,clock_start_outphytracr
    982       SAVE clock_per_max
    983       LOGICAL logitime
    984 !$OMP THREADPRIVATE(tia_init,tia_inittype,tia_inittwrite)
    985 !$OMP THREADPRIVATE(tia_spla,tia_emis,tia_depo,tia_cltr,tia_ther)
    986 !$OMP THREADPRIVATE(tia_sedi,tia_gasp,tia_wetap,tia_cvltr,tia_lscs)
    987 !$OMP THREADPRIVATE(tia_brop,tia_outs)
    988 !$OMP THREADPRIVATE(ti_nophytracr)
    989 !$OMP THREADPRIVATE(tia_nophytracr)
    990 !$OMP THREADPRIVATE(clock_end_outphytracr,clock_start_outphytracr)
    991 !$OMP THREADPRIVATE(clock_per_max)
    992 
    993 !     utils parallelization
    994       REAL :: auxklon_glo(klon_glo)
    995       INTEGER :: iauxklon_glo(klon_glo)
    996       REAL, DIMENSION(klon_glo,nbp_lev) :: auxklonnbp_lev
    997       REAL, DIMENSION(klon_glo,nbp_lev,nbtr)  :: auxklonklevnbtr_glo
    998       REAL,DIMENSION(nbp_lon,nbp_lat) ::  zx_tmp_2d_glo
    999       REAL,DIMENSION(nbp_lon,nbp_lat,nbp_lev) :: zx_tmp_3d_glo
    1000       REAL,DIMENSION(klon_glo) :: zx_tmp_fi2d_glo
    1001       REAL,DIMENSION(klon_glo , nbp_lev) :: zx_tmp_fi3d_glo
    1002       REAL,DIMENSION(klon_glo,nbtr) :: auxklonnbtr_glo
    1003 
    1004 
    1005 
    1006       source_tr=0.
    1007 
    1008 
    1009 
    1010       if (debutphy) then
    1011 #ifdef IOPHYS_DUST
    1012          CALL iophys_ini
    1013 #endif
    1014          nbreg_ind=1
    1015          nbreg_bb=1
    1016          nbreg_dust=1
    1017          nbreg_wstardust=1
    1018          CALL phytracr_spl_ini(klon,nbreg_ind,nbreg_bb,nbreg_dust,nbreg_wstardust)
    1019       endif
    1020 
    1021 
    1022 #ifdef IOPHYS_DUST
    1023       do it=1,nbtr
    1024          write(str2,'(i2.2)') it
    1025          call iophys_ecrit('TRA'//str2,klev,'SOURCE','',tr_seri(:,:,it))
    1026       enddo
    1027 #endif
    1028 
    1029  
    1030 
    1031 
    1032   ijulday=jD_cur-jD_1jan+1
    1033   nbjour = 1
    1034 
    1035   paramname_ind='ind'
    1036   paramname_bb='bb'
    1037   paramname_ff='ind'
    1038   paramname_dustacc='dustacc'
    1039   paramname_dustcoa='dustcoasco'
    1040   paramname_dustsco='dustcoasco'
    1041 !  paramname_dustacc='dust'
    1042 !  paramname_dustcoa='dust'
    1043 !  paramname_dustsco='dust'
    1044   paramname_wstarBL='pwstarbl'
    1045   paramname_wstarWAKE='pwstarwake'
    1046   paramname_ssacc='ssacc'
    1047   paramname_sscoa='sscoa'
    1048 
    1049   filescaleparams='modvalues.nc'
    1050   CALL readscaleparamsnc_spl(scale_param_ind,                        &
    1051         nbreg_ind, paramname_ind,                                    &
    1052         scale_param_ff, nbreg_ind,paramname_ff,                      &
    1053         scale_param_bb, nbreg_bb,paramname_bb,                       &
    1054         scale_param_dustacc, nbreg_dust,paramname_dustacc,           &
    1055         scale_param_dustcoa, nbreg_dust,paramname_dustcoa,           &
    1056         scale_param_dustsco, nbreg_dust,paramname_dustsco,           &
    1057         param_wstarBLperregion, nbreg_wstardust, paramname_wstarBL, &
    1058         param_wstarWAKEperregion, nbreg_wstardust, paramname_wstarWAKE, &
    1059         scale_param_ssacc  ,  paramname_ssacc,                    &
    1060         scale_param_sscoa  ,  paramname_sscoa,                    &
    1061            filescaleparams,ijulday,jH_cur, pdtphys,debutphy)
    1062 ! add seasalt
    1063 
    1064   print *,'JE : check scale_params'
    1065 
    1066   print *, 'nbreg_ind', nbreg_ind   
    1067   print *, 'nbreg_dust', nbreg_dust 
    1068   print *, 'nbreg_bb', nbreg_bb   
    1069   print *, 'ind', scale_param_ind   
    1070   print *, 'dustacc', scale_param_dustacc 
    1071   print *, 'dustcoa', scale_param_dustcoa 
    1072   print *, 'dustsco', scale_param_dustsco
    1073   print *, 'wstardustBL', param_wstarBLperregion
    1074   print *, 'wstardustWAKE', param_wstarWAKEperregion
    1075   print *, 'ff', scale_param_ff 
    1076   print *, 'bb', scale_param_bb 
    1077   print *, 'ssacc', scale_param_ssacc
    1078   print *, 'sscoa', scale_param_sscoa
    1079 
    1080   print *,'JE: before read_newemissions '
    1081   print *,'JE: jD_cur:',jD_cur,' ijulday:',ijulday,' jH_cur:',jH_cur,' pdtphys:',pdtphys
    1082   print *,'JE: now read_newemissions:'
    1083   print *,'lmt_so2ff_l AVANT' , MINVAL(lmt_so2ff_l), MAXVAL(lmt_so2ff_l)
    1084   call read_newemissions(ijulday,jH_cur ,edgar, flag_dms,debutphy, & !I
    1085                          pdtphys, lafin, nbjour, pctsrf,  &       !I
    1086                          t_seri, rlat, rlon, &                         !I
    1087                          pmflxr, pmflxs, prfl, psfl, &            !I
    1088                                  u10m_ec, v10m_ec, dust_ec, &     !O
    1089                                  lmt_sea_salt, lmt_so2ff_l, &     !O
    1090                                  lmt_so2ff_h, lmt_so2nff, &       !O
    1091                                  lmt_so2ba, lmt_so2bb_l, lmt_so2bb_h, &  !O
    1092                                  lmt_so2volc_cont, lmt_altvolc_cont, &   !O
    1093                                  lmt_so2volc_expl, lmt_altvolc_expl, &   !O
    1094                                  lmt_dmsbio, lmt_h2sbio, lmt_dmsconc, &  !O
    1095                                  lmt_bcff, lmt_bcnff, lmt_bcbb_l, &      !O
    1096                                  lmt_bcbb_h, lmt_bcba, lmt_omff, &       !O
    1097                                  lmt_omnff, lmt_ombb_l, lmt_ombb_h, &    !O
    1098                                  lmt_omnat, lmt_omba)                    !O
    1099 
    1100 
    1101   print *,'Check emissions'
    1102   print *,'lmt_so2ff_l' , MINVAL(lmt_so2ff_l), MAXVAL(lmt_so2ff_l)
    1103   print *,'lmt_so2ff_h' , MINVAL(lmt_so2ff_h), MAXVAL(lmt_so2ff_h)
    1104   print *,'lmt_so2nff' , MINVAL(lmt_so2nff), MAXVAL(lmt_so2nff)
    1105   print *,'lmt_so2ba' , MINVAL(lmt_so2ba), MAXVAL(lmt_so2ba)
    1106   print *,'lmt_so2bb_l' , MINVAL(lmt_so2bb_l), MAXVAL(lmt_so2bb_l)
    1107   print *,'lmt_so2bb_h' , MINVAL(lmt_so2bb_h), MAXVAL(lmt_so2bb_h)
    1108   print *,'lmt_so2volc_cont' , MINVAL(lmt_so2volc_cont), MAXVAL(lmt_so2volc_cont)
    1109   print *,'lmt_altvolc_cont' , MINVAL(lmt_altvolc_cont), MAXVAL(lmt_altvolc_cont)
    1110   print *,'lmt_so2volc_expl' , MINVAL(lmt_so2volc_expl), MAXVAL(lmt_so2volc_expl)
    1111   print *,'lmt_altvolc_expl' , MINVAL(lmt_altvolc_expl), MAXVAL(lmt_altvolc_expl)
    1112   print *,'lmt_dmsbio' , MINVAL(lmt_dmsbio), MAXVAL(lmt_dmsbio)
    1113   print *,'lmt_h2sbio' , MINVAL(lmt_h2sbio), MAXVAL(lmt_h2sbio)
    1114   print *,'lmt_dmsconc' , MINVAL(lmt_dmsconc), MAXVAL(lmt_dmsconc)
    1115   print *,'lmt_bcff' , MINVAL(lmt_bcff), MAXVAL(lmt_bcff)
    1116   print *,'lmt_bcnff' , MINVAL(lmt_bcnff), MAXVAL(lmt_bcnff)
    1117   print *,'lmt_bcbb_l' , MINVAL(lmt_bcbb_l), MAXVAL(lmt_bcbb_l)
    1118   print *,'lmt_bcbb_h' , MINVAL(lmt_bcbb_h), MAXVAL(lmt_bcbb_h)
    1119   print *,'lmt_bcba' , MINVAL(lmt_bcba), MAXVAL(lmt_bcba)
    1120   print *,'lmt_omff' , MINVAL(lmt_omff), MAXVAL(lmt_omff)
    1121   print *,'lmt_omnff' , MINVAL(lmt_omnff), MAXVAL(lmt_omnff)
    1122   print *,'lmt_ombb_l' , MINVAL(lmt_ombb_l), MAXVAL(lmt_ombb_l)
    1123   print *,'lmt_ombb_h' , MINVAL(lmt_ombb_h), MAXVAL(lmt_ombb_h)
    1124   print *,'lmt_omnat' , MINVAL(lmt_omnat), MAXVAL(lmt_omnat)
    1125   print *,'lmt_omba' , MINVAL(lmt_omba), MAXVAL(lmt_omba)
    1126   print *,'JE iflag_con',iflag_conv
    1127 
    1128 
    1129 !JE_dbg
    1130    do i=1,klon
    1131       tsol(i)=0.0
    1132       do j=1,nbsrf
    1133           tsol(i)=tsol(i)+ftsol(i,j)*pctsrf(i,j)
    1134       enddo
    1135    enddo
    1136 
    1137 
    1138 !======================================================================
    1139 !  INITIALISATIONS
    1140 !======================================================================
    1141 !             CALL checknanqfi(da(:,:),1.,-1.,' da_ before
    1142 !     . phytracr_inphytracr')
    1143 
    1144 !
    1145 ! computing time
    1146 !        logitime=.true.
    1147         logitime=.false.
    1148         IF (logitime) THEN
    1149         clock_start=0
    1150         clock_end=0
    1151         clock_rate=0
    1152        CALL SYSTEM_CLOCK(COUNT_RATE=clock_rate,COUNT_MAX=clock_per_max)
    1153         CALL SYSTEM_CLOCK(COUNT=clock_start_spla)
    1154         clock_start=clock_start_spla
    1155         clock_end_outphytracr=clock_start_spla
    1156         ENDIF
    1157 
    1158 
    1159 ! Definition of tracers index.
    1160       print*,'OK ON PASSSE BIEN LA'
    1161       CALL minmaxsource(source_tr,qmin,qmax,'A1 maxsource init phytracr')
    1162 
    1163 
    1164       IF (debutphy) THEN
    1165         id_prec=-1
    1166         id_fine=-1
    1167         id_coss=-1
    1168         id_codu=-1
    1169         id_scdu=-1
    1170        !print *,nbtr
    1171        do it=1,nbtr
    1172         print *, it, tname(it+nqo)
    1173         if (tname(it+nqo) == 'PREC' ) then
    1174             id_prec=it
    1175         endif
    1176         if (tname(it+nqo) == 'FINE' ) then
    1177             id_fine=it
    1178         endif
    1179         if (tname(it+nqo) == 'COSS' ) then
    1180             id_coss=it
    1181         endif
    1182         if (tname(it+nqo) == 'CODU' ) then
    1183             id_codu=it
    1184         endif
    1185         if (tname(it+nqo) == 'SCDU' ) then
    1186             id_scdu=it
    1187         endif
    1188        enddo
    1189        ! check consistency with dust emission scheme:
    1190        if (ok_chimeredust) then
    1191           if (.not.( id_scdu>0 .and. id_codu>0 .and. id_fine>0)) then
    1192              call abort_gcm('phytracr_mod', 'pb in ok_chimdust 0',1)
    1193           endif
    1194        else
    1195           if (id_scdu>0) then
    1196        call abort_gcm('phytracr_mod', 'pb in ok_chimdust 1 SCDU',1)
    1197           endif
    1198           if ( (id_codu .le. 0) .or. ( id_fine.le.0)  ) then 
    1199           call abort_gcm('phytracr_mod', 'pb in ok_chimdust 1',1)
    1200           endif
    1201        endif
    1202 
    1203 
    1204        !print *,id_prec,id_fine,id_coss,id_codu,id_scdu
    1205        ENDIF
    1206 
    1207 
    1208 
    1209 
    1210 
    1211 
    1212 !---fraction of tracer that is convected (Tiedke)
    1213       xconv(:)=0.
    1214       if(id_prec>0)  xconv(id_prec)=0.8
    1215       if(id_fine>0)  xconv(id_fine)=0.5
    1216       if(id_coss>0)  xconv(id_coss)=0.5
    1217       if(id_codu>0)  xconv(id_codu)=0.6
    1218       if(id_scdu>0)  xconv(id_scdu)=0.6  !!JE fix
    1219 
    1220       masse(:)=1.
    1221       if(id_prec>0)  masse(id_prec)=32.
    1222       if(id_fine>0)  masse(id_fine)=6.02e23
    1223       if(id_coss>0)  masse(id_coss)=6.02e23
    1224       if(id_codu>0)  masse(id_codu)=6.02e23
    1225       if(id_scdu>0)  masse(id_scdu)=6.02e23
    1226 
    1227       henry(:)=0.
    1228       if(id_prec>0)  henry(id_prec)=1.4
    1229       if(id_fine>0)  henry(id_fine)=0.0
    1230       if(id_coss>0)  henry(id_coss)=0.0
    1231       if(id_codu>0)  henry(id_codu)=0.0
    1232       if(id_scdu>0)  henry(id_scdu)=0.0
    1233       !henry= (/1.4, 0.0, 0.0, 0.0/)
    1234       kk(:)=0.
    1235       if(id_prec>0)  kk(id_prec)=2900.
    1236       if(id_fine>0)  kk(id_fine)=0.0
    1237       if(id_coss>0)  kk(id_coss)=0.0
    1238       if(id_codu>0)  kk(id_codu)=0.0
    1239       if(id_scdu>0)  kk(id_scdu)=0.0
    1240       !kk = (/2900., 0., 0., 0./)
    1241       alpha_r(:)=0.
    1242       if(id_prec>0)  alpha_r(id_prec)=0.0
    1243       if(id_fine>0)  alpha_r(id_fine)=0.001
    1244       if(id_coss>0)  alpha_r(id_coss)=0.001
    1245       if(id_codu>0)  alpha_r(id_codu)=0.001
    1246       if(id_scdu>0)  alpha_r(id_scdu)=0.001  !JE fix
    1247       alpha_s(:)=0.
    1248       if(id_prec>0)  alpha_s(id_prec)=0.0
    1249       if(id_fine>0)  alpha_s(id_fine)=0.01
    1250       if(id_coss>0)  alpha_s(id_coss)=0.01
    1251       if(id_codu>0)  alpha_s(id_codu)=0.01
    1252       if(id_scdu>0)  alpha_s(id_scdu)=0.01  !JE fix
    1253 
    1254 !      alpha_r =  (/0., 0.001, 0.001, 0.001/)
    1255 !      alpha_s = (/0., 0.01, 0.01, 0.01/)
    1256 
    1257 ! nhl      DATA vdep_oce /0.7, 0.05, 1.2, 1.2/
    1258 ! nhl vdep_oce for tr1 is a weighted average of dms and so2 dep velocities
    1259       !vdep_oce = (/0.28, 0.28, 1.2, 1.2/)
    1260       vdep_oce(:)=0.
    1261       if(id_prec>0)  vdep_oce(id_prec) = 0.28
    1262       if(id_fine>0)  vdep_oce(id_fine) = 0.28
    1263       if(id_coss>0)  vdep_oce(id_coss) = 1.2
    1264       if(id_codu>0)  vdep_oce(id_codu) = 1.2
    1265       if(id_scdu>0)  vdep_oce(id_scdu) = 1.2
    1266       vdep_sic(:)=0.
    1267       if(id_prec>0)  vdep_sic(id_prec) = 0.2
    1268       if(id_fine>0)  vdep_sic(id_fine) = 0.17
    1269       if(id_coss>0)  vdep_sic(id_coss) = 1.2
    1270       if(id_codu>0)  vdep_sic(id_codu) = 1.2
    1271       if(id_scdu>0)  vdep_sic(id_scdu) = 1.2
    1272 
    1273       !vdep_sic = (/0.2, 0.17, 1.2, 1.2/)     
    1274       !vdep_ter = (/0.3, 0.14, 1.2, 1.2/)
    1275       vdep_ter(:)=0.
    1276       if(id_prec>0)  vdep_ter(id_prec) = 0.3
    1277       if(id_fine>0)  vdep_ter(id_fine) = 0.14
    1278       if(id_coss>0)  vdep_ter(id_coss) = 1.2
    1279       if(id_codu>0)  vdep_ter(id_codu) = 1.2
    1280       if(id_scdu>0)  vdep_ter(id_scdu) = 1.2
    1281 
    1282       vdep_lic(:)=0.
    1283       if(id_prec>0)  vdep_lic(id_prec) = 0.2
    1284       if(id_fine>0)  vdep_lic(id_fine) = 0.17
    1285       if(id_coss>0)  vdep_lic(id_coss) = 1.2
    1286       if(id_codu>0)  vdep_lic(id_codu) = 1.2
    1287       if(id_scdu>0)  vdep_lic(id_scdu) = 1.2
    1288 
    1289 
    1290       ! convective KE lessivage aer params:
    1291       ccntrAA_spla(:)=0.
    1292       if(id_prec>0)  ccntrAA_spla(id_prec)=-9999.
    1293       if(id_fine>0)  ccntrAA_spla(id_fine)=0.7
    1294       if(id_coss>0)  ccntrAA_spla(id_coss)=1.0
    1295       if(id_codu>0)  ccntrAA_spla(id_codu)=0.7
    1296       if(id_scdu>0)  ccntrAA_spla(id_scdu)=0.7
    1297 
    1298       ccntrENV_spla(:)=0.
    1299       if(id_prec>0)  ccntrENV_spla(id_prec)=-9999.
    1300       if(id_fine>0)  ccntrENV_spla(id_fine)=0.7
    1301       if(id_coss>0)  ccntrENV_spla(id_coss)=1.0
    1302       if(id_codu>0)  ccntrENV_spla(id_codu)=0.7
    1303       if(id_scdu>0)  ccntrENV_spla(id_scdu)=0.7
    1304 
    1305       coefcoli_spla(:)=0.
    1306       if(id_prec>0)  coefcoli_spla(id_prec)=-9999.
    1307       if(id_fine>0)  coefcoli_spla(id_fine)=0.001
    1308       if(id_coss>0)  coefcoli_spla(id_coss)=0.001
    1309       if(id_codu>0)  coefcoli_spla(id_codu)=0.001
    1310       if(id_scdu>0)  coefcoli_spla(id_scdu)=0.001
    1311 
    1312       !vdep_lic = (/0.2, 0.17, 1.2, 1.2/)     
    1313 !
    1314 
    1315       iscm3=.false.
    1316       if (debutphy) then
    1317 !$OMP MASTER
    1318          CALL suphel
    1319          print *, 'let s check nbtr=', nbtr
    1320 ! JE before put in zero
    1321       IF (lminmax) THEN
    1322         DO it=1,nbtr
    1323         CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan init phytracr')
    1324         ENDDO       
    1325         DO it=1,nbtr
    1326         CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'minmax init phytracr')
    1327         ENDDO
    1328         CALL minmaxsource(source_tr,qmin,qmax,'maxsource init phytracr')
    1329       ENDIF
    1330 ! JE   initializon to cero the tracers     
    1331 !         DO it=1, nbtr
    1332 !            tr_seri(:,:,it)=0.0
    1333 !         ENDDO
    1334 ! JE end     
    1335 ! Initializing to zero tr_seri for comparison purposes
    1336 !        tr_seri(:,:,:)=0.0
    1337 !
    1338 !        DO it=1,nbtr
    1339 !           trm_aux(it)=0.0
    1340 !           src_aux(it)=0.0
    1341 !           diag_trm(it)=0.0
    1342 !           diag_drydep(it)=0.0
    1343 !           diag_wetdep(it)=0.0
    1344 !           diag_cvtdep(it)=0.0
    1345 !           diag_emissn(it)=0.0
    1346 !        ENDDO
    1347 !        diag_g2part=0.0
    1348          print *,'PREPARE FILES TO SAVE VARIABLES'
    1349 !
    1350          nbjour=30
    1351          ecrit_tra =   NINT(86400./pdtphys)                    !--1-day  average
    1352          ecrit_tra_h = NINT(86400./pdtphys*0.25)               !--6-hour average
    1353          ecrit_tra_m = NINT(86400./pdtphys*FLOAT(nbjour))      !--1-mth  average
    1354          print *,'ecrit_tra=', pdtphys, ecrit_tra
    1355 
    1356          IF (ok_histrac) THEN
    1357            IF (is_mpi_root .AND. is_omp_root) THEN
    1358  
    1359            itra=0
    1360 !
    1361            CALL ymds2ju(1900, 1, 1, 0.0, zjulian)
    1362 !
    1363 !           print *, 'klon,iim,jjm+1 = ',klon,iim,jjm+1
    1364            print *, 'glo klon,iim,jjm+1 = ',klon_glo,nbp_lon,nbp_lat
    1365            CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,rlon,zx_lon_glo)
    1366 !
    1367 !           DO i = 1, iim
    1368            DO i = 1, nbp_lon
    1369              zx_lon_glo(i,1) = rlon(i+1)
    1370              zx_lon_glo(i,nbp_lat) = rlon(i+1)
    1371            ENDDO
    1372 !
    1373       CALL histbeg("histrac_spl", nbp_lon,zx_lon_glo,            &
    1374                        nbp_lat,zx_lat_glo,                       &
    1375                        1,nbp_lon,1,nbp_lat, 0, zjulian, pdtphys, &
    1376                        nhori1, nid_tra1)
    1377 !
    1378       CALL histbeg("lessivage_spl", nbp_lon,zx_lon_glo,            &
    1379                        nbp_lat,zx_lat_glo,                         &
    1380                        1,nbp_lon,1,nbp_lat, 0, zjulian, pdtphys,   &
    1381                        nhori2, nid_tra2)
    1382 !
    1383       CALL histbeg("traceur_spl", nbp_lon,zx_lon_glo,               &
    1384                        nbp_lat,zx_lat_glo,                         &
    1385                       1,nbp_lon,1,nbp_lat, 0, zjulian, pdtphys,    &
    1386                        nhori3, nid_tra3)
    1387 !
    1388       CALL histvert(nid_tra1, "presnivs", "Vertical levels", "mb",  &
    1389                       nbp_lev, presnivs, nvert)
    1390 !
    1391       CALL histvert(nid_tra2, "presnivs", "Vertical levels", "mb",  &
    1392                       nbp_lev, presnivs, nvert)
    1393 !
    1394       CALL histvert(nid_tra3, "presnivs", "Vertical levels", "mb",  &
    1395                       nbp_lev, presnivs, nvert)
    1396 !
    1397            zsto = pdtphys
    1398            zout = pdtphys * FLOAT(ecrit_tra)
    1399            zout_h = pdtphys * FLOAT(ecrit_tra_h)
    1400            zout_m = pdtphys * FLOAT(ecrit_tra_m)
    1401            print *,'zsto zout=', zsto, zout
    1402 
    1403 !
    1404 !----------------- HISTORY FILES OF TRACER EMISSIONS -------------------
    1405 !
    1406 ! HISTRAC
    1407 !
    1408        CALL histdef(nid_tra1, "fluxbb", "Flux BB", "mg/m2/s",       &
    1409                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,     &
    1410                        "ave(X)", zsto,zout)                         
    1411 !                                                                   
    1412       CALL histdef(nid_tra1, "fluxff", "Flux FF", "mg/m2/s",        &
    1413                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,      &
    1414                        "ave(X)", zsto,zout)                         
    1415 !                                                                   
    1416       CALL histdef(nid_tra1, "fluxbcbb", "Flux BC-BB", "mg/m2/s",    &
    1417                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,       &
    1418                        "ave(X)", zsto,zout)                           
    1419 !                                                                     
    1420       CALL histdef(nid_tra1, "fluxbcff", "Flux BC-FF", "mg/m2/s",     &
    1421                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,        &
    1422                        "ave(X)", zsto,zout)                           
    1423 !                                                                     
    1424       CALL histdef(nid_tra1, "fluxbcnff", "Flux BC-NFF", "mg/m2/s",    &
    1425                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1426                        "ave(X)", zsto,zout)                             
    1427 !                                                                       
    1428       CALL histdef(nid_tra1, "fluxbcba", "Flux BC-BA", "mg/m2/s",       &
    1429                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,          &
    1430                        "ave(X)", zsto,zout)                             
    1431 !                                                                       
    1432       CALL histdef(nid_tra1, "fluxbc", "Flux BC", "mg/m2/s",    &         
    1433                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,  &
    1434                        "ave(X)", zsto,zout)                     
    1435 !                                                               
    1436       CALL histdef(nid_tra1, "fluxombb", "Flux OM-BB", "mg/m2/s" ,  &
    1437                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,      &
    1438                        "ave(X)", zsto,zout)                         
    1439 !                                                                   
    1440       CALL histdef(nid_tra1, "fluxomff", "Flux OM-FF", "mg/m2/s",    &
    1441                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,       &
    1442                        "ave(X)", zsto,zout)                           
    1443 !                                                                     
    1444       CALL histdef(nid_tra1, "fluxomnff", "Flux OM-NFF", "mg/m2/s",  &
    1445                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,       &
    1446                        "ave(X)", zsto,zout)                           
    1447 !                                                                     
    1448       CALL histdef(nid_tra1, "fluxomba", "Flux OM-BA", "mg/m2/s",    &
    1449                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,       &
    1450                        "ave(X)", zsto,zout)                           
    1451 !                                                                     
    1452       CALL histdef(nid_tra1, "fluxomnat", "Flux OM-NT", "mg/m2/s",   &
    1453                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,       &
    1454                        "ave(X)", zsto,zout)                           
    1455 !                                                                     
    1456       CALL histdef(nid_tra1, "fluxom", "Flux OM", "mg/m2/s",         &
    1457                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,       &
    1458                        "ave(X)", zsto,zout)                           
    1459 !                                                                     
    1460       CALL histdef(nid_tra1,"fluxh2sff","Flux H2S FF","mgS/m2/s",    &
    1461                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,       &
    1462                        "ave(X)", zsto,zout)                           
    1463 !                                                                     
    1464       CALL histdef(nid_tra1,"fluxh2snff","Flux H2S non-FF",          &
    1465                        "mgS/m2/s",nbp_lon,nbp_lat,nhori1, 1,1,1,     &
    1466                         -99, 32,                                     &
    1467                        "ave(X)", zsto,zout)                           
    1468 !                                                                     
    1469       CALL histdef(nid_tra1,"fluxso2ff","Flux SO2 FF","mgS/m2/s",    &
    1470                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,       &
    1471                        "ave(X)", zsto,zout)                           
    1472 !                                                                     
    1473       CALL histdef(nid_tra1,"fluxso2nff","Flux SO2 non-FF",          &
    1474                        "mgS/m2/s",nbp_lon,nbp_lat,nhori1, 1,1,1,     &
    1475                         -99, 32,                                     &
    1476                        "ave(X)", zsto,zout)                           
    1477 !                                                                     
    1478       CALL histdef(nid_tra1, "fluxso2bb", "Flux SO2 BB","mgS/m2/s",   &
    1479                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,        & 
    1480                        "ave(X)", zsto,zout)                           
    1481 !                                                                     
    1482       CALL histdef(nid_tra1,"fluxso2vol","Flux SO2 Vol","mgS/m2/s",    &
    1483                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1484                        "ave(X)", zsto,zout)                           
    1485 !                                                                       
    1486       CALL histdef(nid_tra1, "fluxso2ba", "Flux SO2 Ba","mgS/m2/s",    &
    1487                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1488                        "ave(X)", zsto,zout)                           
    1489 !                                                                       
    1490       CALL histdef(nid_tra1, "fluxso2", "Flux SO2","mgS/m2/s",         &
    1491                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1492                        "ave(X)", zsto,zout)                           
    1493 !                                                                       
    1494       CALL histdef(nid_tra1,"fluxso4ff","Flux SO4 FF","mgS/m2/s",      &
    1495                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1496                        "ave(X)", zsto,zout)                           
    1497 !                                                                       
    1498       CALL histdef(nid_tra1,"fluxso4nff","Flux SO4 non-FF",            &
    1499                    "mgS/m2/s", nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32, &
    1500                    "ave(X)", zsto,zout)                               
    1501 !                                                                       
    1502       CALL histdef(nid_tra1, "fluxso4bb", "Flux SO4 BB","mgS/m2/s",    &
    1503                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1504                        "ave(X)", zsto,zout)                           
    1505 !                                                                       
    1506       CALL histdef(nid_tra1, "fluxso4ba", "Flux SO4 Ba","mgS/m2/s",    &
    1507                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1508                        "ave(X)", zsto,zout)                           
    1509 !                                                                       
    1510       CALL histdef(nid_tra1, "fluxso4", "Flux SO4","mgS/m2/s",         &
    1511                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1512                        "ave(X)", zsto,zout)                           
    1513 !                                                                       
    1514       CALL histdef(nid_tra1, "fluxdms", "Flux DMS", "mgS/m2/s",        &
    1515                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1516                        "ave(X)", zsto,zout)                           
    1517 !                                                                       
    1518       CALL histdef(nid_tra1,"fluxh2sbio","Flux H2S Bio","mgS/m2/s",    &
    1519                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1520                        "ave(X)", zsto,zout)                           
    1521 !                                                                       
    1522       CALL histdef(nid_tra1, "fluxdustec",                             &
    1523                                       "Flux Dust EC", "mg/m2/s",       &
    1524                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1525                        "ave(X)", zsto,zout)                             
    1526 !                                                                       
    1527       CALL histdef(nid_tra1,"fluxddfine","DD Fine Mode","mg/m2/s",     &
    1528                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1529                        "ave(X)", zsto,zout)                           
    1530 !                                                                       
    1531       CALL histdef(nid_tra1,"fluxddcoa","DD Coarse Mode","mg/m2/s",    &
    1532                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1533                        "ave(X)", zsto,zout)                           
    1534 !                                                                       
    1535       CALL histdef(nid_tra1,"fluxddsco","DD SCoarse Mode","mg/m2/s",   &
    1536                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1537                        "ave(X)", zsto,zout)                           
    1538 !                                                                       
    1539       CALL histdef(nid_tra1,"fluxdd","Flux DD","mg/m2/s",              &
    1540                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1541                        "ave(X)", zsto,zout)                           
    1542 !                                                                       
    1543       CALL histdef(nid_tra1,"fluxssfine","SS Fine Mode","mg/m2/s",     &
    1544                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1545                        "ave(X)", zsto,zout)                           
    1546 !                                                                       
    1547       CALL histdef(nid_tra1,"fluxsscoa","SS Coarse Mode","mg/m2/s",    &
    1548                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1549                        "ave(X)", zsto,zout)                           
    1550 !                                                                       
    1551       CALL histdef(nid_tra1,"fluxss","Flux SS","mg/m2/s",              &
    1552                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1553                        "ave(X)", zsto,zout)                           
    1554 !                                                                       
    1555 !nhl          CALL histdef(nid_tra1,"fluxso4chem","SO4 chem prod",     
    1556 !nhl    .                  "gAer/kgAir",
    1557 !nhl    .                  nbp_lon,nbp_lat,nhori1, nbp_lev,1,nbp_lev,nvert, 32,
    1558 !nhl    .                  "ave(X)", zsto,zout)
    1559 !
    1560           CALL histdef(nid_tra1,"flux_sparam_ind","Ind emiss",      &
    1561                        "mg/m2/s",                                   &
    1562                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,      &
    1563                        "ave(X)", zsto,zout)                           
    1564 !                                                                   
    1565           CALL histdef(nid_tra1,"flux_sparam_bb","BB emiss",        &
    1566                        "mg/m2/s",                                   &
    1567                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,      &
    1568                        "ave(X)", zsto,zout)                         
    1569 !                                                                   
    1570           CALL histdef(nid_tra1,"flux_sparam_ff","FF emiss",        &
    1571                        "mg/m2/s",                                   &
    1572                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,      &
    1573                        "ave(X)", zsto,zout)                         
    1574 !                                                                   
    1575           CALL histdef(nid_tra1,"flux_sparam_ddfine","DD fine emiss",  &
    1576                        "mg/m2/s",                                      &
    1577                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,         &
    1578                        "ave(X)", zsto,zout)                             
    1579 !                                                                       
    1580           CALL histdef(nid_tra1,"flux_sparam_ddcoa","DD coarse emiss",  &
    1581                        "mg/m2/s",                                       &
    1582                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,          &
    1583                        "ave(X)", zsto,zout)                             
    1584 !                                                                       
    1585           CALL histdef(nid_tra1,"flux_sparam_ddsco","DD Scoarse emiss", &
    1586                        "mg/m2/s",                                       &
    1587                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,          &
    1588                        "ave(X)", zsto,zout)                             
    1589 !                                                                       
    1590           CALL histdef(nid_tra1,"flux_sparam_ssfine","SS fine emiss",   &
    1591                        "mg/m2/s",                                       &
    1592                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,          &
    1593                        "ave(X)", zsto,zout)                             
    1594 !                                                                       
    1595           CALL histdef(nid_tra1,"flux_sparam_sscoa","SS coarse emiss",  &
    1596                        "mg/m2/s",                                       &
    1597                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,          &
    1598                        "ave(X)", zsto,zout)                             
    1599 !                                                                       
    1600           CALL histdef(nid_tra1,"u10m","Zonal wind at 10 m",            &
    1601                        "m/s",                                           &
    1602                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,          &
    1603                        "ave(X)", zsto,zout)                             
    1604 !                                                                       
    1605           CALL histdef(nid_tra1,"v10m","Meridional wind at 10 m",       &
    1606                        "m/s",                                           &
    1607                        nbp_lon,nbp_lat,nhori1, 1,1,1, -99, 32,          &
    1608                        "ave(X)", zsto,zout)                             
    1609 !                                                                       
    1610 !nhl          CALL histdef(nid_tra1,"flux_sparam_sulf","SO4 chem prod",
    1611 !nhl    .                  "gAer/kgAir",
    1612 !nhl    .                  nbp_lon,nbp_lat,nhori1, nbp_lev,1,nbp_lev,nvert, 32,
    1613 !nhl    .                  "ave(X)", zsto,zout)
    1614 !
    1615 ! TRACEUR
    1616 !
    1617           CALL histdef(nid_tra3, "taue550", "Tau ext 550", " ",           &
    1618                        nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,            &
    1619                        "ave(X)", zsto,zout)                                 
    1620 !                                                                           
    1621           CALL histdef(nid_tra3, "taue670", "Tau ext 670", " ",            & 
    1622                        nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,             &
    1623                        "ave(X)", zsto,zout)                                 
    1624 !                                                                           
    1625           CALL histdef(nid_tra3, "taue865", "Tau ext 865", " ",            &
    1626                        nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,             &
    1627                        "ave(X)", zsto,zout)                                 
    1628 !                                                                           
    1629           CALL histdef(nid_tra3, "taue550_tr2", "Tau ext 550tr2", " ",     &
    1630                        nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,             &
    1631                        "ave(X)", zsto,zout)                                 
    1632 !                                                                           
    1633           CALL histdef(nid_tra3, "taue670_tr2", "Tau ext 670tr2", " ",     &
    1634                        nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,             &
    1635                        "ave(X)", zsto,zout)                                 
    1636 !                                                                           
    1637           CALL histdef(nid_tra3, "taue865_tr2", "Tau ext 865tr2", " ",     &
    1638                        nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,             &
    1639                        "ave(X)", zsto,zout)                                 
    1640 !                                                                           
    1641           CALL histdef(nid_tra3, "taue550_ss", "Tau ext 550ss", " ",       &
    1642                        nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,             &
    1643                        "ave(X)", zsto,zout)                                 
    1644 !                                                                           
    1645           CALL histdef(nid_tra3, "taue670_ss", "Tau ext 670ss", " ",       &
    1646                        nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,             &
    1647                        "ave(X)", zsto,zout)                                 
    1648 !                                                                           
    1649           CALL histdef(nid_tra3, "taue865_ss", "Tau ext 865ss", " ",       &
    1650                        nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,             &
    1651                        "ave(X)", zsto,zout)                                 
    1652 !                                                                           
    1653           CALL histdef(nid_tra3, "taue550_dust", "Tau ext 550dust", " "    &
    1654                        ,nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,            &
    1655                        "ave(X)", zsto,zout)                                 
    1656 !                                                                           
    1657           CALL histdef(nid_tra3, "taue670_dust", "Tau ext 670dust", " "    &
    1658                        ,nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,            &
    1659                        "ave(X)", zsto,zout)                                 
    1660 !                                                                           
    1661           CALL histdef(nid_tra3, "taue865_dust", "Tau ext 865dust", " "    &
    1662                        ,nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,            &
    1663                        "ave(X)", zsto,zout)                                 
    1664                                                                            
    1665           CALL histdef(nid_tra3, "taue550_dustsco",                     &   
    1666                        "Tau ext 550dustsco", " "                        &
    1667                        ,nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,         &
    1668                        "ave(X)", zsto,zout)                             
    1669 !                                                                       
    1670            CALL histdef(nid_tra3, "taue670_dustsco",                    &
    1671                        "Tau ext 670dustsco", " "                        &
    1672                        ,nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,         &
    1673                        "ave(X)", zsto,zout)                             
    1674 !                                                                       
    1675            CALL histdef(nid_tra3, "taue865_dustsco",                    &
    1676                        "Tau ext 865dustsco", " "                        &
    1677                        ,nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,         &
    1678                        "ave(X)", zsto,zout)                             
    1679                                                                          
    1680                                                                        
    1681         CALL histdef(nid_tra3, "taue550_aqua", "Tau ext 550 aqua", " ",   &
    1682                        nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,            &
    1683                        "inst(X)", zout,zout)                               
    1684       CALL histdef(nid_tra3, "taue550_terra", "Tau ext 550 terra", " ",   &
    1685                        nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,            &
    1686                        "inst(X)", zout,zout)                               
    1687         CALL histdef(nid_tra3, "taue670_aqua", "Tau ext 670 aqua", " ",   &
    1688                        nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,            &
    1689                        "inst(X)", zout,zout)                               
    1690       CALL histdef(nid_tra3, "taue670_terra", "Tau ext 670 terra", " ",   &
    1691                        nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,            &
    1692                        "inst(X)", zout,zout)                               
    1693         CALL histdef(nid_tra3, "taue865_aqua", "Tau ext 865 aqua", " ",   &
    1694                        nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,            &
    1695                        "inst(X)", zout,zout)                               
    1696       CALL histdef(nid_tra3, "taue865_terra", "Tau ext 865 terra", " ",   &
    1697                        nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,            &
    1698                        "inst(X)", zout,zout)                               
    1699                                                                            
    1700                                                                            
    1701           DO it=1, nbtr
    1702 !
    1703           WRITE(str2,'(i2.2)') it
    1704 !
    1705           CALL histdef(nid_tra3, "trm"//str2, "Burden No."//str2,         &
    1706                      "mgS/m2", nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,    &
    1707                        "ave(X)", zsto,zout)                               
    1708 !                                                                         
    1709           CALL histdef(nid_tra3, "sconc"//str2, "Surf Conc. No."//str2,   &
    1710                        "mg/m3", nbp_lon,nbp_lat,nhori3, 1,1,1, -99, 32,   &
    1711                        "ave(X)", zsto,zout)                               
    1712 !                                                                         
    1713 ! LESSIVAGE                                                                 
    1714 !
    1715           CALL histdef(nid_tra2, "flux"//str2, "emission"//str2,           & 
    1716                    "mgS/m2/s", nbp_lon,nbp_lat,nhori2, 1,1,1, -99, 32,     &
    1717                        "ave(X)", zsto,zout)                                 
    1718 !                                                                           
    1719           CALL histdef(nid_tra2, "ds"//str2, "Depot sec No."//str2,        &
    1720                    "mgS/m2/s", nbp_lon,nbp_lat,nhori2, 1,1,1, -99, 32,     &
    1721                        "ave(X)", zsto,zout)                                 
    1722 !                                                                           
    1723           CALL histdef(nid_tra2,"dh"//str2,                                 &
    1724                     "Depot hum No."//str2,                                 &
    1725                    "mgS/m2/s", nbp_lon,nbp_lat,nhori2, 1,1,1, -99, 32,     &
    1726                        "ave(X)", zsto,zout)                                 
    1727 !                                                                           
    1728           CALL histdef(nid_tra2,"dtrconv"//str2,                           &
    1729                      "Tiedke convective"//str2,                            &
    1730                   "mgS/m2/s", nbp_lon,nbp_lat,nhori2, 1,1,1, -99, 32,      &
    1731                        "ave(X)", zsto,zout)                                 
    1732                                                                            
    1733           CALL histdef(nid_tra2,"dtherm"//str2,                            &
    1734                        "Thermals dtracer"//str2,                           &
    1735                    "mgS/m2/s", nbp_lon,nbp_lat,nhori2, 1,1,1, -99, 32,     &
    1736                        "ave(X)", zsto,zout)                                 
    1737                                                                            
    1738           CALL histdef(nid_tra2,"dhkecv"//str2,                            &
    1739                        "KE dep hum convective"//str2,                      &
    1740                    "mgS/m2/s", nbp_lon,nbp_lat,nhori2, 1,1,1, -99, 32,     &
    1741                        "ave(X)", zsto,zout)                                 
    1742           CALL histdef(nid_tra2,"dhkelsc"//str2,                            &
    1743                        "KE dep hum large scale"//str2,                      &
    1744                    "mgS/m2/s", nbp_lon,nbp_lat,nhori2, 1,1,1, -99, 32,      &
    1745                        "ave(X)", zsto,zout)                                 
    1746                                                                              
    1747                                
    1748           CALL histdef(nid_tra2,"d_tr_ds"//str2,                            &
    1749                        " Tendance dep sec"//str2,                      &
    1750                    "mgS/m2/s", nbp_lon,nbp_lat,nhori2, 1,1,1, -99, 32,     &
    1751                        "ave(X)", zsto,zout)                                 
    1752 
    1753                                            
    1754           CALL histdef(nid_tra2,"d_tr_cv"//str2,                          &
    1755                        "cvltr d_tr_cv"//str2,                             &
    1756                        "mgS/m2/s",                                        &
    1757                    nbp_lon,nbp_lat,nhori2, nbp_lev,1,nbp_lev,nvert, 32,   &
    1758                        "ave(X)", zsto,zout)                                 
    1759           CALL histdef(nid_tra2,"d_tr_trsp"//str2                         &
    1760                        ,"cvltr d_tr_trsp"//str2,                          &
    1761                        "mgS/m2/s",                                        &
    1762                    nbp_lon,nbp_lat,nhori2, nbp_lev,1,nbp_lev,nvert, 32,   &
    1763                        "ave(X)", zsto,zout)                               
    1764           CALL histdef(nid_tra2,"d_tr_sscav"//str2                        &
    1765                        ,"cvltr d_tr_sscav"//str2,"mgS/m2/s",                 &
    1766                    nbp_lon,nbp_lat,nhori2, nbp_lev,1,nbp_lev,nvert, 32,      &
    1767                        "ave(X)", zsto,zout)                                 
    1768           CALL histdef(nid_tra2,"d_tr_sat"//str2                            & 
    1769                        ,"cvltr d_tr_sat"//str2,                             & 
    1770                        "mgS/m2/s",                                          &
    1771                    nbp_lon,nbp_lat,nhori2, nbp_lev,1,nbp_lev,nvert, 32,     &
    1772                        "ave(X)", zsto,zout)                                 
    1773         CALL histdef(nid_tra2,"d_tr_uscav"//str2,                           &
    1774                     "cvltr d_tr_uscav"//str2,                               &
    1775                        "mgS/m2/s",                                          &
    1776                    nbp_lon,nbp_lat,nhori2, nbp_lev,1,nbp_lev,nvert, 32,     &
    1777                        "ave(X)", zsto,zout)                                 
    1778         CALL histdef(nid_tra2,"d_tr_insc"//str2,                           &   !!!
    1779                     "cvltr d_tr_insc"//str2,                               &
    1780                        "mgS/m2/s",                                          &
    1781                    nbp_lon,nbp_lat,nhori2, nbp_lev,1,nbp_lev,nvert, 32,     &
    1782                        "ave(X)", zsto,zout)                                 
    1783         CALL histdef(nid_tra2,"d_tr_bcscav"//str2,                           &
    1784                     "cvltr d_tr_bcscav"//str2,                               &
    1785                        "mgS/m2/s",                                          &
    1786                    nbp_lon,nbp_lat,nhori2, nbp_lev,1,nbp_lev,nvert, 32,     &
    1787                        "ave(X)", zsto,zout)                                 
    1788         CALL histdef(nid_tra2,"d_tr_evapls"//str2,                           &
    1789                     "cvltr d_tr_evapls"//str2,                               &
    1790                        "mgS/m2/s",                                          &
    1791                    nbp_lon,nbp_lat,nhori2, nbp_lev,1,nbp_lev,nvert, 32,     &
    1792                        "ave(X)", zsto,zout)                                 
    1793         CALL histdef(nid_tra2,"d_tr_ls"//str2,                           &
    1794                     "cvltr d_tr_ls"//str2,                               &
    1795                        "mgS/m2/s",                                          &
    1796                    nbp_lon,nbp_lat,nhori2, nbp_lev,1,nbp_lev,nvert, 32,     &
    1797                        "ave(X)", zsto,zout)                                     !!
    1798         CALL histdef(nid_tra2,"d_tr_dyn"//str2,                           &
    1799                     "large-scale d_tr_dyn"//str2,                               &
    1800                        "mgS/m2/s",                                          &
    1801                    nbp_lon,nbp_lat,nhori2, nbp_lev,1,nbp_lev,nvert, 32,     &
    1802                        "ave(X)", zsto,zout)                                     !!
    1803         CALL histdef(nid_tra2,"d_tr_cl"//str2,                           &
    1804                     "cvltr d_tr_cl"//str2,                               &
    1805                        "mgS/m2/s",                                          &
    1806                    nbp_lon,nbp_lat,nhori2, nbp_lev,1,nbp_lev,nvert, 32,     &
    1807                        "ave(X)", zsto,zout)                                 !!
    1808         CALL histdef(nid_tra2,"d_tr_th"//str2,                           &
    1809                     "cvltr d_tr_th"//str2,                               &
    1810                        "mgS/m2/s",                                          &
    1811                    nbp_lon,nbp_lat,nhori2, nbp_lev,1,nbp_lev,nvert, 32,     &
    1812                        "ave(X)", zsto,zout)                                 !!
    1813                                                                              
    1814 
    1815 
    1816 !
    1817           ENDDO
    1818 !
    1819           CALL histdef(nid_tra2, "sed_ss", "Sedmet. Tr3",                   &
    1820                        "mg/m2/s", nbp_lon,nbp_lat,nhori2, 1,1,1, -99,       &
    1821                          32,                                                &
    1822                        "ave(X)", zsto,zout)                                 
    1823 !                                                                           
    1824           CALL histdef(nid_tra2, "sed_dust", "Sedmet. Tr4",                 &
    1825                        "mg/m2/s", nbp_lon,nbp_lat,nhori2, 1,1,1,            &
    1826                         -99, 32,                                            &
    1827                        "ave(X)", zsto,zout)                                 
    1828 !                                                                           
    1829           CALL histdef(nid_tra2, "sed_dustsco", "Sedmet. Tr5",              &
    1830                        "mg/m2/s", nbp_lon,nbp_lat,nhori2, 1,1,1,            &
    1831                         -99, 32,                                            &
    1832                        "ave(X)", zsto,zout)                                 
    1833 !                                                                           
    1834           CALL histdef(nid_tra2, "g2p_gas", "Gas2particle gas sink",       &
    1835                    "mg-S/m2/s", nbp_lon,nbp_lat,nhori2, 1,1,1,-99, 32,     &
    1836                        "ave(X)", zsto,zout)                                 
    1837 !                                                                           
    1838           CALL histdef(nid_tra2, "g2p_aer", "Gas2particle tr2 src",        &
    1839                        "mg/m2/s", nbp_lon,nbp_lat,nhori2, 1,1,1,-99,32,    &
    1840                        "ave(X)", zsto,zout)                                 
    1841 !                                                                           
    1842 !-------------------------------------------------------------------       
    1843 !
    1844           CALL histend(nid_tra1)
    1845 !
    1846           CALL histend(nid_tra2)
    1847 !
    1848           CALL histend(nid_tra3)
    1849 !
    1850 !-------------------------------------------------------------------
    1851 
    1852 !       nbjour=1
    1853          ENDIF ! mpi root
    1854          ENDIF !--ok_histrac
    1855 
    1856 !
    1857 !        IF (.NOT.edgar.AND.bateau) THEN
    1858 !        PRINT *,'ATTENTION risque de compter double les bateaux'
    1859 !        STOP
    1860 !        ENDIF
    1861 !
    1862 !
    1863 !
    1864 !$OMP END MASTER
    1865 !$OMP BARRIER
    1866       endif ! debutphy
    1867 !
    1868 !======================================================================
    1869 ! Initialisations
    1870 !======================================================================
    1871 !
    1872 !
    1873 ! je  KE init
    1874       IF (debutphy) THEN
    1875 !$OMP MASTER
    1876 
    1877       ALLOCATE(d_tr_cl(klon,klev,nbtr),d_tr_dry(klon,nbtr))
    1878       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))
    1885       ALLOCATE(qDi(klon,klev,nbtr))
    1886       ALLOCATE(qPa(klon,klev,nbtr),qMel(klon,klev,nbtr))
    1887       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 
     433!AS : This subroutine centralises the ALLOCATE needed for the 1st call of
     434!     phys_output_write_spl in physiq
     435
     436    USE dimphy
     437    USE infotrac_phy, ONLY: nbtr
     438    USE dustemission_mod, ONLY :  dustemis_out_init
     439
     440    ! pour les variables m[1-3]dflux
     441    CALL dustemis_out_init()
     442
     443!traceur
    1892444      ALLOCATE( diff_aod550_tot(klon)     )
    1893445      ALLOCATE( diag_aod670_tot(klon)     )
     
    1905457      ALLOCATE( diag_aod670_dustsco(klon)  )
    1906458      ALLOCATE( diag_aod865_dustsco(klon)  )
    1907 
     459      !AS: les 15 vars _terra et 15 _aqua suivantes sont groupees differemment dans spla_output_write.h
     460      ALLOCATE( aod550_terra(klon))
     461      ALLOCATE( aod550_tr2_terra(klon))
     462      ALLOCATE( aod550_ss_terra(klon))
     463      ALLOCATE( aod550_dust_terra(klon))
     464      ALLOCATE( aod550_dustsco_terra(klon))
     465      ALLOCATE( aod670_terra(klon))
     466      ALLOCATE( aod670_tr2_terra(klon))
     467      ALLOCATE( aod670_ss_terra(klon))
     468      ALLOCATE( aod670_dust_terra(klon))
     469      ALLOCATE( aod670_dustsco_terra(klon))
     470      ALLOCATE( aod865_terra(klon))
     471      ALLOCATE( aod865_tr2_terra(klon))
     472      ALLOCATE( aod865_ss_terra(klon))
     473      ALLOCATE( aod865_dust_terra(klon))
     474      ALLOCATE( aod865_dustsco_terra(klon))
     475
     476      ALLOCATE( aod550_aqua(klon))
     477      ALLOCATE( aod550_tr2_aqua(klon))
     478      ALLOCATE( aod550_ss_aqua(klon))
     479      ALLOCATE( aod550_dust_aqua(klon))
     480      ALLOCATE( aod550_dustsco_aqua(klon))
     481      ALLOCATE( aod670_aqua(klon))
     482      ALLOCATE( aod670_tr2_aqua(klon))
     483      ALLOCATE( aod670_ss_aqua(klon))
     484      ALLOCATE( aod670_dust_aqua(klon))
     485      ALLOCATE( aod670_dustsco_aqua(klon))
     486      ALLOCATE( aod865_aqua(klon))
     487      ALLOCATE( aod865_tr2_aqua(klon))
     488      ALLOCATE( aod865_ss_aqua(klon))
     489      ALLOCATE( aod865_dust_aqua(klon))
     490      ALLOCATE( aod865_dustsco_aqua(klon))
    1908491
    1909492      ALLOCATE(  sconc01(klon)     )
     
    1918501      ALLOCATE(  trm05(klon)     )
    1919502
    1920 
     503! Lessivage
    1921504      ALLOCATE(  flux01(klon)     )
    1922505      ALLOCATE(  flux02(klon)     )
     
    1984567      ALLOCATE(  d_tr_uscav04(klon,klev))
    1985568      ALLOCATE(  d_tr_uscav05(klon,klev))
    1986      
    1987569!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    1988 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    1989570      ALLOCATE(  d_tr_insc01(klon,klev))
    1990571      ALLOCATE(  d_tr_insc02(klon,klev))
     
    2007588      ALLOCATE(  d_tr_ls04(klon,klev))
    2008589      ALLOCATE(  d_tr_ls05(klon,klev))
     590
    2009591      ALLOCATE(  d_tr_dyn01(klon,klev))
    2010592      ALLOCATE(  d_tr_dyn02(klon,klev))
     
    2012594      ALLOCATE(  d_tr_dyn04(klon,klev))
    2013595      ALLOCATE(  d_tr_dyn05(klon,klev))
     596
    2014597      ALLOCATE(  d_tr_cl01(klon,klev))
    2015598      ALLOCATE(  d_tr_cl02(klon,klev))
     
    2023606      ALLOCATE(  d_tr_th05(klon,klev))
    2024607
    2025       ALLOCATE( sed_ss3D(klon,klev))
    2026       ALLOCATE( sed_dust3D(klon,klev))
    2027       ALLOCATE( sed_dustsco3D(klon,klev))
    2028 
    2029 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    2030 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    2031 
    2032608      ALLOCATE( sed_ss(klon))
    2033609      ALLOCATE( sed_dust(klon))
     
    2036612      ALLOCATE( his_g2paer(klon))
    2037613
     614!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     615      ALLOCATE( sed_ss3D(klon,klev))
     616      ALLOCATE( sed_dust3D(klon,klev))
     617      ALLOCATE( sed_dustsco3D(klon,klev))
     618!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     619
     620!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     621! histrac_spl
     622!
    2038623      ALLOCATE( fluxbb(klon))
    2039624      ALLOCATE( fluxff(klon))
     
    2083668      ALLOCATE( v10m_ss(klon))
    2084669
    2085 
     670!AS: in phys_output_write_spl, but not in spla_output_write.h
     671!------------------------------------------------------
     672      ALLOCATE(d_tr_cl(klon,klev,nbtr))
     673      ALLOCATE(d_tr_th(klon,klev,nbtr))
     674      ALLOCATE(d_tr_cv(klon,klev,nbtr))
     675      ALLOCATE(d_tr_lessi_impa(klon,klev,nbtr))
     676      ALLOCATE(d_tr_lessi_nucl(klon,klev,nbtr))
     677      ALLOCATE(d_tr_insc(klon,klev,nbtr))
     678      ALLOCATE(d_tr_bcscav(klon,klev,nbtr))
     679      ALLOCATE(d_tr_evapls(klon,klev,nbtr))
     680      ALLOCATE(d_tr_ls(klon,klev,nbtr))
     681      ALLOCATE(d_tr_trsp(klon,klev,nbtr))
     682      ALLOCATE(d_tr_sscav(klon,klev,nbtr))
     683      ALLOCATE(d_tr_sat(klon,klev,nbtr))
     684      ALLOCATE(d_tr_uscav(klon,klev,nbtr))
     685     
     686END SUBROUTINE phytracr_spl_out_init
     687
     688!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     689SUBROUTINE phytracr_spl_ini(klon,nbreg_ind,nbreg_bb,nbreg_dust,nbreg_wstardust)
     690!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     691
     692
     693  IMPLICIT NONE
     694  INTEGER klon,nbreg_ind,nbreg_bb,nbreg_dust,nbreg_wstardust
     695
     696  ALLOCATE(  tsol(klon)              )
     697
     698!AS: IF permettant le debranchage des coefs de Jeronimo Escribano: fichiers *_meta
     699! nbreg_* sont initialisés à 1 dans phytracr_spl, if debutphy,
     700! avant d'appeler la subroutine presente, phytracr_spl_ini
     701! (phytracr_spl_ini appele readregionsdims2_spl,
     702! qui lit et fait "bcast" de nbreg_ind,_bb,_dust,_wstardust dans fichiers regions_*_meta)
     703IF("ASSIM"=="YES") THEN
     704  fileregionsdimsind='regions_ind_meta'
     705  fileregionsdimsdust='regions_dustacc_meta'
     706!  fileregionsdimsdust='regions_dust_meta'
     707  fileregionsdimsbb='regions_bb_meta'
     708  fileregionsdimswstar='regions_pwstarwake_meta'
     709  call  readregionsdims2_spl(nbreg_ind,fileregionsdimsind)
     710  call  readregionsdims2_spl(nbreg_dust,fileregionsdimsdust)
     711  call  readregionsdims2_spl(nbreg_bb,fileregionsdimsbb)
     712  call  readregionsdims2_spl(nbreg_wstardust,fileregionsdimswstar)
     713  ENDIF ! ASSIM
     714! fin debranchage
     715
     716!readregions_spl()
     717
     718  ALLOCATE(scale_param_ind(nbreg_ind))
     719  ALLOCATE(scale_param_bb(nbreg_bb))
     720  ALLOCATE(scale_param_ff(nbreg_ind))
     721  ALLOCATE(scale_param_dustacc(nbreg_dust))
     722  ALLOCATE(scale_param_dustcoa(nbreg_dust))
     723  ALLOCATE(scale_param_dustsco(nbreg_dust))
     724  ALLOCATE(param_wstarBLperregion(nbreg_wstardust))
     725  ALLOCATE(param_wstarWAKEperregion(nbreg_wstardust))
     726  ALLOCATE(  dust_ec(klon)           )
     727  ALLOCATE(  u10m_ec(klon)           )
     728  ALLOCATE(  v10m_ec(klon)           )
     729  ALLOCATE(  lmt_so2volc_cont(klon)  )
     730  ALLOCATE(  lmt_altvolc_cont(klon)  )
     731  ALLOCATE(  lmt_so2volc_expl(klon)  )
     732  ALLOCATE(  lmt_altvolc_expl(klon)  )
     733  ALLOCATE(  lmt_so2ff_l(klon)       )   
     734  ALLOCATE(  lmt_so2ff_h(klon)       ) 
     735  ALLOCATE(  lmt_so2nff(klon)        ) 
     736  ALLOCATE(  lmt_so2ba(klon)         ) 
     737  ALLOCATE(  lmt_so2bb_l(klon)       )
     738  ALLOCATE(  lmt_so2bb_h(klon)       ) 
     739  ALLOCATE(  lmt_dmsconc(klon)       ) 
     740  ALLOCATE(  lmt_dmsbio(klon)        ) 
     741  ALLOCATE(  lmt_h2sbio(klon)        ) 
     742  ALLOCATE(  lmt_bcff(klon)          )
     743  ALLOCATE(  lmt_bcnff(klon)         )
     744  ALLOCATE(  lmt_bcbb_l(klon)        )
     745  ALLOCATE(  lmt_bcbb_h(klon)        )
     746  ALLOCATE(  lmt_bcba(klon)          )
     747  ALLOCATE(  lmt_omff(klon)          ) 
     748  ALLOCATE(  lmt_omnff(klon)         ) 
     749  ALLOCATE(  lmt_ombb_l(klon)        ) 
     750  ALLOCATE(  lmt_ombb_h(klon)        ) 
     751  ALLOCATE(  lmt_omnat(klon)         ) 
     752  ALLOCATE(  lmt_omba(klon)          )           
     753  ALLOCATE(lmt_sea_salt(klon,ss_bins))
     754
     755
     756
     757
     758  !temporal hardcoded null inicialization of assimilation emmision factors
     759!AS: scale_param sont ensuite lus dans modvalues.nc
     760! par la subroutine read_scalenc, appelee par readscaleparamsnc_spl
     761  scale_param_ssacc=1.
     762  scale_param_sscoa=1.
     763  scale_param_ind(:)=1.
     764  scale_param_bb(:)=1.
     765  scale_param_ff(:)=1.
     766  scale_param_dustacc(:)=1.
     767  scale_param_dustcoa(:)=1.
     768  scale_param_dustsco(:)=1.
     769  param_wstarBLperregion(:)=0.
     770  param_wstarWAKEperregion(:)=0.
     771
     772
     773RETURN
     774END SUBROUTINE phytracr_spl_ini
     775
     776
     777
     778
     779!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     780      SUBROUTINE phytracr_spl ( debutphy,lafin,jD_cur,jH_cur,iflag_conv, &  ! I
     781                      pdtphys,ftsol,                                   &  ! I
     782                      t_seri,q_seri,paprs,pplay,RHcl,                  &  ! I
     783                      pmfu, pmfd, pen_u, pde_u, pen_d, pde_d,          &  ! I
     784                      coefh, cdragh, cdragm, yu1, yv1,                 &  ! I
     785                      u_seri, v_seri, rlat,rlon,                       &  ! I
     786                      pphis,pctsrf,pmflxr,pmflxs,prfl,psfl,            &  ! I
     787                      da,phi,phi2,d1a,dam,mp,ep,sigd,sij,clw,elij,     &  ! I
     788                      epmlmMm,eplaMm,upwd,dnwd,itop_con,ibas_con,      &  ! I
     789                      evapls,wdtrainA,  wdtrainM,wght_cvfd,              &  ! I
     790                      fm_therm, entr_therm, rneb,                      &  ! I
     791                      beta_fisrt,beta_v1,                              &  ! I
     792                      zu10m,zv10m,wstar,ale_bl,ale_wake,               &  ! I
     793                      d_tr_dyn,tr_seri)                                            ! O
     794!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     795
     796      USE mod_grid_phy_lmdz
     797      USE mod_phys_lmdz_para
     798      USE IOIPSL
     799      USE dimphy
     800      USE infotrac
     801      USE indice_sol_mod
     802      USE write_field_phy
     803     
     804
     805      USE mod_phys_lmdz_transfert_para
     806
     807  USE phys_cal_mod, only: jD_1jan,year_len, mth_len, days_elapsed, jh_1jan, year_cur, &
     808       mth_cur, phys_cal_update
     809
     810!
     811      IMPLICIT none
     812!
     813
     814!======================================================================
     815! Auteur(s) FH
     816! Objet: Moniteur general des tendances traceurs
     817!
     818! Remarques en vrac:
     819! ------------------
     820! 1/ le call phytrac se fait avec nqmax-2 donc nous avons bien
     821! les vrais traceurs (nbtr) dans phytrac (pas la vapeur ni eau liquide)
     822!======================================================================
     823#include "dimensions.h"
     824#include "chem.h"
     825#include "chem_spla.h"
     826#include "YOMCST.h"
     827#include "YOETHF.h"
     828#include "paramet.h"
     829#include "thermcell.h"
     830
     831!======================================================================
     832
     833! Arguments:
     834!
     835!  EN ENTREE:
     836!  ==========
     837!
     838!  divers:
     839!  -------
     840!
     841      real,intent(in) :: pdtphys  ! pas d'integration pour la physique (seconde)
     842      REAL, intent(in):: jD_cur, jH_cur
     843      real, intent(in) ::  ftsol(klon,nbsrf)  ! temperature du sol par type
     844      real, intent(in) ::  t_seri(klon,klev)  ! temperature
     845      real, intent(in) ::  u_seri(klon,klev)  ! vent
     846      real , intent(in) :: v_seri(klon,klev)  ! vent
     847      real , intent(in) :: q_seri(klon,klev)  ! vapeur d eau kg/kg
     848
     849LOGICAL,  INTENT(IN)                          :: lafin
     850
     851      real tr_seri(klon,klev,nbtr) ! traceur 
     852      real tmp_var(klon,klev) ! auxiliary variable to replace traceur 
     853      real tmp_var2(klon,nbtr) ! auxiliary variable to replace source
     854      real tmp_var3(klon,klev,nbtr) ! auxiliary variable 3D 
     855      real dummy1d ! JE auxiliary variable
     856      real aux_var2(klon) ! auxiliary variable to replace traceur 
     857      real aux_var3(klon,klev) ! auxiliary variable to replace traceur 
     858      real d_tr(klon,klev,nbtr)    ! traceur  tendance
     859      real sconc_seri(klon,nbtr) ! surface concentration of traceur 
     860!
     861      integer nbjour
     862      save nbjour
     863!$OMP THREADPRIVATE(nbjour)
     864!
     865      INTEGER  masque_aqua_cur(klon)
     866      INTEGER  masque_terra_cur(klon)
     867      INTEGER, DIMENSION(:), ALLOCATABLE, SAVE :: masque_aqua  !mask for 1 day
     868      INTEGER, DIMENSION(:), ALLOCATABLE, SAVE :: masque_terra !
     869!$OMP THREADPRIVATE(masque_aqua,masque_terra)
     870
     871  INTEGER, SAVE :: nbreg_dust, nbreg_ind, nbreg_bb, nbreg_ss,nbreg_wstardust
     872  !$OMP THREADPRIVATE(nbreg_dust, nbreg_ind, nbreg_bb,nbreg_ss,nbreg_wstardust)
     873
     874
     875
     876      REAL lmt_dms(klon)           ! emissions de dms
     877
     878!JE20150518<<
     879      REAL, DIMENSION(klon_glo)  :: aod550_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
     880      REAL, DIMENSION(klon_glo)  :: aod550_tr2_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
     881      REAL, DIMENSION(klon_glo)  :: aod550_ss_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
     882      REAL, DIMENSION(klon_glo)  :: aod550_dust_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
     883      REAL, DIMENSION(klon_glo)  :: aod550_dustsco_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
     884      REAL, DIMENSION(klon_glo)  :: aod670_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
     885      REAL, DIMENSION(klon_glo)  :: aod670_tr2_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
     886      REAL, DIMENSION(klon_glo)  :: aod670_ss_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
     887      REAL, DIMENSION(klon_glo)  :: aod670_dust_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
     888      REAL, DIMENSION(klon_glo)  :: aod670_dustsco_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
     889      REAL, DIMENSION(klon_glo)  :: aod865_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
     890      REAL, DIMENSION(klon_glo)  :: aod865_tr2_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
     891      REAL, DIMENSION(klon_glo)  :: aod865_ss_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
     892      REAL, DIMENSION(klon_glo)  :: aod865_dust_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
     893      REAL, DIMENSION(klon_glo)  :: aod865_dustsco_terra_glo  ! AOD at terra overpass time ( 10.30 local hour)
     894
     895      REAL, DIMENSION(klon_glo)  :: aod550_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
     896      REAL, DIMENSION(klon_glo)  :: aod550_tr2_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
     897      REAL, DIMENSION(klon_glo)  :: aod550_ss_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
     898      REAL, DIMENSION(klon_glo)  :: aod550_dust_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
     899      REAL, DIMENSION(klon_glo)  :: aod550_dustsco_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
     900      REAL, DIMENSION(klon_glo)  :: aod670_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
     901      REAL, DIMENSION(klon_glo)  :: aod670_tr2_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
     902      REAL, DIMENSION(klon_glo)  :: aod670_ss_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
     903      REAL, DIMENSION(klon_glo)  :: aod670_dust_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
     904      REAL, DIMENSION(klon_glo)  :: aod670_dustsco_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
     905      REAL, DIMENSION(klon_glo)  :: aod865_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
     906      REAL, DIMENSION(klon_glo)  :: aod865_tr2_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
     907      REAL, DIMENSION(klon_glo)  :: aod865_ss_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
     908      REAL, DIMENSION(klon_glo)  :: aod865_dust_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
     909      REAL, DIMENSION(klon_glo)  :: aod865_dustsco_aqua_glo  ! AOD at aqua overpass time ( 13.30 local hour)
     910!!!!!!!!!!!!!
     911!JE20150518>>
     912
     913
     914
     915
     916      real , intent(in) :: paprs(klon,klev+1)  ! pression pour chaque inter-couche (en Pa)
     917      real , intent(in) :: pplay(klon,klev)  ! pression pour le mileu de chaque couche (en Pa)
     918      real , intent(in) :: RHcl(klon,klev)  ! humidite relativen ciel clair
     919      real znivsig(klev)  ! indice des couches
     920      real paire(klon)
     921      real, intent(in) ::  pphis(klon)
     922      real, intent(in) ::  pctsrf(klon,nbsrf)
     923      logical , intent(in) :: debutphy   ! le flag de l'initialisation de la physique
     924!
     925!  Scaling Parameters:
     926!  ----------------------
     927!
     928      CHARACTER*50 c_Directory
     929      CHARACTER*80 c_FileName1
     930      CHARACTER*80 c_FileName2
     931      CHARACTER*130 c_FullName1
     932      CHARACTER*130 c_FullName2
     933      INTEGER :: xidx, yidx
     934      INTEGER,DIMENSION(klon) :: mask_bbreg
     935      INTEGER,DIMENSION(klon) :: mask_ffso2reg
     936      INTEGER :: aux_mask1
     937      INTEGER :: aux_mask2
     938      INTEGER, DIMENSION(:), ALLOCATABLE, SAVE :: iregion_so4 !Defines regions for SO4 ; AS: PAS UTILISE!
     939      INTEGER, DIMENSION(:), ALLOCATABLE, SAVE :: iregion_ind  !Defines regions for SO2, BC & OM
     940      INTEGER, DIMENSION(:), ALLOCATABLE, SAVE :: iregion_bb   !Defines regions for SO2, BC & OM
     941      INTEGER, DIMENSION(:), ALLOCATABLE, SAVE :: iregion_dust !Defines  dust regions
     942      INTEGER, DIMENSION(:), ALLOCATABLE, SAVE :: iregion_wstardust !Defines  dust regions
     943!$OMP THREADPRIVATE(iregion_so4,iregion_ind,iregion_bb,iregion_dust,iregion_wstardust)
     944
     945!  Emissions:
     946
     947!
     948!---------------------------- SEA SALT & DUST emissions ------------------------
     949      REAL lmt_sea_salt(klon,ss_bins) !Sea salt 0.03-8.0 um
     950      REAL u10m_ec1(klon),v10m_ec1(klon)
     951      REAL u10m_ec2(klon),v10m_ec2(klon),dust_ec2(klon)
     952      REAL dust_ec(klon)
     953!     new dust emission chimere je20140522
     954      REAL,DIMENSION(klon),INTENT(IN)                     :: zu10m
     955      REAL,DIMENSION(klon),INTENT(IN)                     :: zv10m
     956      REAL,DIMENSION(klon),INTENT(IN)  :: wstar,ale_bl,ale_wake
     957
     958
     959!
     960!  Rem : nbtr : nombre de vrais traceurs est defini dans dimphy.h
     961
     962!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     963     !Dynamique
     964     !--------
     965      REAL,DIMENSION(klon,klev,nbtr),INTENT(IN)    :: d_tr_dyn
     966
     967!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     968!  convection:
     969!  -----------
     970!
     971      REAL , intent(in) :: pmfu(klon,klev)  ! flux de masse dans le panache montant
     972      REAL , intent(in) :: pmfd(klon,klev)  ! flux de masse dans le panache descendant
     973      REAL, intent(in) ::  pen_u(klon,klev) ! flux entraine dans le panache montant
     974      REAL, intent(in) ::  pde_u(klon,klev) ! flux detraine dans le panache montant
     975      REAL, intent(in) ::  pen_d(klon,klev) ! flux entraine dans le panache descendant
     976      REAL, intent(in) ::  pde_d(klon,klev) ! flux detraine dans le panache descendant
     977!
     978!  Convection KE scheme:
     979!  ---------------------
     980!
     981!! Variables pour le lessivage convectif
     982       REAL,DIMENSION(klon,klev),INTENT(IN)     :: da
     983       REAL,DIMENSION(klon,klev,klev),INTENT(IN):: phi
     984       REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: phi2
     985       REAL,DIMENSION(klon,klev),INTENT(IN)      :: d1a,dam
     986       REAL,DIMENSION(klon,klev),INTENT(IN)     :: mp
     987       REAL,DIMENSION(klon,klev),INTENT(IN)     :: upwd      ! saturated
     988!            updraft mass flux
     989       REAL,DIMENSION(klon,klev),INTENT(IN)     :: dnwd      ! saturated
     990!            downdraft mass flux
     991       INTEGER,DIMENSION(klon),INTENT(IN)     :: itop_con
     992       INTEGER,DIMENSION(klon),INTENT(IN)     :: ibas_con
     993       REAL,DIMENSION(klon,klev)      :: evapls
     994       REAL,DIMENSION(klon,klev),INTENT(IN)      :: wdtrainA
     995       REAL,DIMENSION(klon,klev),INTENT(IN)      :: wdtrainM
     996
     997
     998       REAL,DIMENSION(klon,klev),INTENT(IN)      :: ep
     999       REAL,DIMENSION(klon),INTENT(IN)           :: sigd
     1000       REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: sij
     1001       REAL,DIMENSION(klon,klev),INTENT(IN)      :: clw
     1002       REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: elij
     1003       REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: epmlmMm
     1004       REAL,DIMENSION(klon,klev),INTENT(IN)      :: eplaMm
     1005       REAL,DIMENSION(klon,klev),INTENT(IN)      :: wght_cvfd          !RL
     1006
     1007
     1008!     KE: Tendances de traceurs (Td) et flux de traceurs:
     1009!     ------------------------
     1010       REAL,DIMENSION(klon,klev)      :: Mint
     1011       REAL,DIMENSION(klon,klev,nbtr) :: zmfd1a
     1012       REAL,DIMENSION(klon,klev,nbtr) :: zmfdam
     1013       REAL,DIMENSION(klon,klev,nbtr) :: zmfphi2
     1014
     1015!                                                        !tra dans pluie LS a la surf.
     1016!      outputs for cvltr_spl
     1017       REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_cv_o 
     1018       REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_trsp_o
     1019       REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_sscav_o
     1020       REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_sat_o
     1021       REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_uscav_o
     1022     !!!!!!!!!!!!!!!!!
     1023     !!!!!!!!!!!!!!!!!
     1024     !!!!!!!!!!!!!!!!!
     1025       REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_insc_o
     1026       REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_bcscav_o
     1027       REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_evapls_o
     1028       REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_ls_o
     1029       REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_dyn_o
     1030       REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_cl_o
     1031       REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_th_o
     1032     !!!!!!!!!!!!!!!!!
     1033     !!!!!!!!!!!!!!!!!
     1034     !!!!!!!!!!!!!!!!!
     1035
     1036!$OMP THREADPRIVATE(d_tr_cv_o,d_tr_trsp_o,d_tr_sscav_o,d_tr_sat_o,d_tr_uscav_o)
     1037!$OMP THREADPRIVATE(d_tr_insc_o,d_tr_bcscav_o,d_tr_evapls_o,d_tr_ls_o)
     1038!$OMP THREADPRIVATE(d_tr_dyn_o,d_tr_cl_o,d_tr_th_o)
     1039
     1040
     1041       INTEGER ::  nsplit
     1042!
     1043
     1044     
     1045
     1046!
     1047!  Lessivage
     1048!  ---------
     1049!
     1050      REAL, intent(in) ::  pmflxr(klon,klev+1), pmflxs(klon,klev+1)   !--convection
     1051      REAL, intent(in) ::  prfl(klon,klev+1),   psfl(klon,klev+1)     !--large-scale
     1052      REAL :: ql_incl ! contenu en eau liquide nuageuse dans le nuage ! ql_incl=oliq/rneb
     1053      REAL  :: ql_incloud_ref    ! ref value of in-cloud condensed water content
     1054
     1055       REAL,DIMENSION(klon,klev),INTENT(IN)   :: rneb    ! fraction nuageuse (grande echelle)
     1056!
     1057
     1058      REAL,DIMENSION(klon,klev) :: beta_fisrt ! taux de conversion
     1059!                                                          ! de l'eau cond (de fisrtilp)
     1060      REAL,DIMENSION(klon,klev) :: beta_v1    ! -- (originale version)
     1061      INTEGER,SAVE  :: iflag_lscav_omp,iflag_lscav
     1062!$OMP THREADPRIVATE(iflag_lscav_omp,iflag_lscav)
     1063
     1064
     1065
     1066
     1067!Thermiques:
     1068!----------
     1069      REAL,DIMENSION(klon,klev+1),INTENT(IN)   :: fm_therm
     1070      REAL,DIMENSION(klon,klev),INTENT(IN)     :: entr_therm
     1071
     1072
     1073!
     1074!  Couche limite:
     1075!  --------------
     1076!
     1077      REAL , intent(in) :: coefh(klon,klev) ! coeff melange CL
     1078      REAL , intent(in) :: cdragh(klon), cdragm(klon)
     1079      REAL, intent(in) ::  yu1(klon)        ! vent dans la 1iere couche
     1080      REAL, intent(in) ::  yv1(klon)        ! vent dans la 1iere couche
     1081!
     1082!
     1083!----------------------------------------------------------------------
     1084      REAL his_ds(klon,nbtr)
     1085      REAL his_dh(klon,nbtr)
     1086      REAL his_dhlsc(klon,nbtr)        ! in-cloud scavenging lsc
     1087      REAL his_dhcon(klon,nbtr)       ! in-cloud scavenging con
     1088      REAL his_dhbclsc(klon,nbtr)      ! below-cloud scavenging lsc
     1089      REAL his_dhbccon(klon,nbtr)      ! below-cloud scavenging con
     1090      REAL trm(klon,nbtr)
     1091!
     1092      REAL u10m_ec(klon), v10m_ec(klon)
     1093!
     1094      REAL his_th(klon,nbtr)
     1095      REAL his_dhkecv(klon,nbtr)
     1096      REAL his_dhkelsc(klon,nbtr)
     1097
     1098
     1099!
     1100!  Coordonnees
     1101!  -----------
     1102!
     1103      REAL, intent(in) ::  rlat(klon)       ! latitudes pour chaque point
     1104      REAL, intent(in) ::  rlon(klon)       ! longitudes pour chaque point
     1105!
     1106      INTEGER i, k, it, j, ig
     1107!
     1108! DEFINITION OF DIAGNOSTIC VARIABLES
     1109!
     1110      REAL diag_trm(nbtr), diag_drydep(nbtr)
     1111      REAL diag_wetdep(nbtr), diag_cvtdep(nbtr)
     1112      REAL diag_emissn(nbtr), diag_g2part
     1113      REAL diag_sedimt
     1114      REAL trm_aux(nbtr), src_aux(nbtr)
     1115!
     1116! Variables locales pour effectuer les appels en serie
     1117!----------------------------------------------------
     1118      REAL source_tr(klon,nbtr)
     1119      REAL flux_tr(klon,nbtr)
     1120      REAL m_conc(klon,klev)
     1121      REAL henry(nbtr)  !--cste de Henry  mol/l/atm
     1122      REAL kk(nbtr)     !--coefficient de var avec T (K)
     1123      REAL alpha_r(nbtr)!--coefficient d'impaction pour la pluie
     1124      REAL alpha_s(nbtr)!--coefficient d'impaction pour la neige
     1125      REAL vdep_oce(nbtr), vdep_sic(nbtr)
     1126      REAL vdep_ter(nbtr), vdep_lic(nbtr)
     1127      REAL ccntrAA_spla(nbtr)
     1128      REAL ccntrENV_spla(nbtr)
     1129      REAL coefcoli_spla(nbtr)
     1130      REAL dtrconv(klon,nbtr)
     1131      REAL zrho(klon,klev), zdz(klon,klev)
     1132      REAL zalt(klon,klev)
     1133      REAL,DIMENSION(klon,klev)      :: zmasse    ! densité atmosphérique
     1134!     .                                              Kg/m2
     1135      REAL,DIMENSION(klon,klev)      :: ztra_th
     1136      REAL qmin, qmax, aux
     1137!      PARAMETER (qmin=0.0, qmax=1.e33)
     1138      PARAMETER (qmin=1.e33, qmax=-1.e33)
     1139
     1140! Variables to save data into file
     1141!----------------------------------
     1142   
     1143      CHARACTER*2 str2
     1144!!AS:      LOGICAL ok_histrac
     1145!!!JE2014124      PARAMETER (ok_histrac=.true.)
     1146!!      PARAMETER (ok_histrac=.false.)
     1147      INTEGER ndex2d(iim*(jjm+1)), ndex3d(iim*(jjm+1)*klev)
     1148      INTEGER nhori1, nhori2, nhori3, nhori4, nhori5, nvert
     1149      INTEGER nid_tra1, nid_tra2, nid_tra3, nid_tra4, nid_tra5
     1150      SAVE nid_tra1, nid_tra2, nid_tra3, nid_tra4, nid_tra5
     1151!$OMP THREADPRIVATE(nid_tra1, nid_tra2, nid_tra3, nid_tra4, nid_tra5)
     1152      INTEGER itra
     1153      SAVE itra                    ! compteur pour la physique
     1154!$OMP THREADPRIVATE(itra)
     1155      INTEGER ecrit_tra, ecrit_tra_h, ecrit_tra_m
     1156      SAVE ecrit_tra, ecrit_tra_h, ecrit_tra_m
     1157!$OMP THREADPRIVATE(ecrit_tra, ecrit_tra_h, ecrit_tra_m)
     1158      REAL presnivs(klev) ! pressions approximat. des milieux couches ( en PA)
     1159      REAL zx_tmp_2d(iim,jjm+1), zx_tmp_3d(iim,jjm+1,klev)
     1160      REAL zx_tmp_fi2d(klon), zx_tmp_fi3d(klon, klev)
     1161      REAL zx_lon_glo(nbp_lon,nbp_lat), zx_lat_glo(nbp_lon,nbp_lat)
     1162      REAL zsto, zout, zout_h, zout_m, zjulian
     1163
     1164!------Molar Masses
     1165      REAL masse(nbtr)
     1166!
     1167      REAL fracso2emis                              !--fraction so2 emis en so2
     1168      PARAMETER (fracso2emis=0.95)
     1169      REAL frach2sofso2                             !--fraction h2s from so2
     1170      PARAMETER (frach2sofso2=0.0426)
     1171!
     1172!  Controles
     1173!-------------
     1174      LOGICAL convection,lessivage,lminmax,lcheckmass
     1175      DATA convection,lessivage,lminmax,lcheckmass &
     1176          /.true.,.true.,.true.,.false./
     1177!
     1178      REAL xconv(nbtr)
     1179!
     1180      LOGICAL anthropo, bateau, edgar
     1181      DATA anthropo,bateau,edgar/.true.,.true.,.true./
     1182!
     1183!c bc_source
     1184      INTEGER kminbc, kmaxbc
     1185!JE20150715      PARAMETER (kminbc=3, kmaxbc=5)
     1186      PARAMETER (kminbc=4, kmaxbc=7)
     1187!
     1188      REAL tr1_cont, tr2_cont, tr3_cont, tr4_cont
     1189!
     1190! JE for updating in  cltrac
     1191      REAL,DIMENSION(klon,klev)             :: delp     ! epaisseur de couche (Pa)
     1192!! JE for include gas to particle conversion in output
     1193!      REAL his_g2pgas(klon)      ! gastoparticle in gas units (check!)
     1194!      REAL his_g2paer(klon)      ! gastoparticle in aerosol units (check!)
     1195!
     1196      INTEGER ,intent(in) :: iflag_conv
     1197      LOGICAL iscm3  ! debug variable. for checkmass ! JE
     1198
     1199!------------------------------------------------------------------------
     1200!  only to compute time consumption of each process
     1201!----
     1202      INTEGER clock_start,clock_end,clock_rate,clock_start_spla
     1203      INTEGER clock_end_outphytracr,clock_start_outphytracr
     1204      INTEGER ti_init,dife,ti_inittype,ti_inittwrite
     1205      INTEGER ti_spla,ti_emis,ti_depo,ti_cltr,ti_ther
     1206      INTEGER ti_sedi,ti_gasp,ti_wetap,ti_cvltr,ti_lscs,ti_brop,ti_outs
     1207      INTEGER ti_nophytracr,clock_per_max
     1208      REAL tia_init,tia_inittype,tia_inittwrite
     1209      REAL tia_spla,tia_emis,tia_depo,tia_cltr,tia_ther
     1210      REAL tia_sedi,tia_gasp,tia_wetap,tia_cvltr,tia_lscs
     1211      REAL tia_brop,tia_outs
     1212      REAL tia_nophytracr
     1213 
     1214      SAVE tia_init,tia_inittype,tia_inittwrite
     1215      SAVE tia_spla,tia_emis,tia_depo,tia_cltr,tia_ther
     1216      SAVE tia_sedi,tia_gasp,tia_wetap,tia_cvltr,tia_lscs
     1217      SAVE tia_brop,tia_outs
     1218      SAVE ti_nophytracr
     1219      SAVE tia_nophytracr
     1220      SAVE clock_end_outphytracr,clock_start_outphytracr
     1221      SAVE clock_per_max
     1222      LOGICAL logitime
     1223!$OMP THREADPRIVATE(tia_init,tia_inittype,tia_inittwrite)
     1224!$OMP THREADPRIVATE(tia_spla,tia_emis,tia_depo,tia_cltr,tia_ther)
     1225!$OMP THREADPRIVATE(tia_sedi,tia_gasp,tia_wetap,tia_cvltr,tia_lscs)
     1226!$OMP THREADPRIVATE(tia_brop,tia_outs)
     1227!$OMP THREADPRIVATE(ti_nophytracr)
     1228!$OMP THREADPRIVATE(tia_nophytracr)
     1229!$OMP THREADPRIVATE(clock_end_outphytracr,clock_start_outphytracr)
     1230!$OMP THREADPRIVATE(clock_per_max)
     1231
     1232!     utils parallelization
     1233      REAL :: auxklon_glo(klon_glo)
     1234      INTEGER :: iauxklon_glo(klon_glo)
     1235      REAL, DIMENSION(klon_glo,nbp_lev) :: auxklonnbp_lev
     1236      REAL, DIMENSION(klon_glo,nbp_lev,nbtr)  :: auxklonklevnbtr_glo
     1237      REAL,DIMENSION(nbp_lon,nbp_lat) ::  zx_tmp_2d_glo
     1238      REAL,DIMENSION(nbp_lon,nbp_lat,nbp_lev) :: zx_tmp_3d_glo
     1239      REAL,DIMENSION(klon_glo) :: zx_tmp_fi2d_glo
     1240      REAL,DIMENSION(klon_glo , nbp_lev) :: zx_tmp_fi3d_glo
     1241      REAL,DIMENSION(klon_glo,nbtr) :: auxklonnbtr_glo
     1242
     1243
     1244
     1245      source_tr=0.
     1246
     1247
     1248
     1249      if (debutphy) then
     1250#ifdef IOPHYS_DUST
     1251         CALL iophys_ini
     1252#endif
     1253         nbreg_ind=1
     1254         nbreg_bb=1
     1255         nbreg_dust=1
     1256         nbreg_wstardust=1
     1257         CALL phytracr_spl_ini(klon,nbreg_ind,nbreg_bb,nbreg_dust,nbreg_wstardust)
     1258      endif
     1259
     1260
     1261#ifdef IOPHYS_DUST
     1262      do it=1,nbtr
     1263         write(str2,'(i2.2)') it
     1264         call iophys_ecrit('TRA'//str2,klev,'SOURCE','',tr_seri(:,:,it))
     1265      enddo
     1266#endif
     1267
     1268 
     1269
     1270
     1271  ijulday=jD_cur-jD_1jan+1
     1272  nbjour = 1
     1273
     1274  paramname_ind='ind'
     1275  paramname_bb='bb'
     1276  paramname_ff='ind'
     1277  paramname_dustacc='dustacc'
     1278  paramname_dustcoa='dustcoasco'
     1279  paramname_dustsco='dustcoasco'
     1280!  paramname_dustacc='dust'
     1281!  paramname_dustcoa='dust'
     1282!  paramname_dustsco='dust'
     1283  paramname_wstarBL='pwstarbl'
     1284  paramname_wstarWAKE='pwstarwake'
     1285  paramname_ssacc='ssacc'
     1286  paramname_sscoa='sscoa'
     1287
     1288  filescaleparams='modvalues.nc'
     1289!AS: debranchage de lecture des coefs d'assmilation de Jeronimo Escribano
     1290  IF("ASSIM"=="YES") THEN
     1291    CALL readscaleparamsnc_spl(scale_param_ind,                        &
     1292        nbreg_ind, paramname_ind,                                    &
     1293        scale_param_ff, nbreg_ind,paramname_ff,                      &
     1294        scale_param_bb, nbreg_bb,paramname_bb,                       &
     1295        scale_param_dustacc, nbreg_dust,paramname_dustacc,           &
     1296        scale_param_dustcoa, nbreg_dust,paramname_dustcoa,           &
     1297        scale_param_dustsco, nbreg_dust,paramname_dustsco,           &
     1298        param_wstarBLperregion, nbreg_wstardust, paramname_wstarBL, &
     1299        param_wstarWAKEperregion, nbreg_wstardust, paramname_wstarWAKE, &
     1300        scale_param_ssacc  ,  paramname_ssacc,                    &
     1301        scale_param_sscoa  ,  paramname_sscoa,                    &
     1302           filescaleparams,ijulday,jH_cur, pdtphys,debutphy)
     1303  ENDIF ! ASSIM
     1304!AS: le commentaire suivant "add seasalt" ne semble pas avoir ete mis en pratique.
     1305! Des fichiers regions_ssacc et _sscoa existent mais ne semblent pas lus.
     1306! Ca reste donc aux valeurs initialisées: nbreg_ss=1, scale_param_ss*=1, cf fichiers ss et modvalues
     1307!! add seasalt
     1308
     1309  print *,'JE : check scale_params'
     1310
     1311  print *, 'nbreg_ind', nbreg_ind   
     1312  print *, 'nbreg_dust', nbreg_dust 
     1313  print *, 'nbreg_bb', nbreg_bb   
     1314  print *, 'ind', scale_param_ind   
     1315  print *, 'dustacc', scale_param_dustacc 
     1316  print *, 'dustcoa', scale_param_dustcoa 
     1317  print *, 'dustsco', scale_param_dustsco
     1318  print *, 'wstardustBL', param_wstarBLperregion
     1319  print *, 'wstardustWAKE', param_wstarWAKEperregion
     1320  print *, 'ff', scale_param_ff 
     1321  print *, 'bb', scale_param_bb 
     1322  print *, 'ssacc', scale_param_ssacc
     1323  print *, 'sscoa', scale_param_sscoa
     1324
     1325  print *,'JE: before read_newemissions '
     1326  print *,'JE: jD_cur:',jD_cur,' ijulday:',ijulday,' jH_cur:',jH_cur,' pdtphys:',pdtphys
     1327  print *,'JE: now read_newemissions:'
     1328!AS: La ligne suivante fait planter a l'execution : lmt_so2ff_l pas initialise
     1329!  print *,'lmt_so2ff_l AVANT' , MINVAL(lmt_so2ff_l), MAXVAL(lmt_so2ff_l)
     1330  call read_newemissions(ijulday,jH_cur ,edgar, flag_dms,debutphy, & !I
     1331                         pdtphys, lafin, nbjour, pctsrf,  &       !I
     1332                         t_seri, rlat, rlon, &                         !I
     1333                         pmflxr, pmflxs, prfl, psfl, &            !I
     1334                                 u10m_ec, v10m_ec, dust_ec, &     !O
     1335                                 lmt_sea_salt, lmt_so2ff_l, &     !O
     1336                                 lmt_so2ff_h, lmt_so2nff, &       !O
     1337                                 lmt_so2ba, lmt_so2bb_l, lmt_so2bb_h, &  !O
     1338                                 lmt_so2volc_cont, lmt_altvolc_cont, &   !O
     1339                                 lmt_so2volc_expl, lmt_altvolc_expl, &   !O
     1340                                 lmt_dmsbio, lmt_h2sbio, lmt_dmsconc, &  !O
     1341                                 lmt_bcff, lmt_bcnff, lmt_bcbb_l, &      !O
     1342                                 lmt_bcbb_h, lmt_bcba, lmt_omff, &       !O
     1343                                 lmt_omnff, lmt_ombb_l, lmt_ombb_h, &    !O
     1344                                 lmt_omnat, lmt_omba)                    !O
     1345
     1346
     1347  print *,'Check emissions'
     1348  print *,'lmt_so2ff_l' , MINVAL(lmt_so2ff_l), MAXVAL(lmt_so2ff_l)
     1349  print *,'lmt_so2ff_h' , MINVAL(lmt_so2ff_h), MAXVAL(lmt_so2ff_h)
     1350  print *,'lmt_so2nff' , MINVAL(lmt_so2nff), MAXVAL(lmt_so2nff)
     1351  print *,'lmt_so2ba' , MINVAL(lmt_so2ba), MAXVAL(lmt_so2ba)
     1352  print *,'lmt_so2bb_l' , MINVAL(lmt_so2bb_l), MAXVAL(lmt_so2bb_l)
     1353  print *,'lmt_so2bb_h' , MINVAL(lmt_so2bb_h), MAXVAL(lmt_so2bb_h)
     1354  print *,'lmt_so2volc_cont' , MINVAL(lmt_so2volc_cont), MAXVAL(lmt_so2volc_cont)
     1355  print *,'lmt_altvolc_cont' , MINVAL(lmt_altvolc_cont), MAXVAL(lmt_altvolc_cont)
     1356  print *,'lmt_so2volc_expl' , MINVAL(lmt_so2volc_expl), MAXVAL(lmt_so2volc_expl)
     1357  print *,'lmt_altvolc_expl' , MINVAL(lmt_altvolc_expl), MAXVAL(lmt_altvolc_expl)
     1358  print *,'lmt_dmsbio' , MINVAL(lmt_dmsbio), MAXVAL(lmt_dmsbio)
     1359  print *,'lmt_h2sbio' , MINVAL(lmt_h2sbio), MAXVAL(lmt_h2sbio)
     1360  print *,'lmt_dmsconc' , MINVAL(lmt_dmsconc), MAXVAL(lmt_dmsconc)
     1361  print *,'lmt_bcff' , MINVAL(lmt_bcff), MAXVAL(lmt_bcff)
     1362  print *,'lmt_bcnff' , MINVAL(lmt_bcnff), MAXVAL(lmt_bcnff)
     1363  print *,'lmt_bcbb_l' , MINVAL(lmt_bcbb_l), MAXVAL(lmt_bcbb_l)
     1364  print *,'lmt_bcbb_h' , MINVAL(lmt_bcbb_h), MAXVAL(lmt_bcbb_h)
     1365  print *,'lmt_bcba' , MINVAL(lmt_bcba), MAXVAL(lmt_bcba)
     1366  print *,'lmt_omff' , MINVAL(lmt_omff), MAXVAL(lmt_omff)
     1367  print *,'lmt_omnff' , MINVAL(lmt_omnff), MAXVAL(lmt_omnff)
     1368  print *,'lmt_ombb_l' , MINVAL(lmt_ombb_l), MAXVAL(lmt_ombb_l)
     1369  print *,'lmt_ombb_h' , MINVAL(lmt_ombb_h), MAXVAL(lmt_ombb_h)
     1370  print *,'lmt_omnat' , MINVAL(lmt_omnat), MAXVAL(lmt_omnat)
     1371  print *,'lmt_omba' , MINVAL(lmt_omba), MAXVAL(lmt_omba)
     1372  print *,'JE iflag_con',iflag_conv
     1373
     1374
     1375!JE_dbg
     1376   do i=1,klon
     1377      tsol(i)=0.0
     1378      do j=1,nbsrf
     1379          tsol(i)=tsol(i)+ftsol(i,j)*pctsrf(i,j)
     1380      enddo
     1381   enddo
     1382
     1383
     1384!======================================================================
     1385!  INITIALISATIONS
     1386!======================================================================
     1387!             CALL checknanqfi(da(:,:),1.,-1.,' da_ before
     1388!     . phytracr_inphytracr')
     1389
     1390!
     1391! computing time
     1392!        logitime=.true.
     1393        logitime=.false.
     1394        IF (logitime) THEN
     1395        clock_start=0
     1396        clock_end=0
     1397        clock_rate=0
     1398       CALL SYSTEM_CLOCK(COUNT_RATE=clock_rate,COUNT_MAX=clock_per_max)
     1399        CALL SYSTEM_CLOCK(COUNT=clock_start_spla)
     1400        clock_start=clock_start_spla
     1401        clock_end_outphytracr=clock_start_spla
     1402        ENDIF
     1403
     1404
     1405! Definition of tracers index.
     1406      print*,'OK ON PASSSE BIEN LA'
     1407      CALL minmaxsource(source_tr,qmin,qmax,'A1 maxsource init phytracr')
     1408
     1409
     1410      IF (debutphy) THEN
     1411        id_prec=-1
     1412        id_fine=-1
     1413        id_coss=-1
     1414        id_codu=-1
     1415        id_scdu=-1
     1416       !print *,nbtr
     1417       do it=1,nbtr
     1418        print *, it, tname(it+nqo)
     1419        if (tname(it+nqo) == 'PREC' ) then
     1420            id_prec=it
     1421        endif
     1422        if (tname(it+nqo) == 'FINE' ) then
     1423            id_fine=it
     1424        endif
     1425        if (tname(it+nqo) == 'COSS' ) then
     1426            id_coss=it
     1427        endif
     1428        if (tname(it+nqo) == 'CODU' ) then
     1429            id_codu=it
     1430        endif
     1431        if (tname(it+nqo) == 'SCDU' ) then
     1432            id_scdu=it
     1433        endif
     1434       enddo
     1435       ! check consistency with dust emission scheme:
     1436       if (ok_chimeredust) then
     1437          if (.not.( id_scdu>0 .and. id_codu>0 .and. id_fine>0)) then
     1438             call abort_gcm('phytracr_mod', 'pb in ok_chimdust 0',1)
     1439          endif
     1440       else
     1441          if (id_scdu>0) then
     1442       call abort_gcm('phytracr_mod', 'pb in ok_chimdust 1 SCDU',1)
     1443          endif
     1444          if ( (id_codu .le. 0) .or. ( id_fine.le.0)  ) then 
     1445          call abort_gcm('phytracr_mod', 'pb in ok_chimdust 1',1)
     1446          endif
     1447       endif
     1448
     1449
     1450       !print *,id_prec,id_fine,id_coss,id_codu,id_scdu
     1451       ENDIF
     1452
     1453
     1454
     1455
     1456
     1457
     1458!---fraction of tracer that is convected (Tiedke)
     1459      xconv(:)=0.
     1460      if(id_prec>0)  xconv(id_prec)=0.8
     1461      if(id_fine>0)  xconv(id_fine)=0.5
     1462      if(id_coss>0)  xconv(id_coss)=0.5
     1463      if(id_codu>0)  xconv(id_codu)=0.6
     1464      if(id_scdu>0)  xconv(id_scdu)=0.6  !!JE fix
     1465
     1466      masse(:)=1.
     1467      if(id_prec>0)  masse(id_prec)=32.
     1468      if(id_fine>0)  masse(id_fine)=6.02e23
     1469      if(id_coss>0)  masse(id_coss)=6.02e23
     1470      if(id_codu>0)  masse(id_codu)=6.02e23
     1471      if(id_scdu>0)  masse(id_scdu)=6.02e23
     1472
     1473      henry(:)=0.
     1474      if(id_prec>0)  henry(id_prec)=1.4
     1475      if(id_fine>0)  henry(id_fine)=0.0
     1476      if(id_coss>0)  henry(id_coss)=0.0
     1477      if(id_codu>0)  henry(id_codu)=0.0
     1478      if(id_scdu>0)  henry(id_scdu)=0.0
     1479      !henry= (/1.4, 0.0, 0.0, 0.0/)
     1480      kk(:)=0.
     1481      if(id_prec>0)  kk(id_prec)=2900.
     1482      if(id_fine>0)  kk(id_fine)=0.0
     1483      if(id_coss>0)  kk(id_coss)=0.0
     1484      if(id_codu>0)  kk(id_codu)=0.0
     1485      if(id_scdu>0)  kk(id_scdu)=0.0
     1486      !kk = (/2900., 0., 0., 0./)
     1487      alpha_r(:)=0.
     1488      if(id_prec>0)  alpha_r(id_prec)=0.0
     1489      if(id_fine>0)  alpha_r(id_fine)=0.001
     1490      if(id_coss>0)  alpha_r(id_coss)=0.001
     1491      if(id_codu>0)  alpha_r(id_codu)=0.001
     1492      if(id_scdu>0)  alpha_r(id_scdu)=0.001  !JE fix
     1493      alpha_s(:)=0.
     1494      if(id_prec>0)  alpha_s(id_prec)=0.0
     1495      if(id_fine>0)  alpha_s(id_fine)=0.01
     1496      if(id_coss>0)  alpha_s(id_coss)=0.01
     1497      if(id_codu>0)  alpha_s(id_codu)=0.01
     1498      if(id_scdu>0)  alpha_s(id_scdu)=0.01  !JE fix
     1499
     1500!      alpha_r =  (/0., 0.001, 0.001, 0.001/)
     1501!      alpha_s = (/0., 0.01, 0.01, 0.01/)
     1502
     1503! nhl      DATA vdep_oce /0.7, 0.05, 1.2, 1.2/
     1504! nhl vdep_oce for tr1 is a weighted average of dms and so2 dep velocities
     1505      !vdep_oce = (/0.28, 0.28, 1.2, 1.2/)
     1506      vdep_oce(:)=0.
     1507      if(id_prec>0)  vdep_oce(id_prec) = 0.28
     1508      if(id_fine>0)  vdep_oce(id_fine) = 0.28
     1509      if(id_coss>0)  vdep_oce(id_coss) = 1.2
     1510      if(id_codu>0)  vdep_oce(id_codu) = 1.2
     1511      if(id_scdu>0)  vdep_oce(id_scdu) = 1.2
     1512      vdep_sic(:)=0.
     1513      if(id_prec>0)  vdep_sic(id_prec) = 0.2
     1514      if(id_fine>0)  vdep_sic(id_fine) = 0.17
     1515      if(id_coss>0)  vdep_sic(id_coss) = 1.2
     1516      if(id_codu>0)  vdep_sic(id_codu) = 1.2
     1517      if(id_scdu>0)  vdep_sic(id_scdu) = 1.2
     1518
     1519      !vdep_sic = (/0.2, 0.17, 1.2, 1.2/)     
     1520      !vdep_ter = (/0.3, 0.14, 1.2, 1.2/)
     1521      vdep_ter(:)=0.
     1522      if(id_prec>0)  vdep_ter(id_prec) = 0.3
     1523      if(id_fine>0)  vdep_ter(id_fine) = 0.14
     1524      if(id_coss>0)  vdep_ter(id_coss) = 1.2
     1525      if(id_codu>0)  vdep_ter(id_codu) = 1.2
     1526      if(id_scdu>0)  vdep_ter(id_scdu) = 1.2
     1527
     1528      vdep_lic(:)=0.
     1529      if(id_prec>0)  vdep_lic(id_prec) = 0.2
     1530      if(id_fine>0)  vdep_lic(id_fine) = 0.17
     1531      if(id_coss>0)  vdep_lic(id_coss) = 1.2
     1532      if(id_codu>0)  vdep_lic(id_codu) = 1.2
     1533      if(id_scdu>0)  vdep_lic(id_scdu) = 1.2
     1534
     1535
     1536      ! convective KE lessivage aer params:
     1537      ! AS: #DFB (Binta) a aussi teste ccntrAA_spla=ccntrENV_spla=0.9/1.0/0.9/0.9
     1538      !     mais effet negligeable sur l'AOD
     1539      ccntrAA_spla(:)=0.
     1540      if(id_prec>0)  ccntrAA_spla(id_prec)=-9999.
     1541      if(id_fine>0)  ccntrAA_spla(id_fine)=0.7
     1542      if(id_coss>0)  ccntrAA_spla(id_coss)=1.0
     1543      if(id_codu>0)  ccntrAA_spla(id_codu)=0.7
     1544      if(id_scdu>0)  ccntrAA_spla(id_scdu)=0.7
     1545
     1546      ccntrENV_spla(:)=0.
     1547      if(id_prec>0)  ccntrENV_spla(id_prec)=-9999.
     1548      if(id_fine>0)  ccntrENV_spla(id_fine)=0.7
     1549      if(id_coss>0)  ccntrENV_spla(id_coss)=1.0
     1550      if(id_codu>0)  ccntrENV_spla(id_codu)=0.7
     1551      if(id_scdu>0)  ccntrENV_spla(id_scdu)=0.7
     1552      ! #DFB
     1553      coefcoli_spla(:)=0.
     1554      if(id_prec>0)  coefcoli_spla(id_prec)=-9999.
     1555      if(id_fine>0)  coefcoli_spla(id_fine)=0.001
     1556      if(id_coss>0)  coefcoli_spla(id_coss)=0.001
     1557      if(id_codu>0)  coefcoli_spla(id_codu)=0.001
     1558      if(id_scdu>0)  coefcoli_spla(id_scdu)=0.001
     1559
     1560      !vdep_lic = (/0.2, 0.17, 1.2, 1.2/)     
     1561!
     1562
     1563      iscm3=.false.
     1564      if (debutphy) then
     1565!$OMP MASTER
     1566         CALL suphel
     1567         print *, 'let s check nbtr=', nbtr
     1568! JE before put in zero
     1569      IF (lminmax) THEN
     1570        DO it=1,nbtr
     1571        CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'nan init phytracr')
     1572        ENDDO       
     1573        DO it=1,nbtr
     1574        CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'minmax init phytracr')
     1575        ENDDO
     1576        CALL minmaxsource(source_tr,qmin,qmax,'maxsource init phytracr')
     1577      ENDIF
     1578! JE   initializon to cero the tracers     
     1579!         DO it=1, nbtr
     1580!            tr_seri(:,:,it)=0.0
     1581!         ENDDO
     1582! JE end     
     1583! Initializing to zero tr_seri for comparison purposes
     1584!        tr_seri(:,:,:)=0.0
     1585!
     1586!        DO it=1,nbtr
     1587!           trm_aux(it)=0.0
     1588!           src_aux(it)=0.0
     1589!           diag_trm(it)=0.0
     1590!           diag_drydep(it)=0.0
     1591!           diag_wetdep(it)=0.0
     1592!           diag_cvtdep(it)=0.0
     1593!           diag_emissn(it)=0.0
     1594!        ENDDO
     1595!        diag_g2part=0.0
     1596         print *,'PREPARE FILES TO SAVE VARIABLES'
     1597!
     1598         nbjour=30
     1599         ecrit_tra =   NINT(86400./pdtphys)                    !--1-day  average
     1600         ecrit_tra_h = NINT(86400./pdtphys*0.25)               !--6-hour average
     1601         ecrit_tra_m = NINT(86400./pdtphys*FLOAT(nbjour))      !--1-mth  average
     1602         print *,'ecrit_tra=', pdtphys, ecrit_tra
     1603
     1604!!AS deleting lines
     1605!!         IF (ok_histrac) THEN
     1606!!           IF (is_mpi_root .AND. is_omp_root) THEN
     1607!!-----many deleted lines----
     1608!!!       nbjour=1
     1609!!         ENDIF ! mpi root
     1610!!         ENDIF !--ok_histrac
     1611
     1612!$OMP END MASTER
     1613!$OMP BARRIER
     1614      endif ! debutphy
     1615!
     1616!======================================================================
     1617! Initialisations
     1618!======================================================================
     1619!
     1620!
     1621! je  KE init
     1622      IF (debutphy) THEN
     1623!$OMP MASTER
     1624
     1625      ALLOCATE(d_tr_dry(klon,nbtr))
     1626      ALLOCATE(flux_tr_dry(klon,nbtr),d_tr_dec(klon,klev,nbtr))
     1627      ALLOCATE(qPrls(klon,nbtr),qPr(klon,klev,nbtr))
     1628      ALLOCATE(qDi(klon,klev,nbtr))
     1629      ALLOCATE(qPa(klon,klev,nbtr),qMel(klon,klev,nbtr))
     1630      ALLOCATE(qTrdi(klon,klev,nbtr),dtrcvMA(klon,klev,nbtr))
     1631
     1632!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     1633!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    20861634       ALLOCATE(d_tr_cv_o(klon,klev,nbtr))
    20871635       ALLOCATE(d_tr_trsp_o(klon,klev,nbtr))
     
    21101658       ALLOCATE(masque_aqua(klon)) 
    21111659       ALLOCATE(masque_terra(klon)) 
    2112 !       ALLOCATE(aod550_aqua(klon)) 
    2113 !       ALLOCATE(aod550_terra(klon)) 
    2114 !       ALLOCATE(aod670_aqua(klon)) 
    2115 !       ALLOCATE(aod670_terra(klon)) 
    2116 !       ALLOCATE(aod865_aqua(klon)) 
    2117 !       ALLOCATE(aod865_terra(klon))
    2118 
    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)) 
    21501660 
    21511661
    21521662       masque_aqua(:)=0
    21531663       masque_terra(:)=0
    2154 !       aod550_aqua(:)=0.
    2155 !       aod550_terra(:)=0.
    2156 !       aod670_aqua(:)=0.
    2157 !       aod670_terra(:)=0.
    2158 !       aod865_aqua(:)=0.
    2159 !       aod865_terra(:)=0.
    21601664
    21611665      aod550_terra(:)=0. 
     
    23651869
    23661870
    2367 
    2368        IF (debutphy) then
    2369 
     1871      IF (debutphy) then
     1872
     1873! AS: initialisation des indices par point de grille physique iregion_*
     1874! (variables tenant de l'assimilation, a eliminer dans un 2eme temps)
     1875       iregion_dust(:)=1
     1876       iregion_ind(:)=1
     1877       iregion_bb(:)=1
     1878       iregion_wstardust(:)=1
     1879
     1880!AS: lecture des indices dans fichiers "regions_*" eliminee par IF("ASSIM"="YES") (faux donc)
     1881       IF("ASSIM"=="YES") THEN
    23701882      c_FullName1='regions_dustacc'
    23711883      !c_FullName1='regions_dust'
     
    24501962      CLOSE(76)
    24511963      CLOSE(77)
     1964      CLOSE(95)
    24521965
    24531966      ENDIF ! mpi root
    24541967!$OMP END MASTER
    24551968!$OMP BARRIER
     1969
     1970      ENDIF  ! ASSIM
    24561971
    24571972      ENDIF  ! debutphy
     
    36823197! choix du lessivage
    36833198      IF (iflag_lscav .EQ. 3 .OR. iflag_lscav .EQ. 4) THEN
    3684       print *,'JE iflag_lscav',iflag_lscav
    3685        DO it = 1, nbtr
     3199      !IF (.false.) THEN  ! test #DFB (Binta) sans lsc_scav_spl
     3200        print *,'JE iflag_lscav',iflag_lscav
     3201        DO it = 1, nbtr
    36863202
    36873203!       incloud scavenging and removal by large scale rain ! orig : ql_incl
     
    36943210!     .               t_seri,tr_seri,d_tr_insc,
    36953211!     .               d_tr_bcscav,d_tr_evapls,qPrls)
    3696        CALL lsc_scav_spl(pdtphys,it,iflag_lscav,ql_incl,prfl,psfl,  &
     3212          CALL lsc_scav_spl(pdtphys,it,iflag_lscav,ql_incl,prfl,psfl,  &
    36973213                    rneb,beta_fisrt, beta_v1,pplay,paprs,      &
    36983214                    t_seri,tr_seri,d_tr_insc,                  &
     
    37023218
    37033219!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) &
     3220          DO k = 1, klev
     3221           DO i = 1, klon
     3222                d_tr_ls(i,k,it)=d_tr_insc(i,k,it)+d_tr_bcscav(i,k,it) &
    37073223                        +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
     3224                tr_seri(i,k,it)=tr_seri(i,k,it)+d_tr_ls(i,k,it)
     3225                         tmp_var(i,k)=d_tr_ls(i,k,it)
     3226           ENDDO
     3227          ENDDO
     3228
     3229          CALL kg_to_cm3(pplay,t_seri,tmp_var)
     3230
     3231          DO k=1,klev
     3232           DO i=1,klon
    37163233            his_dhkelsc(i,it)=his_dhkelsc(i,it)-tmp_var(i,k)    &
    37173234                     /RNAVO*masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys
    37183235     
    3719             END DO
    3720          END DO
    3721 
    3722        END DO  !tr
     3236           END DO
     3237          END DO
     3238
     3239        END DO  !it=1,nbtr
     3240
    37233241      ELSE
    3724         his_dhkelsc(i,it)=0.0
    37253242        print *,'WARNING: NO lsc_scav, Please choose iflag_lscav=3 or 4'
    3726        ENDIF !iflag_lscav
     3243        DO it = 1, nbtr
     3244          DO i=1,klon
     3245            his_dhkelsc(i,it)=0.0
     3246          END DO  ! klon
     3247         END DO  !it=1,nbtr
     3248      ENDIF !iflag_lscav
    37273249
    37283250       print *,' AFTER lsc_scav '
     
    38443366       !new utc day: put in 0 everything
    38453367!JE20150518<<
    3846 !       aod550_aqua(:) =0.
    3847 !       aod550_terra(:) =0.
    3848 !       aod670_aqua(:) =0.
    3849 !       aod670_terra(:) =0.
    3850 !       aod865_aqua(:) =0.
    3851 !       aod865_terra(:) =0.
    38523368       masque_aqua(:) =0
    38533369       masque_terra(:) =0
     
    38863402
    38873403      DO i=1,klon
    3888 !         aod550_aqua(i)=aod550_aqua(i)+   &
    3889 !                       masque_aqua_cur(i)*diff_aod550_tot(i)
    3890 !         aod670_aqua(i)=aod670_aqua(i)+   &
    3891 !                        masque_aqua_cur(i)*diag_aod670_tot(i)
    3892 !         aod865_aqua(i)=aod865_aqua(i)+   &
    3893 !                       masque_aqua_cur(i)*diag_aod865_tot(i)
    38943404
    38953405       aod550_terra(i)=aod550_terra(i)+   &
     
    39563466       aod865_dustsco_aqua(i)= aod865_dustsco_aqua(i) + &
    39573467                       masque_aqua_cur(i)*diag_aod865_dustsco(i)
    3958 !         aod550_terra(i)=aod550_terra(i)+  &
    3959 !                       masque_terra_cur(i)*diff_aod550_tot(i)
    3960 !         aod670_terra(i)=aod670_terra(i)+  &
    3961 !                       masque_terra_cur(i)*diag_aod670_tot(i)
    3962 !         aod865_terra(i)=aod865_terra(i)+   &
    3963 !                       masque_terra_cur(i)*diag_aod865_tot(i)
    3964          masque_aqua(i)=masque_aqua(i)+masque_aqua_cur(i)
     3468
     3469               masque_aqua(i)=masque_aqua(i)+masque_aqua_cur(i)
    39653470         masque_terra(i)=masque_terra(i)+masque_terra_cur(i)
    39663471      ENDDO
     
    40353540                   aod865_dustsco_terra(i)= -999.
    40363541               ENDIF
    4037 !              IF (masque_terra(i).GT. 0) THEN
    4038 !                   aod550_terra(i) = aod550_terra(i)/masque_terra(i)
    4039 !                   aod670_terra(i)=aod670_terra(i)/masque_terra(i)
    4040 !                   aod865_terra(i)=aod865_terra(i)/masque_terra(i)
    4041 !
    4042 !               ELSE
    4043 !                   aod550_terra(i) = -999.
    4044 !                   aod670_terra(i) = -999.
    4045 !                   aod865_terra(i) = -999.
    4046 !               ENDIF
    40473542          ENDDO         
    4048 !      !write  dbg
    4049 !       CALL writefield_phy("aod550_aqua",aod550_aqua,1)
    4050 !       CALL writefield_phy("aod550_terra",aod550_terra,1)
    4051 !       CALL writefield_phy("masque_aqua",float(masque_aqua),1)
    4052 !       CALL writefield_phy("masque_terra",float(masque_terra),1)
    4053 
    4054 
    4055       IF (ok_histrac) THEN
    4056 !      write in output file
    4057       call gather(aod550_aqua,aod550_aqua_glo)
    4058       call gather(aod550_terra,aod550_terra_glo)
    4059       call gather(aod670_aqua,aod670_aqua_glo)
    4060       call gather(aod670_terra,aod670_terra_glo)
    4061       call gather(aod865_aqua,aod865_aqua_glo)
    4062       call gather(aod865_terra,aod865_terra_glo)
    4063 
    4064 !$OMP MASTER
    4065       IF (is_mpi_root .AND. is_omp_root) THEN
    4066 
    4067       CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, aod550_aqua_glo ,zx_tmp_2d)
    4068       CALL histwrite(nid_tra3,"taue550_aqua",itra,zx_tmp_2d, &
    4069                                       nbp_lon*(nbp_lat),ndex2d)
    4070 
    4071       CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, aod550_terra_glo ,zx_tmp_2d)
    4072       CALL histwrite(nid_tra3,"taue550_terra",itra,zx_tmp_2d, &
    4073                                       nbp_lon*(nbp_lat),ndex2d)
    4074       CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, aod670_aqua_glo ,zx_tmp_2d)
    4075       CALL histwrite(nid_tra3,"taue670_aqua",itra,zx_tmp_2d, &
    4076                                       nbp_lon*(nbp_lat),ndex2d)
    4077       CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, aod670_terra_glo ,zx_tmp_2d)
    4078       CALL histwrite(nid_tra3,"taue670_terra",itra,zx_tmp_2d, &
    4079                                       nbp_lon*(nbp_lat),ndex2d)
    4080 
    4081       CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, aod865_aqua_glo ,zx_tmp_2d)
    4082       CALL histwrite(nid_tra3,"taue865_aqua",itra,zx_tmp_2d, &
    4083                                       nbp_lon*(nbp_lat),ndex2d)
    4084       CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, aod865_terra_glo ,zx_tmp_2d)
    4085       CALL histwrite(nid_tra3,"taue865_terra",itra,zx_tmp_2d, &
    4086                                       nbp_lon*(nbp_lat),ndex2d)
    4087       ENDIF
    4088 !$OMP END MASTER
    4089 !$OMP BARRIER
    4090       ENDIF
    4091 !       !put in 0 everything
    4092 !       aod550_aqua(:) =0.
    4093 !       aod550_terra(:) =0.
    4094 !       aod670_aqua(:) =0.
    4095 !       aod670_terra(:) =0.
    4096 !       aod865_aqua(:) =0.
    4097 !       aod865_terra(:) =0.
    4098 !       masque_aqua(:) =0
    4099 !       masque_terra(:) =0
    4100       ENDIF
     3543
     3544!!AS deleting lines
     3545!!      IF (ok_histrac) THEN
     3546!!!!      write in output file
     3547!!----many deleted lines
     3548!!      ENDIF  !mpi_root
     3549!!!$OMP END MASTER
     3550!!!$OMP BARRIER
     3551!!      ENDIF  !--ok_histrac
     3552
     3553      ENDIF ! jH_cur...
    41013554
    41023555
     
    41383591!  SAVING AEROSOL RELATED VARIABLES INTO FILE
    41393592!======================================================================
    4140 !
    4141 !JE20141224      IF (ok_histrac) THEN
    41423593!
    41433594      ndex2d = 0
     
    42753726         fluxss(i)=fluxssfine(i)+fluxsscoa(i)
    42763727      ENDDO
     3728
    42773729!      prepare outputs cvltr
    42783730
     
    44713923      ENDDO
    44723924
    4473       IF (ok_histrac) THEN
    4474 !
    4475 ! SAVING VARIABLES IN TRACEUR
    4476 !
    4477      call gather(diff_aod550_tot  ,auxklon_glo )
    4478 !$OMP MASTER
    4479       IF (is_mpi_root .AND. is_omp_root) THEN
    4480      CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, auxklon_glo ,zx_tmp_2d_glo)
    4481      CALL histwrite(nid_tra3,"taue550",itra,zx_tmp_2d_glo,                 &
    4482                                       nbp_lon*(nbp_lat),ndex2d)             
    4483       ENDIF ! mpi root
    4484 !$OMP END MASTER
    4485 !$OMP BARRIER
    4486      call gather( diag_aod670_tot  , auxklon_glo )
    4487 !$OMP MASTER
    4488       IF (is_mpi_root .AND. is_omp_root) THEN
    4489      CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, auxklon_glo,zx_tmp_2d_glo)     
    4490      CALL histwrite(nid_tra3,"taue670",itra,zx_tmp_2d_glo,                 &   
    4491                                       nbp_lon*(nbp_lat),ndex2d)             
    4492 !                                                                       
    4493       ENDIF ! mpi root
    4494 !$OMP END MASTER
    4495 !$OMP BARRIER
    4496      call gather( diag_aod865_tot  , auxklon_glo )
    4497 !$OMP MASTER
    4498       IF (is_mpi_root .AND. is_omp_root) THEN
    4499      CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, auxklon_glo,zx_tmp_2d_glo)     
    4500      CALL histwrite(nid_tra3,"taue865",itra,zx_tmp_2d_glo,                 & 
    4501                                       nbp_lon*(nbp_lat),ndex2d)             
    4502 !                                                                       
    4503       ENDIF ! mpi root
    4504 !$OMP END MASTER
    4505 !$OMP BARRIER
    4506      call gather(  diff_aod550_tr2 , auxklon_glo )
    4507 !$OMP MASTER
    4508       IF (is_mpi_root .AND. is_omp_root) THEN
    4509      CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, auxklon_glo,zx_tmp_2d_glo)     
    4510      CALL histwrite(nid_tra3,"taue550_tr2",itra,zx_tmp_2d_glo,             & 
    4511                                       nbp_lon*(nbp_lat),ndex2d)             
    4512 !                                                                       
    4513       ENDIF ! mpi root
    4514 !$OMP END MASTER
    4515 !$OMP BARRIER
    4516      call gather(  diag_aod670_tr2 , auxklon_glo )
    4517 !$OMP MASTER
    4518       IF (is_mpi_root .AND. is_omp_root) THEN
    4519      CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, auxklon_glo,zx_tmp_2d_glo)     
    4520      CALL histwrite(nid_tra3,"taue670_tr2",itra,zx_tmp_2d_glo,             & 
    4521                                       nbp_lon*(nbp_lat),ndex2d)             
    4522 !                                                                       
    4523       ENDIF ! mpi root
    4524 !$OMP END MASTER
    4525 !$OMP BARRIER
    4526      call gather( diag_aod865_tr2  , auxklon_glo )
    4527 !$OMP MASTER
    4528       IF (is_mpi_root .AND. is_omp_root) THEN
    4529      CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, auxklon_glo,zx_tmp_2d_glo)     
    4530      CALL histwrite(nid_tra3,"taue865_tr2",itra,zx_tmp_2d_glo,             & 
    4531                                       nbp_lon*(nbp_lat),ndex2d)             
    4532 !                                                                       
    4533       ENDIF ! mpi root
    4534 !$OMP END MASTER
    4535 !$OMP BARRIER
    4536      call gather(  diag_aod550_ss, auxklon_glo )
    4537 !$OMP MASTER
    4538       IF (is_mpi_root .AND. is_omp_root) THEN
    4539      CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, auxklon_glo ,zx_tmp_2d_glo)     
    4540      CALL histwrite(nid_tra3,"taue550_ss",itra,zx_tmp_2d_glo,              & 
    4541                                       nbp_lon*(nbp_lat),ndex2d)             
    4542 !                                                                       
    4543       ENDIF ! mpi root
    4544 !$OMP END MASTER
    4545 !$OMP BARRIER
    4546      call gather( diag_aod670_ss , auxklon_glo )
    4547 !$OMP MASTER
    4548       IF (is_mpi_root .AND. is_omp_root) THEN
    4549      CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, auxklon_glo ,zx_tmp_2d_glo)     
    4550      CALL histwrite(nid_tra3,"taue670_ss",itra,zx_tmp_2d_glo,              & 
    4551                                       nbp_lon*(nbp_lat),ndex2d)             
    4552 !                                                                       
    4553       ENDIF ! mpi root
    4554 !$OMP END MASTER
    4555 !$OMP BARRIER
    4556      call gather( diag_aod865_ss, auxklon_glo )
    4557 !$OMP MASTER
    4558       IF (is_mpi_root .AND. is_omp_root) THEN
    4559      CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, auxklon_glo ,zx_tmp_2d_glo)     
    4560      CALL histwrite(nid_tra3,"taue865_ss",itra,zx_tmp_2d_glo,              & 
    4561                                       nbp_lon*(nbp_lat),ndex2d)             
    4562 !                                                                       
    4563       ENDIF ! mpi root
    4564 !$OMP END MASTER
    4565 !$OMP BARRIER
    4566      call gather( diag_aod550_dust, auxklon_glo )
    4567 !$OMP MASTER
    4568       IF (is_mpi_root .AND. is_omp_root) THEN
    4569      CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, auxklon_glo ,zx_tmp_2d_glo)   
    4570      CALL histwrite(nid_tra3,"taue550_dust",itra,zx_tmp_2d_glo,             &
    4571                                       nbp_lon*(nbp_lat),ndex2d)               
    4572 !                                                                       
    4573       ENDIF ! mpi root
    4574 !$OMP END MASTER
    4575 !$OMP BARRIER
    4576      call gather( diag_aod670_dust, auxklon_glo )
    4577 !$OMP MASTER
    4578       IF (is_mpi_root .AND. is_omp_root) THEN
    4579      CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, auxklon_glo ,zx_tmp_2d_glo)     
    4580      CALL histwrite(nid_tra3,"taue670_dust",itra,zx_tmp_2d_glo,             & 
    4581                                       nbp_lon*(nbp_lat),ndex2d)               
    4582 !                                                                       
    4583       ENDIF ! mpi root
    4584 !$OMP END MASTER
    4585 !$OMP BARRIER
    4586      call gather( diag_aod865_dust, auxklon_glo )
    4587 !$OMP MASTER
    4588       IF (is_mpi_root .AND. is_omp_root) THEN
    4589      CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, auxklon_glo ,zx_tmp_2d_glo)     
    4590      CALL histwrite(nid_tra3,"taue865_dust",itra,zx_tmp_2d_glo,             & 
    4591                                       nbp_lon*(nbp_lat),ndex2d)               
    4592 !                                                                       
    4593       ENDIF ! mpi root
    4594 !$OMP END MASTER
    4595 !$OMP BARRIER
    4596      call gather( diag_aod550_dustsco, auxklon_glo )
    4597 !$OMP MASTER
    4598       IF (is_mpi_root .AND. is_omp_root) THEN
    4599      CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, auxklon_glo ,zx_tmp_2d_glo) 
    4600      CALL histwrite(nid_tra3,"taue550_dustsco",itra,zx_tmp_2d_glo,          & 
    4601                                       nbp_lon*(nbp_lat),ndex2d)               
    4602 !                                                                       
    4603       ENDIF ! mpi root
    4604 !$OMP END MASTER
    4605 !$OMP BARRIER
    4606      call gather( diag_aod670_dustsco, auxklon_glo )
    4607 !$OMP MASTER
    4608       IF (is_mpi_root .AND. is_omp_root) THEN
    4609      CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, auxklon_glo ,zx_tmp_2d_glo) 
    4610      CALL histwrite(nid_tra3,"taue670_dustsco",itra,zx_tmp_2d_glo,          & 
    4611                                       nbp_lon*(nbp_lat),ndex2d)               
    4612 !                                                                       
    4613       ENDIF ! mpi root
    4614 !$OMP END MASTER
    4615 !$OMP BARRIER
    4616      call gather( diag_aod865_dustsco, auxklon_glo )
    4617 !$OMP MASTER
    4618       IF (is_mpi_root .AND. is_omp_root) THEN
    4619      CALL gr_fi_ecrit(1, klon_glo,nbp_lon,nbp_lat, auxklon_glo ,zx_tmp_2d_glo) 
    4620      CALL histwrite(nid_tra3,"taue865_dustsco",itra,zx_tmp_2d_glo,          & 
    4621                                       nbp_lon*(nbp_lat),ndex2d)               
    4622       ENDIF ! mpi root
    4623 !$OMP END MASTER
    4624 !$OMP BARRIER
    4625                                                                          
    4626 !$OMP MASTER
    4627      DO it=1,nbtr                                                       
    4628 !                                                                       
    4629      WRITE(str2,'(i2.2)') it
    4630 !
    4631      call gather( trm, auxklonnbtr_glo )
    4632 ! !$OMP MASTER
    4633       IF (is_mpi_root .AND. is_omp_root) THEN
    4634      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklonnbtr_glo(1,it) , zx_tmp_2d_glo)
    4635      CALL histwrite(nid_tra3,"trm"//str2,itra,zx_tmp_2d_glo,              &
    4636                                          nbp_lon*(nbp_lat),ndex2d)         
    4637 !                                                                     
    4638       ENDIF ! mpi root
    4639 ! !$OMP END MASTER
    4640 ! !$OMP BARRIER
    4641      call gather( sconc_seri, auxklonnbtr_glo )
    4642 ! !$OMP MASTER
    4643       IF (is_mpi_root .AND. is_omp_root) THEN
    4644      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklonnbtr_glo(1,it) ,zx_tmp_2d_glo)     
    4645      CALL histwrite(nid_tra3,"sconc"//str2,itra,zx_tmp_2d_glo,            & 
    4646                                          nbp_lon*(nbp_lat),ndex2d)         
    4647       ENDIF ! mpi root
    4648 ! !$OMP END MASTER
    4649 ! !$OMP BARRIER
    4650 !                                                                     
    4651 ! SAVING VARIABLES IN LESSIVAGE                                         
    4652 !                                                                       
    4653      call gather( flux_tr, auxklonnbtr_glo )
    4654 ! !$OMP MASTER
    4655       IF (is_mpi_root .AND. is_omp_root) THEN
    4656      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklonnbtr_glo(1,it) ,zx_tmp_2d_glo)
    4657      CALL histwrite(nid_tra2,"flux"//str2,itra,zx_tmp_2d_glo,               &
    4658                     nbp_lon*(nbp_lat),ndex2d)                                 
    4659 !                                                                       
    4660       ENDIF ! mpi root
    4661 ! !$OMP END MASTER
    4662 ! !$OMP BARRIER
    4663      call gather( his_ds, auxklonnbtr_glo )
    4664 !! $OMP MASTER
    4665       IF (is_mpi_root .AND. is_omp_root) THEN
    4666      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklonnbtr_glo(1,it) ,zx_tmp_2d_glo)           
    4667      CALL histwrite(nid_tra2,"ds"//str2,itra,zx_tmp_2d_glo,                 & 
    4668                     nbp_lon*(nbp_lat),ndex2d)                                 
    4669 !                                                                       
    4670       ENDIF
    4671 ! !$OMP END MASTER
    4672 ! !$OMP BARRIER
    4673       ENDDO
    4674 
    4675      DO it=1,nbtr
    4676      WRITE(str2,'(i2.2)') it
    4677       DO i=1, klon                                                       
    4678        zx_tmp_fi2d(i) = his_dhlsc(i,it)+his_dhcon(i,it)+               & 
    4679                         his_dhbclsc(i,it)+his_dhbccon(i,it)
    4680        his_dh(i,it)= his_dhlsc(i,it)+his_dhcon(i,it)+               & 
    4681                    his_dhbclsc(i,it)+his_dhbccon(i,it)
    4682 
    4683       ENDDO
    4684 !
    4685      call gather( zx_tmp_fi2d, auxklon_glo )
    4686 ! !$OMP MASTER
    4687       IF (is_mpi_root .AND. is_omp_root) THEN
    4688      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)
    4689      CALL histwrite(nid_tra2,"dh"//str2,itra,zx_tmp_2d_glo,                  &
    4690                     nbp_lon*(nbp_lat),ndex2d)                                 
    4691 !                                                                         
    4692       ENDIF ! mpi root
    4693 ! !$OMP END MASTER
    4694 ! !$OMP BARRIER
    4695      call gather( his_dhkecv, auxklonnbtr_glo )
    4696 ! !$OMP MASTER
    4697       IF (is_mpi_root .AND. is_omp_root) THEN
    4698      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklonnbtr_glo(1,it) ,zx_tmp_2d_glo)       
    4699      CALL histwrite(nid_tra2,"dhkecv"//str2,itra,zx_tmp_2d_glo,              & 
    4700                     nbp_lon*(nbp_lat),ndex2d)       
    4701 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    4702 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!                           
    4703 !                                                                         
    4704       ENDIF ! mpi root
    4705 ! !$OMP END MASTER
    4706 ! !$OMP BARRIER
    4707      call gather( his_dhkelsc, auxklonnbtr_glo )
    4708 ! !$OMP MASTER
    4709       IF (is_mpi_root .AND. is_omp_root) THEN
    4710      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklonnbtr_glo(1,it) ,zx_tmp_2d_glo)       
    4711      CALL histwrite(nid_tra2,"dhkelsc"//str2,itra,zx_tmp_2d_glo,             & 
    4712                     nbp_lon*(nbp_lat),ndex2d)                                 
    4713 !                                                                         
    4714                                                                          
    4715       ENDIF ! mpi root
    4716 ! !$OMP END MASTER
    4717 ! !$OMP BARRIER
    4718 !    call gather( d_tr_cv_o,  auxklonklevnbtr_glo )
    4719      call gather( d_tr_cv,  auxklonklevnbtr_glo )
    4720 ! !$OMP MASTER
    4721       IF (is_mpi_root .AND. is_omp_root) THEN
    4722      CALL gr_fi_ecrit(nbp_lev,klon_glo,nbp_lon,nbp_lat,auxklonklevnbtr_glo(1,1,it) ,             & 
    4723                       zx_tmp_3d_glo)                                         
    4724      CALL histwrite(nid_tra2,"d_tr_cv"//str2,itra,zx_tmp_3d_glo,             & 
    4725                                   nbp_lon*(nbp_lat)*nbp_lev,ndex3d)                 
    4726 !
    4727       ENDIF ! mpi root
    4728 ! !$OMP END MASTER
    4729 ! !$OMP BARRIER
    4730      call gather( d_tr_trsp_o, auxklonklevnbtr_glo )
    4731 ! !$OMP MASTER
    4732       IF (is_mpi_root .AND. is_omp_root) THEN
    4733      CALL gr_fi_ecrit(nbp_lev,klon_glo,nbp_lon,nbp_lat,auxklonklevnbtr_glo(1,1,it) ,           &   
    4734                       zx_tmp_3d_glo)                                           
    4735      CALL histwrite(nid_tra2,"d_tr_trsp"//str2,itra,zx_tmp_3d_glo,           &   
    4736                                   nbp_lon*(nbp_lat)*nbp_lev,ndex3d)                 
    4737 !
    4738       ENDIF ! mpi root
    4739 ! !$OMP END MASTER
    4740 ! !$OMP BARRIER
    4741      call gather( d_tr_sscav_o, auxklonklevnbtr_glo )
    4742 ! !$OMP MASTER
    4743       IF (is_mpi_root .AND. is_omp_root) THEN
    4744      CALL gr_fi_ecrit(nbp_lev,klon_glo,nbp_lon,nbp_lat,auxklonklevnbtr_glo(1,1,it) ,          &   
    4745                       zx_tmp_3d_glo)                                           
    4746      CALL histwrite(nid_tra2,"d_tr_sscav"//str2,itra,zx_tmp_3d_glo,          &   
    4747                                   nbp_lon*(nbp_lat)*nbp_lev,ndex3d)                 
    4748 !
    4749       ENDIF ! mpi root
    4750 ! !$OMP END MASTER
    4751 ! !$OMP BARRIER
    4752      call gather( d_tr_sat_o, auxklonklevnbtr_glo )
    4753 ! !$OMP MASTER
    4754       IF (is_mpi_root .AND. is_omp_root) THEN
    4755      CALL gr_fi_ecrit(nbp_lev,klon_glo,nbp_lon,nbp_lat,auxklonklevnbtr_glo(1,1,it) ,            &   
    4756                       zx_tmp_3d_glo)                                           
    4757      CALL histwrite(nid_tra2,"d_tr_sat"//str2,itra,zx_tmp_3d_glo,            &   
    4758                                   nbp_lon*(nbp_lat)*nbp_lev,ndex3d)                 
    4759 !
    4760       ENDIF ! mpi root
    4761 ! !$OMP END MASTER
    4762 ! !$OMP BARRIER
    4763      call gather( d_tr_uscav_o, auxklonklevnbtr_glo )
    4764 ! !$OMP MASTER
    4765       IF (is_mpi_root .AND. is_omp_root) THEN
    4766      CALL gr_fi_ecrit(nbp_lev,klon_glo,nbp_lon,nbp_lat,auxklonklevnbtr_glo(1,1,it) ,          &   
    4767                        zx_tmp_3d_glo)                                           
    4768      CALL histwrite(nid_tra2,"d_tr_uscav"//str2,itra,zx_tmp_3d_glo,          &   
    4769                                   nbp_lon*(nbp_lat)*nbp_lev,ndex3d)                 
    4770 !                                                                           
    4771       ENDIF ! mpi root
    4772 ! !$OMP END MASTER
    4773 ! !$OMP BARRIER
    4774 
    4775 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    4776         !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    4777      call gather( d_tr_insc_o, auxklonklevnbtr_glo )
    4778 ! !$OMP MASTER
    4779       IF (is_mpi_root .AND. is_omp_root) THEN
    4780      CALL gr_fi_ecrit(nbp_lev,klon_glo,nbp_lon,nbp_lat,auxklonklevnbtr_glo(1,1,it) ,          &   
    4781                        zx_tmp_3d_glo)                                           
    4782      CALL histwrite(nid_tra2,"d_tr_insc"//str2,itra,zx_tmp_3d_glo,          &   
    4783                                   nbp_lon*(nbp_lat)*nbp_lev,ndex3d)                 
    4784 !                                                                           
    4785       ENDIF ! mpi root
    4786 ! !$OMP END MASTER
    4787 ! !$OMP BARRIER
    4788      
    4789       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    4790      call gather( d_tr_bcscav_o, auxklonklevnbtr_glo )
    4791 ! !$OMP MASTER
    4792       IF (is_mpi_root .AND. is_omp_root) THEN
    4793      CALL gr_fi_ecrit(nbp_lev,klon_glo,nbp_lon,nbp_lat,auxklonklevnbtr_glo(1,1,it) ,          &   
    4794                        zx_tmp_3d_glo)                                           
    4795      CALL histwrite(nid_tra2,"d_tr_bcscav"//str2,itra,zx_tmp_3d_glo,          &   
    4796                                   nbp_lon*(nbp_lat)*nbp_lev,ndex3d)                 
    4797 !                                                                           
    4798       ENDIF ! mpi root
    4799 ! !$OMP END MASTER
    4800 ! !$OMP BARRIER
    4801       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    4802      call gather( d_tr_evapls_o, auxklonklevnbtr_glo )
    4803 ! !$OMP MASTER
    4804       IF (is_mpi_root .AND. is_omp_root) THEN
    4805      CALL gr_fi_ecrit(nbp_lev,klon_glo,nbp_lon,nbp_lat,auxklonklevnbtr_glo(1,1,it) ,          &   
    4806                        zx_tmp_3d_glo)                                           
    4807      CALL histwrite(nid_tra2,"d_tr_evapls"//str2,itra,zx_tmp_3d_glo,          &   
    4808                                   nbp_lon*(nbp_lat)*nbp_lev,ndex3d)                 
    4809 !                                                                           
    4810       ENDIF ! mpi root
    4811 ! !$OMP END MASTER
    4812 ! !$OMP BARRIER
    4813       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    4814 !    call gather( d_tr_ls_o, auxklonklevnbtr_glo )
    4815      call gather( d_tr_ls, auxklonklevnbtr_glo )
    4816 ! !$OMP MASTER
    4817       IF (is_mpi_root .AND. is_omp_root) THEN
    4818      CALL gr_fi_ecrit(nbp_lev,klon_glo,nbp_lon,nbp_lat,auxklonklevnbtr_glo(1,1,it) ,          &   
    4819                        zx_tmp_3d_glo)                                           
    4820      CALL histwrite(nid_tra2,"d_tr_ls"//str2,itra,zx_tmp_3d_glo,          &   
    4821                                   nbp_lon*(nbp_lat)*nbp_lev,ndex3d)                 
    4822                                                                            
    4823       ENDIF ! mpi root
    4824 ! !$OMP END MASTER
    4825 ! !$OMP BARRIER
    4826 
    4827 
    4828       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    4829 !    call gather( d_tr_dyn_o, auxklonklevnbtr_glo )
    4830      call gather( d_tr_dyn, auxklonklevnbtr_glo )
    4831 ! !$OMP MASTER
    4832       IF (is_mpi_root .AND. is_omp_root) THEN
    4833      CALL gr_fi_ecrit(nbp_lev,klon_glo,nbp_lon,nbp_lat,auxklonklevnbtr_glo(1,1,it) ,          &   
    4834                        zx_tmp_3d_glo)                                           
    4835      CALL histwrite(nid_tra2,"d_tr_dyn"//str2,itra,zx_tmp_3d_glo,          &   
    4836                                   nbp_lon*(nbp_lat)*nbp_lev,ndex3d)                 
    4837                                                                            
    4838       print*,'ECRTIURES TENDANCES MODIFIEES NON MAIS'
    4839       ENDIF ! mpi root
    4840 ! !$OMP END MASTER
    4841 ! !$OMP BARRIER
    4842 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    4843       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    4844 !    call gather( d_tr_cl_o, auxklonklevnbtr_glo )
    4845      call gather( d_tr_cl, auxklonklevnbtr_glo )
    4846 ! !$OMP MASTER
    4847       IF (is_mpi_root .AND. is_omp_root) THEN
    4848      CALL gr_fi_ecrit(nbp_lev,klon_glo,nbp_lon,nbp_lat,auxklonklevnbtr_glo(1,1,it) ,          &   
    4849                        zx_tmp_3d_glo)                                           
    4850      CALL histwrite(nid_tra2,"d_tr_cl"//str2,itra,zx_tmp_3d_glo,          &   
    4851                                   nbp_lon*(nbp_lat)*nbp_lev,ndex3d)                 
    4852                                                                            
    4853       ENDIF ! mpi root
    4854 ! !$OMP END MASTER
    4855 ! !$OMP BARRIER
    4856       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    4857 !    call gather( d_tr_th_o, auxklonklevnbtr_glo )
    4858      call gather( d_tr_th, auxklonklevnbtr_glo )
    4859 ! !$OMP MASTER
    4860       IF (is_mpi_root .AND. is_omp_root) THEN
    4861      CALL gr_fi_ecrit(nbp_lev,klon_glo,nbp_lon,nbp_lat,auxklonklevnbtr_glo(1,1,it) ,          &   
    4862                        zx_tmp_3d_glo)                                           
    4863      CALL histwrite(nid_tra2,"d_tr_th"//str2,itra,zx_tmp_3d_glo,          &   
    4864                                   nbp_lon*(nbp_lat)*nbp_lev,ndex3d)                 
    4865                                                                            
    4866       ENDIF ! mpi root
    4867 ! !$OMP END MASTER
    4868 ! !$OMP BARRIER
    4869 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    4870      call gather( dtrconv,auxklonnbtr_glo )
    4871 ! !$OMP MASTER
    4872       IF (is_mpi_root .AND. is_omp_root) THEN
    4873      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklonnbtr_glo(1,it) ,zx_tmp_2d_glo)           
    4874      CALL histwrite(nid_tra2,"dtrconv"//str2,itra,zx_tmp_2d_glo,            &
    4875                     nbp_lon*(nbp_lat),ndex2d)                                 
    4876 !                                                                       
    4877       ENDIF ! mpi root
    4878 ! !$OMP END MASTER
    4879 ! !$OMP BARRIER
    4880      call gather( his_th, auxklonnbtr_glo )
    4881 ! !$OMP MASTER
    4882       IF (is_mpi_root .AND. is_omp_root) THEN
    4883      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklonnbtr_glo(1,it) ,zx_tmp_2d_glo)           
    4884      CALL histwrite(nid_tra2,"dtherm"//str2,itra,zx_tmp_2d_glo,             & 
    4885                     nbp_lon*(nbp_lat),ndex2d)                                 
    4886       ENDIF ! mpi root
    4887 ! !$OMP END MASTER
    4888 ! !$OMP BARRIER
    4889 !                                                                       
    4890                                                                          
    4891      ENDDO                                                               
    4892 !
    4893 !$OMP END MASTER
    4894 !$OMP BARRIER
    4895      call gather( sed_ss, auxklon_glo )
    4896 !$OMP MASTER
    4897       IF (is_mpi_root .AND. is_omp_root) THEN
    4898      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)
    4899      CALL histwrite(nid_tra2,"sed_ss",itra,zx_tmp_2d_glo,                &
    4900                     nbp_lon*(nbp_lat),ndex2d)                             
    4901 !                                                                     
    4902       ENDIF ! mpi root
    4903 !$OMP END MASTER
    4904 !$OMP BARRIER
    4905      call gather( sed_dust, auxklon_glo )
    4906 !$OMP MASTER
    4907       IF (is_mpi_root .AND. is_omp_root) THEN
    4908      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)           
    4909      CALL histwrite(nid_tra2,"sed_dust",itra,zx_tmp_2d_glo,               &
    4910                     nbp_lon*(nbp_lat),ndex2d)                               
    4911 !                                                                     
    4912       ENDIF ! mpi root
    4913 !$OMP END MASTER
    4914 !$OMP BARRIER
    4915      call gather( sed_dustsco, auxklon_glo )
    4916 !$OMP MASTER
    4917       IF (is_mpi_root .AND. is_omp_root) THEN
    4918      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)         
    4919      CALL histwrite(nid_tra2,"sed_dustsco",itra,zx_tmp_2d_glo,              &
    4920                     nbp_lon*(nbp_lat),ndex2d)                                 
    4921 !                                                                       
    4922       ENDIF ! mpi root
    4923 !$OMP END MASTER
    4924 !$OMP BARRIER
    4925      call gather( his_g2pgas, auxklon_glo )
    4926 !$OMP MASTER
    4927       IF (is_mpi_root .AND. is_omp_root) THEN
    4928      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)             
    4929      CALL histwrite(nid_tra2,"g2p_gas",itra,zx_tmp_2d_glo,                   &
    4930                     nbp_lon*(nbp_lat),ndex2d)                                 
    4931 !                                                                         
    4932       ENDIF ! mpi root
    4933 !$OMP END MASTER
    4934 !$OMP BARRIER
    4935      call gather( his_g2paer, auxklon_glo )
    4936 !$OMP MASTER
    4937       IF (is_mpi_root .AND. is_omp_root) THEN
    4938      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)             
    4939      CALL histwrite(nid_tra2,"g2p_aer",itra,zx_tmp_2d_glo,                   & 
    4940                     nbp_lon*(nbp_lat),ndex2d)                                 
    4941 ! SAVING VARIABLES IN HISTRAC                                             
    4942 !                                                                         
    4943       ENDIF ! mpi root
    4944 !$OMP END MASTER
    4945 !$OMP BARRIER
    4946      call gather( fluxbb, auxklon_glo )
    4947 !$OMP MASTER
    4948       IF (is_mpi_root .AND. is_omp_root) THEN
    4949       CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)                 
    4950       CALL histwrite(nid_tra1,"fluxbb",itra,zx_tmp_2d_glo,                   &
    4951                                     nbp_lon*(nbp_lat),ndex2d)                 
    4952 !                                                                       
    4953       ENDIF ! mpi root
    4954 !$OMP END MASTER
    4955 !$OMP BARRIER
    4956      call gather( fluxff, auxklon_glo )
    4957 !$OMP MASTER
    4958       IF (is_mpi_root .AND. is_omp_root) THEN
    4959      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)                 
    4960      CALL histwrite(nid_tra1,"fluxff",itra,zx_tmp_2d_glo,                   & 
    4961                                     nbp_lon*(nbp_lat),ndex2d)                 
    4962 !                                                                       
    4963 ! ======================== BC =============================             
    4964       ENDIF ! mpi root
    4965 !$OMP END MASTER
    4966 !$OMP BARRIER
    4967      call gather( fluxbcbb, auxklon_glo )
    4968 !$OMP MASTER
    4969       IF (is_mpi_root .AND. is_omp_root) THEN
    4970      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)               
    4971      CALL histwrite(nid_tra1,"fluxbcbb",itra,zx_tmp_2d_glo,                 &
    4972                                     nbp_lon*(nbp_lat),ndex2d)                 
    4973 !                                                                       
    4974       ENDIF ! mpi root
    4975 !$OMP END MASTER
    4976 !$OMP BARRIER
    4977      call gather( fluxbcff, auxklon_glo )
    4978 !$OMP MASTER
    4979       IF (is_mpi_root .AND. is_omp_root) THEN
    4980      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)               
    4981      CALL histwrite(nid_tra1,"fluxbcff",itra,zx_tmp_2d_glo,                  &
    4982                                     nbp_lon*(nbp_lat),ndex2d)                 
    4983 !                                                                         
    4984       ENDIF ! mpi root
    4985 !$OMP END MASTER
    4986 !$OMP BARRIER
    4987      call gather( fluxbcnff, auxklon_glo )
    4988 !$OMP MASTER
    4989       IF (is_mpi_root .AND. is_omp_root) THEN
    4990      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)               
    4991      CALL histwrite(nid_tra1,"fluxbcnff",itra,zx_tmp_2d_glo,                 & 
    4992                                     nbp_lon*(nbp_lat),ndex2d)                 
    4993 !                                                                         
    4994       ENDIF ! mpi root
    4995 !$OMP END MASTER
    4996 !$OMP BARRIER
    4997      call gather( fluxbcba, auxklon_glo )
    4998 !$OMP MASTER
    4999       IF (is_mpi_root .AND. is_omp_root) THEN
    5000      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)               
    5001      CALL histwrite(nid_tra1,"fluxbcba",itra,zx_tmp_2d_glo,                  & 
    5002                                     nbp_lon*(nbp_lat),ndex2d)                 
    5003 !                                                                         
    5004       ENDIF ! mpi root
    5005 !$OMP END MASTER
    5006 !$OMP BARRIER
    5007      call gather( fluxbc, auxklon_glo )
    5008 !$OMP MASTER
    5009       IF (is_mpi_root .AND. is_omp_root) THEN
    5010      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)                 
    5011      CALL histwrite(nid_tra1,"fluxbc",itra,zx_tmp_2d_glo,                    & 
    5012                                     nbp_lon*(nbp_lat),ndex2d)                 
    5013 ! ======================== OM =============================               
    5014       ENDIF ! mpi root
    5015 !$OMP END MASTER
    5016 !$OMP BARRIER
    5017      call gather( fluxombb, auxklon_glo )
    5018 !$OMP MASTER
    5019       IF (is_mpi_root .AND. is_omp_root) THEN
    5020      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)               
    5021      CALL histwrite(nid_tra1,"fluxombb",itra,zx_tmp_2d_glo,                  & 
    5022                                     nbp_lon*(nbp_lat),ndex2d)                 
    5023 !                                                                         
    5024       ENDIF ! mpi root
    5025 !$OMP END MASTER
    5026 !$OMP BARRIER
    5027      call gather( fluxomff, auxklon_glo )
    5028 !$OMP MASTER
    5029       IF (is_mpi_root .AND. is_omp_root) THEN
    5030      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)               
    5031      CALL histwrite(nid_tra1,"fluxomff",itra,zx_tmp_2d_glo,                  & 
    5032                                     nbp_lon*(nbp_lat),ndex2d)                 
    5033 !                                                                         
    5034       ENDIF ! mpi root
    5035 !$OMP END MASTER
    5036 !$OMP BARRIER
    5037      call gather( fluxomnff, auxklon_glo )
    5038 !$OMP MASTER
    5039       IF (is_mpi_root .AND. is_omp_root) THEN
    5040      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)               
    5041      CALL histwrite(nid_tra1,"fluxomnff",itra,zx_tmp_2d_glo,                 & 
    5042                                     nbp_lon*(nbp_lat),ndex2d)                 
    5043 !                                                                         
    5044       ENDIF ! mpi root
    5045 !$OMP END MASTER
    5046 !$OMP BARRIER
    5047      call gather( fluxomba, auxklon_glo )
    5048 !$OMP MASTER
    5049       IF (is_mpi_root .AND. is_omp_root) THEN
    5050      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)               
    5051      CALL histwrite(nid_tra1,"fluxomba",itra,zx_tmp_2d_glo,                  & 
    5052                                     nbp_lon*(nbp_lat),ndex2d)                 
    5053 !                                                                         
    5054       ENDIF ! mpi root
    5055 !$OMP END MASTER
    5056 !$OMP BARRIER
    5057      call gather( fluxomnat, auxklon_glo )
    5058 !$OMP MASTER
    5059       IF (is_mpi_root .AND. is_omp_root) THEN
    5060      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)               
    5061      CALL histwrite(nid_tra1,"fluxomnat",itra,zx_tmp_2d_glo,                 & 
    5062                                     nbp_lon*(nbp_lat),ndex2d)                 
    5063 !                                                                         
    5064       ENDIF ! mpi root
    5065 !$OMP END MASTER
    5066 !$OMP BARRIER
    5067      call gather( fluxom, auxklon_glo )
    5068 !$OMP MASTER
    5069       IF (is_mpi_root .AND. is_omp_root) THEN
    5070      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)                 
    5071      CALL histwrite(nid_tra1,"fluxom",itra,zx_tmp_2d_glo,                    & 
    5072                                     nbp_lon*(nbp_lat),ndex2d)                 
    5073 ! ======================== SO4 =============================             
    5074       ENDIF ! mpi root
    5075 !$OMP END MASTER
    5076 !$OMP BARRIER
    5077      call gather( fluxso4ff, auxklon_glo )
    5078 !$OMP MASTER
    5079       IF (is_mpi_root .AND. is_omp_root) THEN
    5080      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)               
    5081      CALL histwrite(nid_tra1,"fluxso4ff",itra,zx_tmp_2d_glo,                 & 
    5082                                     nbp_lon*(nbp_lat),ndex2d)                 
    5083 !                                                                         
    5084       ENDIF ! mpi root
    5085 !$OMP END MASTER
    5086 !$OMP BARRIER
    5087      call gather( fluxso4nff, auxklon_glo )
    5088 !$OMP MASTER
    5089       IF (is_mpi_root .AND. is_omp_root) THEN
    5090      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)             
    5091      CALL histwrite(nid_tra1,"fluxso4nff",itra,zx_tmp_2d_glo,                & 
    5092                                     nbp_lon*(nbp_lat),ndex2d)                 
    5093 !                                                                         
    5094       ENDIF ! mpi root
    5095 !$OMP END MASTER
    5096 !$OMP BARRIER
    5097      call gather( fluxso4bb, auxklon_glo )
    5098 !$OMP MASTER
    5099       IF (is_mpi_root .AND. is_omp_root) THEN
    5100      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)               
    5101      CALL histwrite(nid_tra1,"fluxso4bb",itra,zx_tmp_2d_glo,                 & 
    5102                                     nbp_lon*(nbp_lat),ndex2d)                 
    5103 !                                                                         
    5104       ENDIF ! mpi root
    5105 !$OMP END MASTER
    5106 !$OMP BARRIER
    5107      call gather( fluxso4ba, auxklon_glo )
    5108 !$OMP MASTER
    5109       IF (is_mpi_root .AND. is_omp_root) THEN
    5110      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)               
    5111      CALL histwrite(nid_tra1,"fluxso4ba",itra,zx_tmp_2d_glo,                 & 
    5112                                     nbp_lon*(nbp_lat),ndex2d)                 
    5113 !                                                                         
    5114       ENDIF ! mpi root
    5115 !$OMP END MASTER
    5116 !$OMP BARRIER
    5117      call gather( fluxso4, auxklon_glo )
    5118 !$OMP MASTER
    5119       IF (is_mpi_root .AND. is_omp_root) THEN
    5120      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo ,zx_tmp_2d_glo)                 
    5121      CALL histwrite(nid_tra1,"fluxso4",itra,zx_tmp_2d_glo,                   & 
    5122                                     nbp_lon*(nbp_lat),ndex2d)                 
    5123 ! ======================== H2S =============================             
    5124       ENDIF ! mpi root
    5125 !$OMP END MASTER
    5126 !$OMP BARRIER
    5127      call gather( fluxh2sff, auxklon_glo )
    5128 !$OMP MASTER
    5129       IF (is_mpi_root .AND. is_omp_root) THEN
    5130      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)               
    5131      CALL histwrite(nid_tra1,"fluxh2sff",itra,zx_tmp_2d_glo,                 & 
    5132                                     nbp_lon*(nbp_lat),ndex2d)                 
    5133 !                                                                         
    5134       ENDIF ! mpi root
    5135 !$OMP END MASTER
    5136 !$OMP BARRIER
    5137      call gather( fluxh2snff, auxklon_glo )
    5138 !$OMP MASTER
    5139       IF (is_mpi_root .AND. is_omp_root) THEN
    5140      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)             
    5141      CALL histwrite(nid_tra1,"fluxh2snff",itra,zx_tmp_2d_glo,                 &
    5142                                     nbp_lon*(nbp_lat),ndex2d)                   
    5143 !                                                                         
    5144       ENDIF ! mpi root
    5145 !$OMP END MASTER
    5146 !$OMP BARRIER
    5147      call gather( fluxh2sbio, auxklon_glo )
    5148 !$OMP MASTER
    5149       IF (is_mpi_root .AND. is_omp_root) THEN
    5150      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)               
    5151      CALL histwrite(nid_tra1,"fluxh2sbio",itra,zx_tmp_2d_glo,                 & 
    5152                                     nbp_lon*(nbp_lat),ndex2d)                   
    5153 ! ======================== SO2 =============================               
    5154       ENDIF ! mpi root
    5155 !$OMP END MASTER
    5156 !$OMP BARRIER
    5157      call gather( fluxso2ff, auxklon_glo )
    5158 !$OMP MASTER
    5159       IF (is_mpi_root .AND. is_omp_root) THEN
    5160      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)               
    5161      CALL histwrite(nid_tra1,"fluxso2ff",itra,zx_tmp_2d_glo,                  & 
    5162                                     nbp_lon*(nbp_lat),ndex2d)                   
    5163 !                                                                         
    5164       ENDIF ! mpi root
    5165 !$OMP END MASTER
    5166 !$OMP BARRIER
    5167      call gather( fluxso2nff, auxklon_glo )
    5168 !$OMP MASTER
    5169       IF (is_mpi_root .AND. is_omp_root) THEN
    5170      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)               
    5171      CALL histwrite(nid_tra1,"fluxso2nff",itra,zx_tmp_2d_glo,                 & 
    5172                                     nbp_lon*(nbp_lat),ndex2d)                   
    5173 !                                                                         
    5174       ENDIF ! mpi root
    5175 !$OMP END MASTER
    5176 !$OMP BARRIER
    5177      call gather( fluxso2bb, auxklon_glo )
    5178 !$OMP MASTER
    5179       IF (is_mpi_root .AND. is_omp_root) THEN
    5180      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)               
    5181      CALL histwrite(nid_tra1,"fluxso2bb",itra,zx_tmp_2d_glo,                  & 
    5182                                     nbp_lon*(nbp_lat),ndex2d)                   
    5183 !                                                                         
    5184       ENDIF ! mpi root
    5185 !$OMP END MASTER
    5186 !$OMP BARRIER
    5187      call gather( fluxso2vol, auxklon_glo )
    5188 !$OMP MASTER
    5189       IF (is_mpi_root .AND. is_omp_root) THEN
    5190      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)               
    5191      CALL histwrite(nid_tra1,"fluxso2vol",itra,zx_tmp_2d_glo,                 & 
    5192                                     nbp_lon*(nbp_lat),ndex2d)                   
    5193 !                                                                         
    5194       ENDIF ! mpi root
    5195 !$OMP END MASTER
    5196 !$OMP BARRIER
    5197      call gather( fluxso2ba, auxklon_glo )
    5198 !$OMP MASTER
    5199       IF (is_mpi_root .AND. is_omp_root) THEN
    5200      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)               
    5201      CALL histwrite(nid_tra1,"fluxso2ba",itra,zx_tmp_2d_glo,                  & 
    5202                                     nbp_lon*(nbp_lat),ndex2d)                   
    5203 !                                                                         
    5204       ENDIF ! mpi root
    5205 !$OMP END MASTER
    5206 !$OMP BARRIER
    5207      call gather( fluxso2, auxklon_glo )
    5208 !$OMP MASTER
    5209       IF (is_mpi_root .AND. is_omp_root) THEN
    5210      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)                 
    5211      CALL histwrite(nid_tra1,"fluxso2",itra,zx_tmp_2d_glo,                    & 
    5212                                     nbp_lon*(nbp_lat),ndex2d)                   
    5213 !                                                                         
    5214       ENDIF ! mpi root
    5215 !$OMP END MASTER
    5216 !$OMP BARRIER
    5217      call gather( fluxdms, auxklon_glo )
    5218 !$OMP MASTER
    5219       IF (is_mpi_root .AND. is_omp_root) THEN
    5220      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)                 
    5221      CALL histwrite(nid_tra1,"fluxdms",itra,zx_tmp_2d_glo,                    & 
    5222                                     nbp_lon*(nbp_lat),ndex2d)                   
    5223 ! ======================== DD =============================               
    5224       ENDIF ! mpi root
    5225 !$OMP END MASTER
    5226 !$OMP BARRIER
    5227      call gather( fluxdustec, auxklon_glo )
    5228 !$OMP MASTER
    5229       IF (is_mpi_root .AND. is_omp_root) THEN
    5230      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)               
    5231      CALL histwrite(nid_tra1,"fluxdustec",itra,zx_tmp_2d_glo,                 & 
    5232                                     nbp_lon*(nbp_lat),ndex2d)                   
    5233 !                                                                         
    5234       ENDIF ! mpi root
    5235 !$OMP END MASTER
    5236 !$OMP BARRIER
    5237      call gather( fluxddfine, auxklon_glo )
    5238 !$OMP MASTER
    5239       IF (is_mpi_root .AND. is_omp_root) THEN
    5240      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)               
    5241      CALL histwrite(nid_tra1,"fluxddfine",itra,zx_tmp_2d_glo,                 & 
    5242                                   nbp_lon*(nbp_lat),ndex2d)                     
    5243 !                                                                         
    5244       ENDIF ! mpi root
    5245 !$OMP END MASTER
    5246 !$OMP BARRIER
    5247      call gather( fluxddcoa, auxklon_glo )
    5248 !$OMP MASTER
    5249       IF (is_mpi_root .AND. is_omp_root) THEN
    5250      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)               
    5251      CALL histwrite(nid_tra1,"fluxddcoa",itra,zx_tmp_2d_glo,                  & 
    5252                                   nbp_lon*(nbp_lat),ndex2d)                     
    5253 !                                                                         
    5254       ENDIF ! mpi root
    5255 !$OMP END MASTER
    5256 !$OMP BARRIER
    5257      call gather( fluxddsco, auxklon_glo )
    5258 !$OMP MASTER
    5259       IF (is_mpi_root .AND. is_omp_root) THEN
    5260      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)               
    5261      CALL histwrite(nid_tra1,"fluxddsco",itra,zx_tmp_2d_glo,                  & 
    5262                                   nbp_lon*(nbp_lat),ndex2d)                     
    5263 !                                                                         
    5264       ENDIF ! mpi root
    5265 !$OMP END MASTER
    5266 !$OMP BARRIER
    5267      call gather( fluxdd, auxklon_glo )
    5268 !$OMP MASTER
    5269       IF (is_mpi_root .AND. is_omp_root) THEN
    5270      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)                   
    5271      CALL histwrite(nid_tra1,"fluxdd",itra,zx_tmp_2d_glo,                     & 
    5272                                   nbp_lon*(nbp_lat),ndex2d)                     
    5273 ! ======================== SS =============================               
    5274       ENDIF ! mpi root
    5275 !$OMP END MASTER
    5276 !$OMP BARRIER
    5277      call gather( fluxssfine, auxklon_glo )
    5278 !$OMP MASTER
    5279       IF (is_mpi_root .AND. is_omp_root) THEN
    5280      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)               
    5281      CALL histwrite(nid_tra1,"fluxssfine",itra,zx_tmp_2d_glo,                 & 
    5282                                   nbp_lon*(nbp_lat),ndex2d)                     
    5283 !                                                                         
    5284       ENDIF ! mpi root
    5285 !$OMP END MASTER
    5286 !$OMP BARRIER
    5287      call gather( fluxsscoa, auxklon_glo )
    5288 !$OMP MASTER
    5289       IF (is_mpi_root .AND. is_omp_root) THEN
    5290      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)               
    5291      CALL histwrite(nid_tra1,"fluxsscoa",itra,zx_tmp_2d_glo,                  & 
    5292                                   nbp_lon*(nbp_lat),ndex2d)                     
    5293 !                                                                         
    5294       ENDIF ! mpi root
    5295 !$OMP END MASTER
    5296 !$OMP BARRIER
    5297      call gather( fluxss, auxklon_glo )
    5298 !$OMP MASTER
    5299       IF (is_mpi_root .AND. is_omp_root) THEN
    5300      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)                   
    5301      CALL histwrite(nid_tra1,"fluxss",itra,zx_tmp_2d_glo,                     & 
    5302                                   nbp_lon*(nbp_lat),ndex2d)                     
    5303 !                                                                         
    5304       ENDIF ! mpi root
    5305 !$OMP END MASTER
    5306 !$OMP BARRIER
    5307 
    5308 !     call gather( , auxklon_glo )
    5309 !!!!      IF (is_mpi_root .AND. is_omp_root) THEN
    5310 !nhl     CALL gr_fi_ecrit(nbp_lev,klon_glo,nbp_lon,nbp_lat,fluxso4chem,zx_tmp_3d_glo)       
    5311 !nhl     CALL histwrite(nid_tra1,"fluxso4chem",itra,zx_tmp_3d_glo,            & 
    5312 !nhl    .                             nbp_lon*(nbp_lat)*nbp_lev,ndex3d)           
    5313 !                                                                         
    5314      call gather( flux_sparam_ind, auxklon_glo )
    5315 !$OMP MASTER
    5316       IF (is_mpi_root .AND. is_omp_root) THEN
    5317      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)         
    5318      CALL histwrite(nid_tra1,"flux_sparam_ind",itra,zx_tmp_2d_glo,            & 
    5319                                   nbp_lon*(nbp_lat),ndex2d)                     
    5320 !                                                                         
    5321       ENDIF ! mpi root
    5322 !$OMP END MASTER
    5323 !$OMP BARRIER
    5324      call gather( flux_sparam_bb, auxklon_glo )
    5325 !$OMP MASTER
    5326       IF (is_mpi_root .AND. is_omp_root) THEN
    5327      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)           
    5328      CALL histwrite(nid_tra1,"flux_sparam_bb",itra,zx_tmp_2d_glo,             & 
    5329                                   nbp_lon*(nbp_lat),ndex2d)                     
    5330 !                                                                         
    5331       ENDIF ! mpi root
    5332 !$OMP END MASTER
    5333 !$OMP BARRIER
    5334      call gather( flux_sparam_ff, auxklon_glo )
    5335 !$OMP MASTER
    5336       IF (is_mpi_root .AND. is_omp_root) THEN
    5337      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)           
    5338      CALL histwrite(nid_tra1,"flux_sparam_ff",itra,zx_tmp_2d_glo,             & 
    5339                                   nbp_lon*(nbp_lat),ndex2d)                     
    5340 !                                                                         
    5341       ENDIF ! mpi root
    5342 !$OMP END MASTER
    5343 !$OMP BARRIER
    5344      call gather( flux_sparam_ddfine, auxklon_glo )
    5345 !$OMP MASTER
    5346       IF (is_mpi_root .AND. is_omp_root) THEN
    5347      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)       
    5348      CALL histwrite(nid_tra1,"flux_sparam_ddfine",itra,zx_tmp_2d_glo,         & 
    5349                                   nbp_lon*(nbp_lat),ndex2d)                     
    5350 !                                                                         
    5351       ENDIF ! mpi root
    5352 !$OMP END MASTER
    5353 !$OMP BARRIER
    5354      call gather( flux_sparam_ddcoa, auxklon_glo )
    5355 !$OMP MASTER
    5356       IF (is_mpi_root .AND. is_omp_root) THEN
    5357      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)       
    5358      CALL histwrite(nid_tra1,"flux_sparam_ddcoa",itra,zx_tmp_2d_glo,          & 
    5359                                   nbp_lon*(nbp_lat),ndex2d)                     
    5360 !                                                                         
    5361       ENDIF ! mpi root
    5362 !$OMP END MASTER
    5363 !$OMP BARRIER
    5364      call gather( flux_sparam_ddsco, auxklon_glo )
    5365 !$OMP MASTER
    5366       IF (is_mpi_root .AND. is_omp_root) THEN
    5367      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)       
    5368      CALL histwrite(nid_tra1,"flux_sparam_ddsco",itra,zx_tmp_2d_glo,          & 
    5369                                   nbp_lon*(nbp_lat),ndex2d)                     
    5370 !                                                                         
    5371       ENDIF ! mpi root
    5372 !$OMP END MASTER
    5373 !$OMP BARRIER
    5374      call gather( flux_sparam_ssfine, auxklon_glo )
    5375 !$OMP MASTER
    5376       IF (is_mpi_root .AND. is_omp_root) THEN
    5377      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)       
    5378      CALL histwrite(nid_tra1,"flux_sparam_ssfine",itra,zx_tmp_2d_glo,         & 
    5379                                   nbp_lon*(nbp_lat),ndex2d)                     
    5380 !                                                                         
    5381       ENDIF ! mpi root
    5382 !$OMP END MASTER
    5383 !$OMP BARRIER
    5384      call gather( flux_sparam_sscoa, auxklon_glo )
    5385 !$OMP MASTER
    5386       IF (is_mpi_root .AND. is_omp_root) THEN
    5387      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)       
    5388      CALL histwrite(nid_tra1,"flux_sparam_sscoa",itra,zx_tmp_2d_glo,          & 
    5389                                   nbp_lon*(nbp_lat),ndex2d)                     
    5390 !                                                                         
    5391       ENDIF ! mpi root
    5392 !$OMP END MASTER
    5393 !$OMP BARRIER
    5394      call gather( u10m_ec, auxklon_glo )
    5395 !$OMP MASTER
    5396       IF (is_mpi_root .AND. is_omp_root) THEN
    5397      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)                 
    5398      CALL histwrite(nid_tra1,"u10m",itra,zx_tmp_2d_glo,                       & 
    5399                                   nbp_lon*(nbp_lat),ndex2d)                     
    5400 !                                                                         
    5401       ENDIF ! mpi root
    5402 !$OMP END MASTER
    5403 !$OMP BARRIER
    5404      call gather( v10m_ec, auxklon_glo )
    5405 !$OMP MASTER
    5406       IF (is_mpi_root .AND. is_omp_root) THEN
    5407      CALL gr_fi_ecrit(1,klon_glo,nbp_lon,nbp_lat,auxklon_glo,zx_tmp_2d_glo)                 
    5408      CALL histwrite(nid_tra1,"v10m",itra,zx_tmp_2d_glo,                       & 
    5409                                   nbp_lon*(nbp_lat),ndex2d)                     
    5410 !                                                                         
    5411 !     call gather( , auxklon_glo )
    5412 !!!   !$OMP MASTER
    5413 !      IF (is_mpi_root .AND. is_omp_root) THEN
    5414 !nhl     CALL gr_fi_ecrit(nbp_lev,klon_glo,nbp_lon,nbp_lat,flux_sparam_sulf,zx_tmp_3d_glo) 
    5415 !nhl     CALL histwrite(nid_tra1,"flux_sparam_sulf",itra,zx_tmp_3d_glo,       & 
    5416 !nhl    .                             nbp_lon*(nbp_lat)*nbp_lev,ndex3d)           
    5417 !                                                                         
    5418       ENDIF ! mpi root
    5419 !$OMP END MASTER
    5420 !$OMP BARRIER
    5421 
    5422       ENDIF ! ok_histrac                                                   
     3925!AS: commenting out and deleting lines
     3926!!      IF (ok_histrac) THEN
     3927!!
     3928!! SAVING VARIABLES IN TRACEUR
     3929!!----- many lines deleted----
     3930!!      ENDIF ! ok_histrac                                                   
    54233931                                                                           
    54243932
     
    54793987       dhkelsc04(i)=0.
    54803988       dhkelsc05(i)=0.
    5481 !       u10m_ss(i)=u10m_ec(i)
    5482 !       v10m_ss(i)=v10m_ec(i)
    54833989!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    54843990
     
    55994105      d_tr_th04(i,k)=0.
    56004106      d_tr_th05(i,k)=0.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     4107        ENDDO
     4108      ENDDO
     4109
     4110      IF(1==0) THEN
     4111      ! calcul in original trunk version; problem: budget not closed. Corrected in "ELSE"
     4112      DO i=1, klon
     4113        DO k=1,klev
     4114
    56014115      if(id_prec>0)        d_tr_cv01(i,k)   =d_tr_cv_o(i,k,id_prec)
    56024116      if(id_fine>0)        d_tr_cv02(i,k)   =d_tr_cv_o(i,k,id_fine)
     
    56414155        ENDDO
    56424156      ENDDO
    5643       IF(1==0) THEN
     4157      ELSE ! correction pour fermeture de bilan, par FH dans les simus de Binta pour Habib
     4158      DO i=1, klon
     4159        DO k=1,klev
     4160      if(id_prec>0)        d_tr_cv01(i,k)   =d_tr_cv(i,k,id_prec)/pdtphys
     4161      if(id_fine>0)        d_tr_cv02(i,k)   =d_tr_cv(i,k,id_fine)/pdtphys
     4162      if(id_coss>0)        d_tr_cv03(i,k)   =d_tr_cv(i,k,id_coss)/pdtphys
     4163      if(id_codu>0)        d_tr_cv04(i,k)   =d_tr_cv(i,k,id_codu)/pdtphys
     4164      if(id_scdu>0)        d_tr_cv05(i,k)   =d_tr_cv(i,k,id_scdu)/pdtphys
     4165      if(id_prec>0)        d_tr_trsp01(i,k) =d_tr_trsp(i,k,id_prec)/pdtphys
     4166      if(id_fine>0)        d_tr_trsp02(i,k) =d_tr_trsp(i,k,id_fine)/pdtphys
     4167      if(id_coss>0)        d_tr_trsp03(i,k) =d_tr_trsp(i,k,id_coss)/pdtphys
     4168      if(id_codu>0)        d_tr_trsp04(i,k) =d_tr_trsp(i,k,id_codu)/pdtphys
     4169      if(id_scdu>0)        d_tr_trsp05(i,k) =d_tr_trsp(i,k,id_scdu)/pdtphys
     4170      if(id_prec>0)        d_tr_sscav01(i,k)=d_tr_sscav(i,k,id_prec)/pdtphys
     4171      if(id_fine>0)        d_tr_sscav02(i,k)=d_tr_sscav(i,k,id_fine)/pdtphys
     4172      if(id_coss>0)        d_tr_sscav03(i,k)=d_tr_sscav(i,k,id_coss)/pdtphys
     4173      if(id_codu>0)        d_tr_sscav04(i,k)=d_tr_sscav(i,k,id_codu)/pdtphys
     4174      if(id_scdu>0)        d_tr_sscav05(i,k)=d_tr_sscav(i,k,id_scdu)/pdtphys
     4175      if(id_prec>0)        d_tr_sat01(i,k)  =d_tr_sat(i,k,id_prec)/pdtphys
     4176      if(id_fine>0)        d_tr_sat02(i,k)  =d_tr_sat(i,k,id_fine)/pdtphys
     4177      if(id_coss>0)        d_tr_sat03(i,k)  =d_tr_sat(i,k,id_coss)/pdtphys
     4178      if(id_codu>0)        d_tr_sat04(i,k)  =d_tr_sat(i,k,id_codu)/pdtphys
     4179      if(id_scdu>0)        d_tr_sat05(i,k)  =d_tr_sat(i,k,id_scdu)/pdtphys
     4180      if(id_prec>0)        d_tr_uscav01(i,k)=d_tr_uscav(i,k,id_prec)/pdtphys
     4181      if(id_fine>0)        d_tr_uscav02(i,k)=d_tr_uscav(i,k,id_fine)/pdtphys
     4182      if(id_coss>0)        d_tr_uscav03(i,k)=d_tr_uscav(i,k,id_coss)/pdtphys
     4183      if(id_codu>0)        d_tr_uscav04(i,k)=d_tr_uscav(i,k,id_codu)/pdtphys
     4184      if(id_scdu>0)        d_tr_uscav05(i,k)=d_tr_uscav(i,k,id_scdu)/pdtphys
     4185      if(id_prec>0)        d_tr_insc01(i,k)=d_tr_insc(i,k,id_prec)/pdtphys
     4186      if(id_fine>0)        d_tr_insc02(i,k)=d_tr_insc(i,k,id_fine)/pdtphys
     4187      if(id_coss>0)        d_tr_insc03(i,k)=d_tr_insc(i,k,id_coss)/pdtphys
     4188      if(id_codu>0)        d_tr_insc04(i,k)=d_tr_insc(i,k,id_codu)/pdtphys
     4189      if(id_scdu>0)        d_tr_insc05(i,k)=d_tr_insc(i,k,id_scdu)/pdtphys
     4190      if(id_prec>0)        d_tr_bcscav01(i,k)=d_tr_bcscav(i,k,id_prec)/pdtphys
     4191      if(id_fine>0)        d_tr_bcscav02(i,k)=d_tr_bcscav(i,k,id_fine)/pdtphys
     4192      if(id_coss>0)        d_tr_bcscav03(i,k)=d_tr_bcscav(i,k,id_coss)/pdtphys
     4193      if(id_codu>0)        d_tr_bcscav04(i,k)=d_tr_bcscav(i,k,id_codu)/pdtphys
     4194      if(id_scdu>0)        d_tr_bcscav05(i,k)=d_tr_bcscav(i,k,id_scdu)/pdtphys
     4195      if(id_prec>0)        d_tr_evapls01(i,k)=d_tr_evapls(i,k,id_prec)/pdtphys
     4196      if(id_fine>0)        d_tr_evapls02(i,k)=d_tr_evapls(i,k,id_fine)/pdtphys
     4197      if(id_coss>0)        d_tr_evapls03(i,k)=d_tr_evapls(i,k,id_coss)/pdtphys
     4198      if(id_codu>0)        d_tr_evapls04(i,k)=d_tr_evapls(i,k,id_codu)/pdtphys
     4199      if(id_scdu>0)        d_tr_evapls05(i,k)=d_tr_evapls(i,k,id_scdu)/pdtphys
     4200        ENDDO
     4201      ENDDO
     4202      ENDIF
     4203
     4204      IF(1==0) THEN  ! This "if" is as in original trunk
    56444205      DO i=1, klon
    56454206        DO k=1,klev
     
    58654426      END SUBROUTINE readregions_spl
    58664427
     4428!! AS: SUBROUTINE readscaleparams_spl pas appellee
    58674429      SUBROUTINE readscaleparams_spl(scale_param, nbreg, &
    58684430                                             filescaleparams)
Note: See TracChangeset for help on using the changeset viewer.