! ! $Id: cond_evap_tstep_mod.f90 5268 2024-10-23 17:02:39Z evignon $ ! MODULE cond_evap_tstep_mod ! based on UPMC aerosol model by Slimane Bekki ! adapted for stratospheric sulfate aerosol in LMDZ by Christoph Kleinschmitt CONTAINS SUBROUTINE condens_evapor_rate_kelvin(R2SO4G,t_seri,pplay,R2SO4, & & DENSO4,f_r_wet,R2SO4ik,DENSO4ik,f_r_wetik,FL,ASO4,DNDR) ! ! INPUT: ! R2SO4G: number density of gaseous H2SO4 [molecules/cm3] ! t_seri: temperature (K) ! pplay: pressure (Pa) ! R2SO4: aerosol H2SO4 weight fraction (percent) - flat surface (does not depend on aerosol size) ! DENSO4: aerosol density (gr/cm3) ! f_r_wet: factor for converting dry to wet radius ! assuming 'flat surface' composition (does not depend on aerosol size) ! variables that depends on aerosol size because of Kelvin effect ! R2SO4Gik: number density of gaseous H2SO4 [molecules/cm3] - depends on aerosol size ! DENSO4ik: aerosol density (gr/cm3) - depends on aerosol size ! f_r_wetik: factor for converting dry to wet radius - depends on aerosol size ! RRSI: radius [cm] USE aerophys USE infotrac_phy USE yomcst_mod_h, ONLY : RPI USE sulfate_aer_mod, ONLY : wph2so4, surftension, solh2so4, rpmvh2so4 USE strataer_local_var_mod, ONLY : ALPH2SO4, RRSI IMPLICIT NONE REAL, PARAMETER :: third=1./3. ! input variables REAL :: R2SO4G !H2SO4 number density [molecules/cm3] REAL :: t_seri REAL :: pplay REAL :: R2SO4 REAL :: DENSO4 REAL :: f_r_wet REAL :: R2SO4ik(nbtr_bin), DENSO4ik(nbtr_bin), f_r_wetik(nbtr_bin) ! output variables REAL :: FL(nbtr_bin) REAL :: ASO4(nbtr_bin) REAL :: DNDR(nbtr_bin) ! local variables INTEGER :: IK REAL :: ALPHA,CST REAL :: WH2(nbtr_bin) REAL :: RP,VTK,AA,FL1,RKNUD REAL :: DND REAL :: ATOT,AH2O REAL :: RRSI_wet(nbtr_bin) REAL :: FPATH, WPP, XA, FKELVIN REAL :: surtens, mvh2so4, temp ! /// MOLEC CONDENSATION GROWTH (DUE TO CHANGES IN H2SO4 AND SO H2O) ! ------------------------------------------------------------------ ! EXCEPT CN ! RK:H2SO4 WEIGHT PERCENT DOESN'T CHANGE ! BE CAREFUL,H2SO4 WEIGHT PERCENTAGE ! MOLECULAR ACCOMODATION OF H2SO4 ! H2SO4 accommodation coefficient [condensation/evaporation] ALPHA = ALPH2SO4 ! FPLAIR=(2.281238E-5)*TAIR/PAIR ! 1.E2 (m to cm), CST=1.E2*2.281238E-5 ! same expression as in coagulate ! in coagulate: mean free path of air (Pruppacher and Klett, 2010, p.417) [m] ! mnfrpth=6.6E-8*(1.01325E+5/pplay(ilon,ilev))*(t_seri(ilon,ilev)/293.15) ! mnfrpth=2.28E-5*t_seri/pplay temp = min( max(t_seri, 190.), 300.) ! 190K <= temp <= 300K RRSI_wet(:)=RRSI(:)*f_r_wetik(:) ! Pruppa and Klett FPATH=CST*t_seri/pplay ! H2SO4 mass fraction in aerosol WH2(:)=R2SO4ik(:)*1.0E-2 ! ACTIVITY COEFFICIENT(SEE GIAUQUE,1951) ! AYERS ET AL (1980) ! (MU-MU0) ! RP=-10156.0/t_seri +16.259-(ACTSO4*4.184)/(8.31441*t_seri) ! DROPLET H2SO4 PRESSURE IN DYN.CM-2 ! RP=EXP(RP)*1.01325E6/0.086 !! RP=EXP(RP)*1.01325E6 ! H2SO4 NUMBER DENSITY NEAR DROPLET ! DND=RP*6.02E23/(8.31E7*t_seri) ! KELVIN EFFECT FACTOR !CK 20160613: bug fix, removed factor 250 (from original code by S. Bekki) !! AA =2.0*MH2O*72.0/(DENSO4*BOLZ*t_seri*250.0) ! AA =2.0*MH2O*72.0/(DENSO4*BOLZ*t_seri) ! MEAN KINETIC VELOCITY ! DYN*CM*K/(K*GR)=(CM/SEC2)*CM ! IN CM/SEC VTK=SQRT(8.0*BOLZ*t_seri/(RPI*MH2SO4)) ! KELVIN EFFECT FACTOR ! Loop on bin radius (RRSI in cm) DO IK=1,nbtr_bin IF(R2SO4ik(IK) > 0.0) THEN ! h2so4 mass fraction (0