Changeset 2725 for trunk/LMDZ.GENERIC/libf
- Timestamp:
- Jun 21, 2022, 11:05:47 AM (3 years ago)
- Location:
- trunk/LMDZ.GENERIC/libf/phystd
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.GENERIC/libf/phystd/condensation_generic_mod.F90
r2724 r2725 107 107 Tref=constants_Tref(iq) 108 108 Pref=constants_Pref(iq) 109 epsi =constants_epsi(iq)110 RLVTT =constants_RLVTT(iq)109 epsi_generic=constants_epsi_generic(iq) 110 RLVTT_generic=constants_RLVTT_generic(iq) 111 111 metallicity_coeff=constants_metallicity_coeff(iq) 112 112 113 Lcp=RLVTT /cpp ! need to be init here113 Lcp=RLVTT_generic/cpp ! need to be init here 114 114 115 115 ! Vertical loop (from top to bottom) -
trunk/LMDZ.GENERIC/libf/phystd/evap_generic.F90
r2701 r2725 38 38 39 39 ! Evaporate all the ice from the tracer 40 zlvdcp = RLVTT /cpp ! RLVTTis the latent heat of vaporization (comes from generic_cloud_common_h attention)40 zlvdcp = RLVTT_generic/cpp ! RLVTT_generic is the latent heat of vaporization (comes from generic_cloud_common_h attention) 41 41 42 42 DO l=1,nlayer -
trunk/LMDZ.GENERIC/libf/phystd/generic_cloud_common_h.F90
r2721 r2725 19 19 real,save :: Tref ! Ref temperature for Clausis-Clapeyron (K) 20 20 real,save :: Pref ! Reference pressure for Clausius Clapeyron (Pa) 21 real, save :: epsi ! fractionnal molecular mass (m/mugaz)22 real,save :: RLVTT !Latent heat of vaporization (J/kg)21 real, save :: epsi_generic ! fractionnal molecular mass (m/mugaz) 22 real,save :: RLVTT_generic !Latent heat of vaporization (J/kg) 23 23 real,save :: metallicity_coeff ! Coefficient to take into account the metallicity 24 24 … … 35 35 ! Values are based on Vissher (2010) and Morley (2012). 36 36 ! 37 ! Also set up few others useful parameters, such as epsi =m/mugaz, RLVTTand37 ! Also set up few others useful parameters, such as epsi_generic=m/mugaz, RLVTT_generic and 38 38 ! the metallicity_coeff. 39 39 ! Authors … … 50 50 Pref = 1.0E5 !in Pa 51 51 m = 140.6931 52 RLVTT = delta_vapH/(m/1000.)52 RLVTT_generic = delta_vapH/(m/1000.) 53 53 metallicity_coeff=1.0*log(10.0) 54 54 … … 59 59 Pref = 1.0E5 60 60 m = 78.04454 !Na2S 61 RLVTT = delta_vapH/(m/1000.)61 RLVTT_generic = delta_vapH/(m/1000.) 62 62 metallicity_coeff=0.5*log(10.0) 63 63 … … 68 68 Pref = 1.0E5 69 69 m = 55.8450 70 RLVTT = delta_vapH/(m/1000.)70 RLVTT_generic = delta_vapH/(m/1000.) 71 71 metallicity_coeff=0.0*log(10.0) 72 72 … … 77 77 Pref = 1.0E5 78 78 m = 51.9961 79 RLVTT = delta_vapH/(m/1000.)79 RLVTT_generic = delta_vapH/(m/1000.) 80 80 metallicity_coeff=0.0*log(10.0) 81 81 … … 87 87 metallicity_coeff=0.0*log(10.0) 88 88 m = 74.5498 89 RLVTT = delta_vapH/(m/1000.)89 RLVTT_generic = delta_vapH/(m/1000.) 90 90 else if (trim(specname) .eq. "Mn") then 91 91 print*,"Loading data for Mn" … … 95 95 metallicity_coeff=1.0*log(10.0) 96 96 m = 87.003049 97 RLVTT = delta_vapH/(m/1000.)97 RLVTT_generic = delta_vapH/(m/1000.) 98 98 else if (trim(specname) .eq. "Zn") then 99 99 print*,"Loading data for Zn" … … 103 103 metallicity_coeff=1.0*log(10.0) 104 104 m = 97.445 105 RLVTT = delta_vapH/(m/1000.)105 RLVTT_generic = delta_vapH/(m/1000.) 106 106 else 107 107 print*,"Unknow species (not in Mg, Fe, Na, KCl, Cr, Mn or Zn)" 108 108 endif 109 epsi = m/mugaz109 epsi_generic = m/mugaz 110 110 end subroutine specie_parameters 111 111 … … 118 118 ! From a table of traceurs 119 119 ! 120 ! Also set up few others useful parameters, such as epsi =m/mugaz, RLVTTand120 ! Also set up few others useful parameters, such as epsi_generic=m/mugaz, RLVTT_generic and 121 121 ! the metallicity_coeff. 122 122 ! Authors … … 178 178 close(117) 179 179 180 RLVTT =delta_vapH/(m/1000.)181 182 write(*,*) 'RLVTT ', RLVTT183 184 epsi = m/mugaz180 RLVTT_generic=delta_vapH/(m/1000.) 181 182 write(*,*) 'RLVTT_generic', RLVTT_generic 183 184 epsi_generic = m/mugaz 185 185 186 186 end subroutine specie_parameters_table … … 208 208 qsat = 1. ! is the maximum amount of vapor that a parcel can hold without condensation, in specific concentration. 209 209 else 210 qsat = epsi *psat/(p-(1-epsi)*psat)210 qsat = epsi_generic *psat/(p-(1-epsi_generic)*psat) 211 211 endif 212 212 end subroutine Psat_generic … … 240 240 dqsat =0. 241 241 else 242 dqsat = (RLVTT /cpp) *qsat*(p/(p-(1-epsi)*psat))*dummy243 dlnpsat = (RLVTT /cpp) * dummy242 dqsat = (RLVTT_generic/cpp) *qsat*(p/(p-(1-epsi_generic)*psat))*dummy 243 dlnpsat = (RLVTT_generic/cpp) * dummy 244 244 endif 245 245 -
trunk/LMDZ.GENERIC/libf/phystd/initracer.F90
r2716 r2725 122 122 IF (.NOT. allocated(constants_Tref)) allocate(constants_Tref(nq)) 123 123 IF (.NOT. allocated(constants_Pref)) allocate(constants_Pref(nq)) 124 IF (.NOT. allocated(constants_epsi )) allocate(constants_epsi(nq))125 IF (.NOT. allocated(constants_RLVTT )) allocate(constants_RLVTT(nq))124 IF (.NOT. allocated(constants_epsi_generic)) allocate(constants_epsi_generic(nq)) 125 IF (.NOT. allocated(constants_RLVTT_generic)) allocate(constants_RLVTT_generic(nq)) 126 126 IF (.NOT. allocated(constants_metallicity_coeff)) allocate(constants_metallicity_coeff(nq)) 127 127 … … 151 151 constants_Tref(:)=0 152 152 constants_Pref(:)=0 153 constants_epsi (:)=0154 constants_RLVTT (:)=0153 constants_epsi_generic(:)=0 154 constants_RLVTT_generic(:)=0 155 155 constants_metallicity_coeff(:)=0 156 156 … … 461 461 constants_Tref(iq)=Tref 462 462 constants_Pref(iq)=Pref 463 constants_epsi (iq)=epsi464 constants_RLVTT (iq)=RLVTT463 constants_epsi_generic(iq)=epsi_generic 464 constants_RLVTT_generic(iq)=RLVTT_generic 465 465 constants_metallicity_coeff(iq)=metallicity_coeff 466 466 else -
trunk/LMDZ.GENERIC/libf/phystd/rain_generic.F90
r2723 r2725 133 133 Tref=constants_Tref(iq) 134 134 Pref=constants_Pref(iq) 135 epsi =constants_epsi(iq)136 RLVTT =constants_RLVTT(iq)135 epsi_generic=constants_epsi_generic(iq) 136 RLVTT_generic=constants_RLVTT_generic(iq) 137 137 138 138 RCPD = cpp … … 265 265 if(zt(i,k).gt.Tsat(i,k))then ! if temperature of the layer box is greater than Tsat 266 266 ! treat the case where all liquid water should boil 267 zqev=MIN((zt(i,k)-Tsat(i,k))*RCPD*dmass(i,k)/RLVTT /ptimestep,precip_rate(i)) ! on évapore267 zqev=MIN((zt(i,k)-Tsat(i,k))*RCPD*dmass(i,k)/RLVTT_generic/ptimestep,precip_rate(i)) ! on évapore 268 268 precip_rate(i)=MAX(precip_rate(i)-zqev,0.) ! we withdraw from precip_rate the evaporated part 269 269 d_q(i,k)=zqev/dmass(i,k)*ptimestep ! quantité évaporée 270 d_t(i,k) = - d_q(i,k) * RLVTT /RCPD270 d_t(i,k) = - d_q(i,k) * RLVTT_generic/RCPD 271 271 else 272 272 zqev = MAX (0.0, (zqs(i,k)-q(i,k)))*dmass(i,k)/(ptimestep*(1.d0+dqsat(i,k))) … … 280 280 281 281 d_q(i,k) = - (precip_rate_tmp(i)-precip_rate(i))/dmass(i,k)*ptimestep 282 d_t(i,k) = - d_q(i,k) * RLVTT /RCPD282 d_t(i,k) = - d_q(i,k) * RLVTT_generic/RCPD 283 283 precip_rate(i) = precip_rate_tmp(i) 284 284 end if -
trunk/LMDZ.GENERIC/libf/phystd/tracer_h.F90
r2712 r2725 47 47 integer, save, allocatable :: constants_Tref(:) ! Ref temperature for Clausis-Clapeyron (K) 48 48 integer, save, allocatable :: constants_Pref(:) ! Reference pressure for Clausius Clapeyron (Pa) 49 integer, save, allocatable :: constants_epsi (:) ! fractionnal molecular mass (m/mugaz)50 integer, save, allocatable :: constants_RLVTT (:) ! Latent heat of vaporization (J/kg)49 integer, save, allocatable :: constants_epsi_generic(:) ! fractionnal molecular mass (m/mugaz) 50 integer, save, allocatable :: constants_RLVTT_generic(:) ! Latent heat of vaporization (J/kg) 51 51 integer, save, allocatable :: constants_metallicity_coeff(:) ! Coefficient to take into account the metallicity 52 52
Note: See TracChangeset
for help on using the changeset viewer.