Changeset 2196 for LMDZ5/branches


Ignore:
Timestamp:
Feb 6, 2015, 6:53:57 PM (9 years ago)
Author:
jescribano
Message:

Dust emission scheme changes: (1) Included possibility of use previous dust emission scheme (with 2 dust bins). (2) Parameter of Marticorena and Bergametti 1995 set to it's original value (2.61) for testing purposes with pdtphys=15min. (3) Cleaning ustar calculation.

Location:
LMDZ5/branches/LMDZ5_SPLA/libf/phylmd
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/aeropt_spl.F

    r2175 r2196  
    11      SUBROUTINE aeropt_spl(zdz, tr_seri, RHcl,
    22     .              id_prec, id_fine, id_coss, id_codu, id_scdu,
     3     .              ok_chimeredust,
    34     .                      ztaue550,ztaue670,ztaue865,
    45     .                      taue550_tr2,taue670_tr2,taue865_tr2,
     
    2324      REAL RHcl(klon,klev)     ! humidite relativen ciel clair
    2425      INTEGER  id_prec, id_fine, id_coss, id_codu, id_scdu
     26      LOGICAL ok_chimeredust
    2527c============================== OUTPUT =================================
    2628      REAL ztaue550(klon) ! epaisseur optique aerosol 550 nm
     
    4749      INTEGER rh_int
    4850      PARAMETER (rh_int=12)
     51      REAL auxreal
    4952c      REAL ss_a(nb_lambda,rh_int,nbtr-1)
    5053c      DATA ss_a/72*1./
     
    7275!JE20140915      DATA ss_dust/0.3188754,0.3430106,0.3829019/ !for bin 0.5-5um radius
    7376!JE20140915      DATA ss_dustsco/8.0582686E-02,8.1255026E-02,8.1861295E-02/ !for bin 5-15um radius
    74       DATA ss_dust/0.5167768,0.5684330,0.6531643/ !for bin 0.5-3um radius
    75       DATA ss_dustsco/0.1003391,0.1012288,0.1024651/ !for bin 3-15um radius
     77
     78!      DATA ss_dust/0.5167768,0.5684330,0.6531643/ !for bin 0.5-3um radius
     79!      DATA ss_dustsco/0.1003391,0.1012288,0.1024651/ !for bin 3-15um radius
    7680
    7781
     
    8589      DATA RH_tab/0.,10.,20.,30.,40.,50.,60.,70.,80.,85.,90.,95./
    8690c
     91      IF (ok_chimeredust) THEN
     92      ss_dust=(/0.5167768,0.5684330,0.6531643/)
     93      ss_dustsco=(/0.1003391,0.1012288,0.1024651/)
     94      ELSE
     95      ss_dust=(/0.564, 0.614, 0.700/)
     96      ss_dustsco=(/0.,0.,0./)
     97      ENDIF
     98
    8799      DO i=1, klon
    88100        ztaue550(i)=0.0
     
    106118      DO k=1, klev
    107119      DO i=1, klon
    108 c
     120c     
    109121      rh=MIN(RHcl(i,k)*100.,RH_MAX)
    110122      RH_num = INT( rh/10. + 1.)
     
    124136     .            ss_acc550(RH_num))              !--m2/g
    125137cnhl_test TOTAL AOD
    126         ztaue550(i)=ztaue550(i)+(alpha_acc*tr_seri(i,k,id_fine)+
    127      .                 ss_ssalt550(RH_num)*tr_seri(i,k,id_coss)+
    128      .                 ss_dust(1)*tr_seri(i,k,id_codu)+
    129      .              ss_dustsco(1)*tr_seri(i,k,id_scdu)  )*zdz(i,k)*1.e6
     138       auxreal=0.
     139      IF(id_fine>0) auxreal=auxreal+alpha_acc*tr_seri(i,k,id_fine)
     140      IF(id_coss>0) auxreal=auxreal+ss_ssalt550(RH_num)*
     141     .                       tr_seri(i,k,id_coss)
     142      IF(id_codu>0) auxreal=auxreal+ss_dust(1)*tr_seri(i,k,id_codu)
     143      IF(id_scdu>0) auxreal=auxreal+ss_dustsco(1)*tr_seri(i,k,id_scdu)
     144      ztaue550(i)=ztaue550(i)+auxreal*zdz(i,k)*1.e6
     145   
     146!JE20150128        ztaue550(i)=ztaue550(i)+(alpha_acc*tr_seri(i,k,id_fine)+
     147!     .                 ss_ssalt550(RH_num)*tr_seri(i,k,id_coss)+
     148!     .                 ss_dust(1)*tr_seri(i,k,id_codu)+
     149!     .              ss_dustsco(1)*tr_seri(i,k,id_scdu)  )*zdz(i,k)*1.e6
     150
    130151cnhl_test TOTAL AOD IS NOW AOD COARSE MODE ONLY
    131152cnhl_test        ztaue550(i)=ztaue550(i)+(                     
     
    133154cnhl_test     .                 ss_dust(1)*tr_seri(i,k,4))*zdz(i,k)*1.e6
    134155
    135         taue550_tr2(i)=taue550_tr2(i)+alpha_acc*tr_seri(i,k,id_fine)*
    136      .                 zdz(i,k)*1.e6
    137         taue550_ss(i)=taue550_ss(i)+
     156        IF(id_fine>0) taue550_tr2(i)=taue550_tr2(i)
     157     .               + alpha_acc*tr_seri(i,k,id_fine)*zdz(i,k)*1.e6
     158        IF(id_coss>0) taue550_ss(i)=taue550_ss(i)+
    138159     .                ss_ssalt550(RH_num)*tr_seri(i,k,id_coss)*
    139160     .                zdz(i,k)*1.e6
    140         taue550_dust(i)=taue550_dust(i)+ss_dust(1)*tr_seri(i,k,id_codu)*
    141      .                zdz(i,k)*1.e6
    142         taue550_dustsco(i)=taue550_dustsco(i)+
     161        IF(id_codu>0) taue550_dust(i)=taue550_dust(i)+
     162     .                ss_dust(1)*tr_seri(i,k,id_codu)*
     163     .                zdz(i,k)*1.e6
     164        IF(id_scdu>0) taue550_dustsco(i)=taue550_dustsco(i)+
    143165     .                ss_dustsco(1)*tr_seri(i,k,id_scdu)*
    144166     .                zdz(i,k)*1.e6
     
    151173        alpha_acc=ss_acc670(RH_num) + DELTA*(ss_acc670(RH_num+1)-
    152174     .            ss_acc670(RH_num))              !--m2/g
    153         ztaue670(i)=ztaue670(i)+(alpha_acc*tr_seri(i,k,id_fine)+
    154      .                 ss_ssalt670(RH_num)*tr_seri(i,k,id_coss)+
    155      .                 ss_dust(2)*tr_seri(i,k,id_codu)+
    156      .               ss_dustsco(2)*tr_seri(i,k,id_scdu))*zdz(i,k)*1.e6
    157         taue670_tr2(i)=taue670_tr2(i)+alpha_acc*tr_seri(i,k,id_fine)*
     175      auxreal=0.
     176      IF(id_fine>0) auxreal=auxreal+alpha_acc*tr_seri(i,k,id_fine)
     177      IF(id_coss>0) auxreal=auxreal+ss_ssalt670(RH_num)
     178     .                      *tr_seri(i,k,id_coss)
     179      IF(id_codu>0) auxreal=auxreal+ss_dust(2)*tr_seri(i,k,id_codu)
     180      IF(id_scdu>0) auxreal=auxreal+ss_dustsco(2)*tr_seri(i,k,id_scdu)
     181      ztaue670(i)=ztaue670(i)+auxreal*zdz(i,k)*1.e6
     182
     183!JE20150128        ztaue670(i)=ztaue670(i)+(alpha_acc*tr_seri(i,k,id_fine)+
     184!     .                 ss_ssalt670(RH_num)*tr_seri(i,k,id_coss)+
     185!     .                 ss_dust(2)*tr_seri(i,k,id_codu)+
     186!     .               ss_dustsco(2)*tr_seri(i,k,id_scdu))*zdz(i,k)*1.e6
     187
     188      IF(id_fine>0)  taue670_tr2(i)=taue670_tr2(i)+
     189     .                alpha_acc*tr_seri(i,k,id_fine)*
    158190     .                 zdz(i,k)*1.e6
    159         taue670_ss(i)=taue670_ss(i)+
     191      IF(id_coss>0)  taue670_ss(i)=taue670_ss(i)+
    160192     .                ss_ssalt670(RH_num)*tr_seri(i,k,id_coss)*
    161193     .                zdz(i,k)*1.e6
    162         taue670_dust(i)=taue670_dust(i)+ss_dust(2)*tr_seri(i,k,id_codu)*
    163      .                zdz(i,k)*1.e6
    164         taue670_dustsco(i)=taue550_dustsco(i)+
     194      IF(id_codu>0)  taue670_dust(i)=taue670_dust(i)
     195     .                +ss_dust(2)*tr_seri(i,k,id_codu)*
     196     .                zdz(i,k)*1.e6
     197      IF(id_scdu>0)  taue670_dustsco(i)=taue550_dustsco(i)+
    165198     .                ss_dustsco(2)*tr_seri(i,k,id_scdu)*
    166199     .                zdz(i,k)*1.e6
     
    171204        alpha_acc=ss_acc865(RH_num) + DELTA*(ss_acc865(RH_num+1)-
    172205     .            ss_acc865(RH_num))              !--m2/g
    173         ztaue865(i)=ztaue865(i)+(alpha_acc*tr_seri(i,k,id_fine)+
    174      .                 ss_ssalt865(RH_num)*tr_seri(i,k,id_coss)+
    175      .                 ss_dust(3)*tr_seri(i,k,id_codu)+
    176      .               ss_dustsco(3)*tr_seri(i,k,id_scdu))*zdz(i,k)*1.e6
    177         taue865_tr2(i)=taue865_tr2(i)+alpha_acc*tr_seri(i,k,id_fine)*
     206        auxreal=0.
     207      IF(id_fine>0) auxreal=auxreal+alpha_acc*tr_seri(i,k,id_fine)
     208      IF(id_coss>0) auxreal=auxreal
     209     .                     +ss_ssalt865(RH_num)*tr_seri(i,k,id_coss)
     210      IF(id_codu>0) auxreal=auxreal+ss_dust(3)*tr_seri(i,k,id_codu)
     211      IF(id_scdu>0) auxreal=auxreal+ss_dustsco(3)*tr_seri(i,k,id_scdu)
     212        ztaue865(i)=ztaue865(i)+auxreal*zdz(i,k)*1.e6
     213!JE20150128        ztaue865(i)=ztaue865(i)+(alpha_acc*tr_seri(i,k,id_fine)+
     214!     .                 ss_ssalt865(RH_num)*tr_seri(i,k,id_coss)+
     215!     .                 ss_dust(3)*tr_seri(i,k,id_codu)+
     216!     .               ss_dustsco(3)*tr_seri(i,k,id_scdu))*zdz(i,k)*1.e6
     217      IF(id_fine>0) taue865_tr2(i)=taue865_tr2(i)
     218     .                +alpha_acc*tr_seri(i,k,id_fine)*
    178219     .                 zdz(i,k)*1.e6
    179         taue865_ss(i)=taue865_ss(i)+
     220      IF(id_coss>0) taue865_ss(i)=taue865_ss(i)+
    180221     .                ss_ssalt865(RH_num)*tr_seri(i,k,id_coss)*
    181222     .                zdz(i,k)*1.e6
    182         taue865_dust(i)=taue865_dust(i)+ss_dust(3)*tr_seri(i,k,id_codu)*
    183      .                zdz(i,k)*1.e6
    184         taue865_dustsco(i)=taue550_dustsco(i)+
     223      IF(id_codu>0)  taue865_dust(i)=taue865_dust(i)
     224     .                +ss_dust(3)*tr_seri(i,k,id_codu)*
     225     .                zdz(i,k)*1.e6
     226      IF(id_scdu>0)  taue865_dustsco(i)=taue550_dustsco(i)+
    185227     .                ss_dustsco(3)*tr_seri(i,k,id_scdu)*
    186228     .                zdz(i,k)*1.e6
     
    188230
    189231c
    190        burden_ss(i)=burden_ss(i)+tr_seri(i,k,id_coss)*1.e6*1.e3*zdz(i,k)
     232      IF(id_coss>0)  burden_ss(i)=burden_ss(i)
     233     .                +tr_seri(i,k,id_coss)*1.e6*1.e3*zdz(i,k)
    191234      ENDDO            !-loop on klev
    192235      ENDDO            !-loop on klon
  • LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/coarsemission.F

    r2175 r2196  
    1818     .                             flux_sparam_ssfine,flux_sparam_sscoa,
    1919     .                          id_prec,id_fine,id_coss,id_codu,id_scdu,
     20     .                          ok_chimeredust,
    2021     .                                                source_tr,flux_tr)
    2122!     .                         wth,cly,zprecipinsoil,lmt_sea_salt,
     
    4142c============================== INPUT ==================================
    4243      INTEGER nbjour
     44      LOGICAL ok_chimeredust
    4345      REAL pdtphys  ! pas d'integration pour la physique (seconde)
    4446      REAL t_seri(klon,klev)  ! temperature
     
    133135
    134136c
     137      IF (.NOT. ok_chimeredust)  THEN 
    135138      DO i=1, klon
    136139!!     IF (cly(i).GE.9990..OR.wth(i).GE.9990..OR.
     
    154157!         flux_sparam_ddcoa(i)=scale_param_dustcoa(iregion_dust(i)) *
    155158!     .                            dust_ec(i)*1.e3*0.905*1.e3
    156          source_tr(i,id_fine)=scale_param_dustacc(iregion_dust(i))*
    157      .                  dust_ec(i)*1.e3*0.114   ! g/m2/s
    158          source_tr(i,id_codu)=scale_param_dustcoa(iregion_dust(i))*
    159      .                  dust_ec(i)*1.e3*0.108   ! g/m2/s   bin 0.5-3um
    160          source_tr(i,id_scdu)=scale_param_dustsco(iregion_dust(i))*
    161      .                  dust_ec(i)*1.e3*0.778   ! g/m2/s   bin 3-15um
    162 ! Original line (4 tracers)
    163          flux_tr(i,id_fine)=scale_param_dustacc(iregion_dust(i))*
    164      .                  dust_ec(i)*1.e3*0.114*1.e3  !mg/m2/s
    165          flux_tr(i,id_codu)=scale_param_dustcoa(iregion_dust(i))*
    166      .                  dust_ec(i)*1.e3*0.108*1.e3  !mg/m2/s bin 0.5-3um
    167          flux_tr(i,id_scdu)=scale_param_dustsco(iregion_dust(i))*
    168      .                  dust_ec(i)*1.e3*0.778*1.e3  !mg/m2/s bin 0.5-3um
     159      IF(id_fine>0)     source_tr(i,id_fine)=
     160     . scale_param_dustacc(iregion_dust(i))*
     161     .                  dust_ec(i)*1.e3*0.093   ! g/m2/s
     162      IF(id_codu>0)   source_tr(i,id_codu)=
     163     . scale_param_dustcoa(iregion_dust(i))*
     164     .                  dust_ec(i)*1.e3*0.905   ! g/m2/s   bin 0.5-10um
     165      IF(id_scdu>0)  source_tr(i,id_scdu)=0.   ! no supercoarse
     166! Original line (4 tracers)
     167       IF(id_fine>0)   flux_tr(i,id_fine)=
     168     .  scale_param_dustacc(iregion_dust(i))*
     169     .                  dust_ec(i)*1.e3*0.093*1.e3  !mg/m2/s
     170       IF(id_codu>0)  flux_tr(i,id_codu)=
     171     . scale_param_dustcoa(iregion_dust(i))*
     172     .                  dust_ec(i)*1.e3*0.905*1.e3  !mg/m2/s bin 0.5-10um
     173       IF(id_scdu>0) flux_tr(i,id_scdu)=0.
    169174
    170175         flux_sparam_ddfine(i)=scale_param_dustacc(iregion_dust(i)) *
    171      .                            dust_ec(i)*1.e3*0.114*1.e3
     176     .                            dust_ec(i)*1.e3*0.093*1.e3
    172177         flux_sparam_ddcoa(i)=scale_param_dustcoa(iregion_dust(i)) *
    173      .                            dust_ec(i)*1.e3*0.108*1.e3
    174          flux_sparam_ddsco(i)=scale_param_dustsco(iregion_dust(i)) *
    175      .                            dust_ec(i)*1.e3*0.778*1.e3
    176       ENDDO
    177      
     178     .                            dust_ec(i)*1.e3*0.905*1.e3
     179         flux_sparam_ddsco(i)=0.
     180      ENDDO
     181      ENDIF
    178182!*****************NEW CHIMERE DUST EMISSION Sahara*****
    179183! je  20140522
    180       IF(.TRUE.) THEN
     184      IF(ok_chimeredust) THEN
    181185      print *,'MIX- NEW SAHARA DUST SOURCE SCHEME...'
    182186
     
    195199      DO i=1,klon   
    196200         if (maskd(i).gt.0) then
    197          source_tr(i,id_fine)=scale_param_dustacc(iregion_dust(i))*
     201      IF(id_fine>0)    source_tr(i,id_fine)=
     202     . scale_param_dustacc(iregion_dust(i))*
    198203     .                  dustsourceacc(i)*1.e3   ! g/m2/s  bin 0.03-0.5
    199          source_tr(i,id_codu)=scale_param_dustcoa(iregion_dust(i))*
     204      IF(id_codu>0)    source_tr(i,id_codu)=
     205     . scale_param_dustcoa(iregion_dust(i))*
    200206     .                  dustsourcecoa(i)*1.e3   ! g/m2/s   bin 0.5-3um
    201          source_tr(i,id_scdu)=scale_param_dustsco(iregion_dust(i))*
     207      IF(id_scdu>0)   source_tr(i,id_scdu)=
     208     . scale_param_dustsco(iregion_dust(i))*
    202209     .                  dustsourcesco(i)*1.e3   ! g/m2/s   bin 3-15um
    203210! Original line (4 tracers)
    204          flux_tr(i,id_fine)=scale_param_dustacc(iregion_dust(i))*
     211       IF(id_fine>0)  flux_tr(i,id_fine)=
     212     .  scale_param_dustacc(iregion_dust(i))*
    205213     .                  dustsourceacc(i)*1.e3*1.e3  !mg/m2/s
    206          flux_tr(i,id_codu)=scale_param_dustcoa(iregion_dust(i))*
     214       IF(id_codu>0)  flux_tr(i,id_codu)=
     215     . scale_param_dustcoa(iregion_dust(i))*
    207216     .                  dustsourcecoa(i)*1.e3*1.e3  !mg/m2/s bin 0.5-3um
    208          flux_tr(i,id_scdu)=scale_param_dustsco(iregion_dust(i))*
     217       IF(id_scdu>0)  flux_tr(i,id_scdu)=
     218     . scale_param_dustsco(iregion_dust(i))*
    209219     .                  dustsourcesco(i)*1.e3*1.e3  !mg/m2/s bin 3-15um
    210220         flux_sparam_ddfine(i)=scale_param_dustacc(iregion_dust(i)) *
     
    215225     .                            dustsourcesco(i)*1.e3*1.e3
    216226         else
    217          source_tr(i,id_fine)=scale_param_dustacc(iregion_dust(i))*
     227        IF(id_fine>0) source_tr(i,id_fine)=
     228     .  scale_param_dustacc(iregion_dust(i))*
    218229     .                  dust_ec(i)*1.e3*0.114   ! g/m2/s
    219          source_tr(i,id_codu)=scale_param_dustcoa(iregion_dust(i))*
     230        IF(id_codu>0) source_tr(i,id_codu)=
     231     .  scale_param_dustcoa(iregion_dust(i))*
    220232     .                  dust_ec(i)*1.e3*0.108   ! g/m2/s   bin 0.5-3um
    221          source_tr(i,id_scdu)=scale_param_dustsco(iregion_dust(i))*
     233        IF(id_scdu>0) source_tr(i,id_scdu)=
     234     .  scale_param_dustsco(iregion_dust(i))*
    222235     .                  dust_ec(i)*1.e3*0.778   ! g/m2/s   bin 3-15um
    223236! Original line (4 tracers)
    224          flux_tr(i,id_fine)=scale_param_dustacc(iregion_dust(i))*
     237        IF(id_fine>0) flux_tr(i,id_fine)=
     238     . scale_param_dustacc(iregion_dust(i))*
    225239     .                  dust_ec(i)*1.e3*0.114*1.e3  !mg/m2/s
    226          flux_tr(i,id_codu)=scale_param_dustcoa(iregion_dust(i))*
     240        IF(id_codu>0) flux_tr(i,id_codu)=
     241     . scale_param_dustcoa(iregion_dust(i))*
    227242     .                  dust_ec(i)*1.e3*0.108*1.e3  !mg/m2/s bin 0.5-3um
    228          flux_tr(i,id_scdu)=scale_param_dustsco(iregion_dust(i))*
     243        IF(id_scdu>0) flux_tr(i,id_scdu)=
     244     . scale_param_dustsco(iregion_dust(i))*
    229245     .                  dust_ec(i)*1.e3*0.778*1.e3  !mg/m2/s bin 0.5-3um
    230246
     
    257273      ENDDO
    258274      CALL minmaxsource(tmp_var2,qmin,qmax,'src: before SS emiss')
     275      IF(id_coss>0) then
    259276      print *,'Source = ',SUM(source_tr(:,id_coss)),
    260277     .     MINVAL(source_tr(:,id_coss)), MAXVAL(source_tr(:,id_coss))
    261 !      ENDIF
     278      ENDIF
    262279!
    263280      DO i=1,klon
    264281! Original line (4 tracers)
    265          source_tr(i,id_fine)=source_tr(i,id_fine)+scale_param_ssacc*
     282         IF(id_fine>0) source_tr(i,id_fine)=
     283     . source_tr(i,id_fine)+scale_param_ssacc*
    266284     .                                 lmt_sea_salt(i,1)*1.e4       !g/m2/s
    267285
    268286! Original line (4 tracers)
    269          flux_tr(i,id_fine)=flux_tr(i,id_fine)+scale_param_ssacc
     287       IF(id_fine>0)  flux_tr(i,id_fine)=
     288     . flux_tr(i,id_fine)+scale_param_ssacc
    270289     .                            *lmt_sea_salt(i,1)*1.e4*1.e3      !mg/m2/s
    271290!
    272        source_tr(i,id_coss)=scale_param_sscoa*lmt_sea_salt(i,2)*1.e4    !g/m2/s
    273        flux_tr(i,id_coss)=scale_param_sscoa*lmt_sea_salt(i,2)*1.e4*1.e3 !mg/m2/s
     291      IF(id_coss>0)  source_tr(i,id_coss)=
     292     . scale_param_sscoa*lmt_sea_salt(i,2)*1.e4    !g/m2/s
     293      IF(id_coss>0)  flux_tr(i,id_coss)=
     294     . scale_param_sscoa*lmt_sea_salt(i,2)*1.e4*1.e3 !mg/m2/s
    274295c
    275296         flux_sparam_ssfine(i)=scale_param_ssacc *
     
    285306      ENDDO
    286307      CALL minmaxsource(tmp_var2,qmin,qmax,'src: after SS emiss')
     308      IF(id_coss>0) then
    287309      print *,'Source = ',SUM(source_tr(:,id_coss)),
    288310     .  MINVAL(source_tr(:,id_coss)), MAXVAL(source_tr(:,id_coss))
    289 !      ENDIF
     311      ENDIF
    290312c     
    291313
  • LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/dustemission_mod.F90

    r2176 r2196  
    2121  real   , parameter :: dmax=0.2
    2222  integer, parameter :: nspe=nmode*3+1
     23  real   ,parameter     :: vkarm=0.41
     24!JE20150202 : updating scheme to chimere13b <<<
     25! original values
     26!  integer, parameter :: div1=3.
     27!  integer, parameter :: div2=3.
     28!  integer, parameter :: div3=3.
     29!  real   , parameter :: e1=3.61/div1
     30!  real   , parameter :: e2=3.52/div2
     31!  real   , parameter :: e3=3.46/div3
     32!  real   , parameter :: factorflux=10.
     33!  real   , parameter :: rop=2.65 ! particle density g/m3
     34!  real   , parameter :: roa=0.001227  ! air density g/m3
     35!  real   , parameter :: pi=3.14159  !!
     36!  real   , parameter :: gravity=981. !! cm!!
     37!  real   , parameter :: cd=1.*roa/gravity
     38! new values
     39!  logical, parameter :: ok_splatunning=.true.
     40! Div=3 from S. Alfaro (Sow et al ACPD 2011)
     41!JE 20150206
    2342  integer, parameter :: div1=3.
    2443  integer, parameter :: div2=3.
    2544  integer, parameter :: div3=3.
    26 
    27   real   ,parameter     :: vkarm=0.41
    2845  real   , parameter :: e1=3.61/div1
    2946  real   , parameter :: e2=3.52/div2
    3047  real   , parameter :: e3=3.46/div3
     48  real   , parameter :: factorflux=1.
    3149  real   , parameter :: rop=2.65 ! particle density g/m3
    3250  real   , parameter :: roa=0.001227  ! air density g/m3
    3351  real   , parameter :: pi=3.14159  !!
    3452  real   , parameter :: gravity=981. !! cm!!
    35   real   , parameter :: cd=1.*roa/gravity
     53! C=2.61 from Marticorena and Bergametti 1995 instead of Gillete and Chen 2001
     54! (recommended C=1.1  in supply-limited dust source area.. )
     55  real   , parameter :: cd=2.61*roa/gravity
     56!JE20150202>>>>
    3657  real,parameter     :: beta=16300.
    3758  real, parameter, dimension(3) :: diam=(/1.5,6.7,14.2/)
     
    6990!!!  INTEGER,DIMENSION(:),ALLOCATABLE,SAVE :: maskdust
    7091  REAL,DIMENSION(:,:),ALLOCATABLE,SAVE :: feff
     92  REAL,DIMENSION(:,:),ALLOCATABLE,SAVE :: feffdbg
    7193
    7294  REAL,DIMENSION(:),  ALLOCATABLE,SAVE :: sizeclass
     
    110132!!!!$OMP THREADPRIVATE(maskdust)
    111133!$OMP THREADPRIVATE(feff)
     134!$OMP THREADPRIVATE(feffdbg)
    112135!$OMP THREADPRIVATE(sizeclass)
    113136!$OMP THREADPRIVATE(sizeclass2)
     
    536559    ALLOCATE( solspe(nats,nspe) )
    537560    ALLOCATE( feff(klon,ntyp) )
     561    ALLOCATE( feffdbg(klon,ntyp) )
    538562    ALLOCATE( sizeclass(nclass) )
    539563    ALLOCATE( sizeclass2(nclass) )
     
    768792!              endif
    769793              feff(i,k)=0.
     794              feffdbg(i,k)=0.
    770795 !         print*,'IKKK A ',i,klon,k,ntyp
    771796            else
     
    776801              bb=log(aeff*(xeff/zos(i,k))**0.8)
    777802              cc=1.-aa/bb
     803              feffdbg(i,k)=cc
    778804       !   print*,'IKKK B1 ',i,klon,k,ntyp
    779805! drag partition between zo1 and zo2
     
    789815              endif
    790816              if (feff(i,k).lt.0.)feff(i,k)=0.
     817              if (feffdbg(i,k).lt.0.)feffdbg(i,k)=0.
    791818              if (feff(i,k).gt.1.)feff(i,k)=1.
     819              if (feffdbg(i,k).gt.1.)feffdbg(i,k)=1.
    792820    !      print*,'IKKK E ',i,klon,k,ntyp
    793821            endif
     
    798826!
    799827    CALL writefield_phy("REPART5",feff(1:klon,1:5),5)
     828    CALL writefield_phy("REPART5dbg",feffdbg(1:klon,1:5),5)
    800829endif
    801830
     
    10331062  REAL :: pdfcum,U10mMOD,pdfu,weilambda
    10341063  REAL :: z0salt,ceff,cerod,cpcent
    1035   REAL :: cdnms,ustarns,modwm,utmin
     1064!JE20150202  !REAL :: cdnms,ustarns,modwm,utmin
     1065  REAL :: cdnms,ustarns,modwm
    10361066  REAL :: fdp1,fdp2,ad1,ad2,ad3,flux_diam
    10371067  REAL :: dfec1,dfec2,dfec3,t1,t2,t3,p1,p2,p3,dec,ec
     
    11201150                   ft2=0.
    11211151                   ft3=0.
    1122 
     1152!JE20150129<<<<
     1153
     1154             IF(.FALSE.) THEN
    11231155!                  nat=int(sol(i,n))
    11241156!                    print *,i,n
     
    11361168             !      if(n.eq.1) print*,'nat1=',nat,'sol1=',sol(i,n)
    11371169                   IF(n.eq.1.and.nat.eq.99)GOTO 80
     1170
     1171             ENDIF
     1172             IF(.TRUE.) THEN
     1173                nat=int(sol(i,n))
     1174                if(n == 1 .and. nat >= 14 .or. nat < 1 .or. nat > 19) GOTO 80
     1175             ENDIF
     1176!JE20150129>>>>
     1177
    11381178                      z0salt=z02(i,n)
    11391179                      ceff=feff(i,n)
     
    11491189                      cdnms=vkarm/(log(z10m/z0salt))
    11501190                      modwm=sqrt((wind10ms(kwb)**2)+(1.2*zwstar(i))**2)
    1151 !                      modwm=sqrt((wind10ms(kwb)**2)+(1.2*sqrt(ale_wake(i))
    1152 !                      )**2)
    1153 !                      modwm=sqrt((wind10ms(kwb)**2)+(1.2*sqrt(Ale_bl(i)) )**2)
    1154 !                      modwm=sqrt((wind10ms(kwb)**2))
    11551191                      ustarns=cdnms*modwm*100.
    1156                       utmin=umin/(cdnms*ceff)
    1157                    IF(wind10cm(kwb).ge.utmin)THEN
    1158                       ustarsalt=ustarns+  &
    1159                     (0.3*(wind10cm(kwb)/100.-utmin/100.)**2.)
    1160                    ELSE
    1161                       ustarsalt=ustarns
    1162                    ENDIF
     1192!JE20150202 <<
     1193! Do not have too much sense.. and is not anymore in the chimere14b version.
     1194!
     1195!                      utmin=umin/(cdnms*ceff)
     1196!                   IF(wind10cm(kwb).ge.utmin)THEN
     1197!                      ustarsalt=ustarns+  &
     1198!                    (0.3*(wind10cm(kwb)/100.-utmin/100.)**2.)
     1199!                   ELSE
     1200!                      ustarsalt=ustarns
     1201!                   ENDIF
     1202! ustarsalt should be :
     1203                    ustarsalt=ustarns
     1204!JE20150202 >>
     1205
     1206
    11631207                   IF(ustarsalt.lt.umin/ceff)GOTO 80
    11641208!                      print*,'ustarsalt = ',ustarsalt
     
    12151259             ENDDO !n=1,ntyp
    1216126070 CONTINUE
     1261!factorflux
    12171262        fluxdust(i,1)=fluxdust(i,1)+flux1*probu(kwb)
    12181263        fluxdust(i,2)=fluxdust(i,2)+flux2*probu(kwb)
    12191264        fluxdust(i,3)=fluxdust(i,3)+flux3*probu(kwb)
    12201265   ENDDO !kwb=1,nwb
    1221       m1dflux(i)=10.*fluxdust(i,1)
    1222       m2dflux(i)=10.*fluxdust(i,2)          ! tous en Kg/m2/s
    1223       m3dflux(i)=10.*fluxdust(i,3)
     1266!JE20150202 <<
     1267!      m1dflux(i)=10.*fluxdust(i,1)
     1268!      m2dflux(i)=10.*fluxdust(i,2)          ! tous en Kg/m2/s
     1269!      m3dflux(i)=10.*fluxdust(i,3)
     1270      m1dflux(i)=factorflux*10.*fluxdust(i,1)
     1271      m2dflux(i)=factorflux*10.*fluxdust(i,2)          ! tous en Kg/m2/s
     1272      m3dflux(i)=factorflux*10.*fluxdust(i,3)
     1273!JE20150202 >>
    12241274
    12251275
     
    12341284   DO i=1,ndistb
    12351285    DO j=1,nbins
    1236     emisbin(k,j) = emisbin(k,j)+10*fluxdust(k,i)*massfrac(i,j) 
     1286!JE20150202 <<
     1287!    emisbin(k,j) = emisbin(k,j)+10*fluxdust(k,i)*massfrac(i,j) 
     1288    emisbin(k,j) = emisbin(k,j)+factorflux*fluxdust(k,i)*massfrac(i,j) 
     1289!JE20150202 >>
    12371290    ENDDO !j, nbind
    12381291   ENDDO  !i, nmode
  • LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/finemission.F

    r2175 r2196  
    6868      DO i=1,klon
    6969         IF (iregion_ind(i).GT.0) THEN
    70            source_tr(i,id_fine)=source_tr(i,id_fine)+
     70       IF(id_fine>0)    source_tr(i,id_fine)=source_tr(i,id_fine)+
    7171     .                (scale_param_ff(iregion_ind(i))*lmt_bcff(i)+     !g/m2/s
    7272     .                 scale_param_ff(iregion_ind(i))*lmt_omff(i)
    7373     .                 )     * 1.e4                        !g/m2/s
    7474c
    75            flux_tr(i,id_fine)=flux_tr(i,id_fine)+
     75      IF(id_fine>0)     flux_tr(i,id_fine)=flux_tr(i,id_fine)+
    7676     .                (scale_param_ff(iregion_ind(i))*lmt_bcff(i)+     !mg/m2/s
    7777     .                 scale_param_ff(iregion_ind(i))*lmt_omff(i)
     
    8484         ENDIF
    8585         IF (iregion_bb(i).GT.0) THEN
    86            source_tr(i,id_fine)=source_tr(i,id_fine)+
     86       IF(id_fine>0)    source_tr(i,id_fine)=source_tr(i,id_fine)+
    8787     .                (scale_param_bb(iregion_bb(i))*lmt_bcbb_l(i)+   !g/m2/s
    8888     .                 scale_param_bb(iregion_bb(i))*lmt_ombb_l(i)    !g/m2/s
    8989     .                 )     * 1.e4                        !g/m2/s
    9090c
    91            flux_tr(i,id_fine)=flux_tr(i,id_fine)+
     91       IF(id_fine>0)    flux_tr(i,id_fine)=flux_tr(i,id_fine)+
    9292     .                (scale_param_bb(iregion_bb(i))*lmt_bcbb_l(i)+   !mg/m2/s
    9393     .                 scale_param_bb(iregion_bb(i))*lmt_ombb_l(i)+   !mg/m2/s
     
    101101     .                   *1.e4*1.e3
    102102         ENDIF
    103          source_tr(i,id_fine)=source_tr(i,id_fine)+
     103       IF(id_fine>0)  source_tr(i,id_fine)=source_tr(i,id_fine)+
    104104     .                (lmt_bcnff(i)+lmt_bcba(i)+lmt_omnff(i)+
    105105     .                 lmt_omnat(i)+lmt_omba(i))     * 1.e4           !g/m2/s
    106106c
    107          flux_tr(i,id_fine)=flux_tr(i,id_fine)+
     107       IF(id_fine>0)  flux_tr(i,id_fine)=flux_tr(i,id_fine)+
    108108     .                (lmt_bcnff(i)+lmt_omnff(i)+lmt_omnat(i)+
    109109     .                 lmt_omba(i)+lmt_bcba(i))     * 1.e4 *1.e3      !mg/m2/s
     
    135135c
    136136         IF (iregion_bb(i) .GT.0) THEN
    137            tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine)+
     137        IF(id_fine>0)   tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine)+
    138138     .              (scale_param_bb(iregion_bb(i))*lmt_bcbb_h(i)+
    139139     .               scale_param_bb(iregion_bb(i))*lmt_ombb_h(i))
  • LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/gastoparticle.F

    r2175 r2196  
    4848      pi=atan(1.)*4.
    4949c
     50      IF (id_prec>0 .AND. id_fine>0) THEN
    5051      DO k = 1, klev
    5152      DO i = 1, klon
     
    8586      ENDDO
    8687      ENDDO
    87 
     88      ENDIF
    8889
    8990c
  • LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/phys_output_write_mod.F90

    r2176 r2196  
    1313!!JE20140507>>
    1414
    15   USE phytracr_spl_mod, ONLY : d_tr_cl, d_tr_th, d_tr_cv, d_tr_lessi_impa, &
     15  USE phytracr_spl_mod, ONLY : ok_chimeredust, id_prec, id_fine, id_coss, &
     16       id_codu, id_scdu , &
     17       d_tr_cl, d_tr_th, d_tr_cv, d_tr_lessi_impa, &
    1618       d_tr_lessi_nucl, d_tr_insc, d_tr_bcscav, d_tr_evapls, d_tr_ls,  &
    1719       d_tr_trsp, d_tr_sscav, d_tr_sat, d_tr_uscav ,&
  • LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/physiq.F90

    r2176 r2196  
    36753675  scale_param_dustcoa(:)=1.
    36763676  scale_param_dustsco(:)=1.
    3677   param_wstarBLperregion(:)=1.
    3678   param_wstarWAKEperregion(:)=0.25
     3677  param_wstarBLperregion(:)=0.
     3678  param_wstarWAKEperregion(:)=0.
    36793679
    36803680!  filescaleparamsind='modind.bin'
  • LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/phytracr_spl_mod.F90

    r2176 r2196  
    232232!$OMP THREADPRIVATE(flux_sparam_sscoa,u10m_ss,v10m_ss)
    233233
     234! Select dust emission scheme ver the Sahara:
     235!      LOGICAL,PARAMETER,SAVE ::  ok_chimeredust=.FALSE.
     236      LOGICAL,PARAMETER ::  ok_chimeredust=.TRUE.
     237!$OMP THREADPRIVATE(ok_chimeredust)
    234238! JE20141224 >>
    235239
     
    664668!JE2014124      PARAMETER (ok_histrac=.true.)
    665669      PARAMETER (ok_histrac=.false.)
     670!      PARAMETER (ok_chimeredust=.false.)
     671!      PARAMETER (ok_chimeredust=.true.)
    666672      INTEGER ndex2d(iim*(jjm+1)), ndex3d(iim*(jjm+1)*klev)
    667673      INTEGER nhori1, nhori2, nhori3, nhori4, nhori5, nvert
     
    836842
    837843      IF (debutphy) THEN
     844        id_prec=-1
     845        id_fine=-1
     846        id_coss=-1
     847        id_codu=-1
     848        id_scdu=-1
    838849       !print *,nbtr
    839850       do it=1,nbtr
     
    855866        endif
    856867       enddo
     868       ! check consistency with dust emission scheme:
     869       if (ok_chimeredust) then
     870          if (.not.( id_scdu>0 .and. id_codu>0 .and. id_fine>0)) then
     871             call abort_gcm('phytracr_mod', 'pb in ok_chimdust 0',1)
     872          endif
     873       else
     874          if (id_scdu>0) then
     875       call abort_gcm('phytracr_mod', 'pb in ok_chimdust 1 SCDU',1)
     876          endif
     877          if ( (id_codu .le. 0) .or. ( id_fine.le.0)  ) then 
     878          call abort_gcm('phytracr_mod', 'pb in ok_chimdust 1',1)
     879          endif
     880       endif
     881
     882
    857883       !print *,id_prec,id_fine,id_coss,id_codu,id_scdu
    858884       ENDIF
     
    864890
    865891!---fraction of tracer that is convected (Tiedke)
    866       xconv(id_prec)=0.8
    867       xconv(id_fine)=0.5
    868       xconv(id_coss)=0.5
    869       xconv(id_codu)=0.6
    870       xconv(id_scdu)=0.6  !!JE fix
    871 
    872       masse(id_prec)=32.
    873       masse(id_fine)=6.02e23
    874       masse(id_coss)=6.02e23
    875       masse(id_codu)=6.02e23
    876       masse(id_scdu)=6.02e23
    877 
    878       henry(id_prec)=1.4
    879       henry(id_fine)=0.0
    880       henry(id_coss)=0.0
    881       henry(id_codu)=0.0
    882       henry(id_scdu)=0.0
     892      xconv(:)=0.
     893      if(id_prec>0)  xconv(id_prec)=0.8
     894      if(id_fine>0)  xconv(id_fine)=0.5
     895      if(id_coss>0)  xconv(id_coss)=0.5
     896      if(id_codu>0)  xconv(id_codu)=0.6
     897      if(id_scdu>0)  xconv(id_scdu)=0.6  !!JE fix
     898
     899      masse(:)=1.
     900      if(id_prec>0)  masse(id_prec)=32.
     901      if(id_fine>0)  masse(id_fine)=6.02e23
     902      if(id_coss>0)  masse(id_coss)=6.02e23
     903      if(id_codu>0)  masse(id_codu)=6.02e23
     904      if(id_scdu>0)  masse(id_scdu)=6.02e23
     905
     906      henry(:)=0.
     907      if(id_prec>0)  henry(id_prec)=1.4
     908      if(id_fine>0)  henry(id_fine)=0.0
     909      if(id_coss>0)  henry(id_coss)=0.0
     910      if(id_codu>0)  henry(id_codu)=0.0
     911      if(id_scdu>0)  henry(id_scdu)=0.0
    883912      !henry= (/1.4, 0.0, 0.0, 0.0/)
    884       kk(id_prec)=2900.
    885       kk(id_fine)=0.0
    886       kk(id_coss)=0.0
    887       kk(id_codu)=0.0
    888       kk(id_scdu)=0.0
     913      kk(:)=0.
     914      if(id_prec>0)  kk(id_prec)=2900.
     915      if(id_fine>0)  kk(id_fine)=0.0
     916      if(id_coss>0)  kk(id_coss)=0.0
     917      if(id_codu>0)  kk(id_codu)=0.0
     918      if(id_scdu>0)  kk(id_scdu)=0.0
    889919      !kk = (/2900., 0., 0., 0./)
    890       alpha_r(id_prec)=0.0
    891       alpha_r(id_fine)=0.001
    892       alpha_r(id_coss)=0.001
    893       alpha_r(id_codu)=0.001
    894       alpha_r(id_scdu)=0.001  !JE fix
    895 
    896       alpha_s(id_prec)=0.0
    897       alpha_s(id_fine)=0.01
    898       alpha_s(id_coss)=0.01
    899       alpha_s(id_codu)=0.01
    900       alpha_s(id_scdu)=0.01  !JE fix
     920      alpha_r(:)=0.
     921      if(id_prec>0)  alpha_r(id_prec)=0.0
     922      if(id_fine>0)  alpha_r(id_fine)=0.001
     923      if(id_coss>0)  alpha_r(id_coss)=0.001
     924      if(id_codu>0)  alpha_r(id_codu)=0.001
     925      if(id_scdu>0)  alpha_r(id_scdu)=0.001  !JE fix
     926      alpha_s(:)=0.
     927      if(id_prec>0)  alpha_s(id_prec)=0.0
     928      if(id_fine>0)  alpha_s(id_fine)=0.01
     929      if(id_coss>0)  alpha_s(id_coss)=0.01
     930      if(id_codu>0)  alpha_s(id_codu)=0.01
     931      if(id_scdu>0)  alpha_s(id_scdu)=0.01  !JE fix
    901932
    902933!      alpha_r =  (/0., 0.001, 0.001, 0.001/)
     
    906937! nhl vdep_oce for tr1 is a weighted average of dms and so2 dep velocities
    907938      !vdep_oce = (/0.28, 0.28, 1.2, 1.2/)
    908       vdep_oce(id_prec) = 0.28
    909       vdep_oce(id_fine) = 0.28
    910       vdep_oce(id_coss) = 1.2
    911       vdep_oce(id_codu) = 1.2
    912       vdep_oce(id_scdu) = 1.2
    913 
    914       vdep_sic(id_prec) = 0.2
    915       vdep_sic(id_fine) = 0.17
    916       vdep_sic(id_coss) = 1.2
    917       vdep_sic(id_codu) = 1.2
    918       vdep_sic(id_scdu) = 1.2
     939      vdep_oce(:)=0.
     940      if(id_prec>0)  vdep_oce(id_prec) = 0.28
     941      if(id_fine>0)  vdep_oce(id_fine) = 0.28
     942      if(id_coss>0)  vdep_oce(id_coss) = 1.2
     943      if(id_codu>0)  vdep_oce(id_codu) = 1.2
     944      if(id_scdu>0)  vdep_oce(id_scdu) = 1.2
     945      vdep_sic(:)=0.
     946      if(id_prec>0)  vdep_sic(id_prec) = 0.2
     947      if(id_fine>0)  vdep_sic(id_fine) = 0.17
     948      if(id_coss>0)  vdep_sic(id_coss) = 1.2
     949      if(id_codu>0)  vdep_sic(id_codu) = 1.2
     950      if(id_scdu>0)  vdep_sic(id_scdu) = 1.2
    919951
    920952      !vdep_sic = (/0.2, 0.17, 1.2, 1.2/)     
    921953      !vdep_ter = (/0.3, 0.14, 1.2, 1.2/)
    922 
    923       vdep_ter(id_prec) = 0.3
    924       vdep_ter(id_fine) = 0.14
    925       vdep_ter(id_coss) = 1.2
    926       vdep_ter(id_codu) = 1.2
    927       vdep_ter(id_scdu) = 1.2
    928 
    929       vdep_lic(id_prec) = 0.2
    930       vdep_lic(id_fine) = 0.17
    931       vdep_lic(id_coss) = 1.2
    932       vdep_lic(id_codu) = 1.2
    933       vdep_lic(id_scdu) = 1.2
     954      vdep_ter(:)=0.
     955      if(id_prec>0)  vdep_ter(id_prec) = 0.3
     956      if(id_fine>0)  vdep_ter(id_fine) = 0.14
     957      if(id_coss>0)  vdep_ter(id_coss) = 1.2
     958      if(id_codu>0)  vdep_ter(id_codu) = 1.2
     959      if(id_scdu>0)  vdep_ter(id_scdu) = 1.2
     960
     961      vdep_lic(:)=0.
     962      if(id_prec>0)  vdep_lic(id_prec) = 0.2
     963      if(id_fine>0)  vdep_lic(id_fine) = 0.17
     964      if(id_coss>0)  vdep_lic(id_coss) = 1.2
     965      if(id_codu>0)  vdep_lic(id_codu) = 1.2
     966      if(id_scdu>0)  vdep_lic(id_scdu) = 1.2
    934967
    935968
    936969      ! convective KE lessivage aer params:
    937       ccntrAA_spla(id_prec)=-9999.
    938       ccntrAA_spla(id_fine)=0.7
    939       ccntrAA_spla(id_coss)=1.0
    940       ccntrAA_spla(id_codu)=0.7
    941       ccntrAA_spla(id_scdu)=0.7
    942 
    943       ccntrENV_spla(id_prec)=-9999.
    944       ccntrENV_spla(id_fine)=0.7
    945       ccntrENV_spla(id_coss)=1.0
    946       ccntrENV_spla(id_codu)=0.7
    947       ccntrENV_spla(id_scdu)=0.7
    948 
    949       coefcoli_spla(id_prec)=-9999.
    950       coefcoli_spla(id_fine)=0.001
    951       coefcoli_spla(id_coss)=0.001
    952       coefcoli_spla(id_codu)=0.001
    953       coefcoli_spla(id_scdu)=0.001
     970      ccntrAA_spla(:)=0.
     971      if(id_prec>0)  ccntrAA_spla(id_prec)=-9999.
     972      if(id_fine>0)  ccntrAA_spla(id_fine)=0.7
     973      if(id_coss>0)  ccntrAA_spla(id_coss)=1.0
     974      if(id_codu>0)  ccntrAA_spla(id_codu)=0.7
     975      if(id_scdu>0)  ccntrAA_spla(id_scdu)=0.7
     976
     977      ccntrENV_spla(:)=0.
     978      if(id_prec>0)  ccntrENV_spla(id_prec)=-9999.
     979      if(id_fine>0)  ccntrENV_spla(id_fine)=0.7
     980      if(id_coss>0)  ccntrENV_spla(id_coss)=1.0
     981      if(id_codu>0)  ccntrENV_spla(id_codu)=0.7
     982      if(id_scdu>0)  ccntrENV_spla(id_scdu)=0.7
     983
     984      coefcoli_spla(:)=0.
     985      if(id_prec>0)  coefcoli_spla(id_prec)=-9999.
     986      if(id_fine>0)  coefcoli_spla(id_fine)=0.001
     987      if(id_coss>0)  coefcoli_spla(id_coss)=0.001
     988      if(id_codu>0)  coefcoli_spla(id_codu)=0.001
     989      if(id_scdu>0)  coefcoli_spla(id_scdu)=0.001
    954990
    955991      !vdep_lic = (/0.2, 0.17, 1.2, 1.2/)     
     
    10011037         print *, 'let s check nbtr=', nbtr
    10021038         print *, 'xlat and xlon'
     1039! JE before put in zero
     1040      IF (lminmax) THEN
     1041        DO it=1,nbtr
     1042        CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'init phytracr')
     1043        ENDDO       
     1044        DO it=1,nbtr
     1045        CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'init phytracr')
     1046        ENDDO
     1047        CALL minmaxsource(source_tr,qmin,qmax,'init phytracr')
     1048      ENDIF
    10031049! JE   initializon to cero the tracers     
    1004          DO it=1, nbtr
    1005             tr_seri(:,:,it)=0.0
    1006          ENDDO
     1050!         DO it=1, nbtr
     1051!            tr_seri(:,:,it)=0.0
     1052!         ENDDO
    10071053! JE end     
    10081054! Initializing to zero tr_seri for comparison purposes
     
    17401786!$OMP BARRIER
    17411787
     1788      lmt_dms(:)=0.0
     1789      aux_var2(:)=0.0
     1790      aux_var3(:,:)=0.0
     1791      source_tr(:,:)=0.0
     1792      flux_tr(:,:)=0.0
     1793      flux_sparam_bb(:)=0.0
     1794      flux_sparam_ff(:)=0.0
     1795      flux_sparam_ind(:)=0.0
     1796      flux_sparam_ddfine(:)=0.0
     1797      flux_sparam_ddcoa(:)=0.0
     1798      flux_sparam_ddsco(:)=0.0
     1799      flux_sparam_ssfine(:)=0.0
     1800      flux_sparam_sscoa(:)=0.0
    17421801       ENDIF ! debutphy
    17431802     
     
    22662325                                  flux_sparam_ssfine,flux_sparam_sscoa,    &
    22672326                              id_prec,id_fine,id_coss,id_codu,id_scdu,     &
     2327                              ok_chimeredust,                           &
    22682328                                                     source_tr,flux_tr)   
    22692329
     
    26572717      CALL sediment_mod(t_seri,pplay,zrho,paprs,pdtphys,RHcl,   & !xlon,xlat, 
    26582718                                     id_coss,id_codu,id_scdu,  &
     2719                                     ok_chimeredust,           &
    26592720                         sed_ss,sed_dust,sed_dustsco,tr_seri)
    26602721!
     
    32283289      CALL aeropt_spl(zdz, tr_seri, RHcl,                                 &
    32293290                        id_prec, id_fine, id_coss, id_codu, id_scdu,     &
     3291                        ok_chimeredust,                                 &
    32303292                    diff_aod550_tot,diag_aod670_tot,diag_aod865_tot,     &
    32313293                    diff_aod550_tr2,diag_aod670_tr2,diag_aod865_tr2,     &
     
    44564518! saving variables for output
    44574519! 2D outputs
    4458 
    44594520      DO i=1, klon
    4460        trm01(i)=trm(i,id_prec)
    4461        trm02(i)=trm(i,id_fine)
    4462        trm03(i)=trm(i,id_coss)
    4463        trm04(i)=trm(i,id_codu)
    4464        trm05(i)=trm(i,id_scdu)
    4465        sconc01(i)=sconc_seri(i,id_prec)
    4466        sconc02(i)=sconc_seri(i,id_fine)
    4467        sconc03(i)=sconc_seri(i,id_coss)
    4468        sconc04(i)=sconc_seri(i,id_codu)
    4469        sconc05(i)=sconc_seri(i,id_scdu)
    4470        flux01(i)=flux_tr(i,id_prec)
    4471        flux02(i)=flux_tr(i,id_fine)
    4472        flux03(i)=flux_tr(i,id_coss)
    4473        flux04(i)=flux_tr(i,id_codu)
    4474        flux05(i)=flux_tr(i,id_scdu)
    4475        ds01(i)=his_ds(i,id_prec)
    4476        ds02(i)=his_ds(i,id_fine)
    4477        ds03(i)=his_ds(i,id_coss)
    4478        ds04(i)=his_ds(i,id_codu)
    4479        ds05(i)=his_ds(i,id_scdu)
    4480        dh01(i)=his_dh(i,id_prec)
    4481        dh02(i)=his_dh(i,id_fine)
    4482        dh03(i)=his_dh(i,id_coss)
    4483        dh04(i)=his_dh(i,id_codu)
    4484        dh05(i)=his_dh(i,id_scdu)
    4485        dtrconv01(i)=dtrconv(i,id_prec)
    4486        dtrconv02(i)=dtrconv(i,id_fine)
    4487        dtrconv03(i)=dtrconv(i,id_coss)
    4488        dtrconv04(i)=dtrconv(i,id_codu)
    4489        dtrconv05(i)=dtrconv(i,id_scdu)
    4490        dtherm01(i)=his_th(i,id_prec)
    4491        dtherm02(i)=his_th(i,id_fine)
    4492        dtherm03(i)=his_th(i,id_coss)
    4493        dtherm04(i)=his_th(i,id_codu)
    4494        dtherm05(i)=his_th(i,id_scdu)
    4495        dhkecv01(i)=his_dhkecv(i,id_prec)
    4496        dhkecv02(i)=his_dhkecv(i,id_fine)
    4497        dhkecv03(i)=his_dhkecv(i,id_coss)
    4498        dhkecv04(i)=his_dhkecv(i,id_codu)
    4499        dhkecv05(i)=his_dhkecv(i,id_scdu)
    4500        dhkelsc01(i)=his_dhkelsc(i,id_prec)
    4501        dhkelsc02(i)=his_dhkelsc(i,id_fine)
    4502        dhkelsc03(i)=his_dhkelsc(i,id_coss)
    4503        dhkelsc04(i)=his_dhkelsc(i,id_codu)
    4504        dhkelsc05(i)=his_dhkelsc(i,id_scdu)
     4521       trm01(i)=0.
     4522       trm02(i)=0.
     4523       trm03(i)=0.
     4524       trm04(i)=0.
     4525       trm05(i)=0.
     4526       sconc01(i)=0.
     4527       sconc02(i)=0.
     4528       sconc03(i)=0.
     4529       sconc04(i)=0.
     4530       sconc05(i)=0.
     4531       flux01(i)=0.
     4532       flux02(i)=0.
     4533       flux03(i)=0.
     4534       flux04(i)=0.
     4535       flux05(i)=0.
     4536       ds01(i)=0.
     4537       ds02(i)=0.
     4538       ds03(i)=0.
     4539       ds04(i)=0.
     4540       ds05(i)=0.
     4541       dh01(i)=0.
     4542       dh02(i)=0.
     4543       dh03(i)=0.
     4544       dh04(i)=0.
     4545       dh05(i)=0.
     4546       dtrconv01(i)=0.
     4547       dtrconv02(i)=0.
     4548       dtrconv03(i)=0.
     4549       dtrconv04(i)=0.
     4550       dtrconv05(i)=0.
     4551       dtherm01(i)=0.
     4552       dtherm02(i)=0.
     4553       dtherm03(i)=0.
     4554       dtherm04(i)=0.
     4555       dtherm05(i)=0.
     4556       dhkecv01(i)=0.
     4557       dhkecv02(i)=0.
     4558       dhkecv03(i)=0.
     4559       dhkecv04(i)=0.
     4560       dhkecv05(i)=0.
     4561       dhkelsc01(i)=0.
     4562       dhkelsc02(i)=0.
     4563       dhkelsc03(i)=0.
     4564       dhkelsc04(i)=0.
     4565       dhkelsc05(i)=0.
     4566!       u10m_ss(i)=u10m_ec(i)
     4567!       v10m_ss(i)=v10m_ec(i)
     4568!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     4569
     4570      if(id_prec>0)  trm01(i)=trm(i,id_prec)
     4571      if(id_fine>0)  trm02(i)=trm(i,id_fine)
     4572      if(id_coss>0)  trm03(i)=trm(i,id_coss)
     4573      if(id_codu>0)  trm04(i)=trm(i,id_codu)
     4574      if(id_scdu>0)  trm05(i)=trm(i,id_scdu)
     4575      if(id_prec>0)    sconc01(i)=sconc_seri(i,id_prec)
     4576      if(id_fine>0)    sconc02(i)=sconc_seri(i,id_fine)
     4577      if(id_coss>0)    sconc03(i)=sconc_seri(i,id_coss)
     4578      if(id_codu>0)    sconc04(i)=sconc_seri(i,id_codu)
     4579      if(id_scdu>0)    sconc05(i)=sconc_seri(i,id_scdu)
     4580      if(id_prec>0)    flux01(i)=flux_tr(i,id_prec)
     4581      if(id_fine>0)    flux02(i)=flux_tr(i,id_fine)
     4582      if(id_coss>0)    flux03(i)=flux_tr(i,id_coss)
     4583      if(id_codu>0)    flux04(i)=flux_tr(i,id_codu)
     4584      if(id_scdu>0)    flux05(i)=flux_tr(i,id_scdu)
     4585      if(id_prec>0)    ds01(i)=his_ds(i,id_prec)
     4586      if(id_fine>0)    ds02(i)=his_ds(i,id_fine)
     4587      if(id_coss>0)    ds03(i)=his_ds(i,id_coss)
     4588      if(id_codu>0)    ds04(i)=his_ds(i,id_codu)
     4589      if(id_scdu>0)    ds05(i)=his_ds(i,id_scdu)
     4590      if(id_prec>0)    dh01(i)=his_dh(i,id_prec)
     4591      if(id_fine>0)    dh02(i)=his_dh(i,id_fine)
     4592      if(id_coss>0)    dh03(i)=his_dh(i,id_coss)
     4593      if(id_codu>0)    dh04(i)=his_dh(i,id_codu)
     4594      if(id_scdu>0)    dh05(i)=his_dh(i,id_scdu)
     4595      if(id_prec>0)    dtrconv01(i)=dtrconv(i,id_prec)
     4596      if(id_fine>0)    dtrconv02(i)=dtrconv(i,id_fine)
     4597      if(id_coss>0)    dtrconv03(i)=dtrconv(i,id_coss)
     4598      if(id_codu>0)    dtrconv04(i)=dtrconv(i,id_codu)
     4599      if(id_scdu>0)    dtrconv05(i)=dtrconv(i,id_scdu)
     4600      if(id_prec>0)    dtherm01(i)=his_th(i,id_prec)
     4601      if(id_fine>0)    dtherm02(i)=his_th(i,id_fine)
     4602      if(id_coss>0)    dtherm03(i)=his_th(i,id_coss)
     4603      if(id_codu>0)    dtherm04(i)=his_th(i,id_codu)
     4604      if(id_scdu>0)    dtherm05(i)=his_th(i,id_scdu)
     4605      if(id_prec>0)    dhkecv01(i)=his_dhkecv(i,id_prec)
     4606      if(id_fine>0)    dhkecv02(i)=his_dhkecv(i,id_fine)
     4607      if(id_coss>0)    dhkecv03(i)=his_dhkecv(i,id_coss)
     4608      if(id_codu>0)    dhkecv04(i)=his_dhkecv(i,id_codu)
     4609      if(id_scdu>0)    dhkecv05(i)=his_dhkecv(i,id_scdu)
     4610      if(id_prec>0)    dhkelsc01(i)=his_dhkelsc(i,id_prec)
     4611      if(id_fine>0)    dhkelsc02(i)=his_dhkelsc(i,id_fine)
     4612      if(id_coss>0)    dhkelsc03(i)=his_dhkelsc(i,id_coss)
     4613      if(id_codu>0)    dhkelsc04(i)=his_dhkelsc(i,id_codu)
     4614      if(id_scdu>0)    dhkelsc05(i)=his_dhkelsc(i,id_scdu)
    45054615       u10m_ss(i)=u10m_ec(i)
    45064616       v10m_ss(i)=v10m_ec(i)
     
    45094619      DO i=1, klon
    45104620        DO k=1,klev
    4511            d_tr_cv01(i,k)=d_tr_cv_o(i,k,id_prec)
    4512            d_tr_cv02(i,k)=d_tr_cv_o(i,k,id_fine)
    4513            d_tr_cv03(i,k)=d_tr_cv_o(i,k,id_coss)
    4514            d_tr_cv04(i,k)=d_tr_cv_o(i,k,id_codu)
    4515            d_tr_cv05(i,k)=d_tr_cv_o(i,k,id_scdu)
    4516            d_tr_trsp01(i,k)=d_tr_trsp_o(i,k,id_prec)
    4517            d_tr_trsp02(i,k)=d_tr_trsp_o(i,k,id_fine)
    4518            d_tr_trsp03(i,k)=d_tr_trsp_o(i,k,id_coss)
    4519            d_tr_trsp04(i,k)=d_tr_trsp_o(i,k,id_codu)
    4520            d_tr_trsp05(i,k)=d_tr_trsp_o(i,k,id_scdu)
    4521            d_tr_sscav01(i,k)=d_tr_sscav_o(i,k,id_prec)
    4522            d_tr_sscav02(i,k)=d_tr_sscav_o(i,k,id_fine)
    4523            d_tr_sscav03(i,k)=d_tr_sscav_o(i,k,id_coss)
    4524            d_tr_sscav04(i,k)=d_tr_sscav_o(i,k,id_codu)
    4525            d_tr_sscav05(i,k)=d_tr_sscav_o(i,k,id_scdu)
    4526            d_tr_sat01(i,k)=d_tr_sat_o(i,k,id_prec)
    4527            d_tr_sat02(i,k)=d_tr_sat_o(i,k,id_fine)
    4528            d_tr_sat03(i,k)=d_tr_sat_o(i,k,id_coss)
    4529            d_tr_sat04(i,k)=d_tr_sat_o(i,k,id_codu)
    4530            d_tr_sat05(i,k)=d_tr_sat_o(i,k,id_scdu)
    4531            d_tr_uscav01(i,k)=d_tr_uscav_o(i,k,id_prec)
    4532            d_tr_uscav02(i,k)=d_tr_uscav_o(i,k,id_fine)
    4533            d_tr_uscav03(i,k)=d_tr_uscav_o(i,k,id_coss)
    4534            d_tr_uscav04(i,k)=d_tr_uscav_o(i,k,id_codu)
    4535            d_tr_uscav05(i,k)=d_tr_uscav_o(i,k,id_scdu)
     4621      d_tr_cv01(i,k)   =0.
     4622      d_tr_cv02(i,k)   =0.
     4623      d_tr_cv03(i,k)   =0.
     4624      d_tr_cv04(i,k)   =0.
     4625      d_tr_cv05(i,k)   =0.
     4626      d_tr_trsp01(i,k) =0.
     4627      d_tr_trsp02(i,k) =0.
     4628      d_tr_trsp03(i,k) =0.
     4629      d_tr_trsp04(i,k) =0.
     4630      d_tr_trsp05(i,k) =0.
     4631      d_tr_sscav01(i,k)=0.
     4632      d_tr_sscav02(i,k)=0.
     4633      d_tr_sscav03(i,k)=0.
     4634      d_tr_sscav04(i,k)=0.
     4635      d_tr_sscav05(i,k)=0.
     4636      d_tr_sat01(i,k)  =0.
     4637      d_tr_sat02(i,k)  =0.
     4638      d_tr_sat03(i,k)  =0.
     4639      d_tr_sat04(i,k)  =0.
     4640      d_tr_sat05(i,k)  =0.
     4641      d_tr_uscav01(i,k)=0.
     4642      d_tr_uscav02(i,k)=0.
     4643      d_tr_uscav03(i,k)=0.
     4644      d_tr_uscav04(i,k)=0.
     4645      d_tr_uscav05(i,k)=0.
     4646      if(id_prec>0)        d_tr_cv01(i,k)   =d_tr_cv_o(i,k,id_prec)
     4647      if(id_fine>0)        d_tr_cv02(i,k)   =d_tr_cv_o(i,k,id_fine)
     4648      if(id_coss>0)        d_tr_cv03(i,k)   =d_tr_cv_o(i,k,id_coss)
     4649      if(id_codu>0)        d_tr_cv04(i,k)   =d_tr_cv_o(i,k,id_codu)
     4650      if(id_scdu>0)        d_tr_cv05(i,k)   =d_tr_cv_o(i,k,id_scdu)
     4651      if(id_prec>0)        d_tr_trsp01(i,k) =d_tr_trsp_o(i,k,id_prec)
     4652      if(id_fine>0)        d_tr_trsp02(i,k) =d_tr_trsp_o(i,k,id_fine)
     4653      if(id_coss>0)        d_tr_trsp03(i,k) =d_tr_trsp_o(i,k,id_coss)
     4654      if(id_codu>0)        d_tr_trsp04(i,k) =d_tr_trsp_o(i,k,id_codu)
     4655      if(id_scdu>0)        d_tr_trsp05(i,k) =d_tr_trsp_o(i,k,id_scdu)
     4656      if(id_prec>0)        d_tr_sscav01(i,k)=d_tr_sscav_o(i,k,id_prec)
     4657      if(id_fine>0)        d_tr_sscav02(i,k)=d_tr_sscav_o(i,k,id_fine)
     4658      if(id_coss>0)        d_tr_sscav03(i,k)=d_tr_sscav_o(i,k,id_coss)
     4659      if(id_codu>0)        d_tr_sscav04(i,k)=d_tr_sscav_o(i,k,id_codu)
     4660      if(id_scdu>0)        d_tr_sscav05(i,k)=d_tr_sscav_o(i,k,id_scdu)
     4661      if(id_prec>0)        d_tr_sat01(i,k)  =d_tr_sat_o(i,k,id_prec)
     4662      if(id_fine>0)        d_tr_sat02(i,k)  =d_tr_sat_o(i,k,id_fine)
     4663      if(id_coss>0)        d_tr_sat03(i,k)  =d_tr_sat_o(i,k,id_coss)
     4664      if(id_codu>0)        d_tr_sat04(i,k)  =d_tr_sat_o(i,k,id_codu)
     4665      if(id_scdu>0)        d_tr_sat05(i,k)  =d_tr_sat_o(i,k,id_scdu)
     4666      if(id_prec>0)        d_tr_uscav01(i,k)=d_tr_uscav_o(i,k,id_prec)
     4667      if(id_fine>0)        d_tr_uscav02(i,k)=d_tr_uscav_o(i,k,id_fine)
     4668      if(id_coss>0)        d_tr_uscav03(i,k)=d_tr_uscav_o(i,k,id_coss)
     4669      if(id_codu>0)        d_tr_uscav04(i,k)=d_tr_uscav_o(i,k,id_codu)
     4670      if(id_scdu>0)        d_tr_uscav05(i,k)=d_tr_uscav_o(i,k,id_scdu)
    45364671        ENDDO
    45374672      ENDDO
    45384673     
    4539 
    4540 
    4541 
    45424674
    45434675      IF (logitime) THEN
  • LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/precuremission.F

    r2175 r2196  
    107107      DO i=1, klon
    108108         IF (iregion_ind(i).GT.0) THEN
    109            source_tr(i,id_prec)=source_tr(i,id_prec) + fracso2emis
     109       IF(id_prec>0) source_tr(i,id_prec)=source_tr(i,id_prec)
     110     .             + fracso2emis
    110111     .             *scale_param_ind(iregion_ind(i))*lmt_so2ff_l(i)*1.e4
    111112     .             +scale_param_ind(iregion_ind(i))*lmt_so2ff_l(i)*1.e4
    112113     .                   *frach2sofso2            ! molec/m2/s
    113114c
    114            source_tr(i,id_fine)=source_tr(i,id_fine)+(1-fracso2emis)
     115      IF(id_fine>0) source_tr(i,id_fine)=
     116     .                source_tr(i,id_fine)+(1-fracso2emis)
    115117     .                *scale_param_ind(iregion_ind(i))*lmt_so2ff_l(i)
    116118     .                *1.e4*masse_ammsulfate/RNAVO  ! g/m2/s
    117119c
    118            flux_tr(i,id_prec)=flux_tr(i,id_prec) + (
     120       IF(id_prec>0)   flux_tr(i,id_prec)=flux_tr(i,id_prec) + (
    119121     .               scale_param_ind(iregion_ind(i))*(lmt_so2ff_l(i)+
    120122     .                lmt_so2ff_h(i))
     
    125127     .                )*1.e4/RNAVO*masse_s*1.e3          ! mgS/m2/s
    126128c
    127            flux_tr(i,id_fine)=flux_tr(i,id_fine)+(1-fracso2emis)
     129      IF(id_fine>0)  flux_tr(i,id_fine)=
     130     . flux_tr(i,id_fine)+(1-fracso2emis)
    128131     .               *scale_param_ind(iregion_ind(i))*(lmt_so2ff_l(i)+
    129132     .                lmt_so2ff_h(i))
    130133     .               *1.e4/RNAVO*masse_ammsulfate*1.e3    ! mgS/m2/s
    131134c
    132            flux_sparam_ind(i)=flux_sparam_ind(i)+ (1-fracso2emis)
     135      flux_sparam_ind(i)=flux_sparam_ind(i)+ (1-fracso2emis)
    133136     .               *scale_param_ind(iregion_ind(i))*(lmt_so2ff_l(i)+
    134137     .                lmt_so2ff_h(i))
     
    136139         ENDIF
    137140         IF (iregion_bb(i).GT.0) THEN
    138            source_tr(i,id_prec)= source_tr(i,id_prec) + fracso2emis
     141      IF(id_prec>0) source_tr(i,id_prec)=
     142     .                  source_tr(i,id_prec) + fracso2emis
    139143     .                 *scale_param_bb(iregion_bb(i))*lmt_so2bb_l(i)
    140144     .                   *(1.-pctsrf(i,is_oce))*1.e4
    141145c
    142            source_tr(i,id_fine)=source_tr(i,id_fine)+(1-fracso2emis)
     146      IF(id_fine>0)     source_tr(i,id_fine)=
     147     .                   source_tr(i,id_fine)+(1-fracso2emis)
    143148     .                  *scale_param_bb(iregion_bb(i))*lmt_so2bb_l(i)*
    144149     .                   (1.-pctsrf(i,is_oce))*1.e4*
    145150     .                   masse_ammsulfate/RNAVO  ! g/m2/s
    146151c
    147            flux_tr(i,id_prec)=flux_tr(i,id_prec) +
     152      IF(id_prec>0)     flux_tr(i,id_prec)=flux_tr(i,id_prec) +
    148153     .               (scale_param_bb(iregion_bb(i))*lmt_so2bb_l(i)
    149154     .                 +scale_param_bb(iregion_bb(i))*lmt_so2bb_h(i))
     
    151156     .                 *1.e4/RNAVO*masse_s*1.e3          ! mgS/m2/s
    152157c
    153            flux_tr(i,id_fine)=flux_tr(i,id_fine)+(1-fracso2emis)
     158      IF(id_fine>0) flux_tr(i,id_fine)=
     159     .                flux_tr(i,id_fine)+(1-fracso2emis)
    154160     .               *(scale_param_bb(iregion_bb(i))*lmt_so2bb_l(i)
    155161     .                +scale_param_bb(iregion_bb(i))*lmt_so2bb_h(i))
     
    168174     .               *1.e4/RNAVO*masse_ammsulfate*1.e3    ! mgS/m2/s
    169175         ENDIF
    170          source_tr(i,id_prec)=source_tr(i,id_prec) + fracso2emis
     176      IF(id_prec>0)   source_tr(i,id_prec)=source_tr(i,id_prec)
     177     .                 + fracso2emis
    171178     .                 *(lmt_so2ba(i)+lmt_so2nff(i))*1.e4
    172179     .                 +(lmt_h2sbio(i)
    173180     .                   +lmt_dms(i)+lmt_dmsbio(i))*1.e4            ! molec/m2/s
    174181c
    175          source_tr(i,id_fine)=source_tr(i,id_fine)+(1-fracso2emis)
     182      IF(id_fine>0)   source_tr(i,id_fine)=source_tr(i,id_fine)
     183     .                +(1-fracso2emis)
    176184     .                *(lmt_so2ba(i)+lmt_so2nff(i))*1.e4*
    177185     .                   masse_ammsulfate/RNAVO  ! g/m2/s
    178186c
    179          flux_tr(i,id_prec)=flux_tr(i,id_prec) + (lmt_h2sbio(i)
     187      IF(id_prec>0)   flux_tr(i,id_prec)=flux_tr(i,id_prec)
     188     .               + (lmt_h2sbio(i)
    180189     .               +lmt_so2volc_cont(i)+lmt_so2volc_expl(i)
    181190     .                 +(lmt_so2ba(i)+lmt_so2nff(i))*fracso2emis
     
    183192     .              *1.e4/RNAVO*masse_s*1.e3          ! mgS/m2/s
    184193c
    185          flux_tr(i,id_fine)=flux_tr(i,id_fine)+(1-fracso2emis)
     194      IF(id_fine>0)   flux_tr(i,id_fine)=flux_tr(i,id_fine)
     195     .               +(1-fracso2emis)
    186196     .               *(lmt_so2ba(i) + lmt_so2nff(i))
    187197     .               *1.e4/RNAVO*masse_ammsulfate*1.e3    ! mgS/m2/s
     
    208218      ENDDO
    209219      ENDDO
    210 
     220      IF(id_prec>0) THEN
    211221      DO i = 1, klon
    212222        tr_seri(i,kkk_cont(i),id_prec)=tr_seri(i,kkk_cont(i),id_prec) +
     
    215225     .               lmt_so2volc_expl(i)/zdz(i,kkk_expl(i))/100.*pdtphys
    216226      ENDDO
    217                                            
     227      ENDIF                                           
    218228c  Sources hautes de SO2     
    219229     
     
    226236c
    227237         IF (iregion_bb(i).GT.0) THEN
    228            tr_seri(i,k,id_prec)=tr_seri(i,k,id_prec) + fracso2emis
     238      IF(id_prec>0)   tr_seri(i,k,id_prec)=
     239     .              tr_seri(i,k,id_prec) + fracso2emis
    229240     .              *scale_param_bb(iregion_bb(i))*lmt_so2bb_h(i)
    230241     .              /zdz(i,k)/100.*pdtphys
    231242c
    232            tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine) + (1.-fracso2emis)
     243      IF(id_fine>0)     tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine)
     244     .              + (1.-fracso2emis)
    233245     .              *scale_param_bb(iregion_bb(i))*lmt_so2bb_h(i)
    234246     .              *masse_ammsulfate/RNAVO/zdz(i,k)/100.*pdtphys   !g/cm3
    235247         ENDIF
    236248         IF (iregion_ind(i).GT.0) THEN
    237            tr_seri(i,k,id_prec)=tr_seri(i,k,id_prec) + (fracso2emis
     249       IF(id_prec>0)  tr_seri(i,k,id_prec)=
     250     .              tr_seri(i,k,id_prec) + (fracso2emis
    238251     .              *scale_param_ind(iregion_ind(i))*lmt_so2ff_h(i)
    239252     .              + frach2sofso2
     
    241254     .              /zdz(i,k)/100.*pdtphys
    242255c
    243            tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine) + (1.-fracso2emis)
     256       IF(id_fine>0)    tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine)
     257     .               + (1.-fracso2emis)
    244258     .              *scale_param_ind(iregion_ind(i))*lmt_so2ff_h(i)
    245259     .              *masse_ammsulfate/RNAVO/zdz(i,k)/100.*pdtphys   !g/cm3
  • LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/sediment_mod.F

    r2175 r2196  
    33      SUBROUTINE sediment_mod(t_seri,pplay,zrho,paprs,time_step,RHcl,
    44     .                                       id_coss,id_codu,id_scdu,
     5     .                                        ok_chimeredust,
    56     .                           sed_ss,sed_dust,sed_dustsco,tr_seri)
    67cnhl     .                                       xlon,xlat,
     
    2930       REAL paprs(klon, klev+1)    !pressure at interface of layers Z (Pa)
    3031       REAL time_step            !time step (sec)
    31 
     32       LOGICAL ok_chimeredust
    3233       REAL xlat(klon)       ! latitudes pour chaque point
    3334       REAL xlon(klon)       ! longitudes pour chaque point
     
    7475!JE20140911        mmd_dust=5.156346  !micrometer for bin 0.5-20 and 0.5-10 um
    7576!JE20140911        mmd_dustsco=15.56554  !micrometer for bin 0.5-20 and 0.5-10 um
     77        IF (ok_chimeredust) THEN
    7678        mmd_dust=3.761212  !micrometer for bin 0.5-3 and 0.5-10 um
    7779        mmd_dustsco=15.06167  !micrometer for bin 3-20 and 0.5-10 um
    78 
     80        ELSE
     81        mmd_dust=11.0  !micrometer for bin 0.5-20 and 0.5-10 um
     82        mmd_dustsco=100. ! absurd value, bin not used in this scheme
     83        ENDIF
    7984
    8085
     
    103108c
    104109c
     110       IF(id_coss>0) THEN
    105111       DO k=1, klev
    106112       DO i=1,klon
     
    159165         sed_ss(i)=sed_flux(i,1)*1.e6*1.e3    !--unit mg/m2/s
    160166       ENDDO          !klon
     167       ELSE
     168        DO i=1, klon
     169          sed_ss(i)=0.
     170        ENDDO
     171       ENDIF
    161172c
    162173c
     
    165176c
    166177c
     178       IF(id_codu>0) THEN
    167179       DO k=1, klev
    168180       DO i=1,klon
     
    206218         sed_dust(i)=sed_flux(i,1)*1.e6*1.e3    !--unit mg/m2/s
    207219       ENDDO          !klon
     220       ELSE
     221        DO i=1, klon
     222          sed_dust(i)=0.
     223        ENDDO
     224       ENDIF
     225c
     226
    208227
    209228c--------- For scoarse  dust ------------------
    210229c
    211230c
     231       IF(id_scdu>0) THEN
    212232       DO k=1, klev
    213233       DO i=1,klon
     
    252272         sed_dustsco(i)=sed_flux(i,1)*1.e6*1.e3    !--unit mg/m2/s
    253273       ENDDO          !klon
     274       ELSE
     275        DO i=1, klon
     276          sed_dustsco(i)=0.
     277        ENDDO
     278       ENDIF
     279c
    254280
    255281
  • LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/spla_output_write.h

    r2176 r2196  
    11!! Output SPLA
    22! JE20141223
    3       CALL histwrite_phy(o_m1dflux,m1dflux)
    4       CALL histwrite_phy(o_m2dflux,m2dflux)
    5       CALL histwrite_phy(o_m3dflux,m3dflux)
     3      IF(ok_chimeredust) CALL histwrite_phy(o_m1dflux,m1dflux)
     4      IF(ok_chimeredust) CALL histwrite_phy(o_m2dflux,m2dflux)
     5      IF(ok_chimeredust) CALL histwrite_phy(o_m3dflux,m3dflux)
    66! traceur
    77
     
    99      CALL histwrite_phy( o_taue670          , diag_aod670_tot   )
    1010      CALL histwrite_phy( o_taue865          , diag_aod865_tot  )
    11       CALL histwrite_phy( o_taue550_tr2      , diff_aod550_tr2  )
    12       CALL histwrite_phy( o_taue670_tr2      , diag_aod670_tr2   )
    13       CALL histwrite_phy( o_taue865_tr2      , diag_aod865_tr2  )
    14       CALL histwrite_phy( o_taue550_ss       , diag_aod550_ss       )
    15       CALL histwrite_phy( o_taue670_ss       , diag_aod670_ss   )
    16       CALL histwrite_phy( o_taue865_ss       , diag_aod865_ss    )
    17       CALL histwrite_phy( o_taue550_dust     , diag_aod550_dust   )
    18       CALL histwrite_phy( o_taue670_dust     , diag_aod670_dust )
    19       CALL histwrite_phy( o_taue865_dust     , diag_aod865_dust )
    20       CALL histwrite_phy( o_taue550_dustsco  , diag_aod550_dustsco )
    21       CALL histwrite_phy( o_taue670_dustsco  , diag_aod670_dustsco )
    22       CALL histwrite_phy( o_taue865_dustsco  , diag_aod865_dustsco )
     11      IF(id_fine>0) CALL histwrite_phy( o_taue550_tr2      , diff_aod550_tr2  )
     12      IF(id_fine>0) CALL histwrite_phy( o_taue670_tr2      , diag_aod670_tr2   )
     13      IF(id_fine>0) CALL histwrite_phy( o_taue865_tr2      , diag_aod865_tr2  )
     14      IF(id_coss>0) CALL histwrite_phy( o_taue550_ss       , diag_aod550_ss       )
     15      IF(id_coss>0) CALL histwrite_phy( o_taue670_ss       , diag_aod670_ss   )
     16      IF(id_coss>0) CALL histwrite_phy( o_taue865_ss       , diag_aod865_ss    )
     17      IF(id_codu>0) CALL histwrite_phy( o_taue550_dust     , diag_aod550_dust   )
     18      IF(id_codu>0) CALL histwrite_phy( o_taue670_dust     , diag_aod670_dust )
     19      IF(id_codu>0) CALL histwrite_phy( o_taue865_dust     , diag_aod865_dust )
     20      IF(id_scdu>0) CALL histwrite_phy( o_taue550_dustsco  , diag_aod550_dustsco )
     21      IF(id_scdu>0) CALL histwrite_phy( o_taue670_dustsco  , diag_aod670_dustsco )
     22      IF(id_scdu>0) CALL histwrite_phy( o_taue865_dustsco  , diag_aod865_dustsco )
    2323      CALL histwrite_phy( o_taue550_aqua     , aod550_aqua  )
    2424      CALL histwrite_phy( o_taue550_terra    , aod550_terra    )
     
    2727      CALL histwrite_phy( o_taue865_aqua     , aod865_aqua    )
    2828      CALL histwrite_phy( o_taue865_terra    , aod865_terra    )
    29       CALL histwrite_phy( o_trm01 , trm01 )
    30       CALL histwrite_phy( o_trm02 , trm02 )
    31       CALL histwrite_phy( o_trm03 , trm03 )
    32       CALL histwrite_phy( o_trm04 , trm04 )
    33       CALL histwrite_phy( o_trm05 , trm05 )
    34       CALL histwrite_phy( o_sconc01 , sconc01 )
    35       CALL histwrite_phy( o_sconc02 , sconc02 )
    36       CALL histwrite_phy( o_sconc03 , sconc03 )
    37       CALL histwrite_phy( o_sconc04 , sconc04 )
    38       CALL histwrite_phy( o_sconc05 , sconc05 )
     29      IF(id_prec>0) CALL histwrite_phy( o_trm01 , trm01 )
     30      IF(id_fine>0) CALL histwrite_phy( o_trm02 , trm02 )
     31      IF(id_coss>0) CALL histwrite_phy( o_trm03 , trm03 )
     32      IF(id_codu>0) CALL histwrite_phy( o_trm04 , trm04 )
     33      IF(id_scdu>0) CALL histwrite_phy( o_trm05 , trm05 )
     34      IF(id_prec>0) CALL histwrite_phy( o_sconc01 , sconc01 )
     35      IF(id_fine>0) CALL histwrite_phy( o_sconc02 , sconc02 )
     36      IF(id_coss>0) CALL histwrite_phy( o_sconc03 , sconc03 )
     37      IF(id_codu>0) CALL histwrite_phy( o_sconc04 , sconc04 )
     38      IF(id_scdu>0) CALL histwrite_phy( o_sconc05 , sconc05 )
    3939
    4040! Lessivage
    4141
    42       CALL histwrite_phy( o_flux01       , flux01 )
    43       CALL histwrite_phy( o_flux02       , flux02 )
    44       CALL histwrite_phy( o_flux03       , flux03 )
    45       CALL histwrite_phy( o_flux04       , flux04 )
    46       CALL histwrite_phy( o_flux05       , flux05 )
    47       CALL histwrite_phy( o_ds01         , ds01 )
    48       CALL histwrite_phy( o_ds02         , ds02 )
    49       CALL histwrite_phy( o_ds03         , ds03 )
    50       CALL histwrite_phy( o_ds04         , ds04 )
    51       CALL histwrite_phy( o_ds05         , ds05 )
    52       CALL histwrite_phy( o_dh01         , dh01 )
    53       CALL histwrite_phy( o_dh02         , dh02 )
    54       CALL histwrite_phy( o_dh03         , dh03 )
    55       CALL histwrite_phy( o_dh04         , dh04 )
    56       CALL histwrite_phy( o_dh05         , dh05 )
    57       CALL histwrite_phy( o_dtrconv01    , dtrconv01 )
    58       CALL histwrite_phy( o_dtrconv02    , dtrconv02 )
    59       CALL histwrite_phy( o_dtrconv03    , dtrconv03 )
    60       CALL histwrite_phy( o_dtrconv04    , dtrconv04 )
    61       CALL histwrite_phy( o_dtrconv05    , dtrconv05 )
    62       CALL histwrite_phy( o_dtherm01     , dtherm01 )
    63       CALL histwrite_phy( o_dtherm02     , dtherm02 )
    64       CALL histwrite_phy( o_dtherm03     , dtherm03 )
    65       CALL histwrite_phy( o_dtherm04     , dtherm04 )
    66       CALL histwrite_phy( o_dtherm05     , dtherm05 )
    67       CALL histwrite_phy( o_dhkecv01     , dhkecv01 )
    68       CALL histwrite_phy( o_dhkecv02     , dhkecv02 )
    69       CALL histwrite_phy( o_dhkecv03     , dhkecv03 )
    70       CALL histwrite_phy( o_dhkecv04     , dhkecv04 )
    71       CALL histwrite_phy( o_dhkecv05     , dhkecv05 )
    72       CALL histwrite_phy( o_dhkelsc01    , dhkelsc01 )
    73       CALL histwrite_phy( o_dhkelsc02    , dhkelsc02 )
    74       CALL histwrite_phy( o_dhkelsc03    , dhkelsc03 )
    75       CALL histwrite_phy( o_dhkelsc04    , dhkelsc04 )
    76       CALL histwrite_phy( o_dhkelsc05    , dhkelsc05 )
    77       CALL histwrite_phy( o_d_tr_cv01    , d_tr_cv01 )
    78       CALL histwrite_phy( o_d_tr_cv02    , d_tr_cv02 )
    79       CALL histwrite_phy( o_d_tr_cv03    , d_tr_cv03 )
    80       CALL histwrite_phy( o_d_tr_cv04    , d_tr_cv04 )
    81       CALL histwrite_phy( o_d_tr_cv05    , d_tr_cv05 )
    82       CALL histwrite_phy( o_d_tr_trsp01  , d_tr_trsp01 )
    83       CALL histwrite_phy( o_d_tr_trsp02  , d_tr_trsp02 )
    84       CALL histwrite_phy( o_d_tr_trsp03  , d_tr_trsp03 )
    85       CALL histwrite_phy( o_d_tr_trsp04  , d_tr_trsp04 )
    86       CALL histwrite_phy( o_d_tr_trsp05  , d_tr_trsp05 )
    87       CALL histwrite_phy( o_d_tr_sscav01 , d_tr_sscav01 )
    88       CALL histwrite_phy( o_d_tr_sscav02 , d_tr_sscav02 )
    89       CALL histwrite_phy( o_d_tr_sscav03 , d_tr_sscav03 )
    90       CALL histwrite_phy( o_d_tr_sscav04 , d_tr_sscav04 )
    91       CALL histwrite_phy( o_d_tr_sscav05 , d_tr_sscav05 )
    92       CALL histwrite_phy( o_d_tr_sat01   , d_tr_sat01 )
    93       CALL histwrite_phy( o_d_tr_sat02   , d_tr_sat02 )
    94       CALL histwrite_phy( o_d_tr_sat03   , d_tr_sat03 )
    95       CALL histwrite_phy( o_d_tr_sat04   , d_tr_sat04 )
    96       CALL histwrite_phy( o_d_tr_sat05   , d_tr_sat05 )
    97       CALL histwrite_phy( o_d_tr_uscav01 , d_tr_uscav01 )
    98       CALL histwrite_phy( o_d_tr_uscav02 , d_tr_uscav02 )
    99       CALL histwrite_phy( o_d_tr_uscav03 , d_tr_uscav03 )
    100       CALL histwrite_phy( o_d_tr_uscav04 , d_tr_uscav04 )
    101       CALL histwrite_phy( o_d_tr_uscav05 , d_tr_uscav05 )
     42      IF(id_prec>0) CALL histwrite_phy( o_flux01       , flux01 )
     43      IF(id_fine>0) CALL histwrite_phy( o_flux02       , flux02 )
     44      IF(id_coss>0) CALL histwrite_phy( o_flux03       , flux03 )
     45      IF(id_codu>0) CALL histwrite_phy( o_flux04       , flux04 )
     46      IF(id_scdu>0) CALL histwrite_phy( o_flux05       , flux05 )
     47      IF(id_prec>0) CALL histwrite_phy( o_ds01         , ds01 )
     48      IF(id_fine>0) CALL histwrite_phy( o_ds02         , ds02 )
     49      IF(id_coss>0) CALL histwrite_phy( o_ds03         , ds03 )
     50      IF(id_codu>0) CALL histwrite_phy( o_ds04         , ds04 )
     51      IF(id_scdu>0) CALL histwrite_phy( o_ds05         , ds05 )
     52      IF(id_prec>0) CALL histwrite_phy( o_dh01         , dh01 )
     53      IF(id_fine>0) CALL histwrite_phy( o_dh02         , dh02 )
     54      IF(id_coss>0) CALL histwrite_phy( o_dh03         , dh03 )
     55      IF(id_codu>0) CALL histwrite_phy( o_dh04         , dh04 )
     56      IF(id_scdu>0) CALL histwrite_phy( o_dh05         , dh05 )
     57      IF(id_prec>0) CALL histwrite_phy( o_dtrconv01    , dtrconv01 )
     58      IF(id_fine>0) CALL histwrite_phy( o_dtrconv02    , dtrconv02 )
     59      IF(id_coss>0) CALL histwrite_phy( o_dtrconv03    , dtrconv03 )
     60      IF(id_codu>0) CALL histwrite_phy( o_dtrconv04    , dtrconv04 )
     61      IF(id_scdu>0) CALL histwrite_phy( o_dtrconv05    , dtrconv05 )
     62      IF(id_prec>0) CALL histwrite_phy( o_dtherm01     , dtherm01 )
     63      IF(id_fine>0) CALL histwrite_phy( o_dtherm02     , dtherm02 )
     64      IF(id_coss>0) CALL histwrite_phy( o_dtherm03     , dtherm03 )
     65      IF(id_codu>0) CALL histwrite_phy( o_dtherm04     , dtherm04 )
     66      IF(id_scdu>0) CALL histwrite_phy( o_dtherm05     , dtherm05 )
     67      IF(id_prec>0) CALL histwrite_phy( o_dhkecv01     , dhkecv01 )
     68      IF(id_fine>0) CALL histwrite_phy( o_dhkecv02     , dhkecv02 )
     69      IF(id_coss>0) CALL histwrite_phy( o_dhkecv03     , dhkecv03 )
     70      IF(id_codu>0) CALL histwrite_phy( o_dhkecv04     , dhkecv04 )
     71      IF(id_scdu>0) CALL histwrite_phy( o_dhkecv05     , dhkecv05 )
     72      IF(id_prec>0) CALL histwrite_phy( o_dhkelsc01    , dhkelsc01 )
     73      IF(id_fine>0) CALL histwrite_phy( o_dhkelsc02    , dhkelsc02 )
     74      IF(id_coss>0) CALL histwrite_phy( o_dhkelsc03    , dhkelsc03 )
     75      IF(id_codu>0) CALL histwrite_phy( o_dhkelsc04    , dhkelsc04 )
     76      IF(id_scdu>0) CALL histwrite_phy( o_dhkelsc05    , dhkelsc05 )
     77      IF(id_prec>0) CALL histwrite_phy( o_d_tr_cv01    , d_tr_cv01 )
     78      IF(id_fine>0) CALL histwrite_phy( o_d_tr_cv02    , d_tr_cv02 )
     79      IF(id_coss>0) CALL histwrite_phy( o_d_tr_cv03    , d_tr_cv03 )
     80      IF(id_codu>0) CALL histwrite_phy( o_d_tr_cv04    , d_tr_cv04 )
     81      IF(id_scdu>0) CALL histwrite_phy( o_d_tr_cv05    , d_tr_cv05 )
     82      IF(id_prec>0) CALL histwrite_phy( o_d_tr_trsp01  , d_tr_trsp01 )
     83      IF(id_fine>0) CALL histwrite_phy( o_d_tr_trsp02  , d_tr_trsp02 )
     84      IF(id_coss>0) CALL histwrite_phy( o_d_tr_trsp03  , d_tr_trsp03 )
     85      IF(id_codu>0) CALL histwrite_phy( o_d_tr_trsp04  , d_tr_trsp04 )
     86      IF(id_scdu>0) CALL histwrite_phy( o_d_tr_trsp05  , d_tr_trsp05 )
     87      IF(id_prec>0) CALL histwrite_phy( o_d_tr_sscav01 , d_tr_sscav01 )
     88      IF(id_fine>0) CALL histwrite_phy( o_d_tr_sscav02 , d_tr_sscav02 )
     89      IF(id_coss>0) CALL histwrite_phy( o_d_tr_sscav03 , d_tr_sscav03 )
     90      IF(id_codu>0) CALL histwrite_phy( o_d_tr_sscav04 , d_tr_sscav04 )
     91      IF(id_scdu>0) CALL histwrite_phy( o_d_tr_sscav05 , d_tr_sscav05 )
     92      IF(id_prec>0) CALL histwrite_phy( o_d_tr_sat01   , d_tr_sat01 )
     93      IF(id_fine>0) CALL histwrite_phy( o_d_tr_sat02   , d_tr_sat02 )
     94      IF(id_coss>0) CALL histwrite_phy( o_d_tr_sat03   , d_tr_sat03 )
     95      IF(id_codu>0) CALL histwrite_phy( o_d_tr_sat04   , d_tr_sat04 )
     96      IF(id_scdu>0) CALL histwrite_phy( o_d_tr_sat05   , d_tr_sat05 )
     97      IF(id_prec>0) CALL histwrite_phy( o_d_tr_uscav01 , d_tr_uscav01 )
     98      IF(id_fine>0) CALL histwrite_phy( o_d_tr_uscav02 , d_tr_uscav02 )
     99      IF(id_coss>0) CALL histwrite_phy( o_d_tr_uscav03 , d_tr_uscav03 )
     100      IF(id_codu>0) CALL histwrite_phy( o_d_tr_uscav04 , d_tr_uscav04 )
     101      IF(id_scdu>0) CALL histwrite_phy( o_d_tr_uscav05 , d_tr_uscav05 )
    102102
    103103
    104       CALL histwrite_phy( o_sed_ss , sed_ss)
    105       CALL histwrite_phy( o_sed_dust , sed_dust)
    106       CALL histwrite_phy( o_sed_dustsco , sed_dustsco)
    107       CALL histwrite_phy( o_g2p_gas , his_g2pgas )
    108       CALL histwrite_phy( o_g2p_aer , his_g2paer)
     104      IF(id_coss>0) CALL histwrite_phy( o_sed_ss , sed_ss)
     105      IF(id_codu>0) CALL histwrite_phy( o_sed_dust , sed_dust)
     106      IF(id_scdu>0) CALL histwrite_phy( o_sed_dustsco , sed_dustsco)
     107      IF(id_prec>0) CALL histwrite_phy( o_g2p_gas , his_g2pgas )
     108      IF(id_fine>0) CALL histwrite_phy( o_g2p_aer , his_g2paer)
    109109
    110110! histrac_spl
    111111!
    112 
    113112      CALL histwrite_phy( o_fluxbb              , fluxbb               )
    114113      CALL histwrite_phy( o_fluxff              , fluxff               )
     
    140139      CALL histwrite_phy( o_fluxh2sbio          , fluxh2sbio           )
    141140      CALL histwrite_phy( o_fluxdustec          , fluxdustec           )
    142      CALL histwrite_phy( o_fluxddfine          , fluxddfine           )
    143      CALL histwrite_phy( o_fluxddcoa           , fluxddcoa            )
    144      CALL histwrite_phy( o_fluxddsco           , fluxddsco            )
    145      CALL histwrite_phy( o_fluxdd              , fluxdd               )
     141      CALL histwrite_phy( o_fluxddfine          , fluxddfine           )
     142      CALL histwrite_phy( o_fluxddcoa           , fluxddcoa            )
     143      CALL histwrite_phy( o_fluxddsco           , fluxddsco            )
     144      CALL histwrite_phy( o_fluxdd              , fluxdd               )
    146145      CALL histwrite_phy( o_fluxssfine          , fluxssfine           )
    147146      CALL histwrite_phy( o_fluxsscoa           , fluxsscoa            )
     
    158157      CALL histwrite_phy( o_v10m_ss             , v10m_ss              )
    159158
    160 
    161159!      CALL histwrite_phy(  ,)
    162160!
Note: See TracChangeset for help on using the changeset viewer.