Changeset 5717 for LMDZ6/branches/contrails/libf/phylmd/StratAer
- Timestamp:
- Jun 18, 2025, 5:12:20 PM (5 weeks ago)
- Location:
- LMDZ6/branches/contrails
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/contrails
- Property svn:mergeinfo changed
/LMDZ6/trunk merged: 5603,5605,5607,5610-5612,5614,5617,5620,5622,5627-5630,5633,5635-5636,5638,5640,5645-5653
- Property svn:mergeinfo changed
-
LMDZ6/branches/contrails/libf/phylmd/StratAer/calcaerosolstrato_rrtm.f90
r5618 r5717 7 7 USE iniprint_mod_h 8 8 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 10 11 USE aero_mod 11 12 USE dimphy … … 86 87 DO k=1,klev 87 88 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 91 95 ENDIF 92 96 ENDDO … … 97 101 zrho=pplay(i,k)/t_seri(i,k)/RD !air density in kg/m3 98 102 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 101 109 ENDDO 102 110 ENDDO -
LMDZ6/branches/contrails/libf/phylmd/StratAer/so2_to_h2so4.f90
r5268 r5717 9 9 USE yomcst_mod_h, ONLY : RG, RD 10 10 ! 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_h2so411 USE phys_local_var_mod, ONLY : SO2_lifetime,H2SO4_lifetime,O3_clim,budg_3D_so2_to_h2so4,budg_so2_to_h2so4,SO2_chlm 12 12 USE strataer_local_var_mod, ONLY : flag_OH_reduced, flag_H2SO4_photolysis, flag_min_rreduce 13 13 … … 32 32 budg_3D_so2_to_h2so4(:,:)=0.0 33 33 budg_so2_to_h2so4(:)=0.0 34 34 SO2_chlm(:,:)=0.0 35 35 36 DO ilon=1, klon 36 37 DO ilev=1, klev … … 108 109 ! IF (SO2_lifetime(ilon,ilev).GT.0.0 .AND. SO2_lifetime(ilon,ilev).LT.1.E10) THEN 109 110 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] 110 113 111 114 IF (flag_H2SO4_photolysis) THEN … … 145 148 (paprs(ilon,ilev)-paprs(ilon,ilev+1))/RG/pdtphys 146 149 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] 147 158 ENDIF 148 159 ! IF (is_strato(ilon,ilev)) THEN -
LMDZ6/branches/contrails/libf/phylmd/StratAer/strataer_local_var_mod.f90
r5618 r5717 259 259 260 260 !--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 267 264 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 273 278 274 279 ! compute particle radius RRSI [cm] and volume Vbin [m3] from diameter mdw [m]
Note: See TracChangeset
for help on using the changeset viewer.