Ignore:
Timestamp:
Jun 18, 2025, 5:12:20 PM (5 weeks ago)
Author:
aborella
Message:

Merge with trunk r5653

Location:
LMDZ6/branches/contrails
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/contrails

  • LMDZ6/branches/contrails/libf/phylmd/StratAer/calcaerosolstrato_rrtm.f90

    r5618 r5717  
    77  USE iniprint_mod_h
    88  USE phys_state_var_mod, ONLY: tau_aero_sw_rrtm, piz_aero_sw_rrtm, cg_aero_sw_rrtm, tau_aero_lw_rrtm
    9   USE phys_local_var_mod, ONLY: mdw, tausum_aero, tausum_strat, tau_strat_550, tau_strat_1020, stratomask
     9  USE phys_local_var_mod, ONLY: mdw, tausum_aero, tausum_strat, tau_strat_443, tau_strat_550, &
     10       tau_strat_670, tau_strat_765, tau_strat_1020, tau_strat_10um, stratomask
    1011  USE aero_mod
    1112  USE dimphy
     
    8687  DO k=1,klev
    8788    IF (stratomask(i,k).GT.0.5) THEN
    88       tausum_strat(i,1)=tausum_strat(i,1)+tau_strat_wave(i,k,2)  !--550 nm
    89       tausum_strat(i,2)=tausum_strat(i,2)+tau_strat_wave(i,k,5)  !--1020 nm
    90       tausum_strat(i,3)=tausum_strat(i,3)+tau_strat_wave(i,k,6)  !--10 um
     89      tausum_strat(i,1)=tausum_strat(i,1)+tau_strat_wave(i,k,1)  !--443 nm
     90      tausum_strat(i,2)=tausum_strat(i,2)+tau_strat_wave(i,k,2)  !--550 nm
     91      tausum_strat(i,3)=tausum_strat(i,3)+tau_strat_wave(i,k,3)  !--670 nm
     92      tausum_strat(i,4)=tausum_strat(i,4)+tau_strat_wave(i,k,4)  !--765 nm
     93      tausum_strat(i,5)=tausum_strat(i,5)+tau_strat_wave(i,k,5)  !--1020 nm
     94      tausum_strat(i,6)=tausum_strat(i,6)+tau_strat_wave(i,k,6)  !--10 um
    9195    ENDIF
    9296  ENDDO
     
    97101    zrho=pplay(i,k)/t_seri(i,k)/RD            !air density in kg/m3
    98102    zdz=(paprs(i,k)-paprs(i,k+1))/zrho/RG     !thickness of layer in m
    99     tau_strat_550(i,k)=tau_strat_wave(i,k,2)/zdz
    100     tau_strat_1020(i,k)=tau_strat_wave(i,k,5)/zdz
     103        tau_strat_443(i,k)=tau_strat_wave(i,k,1)/zdz
     104        tau_strat_550(i,k)=tau_strat_wave(i,k,2)/zdz
     105        tau_strat_670(i,k)=tau_strat_wave(i,k,3)/zdz
     106        tau_strat_765(i,k)=tau_strat_wave(i,k,4)/zdz
     107        tau_strat_1020(i,k)=tau_strat_wave(i,k,5)/zdz
     108        tau_strat_10um(i,k)=tau_strat_wave(i,k,6)/zdz
    101109  ENDDO
    102110  ENDDO
  • LMDZ6/branches/contrails/libf/phylmd/StratAer/so2_to_h2so4.f90

    r5268 r5717  
    99  USE yomcst_mod_h, ONLY : RG, RD
    1010  ! lifetime (sec) et O3_clim (VMR)
    11   USE phys_local_var_mod, ONLY : SO2_lifetime, H2SO4_lifetime, O3_clim, budg_3D_so2_to_h2so4, budg_so2_to_h2so4
     11  USE phys_local_var_mod, ONLY : SO2_lifetime,H2SO4_lifetime,O3_clim,budg_3D_so2_to_h2so4,budg_so2_to_h2so4,SO2_chlm
    1212  USE strataer_local_var_mod, ONLY : flag_OH_reduced, flag_H2SO4_photolysis, flag_min_rreduce
    1313 
     
    3232  budg_3D_so2_to_h2so4(:,:)=0.0
    3333  budg_so2_to_h2so4(:)=0.0
    34 
     34  SO2_chlm(:,:)=0.0
     35 
    3536  DO ilon=1, klon
    3637     DO ilev=1, klev
     
    108109           ! IF (SO2_lifetime(ilon,ilev).GT.0.0 .AND. SO2_lifetime(ilon,ilev).LT.1.E10) THEN
    109110           
     111           SO2_chlm(ilon,ilev) = tr_seri(ilon,ilev,id_SO2_strat)*(1.0-exp(-pdtphys/rreduce)) * &
     112                pplay(ilon,ilev)/(t_seri(ilon,ilev)*1.38e-19)  / pdtphys  !SO2 loss rate [mole.cm-3.s-1]
    110113           
    111114           IF (flag_H2SO4_photolysis) THEN
     
    145148                (paprs(ilon,ilev)-paprs(ilon,ilev+1))/RG/pdtphys
    146149           budg_so2_to_h2so4(ilon)=budg_so2_to_h2so4(ilon)+budg_3D_so2_to_h2so4(ilon,ilev)
     150        ELSE
     151           ! troposphere
     152           ! SO2 tropospheric lifetime (in sec) set to 5 days
     153           rreduce =  5.0*24.0*60.0*60.0
     154           rrate =tr_seri(ilon,ilev,id_SO2_strat)*(1.0-exp(-pdtphys/rreduce))
     155           tr_seri(ilon,ilev,id_SO2_strat)=tr_seri(ilon,ilev,id_SO2_strat) - rrate
     156           SO2_chlm(ilon,ilev) = rrate * &
     157                pplay(ilon,ilev)/(t_seri(ilon,ilev)*1.38e-19)  / pdtphys  !SO2 loss rate [moleccm-3s-1]
    147158        ENDIF
    148159        ! IF (is_strato(ilon,ilev)) THEN
  • LMDZ6/branches/contrails/libf/phylmd/StratAer/strataer_local_var_mod.f90

    r5618 r5717  
    259259   
    260260    !--initialising dry diameters to geometrically spaced mass/volume (see Jacobson 1994)
    261     mdw(1)=mdwmin
    262     IF (V_rat.LT.1.62) THEN ! compensate for dip in second bin for lower volume ratio
    263        mdw(2)=mdw(1)*2.**(1./3.)
    264        DO it=3, nbtr_bin
    265           mdw(it)=mdw(it-1)*V_rat**(1./3.)
    266        ENDDO
     261    IF(nbtr_bin < 3) THEN
     262       WRITE(lunout,*) 'WARNING: There are less than 3 sulfur aerosol class, it could be a problem for StratAer usage !'
     263       WRITE(lunout,*) 'NBTR_BIN=',nbtr_bin
    267264    ELSE
    268        DO it=2, nbtr_bin
    269           mdw(it)=mdw(it-1)*V_rat**(1./3.)
    270        ENDDO
    271     ENDIF
    272     IF (is_master) WRITE(lunout,*) 'init mdw=', mdw
     265       mdw(1)=mdwmin
     266       IF (V_rat.LT.1.62) THEN ! compensate for dip in second bin for lower volume ratio
     267          mdw(2)=mdw(1)*2.**(1./3.)
     268          DO it=3, nbtr_bin
     269             mdw(it)=mdw(it-1)*V_rat**(1./3.)
     270          ENDDO
     271       ELSE
     272          DO it=2, nbtr_bin
     273             mdw(it)=mdw(it-1)*V_rat**(1./3.)
     274          ENDDO
     275       ENDIF
     276       IF (is_master) WRITE(lunout,*) 'init mdw=', mdw
     277    ENDIF
    273278   
    274279    !   compute particle radius RRSI [cm] and volume Vbin [m3] from diameter mdw [m]
Note: See TracChangeset for help on using the changeset viewer.