Changeset 3411 for LMDZ6/branches/DYNAMICO-conv/libf/phylmd/StratAer
- Timestamp:
- Nov 5, 2018, 3:24:59 PM (6 years ago)
- Location:
- LMDZ6/branches/DYNAMICO-conv
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/DYNAMICO-conv
- Property svn:mergeinfo changed
/LMDZ6/trunk removed
- Property svn:mergeinfo changed
-
LMDZ6/branches/DYNAMICO-conv/libf/phylmd/StratAer/aerophys.F90
r3356 r3411 2 2 ! 3 3 MODULE aerophys 4 !5 IMPLICIT NONE6 4 ! 7 5 REAL,PARAMETER :: ropx=1500.0 ! default aerosol particle mass density [kg/m3] -
LMDZ6/branches/DYNAMICO-conv/libf/phylmd/StratAer/interp_sulf_input.F90
r3356 r3411 32 32 INTEGER, SAVE :: n_lev ! number of levels in the input data 33 33 INTEGER n_mth ! number of months in the input data 34 REAL OCS_tmp, SO2_tmp 34 35 INTEGER, SAVE :: mth_pre 35 36 !$OMP THREADPRIVATE(mth_pre) … … 237 238 DO k=1, klev 238 239 ! 239 !--OCS and SO2 prescribed back to their clim values below p_bound 240 OCS_tmp=tr_seri(i,k,id_OCS_strat) 241 SO2_tmp=tr_seri(i,k,id_SO2_strat) 242 !--OCS and SO2 prescribed below p_bound 240 243 IF (paprs(i,k).GT.p_bound) THEN 241 budg_3D_backgr_ocs(i,k)=OCS_clim(i,k)-tr_seri(i,k,id_OCS_strat)242 budg_3D_backgr_so2(i,k)=SO2_clim(i,k)-tr_seri(i,k,id_SO2_strat)243 244 tr_seri(i,k,id_OCS_strat)=OCS_clim(i,k) 244 245 tr_seri(i,k,id_SO2_strat)=SO2_clim(i,k) 245 246 ENDIF 247 budg_3D_backgr_ocs(i,k)=tr_seri(i,k,id_OCS_strat)-OCS_tmp 248 budg_3D_backgr_so2(i,k)=tr_seri(i,k,id_SO2_strat)-SO2_tmp 246 249 ENDDO 247 250 ENDDO -
LMDZ6/branches/DYNAMICO-conv/libf/phylmd/StratAer/micphy_tstep.F90
r3356 r3411 4 4 USE aerophys 5 5 USE infotrac 6 USE phys_local_var_mod, ONLY: mdw, budg_3D_nucl, budg_3D_cond_evap, budg_h2so4_to_part,R2SO4, DENSO4, f_r_wet6 USE phys_local_var_mod, ONLY: mdw, budg_3D_nucl, budg_3D_cond_evap, R2SO4, DENSO4, f_r_wet 7 7 USE nucleation_tstep_mod 8 8 USE cond_evap_tstep_mod … … 25 25 ! local variables in coagulation routine 26 26 INTEGER, PARAMETER :: nbtstep=4 ! Max number of time steps in microphysics per time step in physics 27 INTEGER :: it,ilon,ilev, count_tstep27 INTEGER :: it,ilon,ilev,IK,count_tstep 28 28 REAL :: rhoa !H2SO4 number density [molecules/cm3] 29 29 REAL :: ntot !total number of molecules in the critical cluster (ntot>4) … … 43 43 REAL H2SO4_sat(nbtr_bin) 44 44 45 DO it=1,nbtr_bin46 Vbin( it)=4.0*RPI*((mdw(it)/2.)**3)/3.045 DO IK=1,nbtr_bin 46 Vbin(IK)=4.0*RPI*((mdw(IK)/2.)**3)/3.0 47 47 ENDDO 48 48 … … 64 64 65 65 DO ilon=1, klon 66 !67 !--initialisation of diagnostic68 budg_h2so4_to_part(ilon)=0.069 !70 66 DO ilev=1, klev 71 !72 !--initialisation of diagnostic73 budg_3D_nucl(ilon,ilev)=0.074 budg_3D_cond_evap(ilon,ilev)=0.075 !76 67 ! only in the stratosphere 77 68 IF (is_strato(ilon,ilev)) THEN 78 69 ! initialize sulfur fluxes 70 budg_3D_nucl(ilon,ilev)=0.0 71 budg_3D_cond_evap(ilon,ilev)=0.0 79 72 H2SO4_init=tr_seri(ilon,ilev,id_H2SO4_strat) 80 73 ! adaptive timestep for nucleation and condensation … … 95 88 & RRSI,Vbin,FL,ASO4,DNDR) 96 89 ! consider only condensation (positive FL) 97 DO it=1,nbtr_bin98 FL( it)=MAX(FL(it),0.)90 DO IK=1,nbtr_bin 91 FL(IK)=MAX(FL(IK),0.) 99 92 ENDDO 100 93 ! compute total H2SO4 cond flux for all particles 101 94 cond_evap_rate=0.0 102 DO it=1, nbtr_bin103 cond_evap_rate=cond_evap_rate+tr_seri(ilon,ilev, it+nbtr_sulgas)*FL(it)*mH2SO4mol95 DO IK=1, nbtr_bin 96 cond_evap_rate=cond_evap_rate+tr_seri(ilon,ilev,IK+nbtr_sulgas)*FL(IK)*mH2SO4mol 104 97 ENDDO 105 98 ! determine appropriate time step … … 131 124 & RRSI,Vbin,FL,ASO4,DNDR) 132 125 ! limit evaporation (negative FL) over one physics time step to H2SO4 content of the droplet 133 DO it=1,nbtr_bin134 FL( it)=MAX(FL(it)*pdtphys,0.-ASO4(it))/pdtphys126 DO IK=1,nbtr_bin 127 FL(IK)=MAX(FL(IK)*pdtphys,0.-ASO4(IK))/pdtphys 135 128 ! consider only evap (negative FL) 136 FL( it)=MIN(FL(it),0.)129 FL(IK)=MIN(FL(IK),0.) 137 130 ENDDO 138 131 ! compute total H2SO4 evap flux for all particles 139 132 evap_rate=0.0 140 DO it=1, nbtr_bin141 evap_rate=evap_rate+tr_seri(ilon,ilev, it+nbtr_sulgas)*FL(it)*mH2SO4mol133 DO IK=1, nbtr_bin 134 evap_rate=evap_rate+tr_seri(ilon,ilev,IK+nbtr_sulgas)*FL(IK)*mH2SO4mol 142 135 ENDDO 143 136 ! update H2SO4 concentration after evap … … 148 141 budg_3D_cond_evap(ilon,ilev)=budg_3D_cond_evap(ilon,ilev)+mSatom/mH2SO4mol & 149 142 & *evap_rate*(paprs(ilon,ilev)-paprs(ilon,ilev+1))/RG 150 ! compute vertically integrated flux due to the net effect of nucleation and condensation/evaporation151 budg_h2so4_to_part(ilon)=budg_h2so4_to_part(ilon)+(H2SO4_init-tr_seri(ilon,ilev,id_H2SO4_strat)) &152 & *mSatom/mH2SO4mol*(paprs(ilon,ilev)-paprs(ilon,ilev+1))/RG/pdtphys153 143 ENDIF 154 144 ENDDO … … 158 148 DO ilon=1, klon 159 149 DO ilev=1, klev 160 DO it=1, nbtr161 IF (tr_seri(ilon,ilev, it).LT.0.0) THEN162 PRINT *, 'micphy_tstep: negative concentration', tr_seri(ilon,ilev, it), ilon, ilev, it150 DO IK=1, nbtr 151 IF (tr_seri(ilon,ilev,IK).LT.0.0) THEN 152 PRINT *, 'micphy_tstep: negative concentration', tr_seri(ilon,ilev,IK), ilon, ilev, IK 163 153 ENDIF 164 154 ENDDO -
LMDZ6/branches/DYNAMICO-conv/libf/phylmd/StratAer/traccoag_mod.F90
r3356 r3411 203 203 !vertically distributed emission 204 204 DO k=1, klev 205 ! stretch emission over one day (minus one timestep)of Pinatubo eruption206 emission=m_aer_emiss_vol*(mSO2mol/mSatom)/m_air_gridbox(i,k)*f_lay_emiss(k)/1./ (86400.-pdtphys)205 ! stretch emission over one day of Pinatubo eruption 206 emission=m_aer_emiss_vol*(mSO2mol/mSatom)/m_air_gridbox(i,k)*f_lay_emiss(k)/1./86400. 207 207 tr_seri(i,k,id_SO2_strat)=tr_seri(i,k,id_SO2_strat)+emission*pdtphys 208 208 budg_emi_so2(i)=budg_emi_so2(i)+emission*zdm(k)*mSatom/mSO2mol
Note: See TracChangeset
for help on using the changeset viewer.