Changeset 5926
- Timestamp:
- Dec 11, 2025, 4:17:28 PM (5 weeks ago)
- Location:
- LMDZ6/trunk/libf/phylmd/StratAer
- Files:
-
- 5 edited
-
aer_sedimnt.f90 (modified) (1 diff)
-
coagulate.f90 (modified) (3 diffs)
-
micphy_tstep.f90 (modified) (3 diffs)
-
strataer_emiss_mod.f90 (modified) (5 diffs)
-
traccoag_mod.f90 (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/StratAer/aer_sedimnt.f90
r5924 r5926 89 89 ZRHO=pplay(JL,JK)/(RD*t_seri(JL,JK)) 90 90 91 ! stokes-velocity with cunnigham slip- flow correction92 IF(flag_strat_compo ) THEN91 ! Use Tabazadeh et al. 1997 for H2SO4/H2O composition 92 IF(flag_strat_compo.EQ.2) THEN 93 93 ! stokes-velocity with cunnigham slip- flow correction 94 94 ZVAER(JL,JK,nb) = 2./9.*(DENSO4B(JL,JK,nb)*1000.-ZRHO)*RG/zvis(JL,JK)*(f_r_wetB(JL,JK,nb)*mdw(nb)/2.)**2.* & -
LMDZ6/trunk/libf/phylmd/StratAer/coagulate.f90
r5924 r5926 129 129 IF (is_strato(ilon,ilev)) THEN 130 130 !compute actual wet particle radius & volume for every grid box 131 IF(flag_strat_compo ) THEN131 IF(flag_strat_compo.EQ.2) THEN 132 132 DO i=1, nbtr_bin 133 133 radiuswet(i)=f_r_wetB(ilon,ilev,i)*mdw(i)/2. … … 174 174 !--pre-compute the thermal velocity of a particle thvelpar(i) from equation 20 175 175 thvelpar=0.0 176 IF(flag_strat_compo ) THEN176 IF(flag_strat_compo.EQ.2) THEN 177 177 DO i=1, nbtr_bin 178 178 m_par(i)=4./3.*RPI*radiuswet(i)**3.*DENSO4B(ilon,ilev,i)*1000. … … 275 275 ! =(Vdry(k)*tr_t(ilon,ilev,k)+pdtcoag*num_dry)/( (1.+pdtcoag*denom)*Vdry(k) ) 276 276 ! with num_dry=...beta(i,j)*Vdry(i)*.... 277 ! so in old STRATAER ( .not.flag_strat_compo), it was correct277 ! so in old STRATAER (flag_strat_compo.EQ.1), it was correct 278 278 ENDIF 279 279 -
LMDZ6/trunk/libf/phylmd/StratAer/micphy_tstep.f90
r5924 r5926 57 57 & 1.*(7.990811e-4 + 1.*(-7.458060e-4 + 1.*2.58139e-4 ))))) 58 58 59 IF( .not.flag_strat_compo) THEN59 IF(flag_strat_compo.EQ.1) THEN 60 60 ! STRAACT (R2SO4, t_seri -> H2SO4 activity coefficient (ACTSO4)) for cond/evap 61 61 CALL STRAACT(ACTSO4) … … 97 97 ENDIF 98 98 ! compute cond/evap rate in kg(H2SO4)/kgA/s 99 IF(flag_strat_compo ) THEN99 IF(flag_strat_compo.EQ.2) THEN 100 100 R2SO4ik(:) = R2SO4B(ilon,ilev,:) 101 101 DENSO4ik(:) = DENSO4B(ilon,ilev,:) … … 144 144 & *pplay(ilon,ilev)/t_seri(ilon,ilev)/RD/1.E6/mH2SO4mol 145 145 ! compute cond/evap rate in kg(H2SO4)/kgA/s (now only evap for pdtphys) 146 IF(flag_strat_compo ) THEN146 IF(flag_strat_compo.EQ.2) THEN 147 147 CALL condens_evapor_rate_kelvin(rhoa,t_seri(ilon,ilev),pplay(ilon,ilev), & 148 148 & R2SO4(ilon,ilev),DENSO4(ilon,ilev),f_r_wet(ilon,ilev), & -
LMDZ6/trunk/libf/phylmd/StratAer/strataer_emiss_mod.f90
r5370 r5926 53 53 ALLOCATE(m_H2O_emiss_vol(nErupt)) 54 54 ALLOCATE(m_H2O_emiss_vol_daily(nErupt)) 55 ! ALLOCATE(d_q_emiss(klon,klev))56 55 ALLOCATE(budg_emi(klon,nAerErupt+1)) 57 56 m_H2O_emiss_vol(:)=0. 58 57 m_H2O_emiss_vol_daily(:)=0. 59 ! d_q_emiss(:,:)=0.60 58 ELSE 61 59 ALLOCATE(budg_emi(klon,nAerErupt)) … … 104 102 105 103 ELSEIF (flag_emit == 2) THEN ! SAI 104 ALLOCATE(budg_emi(klon,1)) 105 budg_emi(:,:)=0. 106 106 107 CALL getin_p('m_aer_emiss_sai',m_aer_emiss_sai) 107 108 CALL getin_p('altemiss_sai',altemiss_sai) … … 117 118 118 119 ELSEIF (flag_emit == 3) THEN ! SAI between latitudes 120 ALLOCATE(budg_emi(klon,1)) 121 budg_emi(:,:)=0. 122 119 123 CALL getin_p('m_aer_emiss_sai',m_aer_emiss_sai) 120 124 CALL getin_p('altemiss_sai',altemiss_sai) … … 124 128 CALL getin_p('xlat_min_sai',xlat_min_sai) 125 129 ENDIF 126 130 127 131 IF (flag_emit == 1) THEN 128 132 DO ispec=1,nAerErupt … … 233 237 dlat=180./2./FLOAT(nbp_lat) ! d latitude in degree 234 238 dlon=360./2./FLOAT(nbp_lon) ! d longitude in degree 235 WRITE(lunout,*) 'IN STRATAER_INIT dlat=',dlat,'dlon=',dlon 236 WRITE(lunout,*) 'IN STRATAER_INIT nErupt=',nErupt 237 WRITE(lunout,*) 'IN STRATAER_INIT xlat_min=',xlat_min_vol,'xlat_max=',xlat_max_vol 238 WRITE(lunout,*) 'IN STRATAER_INIT xlon_min=',xlon_min_vol,'xlon_max=',xlon_max_vol 239 IF (flag_emit.EQ.1 .OR. flag_emit.EQ.4) THEN ! Volcano 240 WRITE(lunout,*) 'IN STRATAER_INIT dlat=',dlat,'dlon=',dlon 241 WRITE(lunout,*) 'IN STRATAER_INIT nErupt=',nErupt 242 WRITE(lunout,*) 'IN STRATAER_INIT xlat_min=',xlat_min_vol,'xlat_max=',xlat_max_vol 243 WRITE(lunout,*) 'IN STRATAER_INIT xlon_min=',xlon_min_vol,'xlon_max=',xlon_max_vol 244 ENDIF 239 245 240 246 DO ieru=1, nErupt -
LMDZ6/trunk/libf/phylmd/StratAer/traccoag_mod.f90
r5924 r5926 121 121 WHERE (stratomask.GT.0.5) is_strato=.TRUE. 122 122 123 IF(flag_strat_compo ) THEN123 IF(flag_strat_compo.EQ.2) THEN 124 124 IF(debutphy) WRITE(lunout,*) 'traccoag: COMPO/DENSITY (Tabazadeh 97) + H2O kelvin effect', flag_strat_compo 125 125 ! STRACOMP (H2O, P, t_seri, R -> R2SO4 + Kelvin effect) : Taba97, Socol, etc... … … 146 146 147 147 !--initialise emission diagnostics 148 if (nErupt > 0 .and. (flag_emit == 1 .or. flag_emit == 4))budg_emi(:,1)=0.0148 budg_emi(:,1)=0.0 149 149 budg_emi_ocs(:)=0.0 150 150 budg_emi_so2(:)=0.0 … … 383 383 & *pplay(i,j)/t_seri(i,j)/RD ! [air mass concentration in kg air /m3A] 384 384 385 IF(flag_strat_compo ) THEN385 IF(flag_strat_compo.EQ.2) THEN 386 386 ! SAD_sulfate: SAD WET sulfate aerosols (cm2/cm3) 387 387 SAD_sulfate(i,j) = SAD_sulfate(i,j) + nd_mode(i,j,it) & ! [DRY part/m3A (in bin it)]
Note: See TracChangeset
for help on using the changeset viewer.
