Ignore:
Timestamp:
Feb 6, 2015, 6:53:57 PM (10 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.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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
Note: See TracChangeset for help on using the changeset viewer.