Ignore:
Timestamp:
Jun 21, 2022, 11:05:47 AM (3 years ago)
Author:
aslmd
Message:

switch to epsi_generic & RLVTT_generic

Location:
trunk/LMDZ.GENERIC/libf/phystd
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/libf/phystd/condensation_generic_mod.F90

    r2724 r2725  
    107107                        Tref=constants_Tref(iq)
    108108                        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)
    111111                        metallicity_coeff=constants_metallicity_coeff(iq)
    112112
    113                         Lcp=RLVTT/cpp ! need to be init here
     113                        Lcp=RLVTT_generic/cpp ! need to be init here
    114114
    115115                        !  Vertical loop (from top to bottom)
  • trunk/LMDZ.GENERIC/libf/phystd/evap_generic.F90

    r2701 r2725  
    3838
    3939    !   Evaporate all the ice from the tracer
    40     zlvdcp = RLVTT/cpp ! RLVTT is 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)
    4141 
    4242    DO l=1,nlayer
  • trunk/LMDZ.GENERIC/libf/phystd/generic_cloud_common_h.F90

    r2721 r2725  
    1919    real,save :: Tref ! Ref temperature for Clausis-Clapeyron (K)
    2020    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)
    2323    real,save :: metallicity_coeff ! Coefficient to take into account the metallicity
    2424
     
    3535    !   Values are based on Vissher (2010) and Morley (2012).
    3636    !
    37     !   Also set up few others useful parameters, such as epsi=m/mugaz, RLVTT and
     37    !   Also set up few others useful parameters, such as epsi_generic=m/mugaz, RLVTT_generic and
    3838    !   the metallicity_coeff.
    3939    !   Authors
     
    5050            Pref =   1.0E5 !in Pa
    5151            m = 140.6931
    52             RLVTT = delta_vapH/(m/1000.)
     52            RLVTT_generic = delta_vapH/(m/1000.)
    5353            metallicity_coeff=1.0*log(10.0)
    5454           
     
    5959            Pref =  1.0E5
    6060            m = 78.04454 !Na2S
    61             RLVTT = delta_vapH/(m/1000.)
     61            RLVTT_generic = delta_vapH/(m/1000.)
    6262            metallicity_coeff=0.5*log(10.0)
    6363           
     
    6868            Pref  = 1.0E5
    6969            m = 55.8450
    70             RLVTT = delta_vapH/(m/1000.)
     70            RLVTT_generic = delta_vapH/(m/1000.)
    7171            metallicity_coeff=0.0*log(10.0)
    7272           
     
    7777            Pref  = 1.0E5
    7878            m = 51.9961
    79             RLVTT = delta_vapH/(m/1000.)
     79            RLVTT_generic = delta_vapH/(m/1000.)
    8080            metallicity_coeff=0.0*log(10.0)
    8181           
     
    8787            metallicity_coeff=0.0*log(10.0)
    8888            m = 74.5498
    89             RLVTT = delta_vapH/(m/1000.)
     89            RLVTT_generic = delta_vapH/(m/1000.)
    9090        else if (trim(specname) .eq. "Mn") then
    9191            print*,"Loading data for Mn"
     
    9595            metallicity_coeff=1.0*log(10.0)
    9696            m = 87.003049
    97             RLVTT = delta_vapH/(m/1000.)
     97            RLVTT_generic = delta_vapH/(m/1000.)
    9898        else if (trim(specname) .eq. "Zn") then
    9999            print*,"Loading data for Zn"
     
    103103            metallicity_coeff=1.0*log(10.0)
    104104            m = 97.445
    105             RLVTT = delta_vapH/(m/1000.)
     105            RLVTT_generic = delta_vapH/(m/1000.)
    106106        else
    107107            print*,"Unknow species (not in Mg, Fe, Na, KCl, Cr, Mn or Zn)"
    108108        endif
    109         epsi = m/mugaz
     109        epsi_generic = m/mugaz
    110110    end subroutine specie_parameters
    111111
     
    118118    !   From a table of traceurs
    119119    !
    120     !   Also set up few others useful parameters, such as epsi=m/mugaz, RLVTT and
     120    !   Also set up few others useful parameters, such as epsi_generic=m/mugaz, RLVTT_generic and
    121121    !   the metallicity_coeff.
    122122    !   Authors
     
    178178        close(117)
    179179
    180         RLVTT=delta_vapH/(m/1000.)
    181 
    182         write(*,*) 'RLVTT', RLVTT
    183 
    184         epsi = m/mugaz
     180        RLVTT_generic=delta_vapH/(m/1000.)
     181
     182        write(*,*) 'RLVTT_generic', RLVTT_generic
     183
     184        epsi_generic = m/mugaz
    185185
    186186    end subroutine specie_parameters_table
     
    208208            qsat = 1. ! is the maximum amount of vapor that a parcel can hold without condensation, in specific concentration.
    209209        else
    210             qsat = epsi *psat/(p-(1-epsi)*psat)
     210            qsat = epsi_generic *psat/(p-(1-epsi_generic)*psat)
    211211        endif
    212212    end subroutine Psat_generic
     
    240240            dqsat =0.
    241241        else
    242             dqsat = (RLVTT/cpp) *qsat*(p/(p-(1-epsi)*psat))*dummy
    243             dlnpsat = (RLVTT/cpp) * dummy
     242            dqsat = (RLVTT_generic/cpp) *qsat*(p/(p-(1-epsi_generic)*psat))*dummy
     243            dlnpsat = (RLVTT_generic/cpp) * dummy
    244244        endif
    245245
  • trunk/LMDZ.GENERIC/libf/phystd/initracer.F90

    r2716 r2725  
    122122       IF (.NOT. allocated(constants_Tref)) allocate(constants_Tref(nq))
    123123       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))
    126126       IF (.NOT. allocated(constants_metallicity_coeff)) allocate(constants_metallicity_coeff(nq))
    127127
     
    151151       constants_Tref(:)=0
    152152       constants_Pref(:)=0
    153        constants_epsi(:)=0
    154        constants_RLVTT(:)=0
     153       constants_epsi_generic(:)=0
     154       constants_RLVTT_generic(:)=0
    155155       constants_metallicity_coeff(:)=0
    156156
     
    461461                constants_Tref(iq)=Tref
    462462                constants_Pref(iq)=Pref
    463                 constants_epsi(iq)=epsi
    464                 constants_RLVTT(iq)=RLVTT
     463                constants_epsi_generic(iq)=epsi_generic
     464                constants_RLVTT_generic(iq)=RLVTT_generic
    465465                constants_metallicity_coeff(iq)=metallicity_coeff
    466466        else
  • trunk/LMDZ.GENERIC/libf/phystd/rain_generic.F90

    r2723 r2725  
    133133         Tref=constants_Tref(iq)
    134134         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)
    137137
    138138         RCPD = cpp
     
    265265                     if(zt(i,k).gt.Tsat(i,k))then ! if temperature of the layer box is greater than Tsat
    266266                        ! 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 évapore
     267                        zqev=MIN((zt(i,k)-Tsat(i,k))*RCPD*dmass(i,k)/RLVTT_generic/ptimestep,precip_rate(i)) ! on évapore
    268268                        precip_rate(i)=MAX(precip_rate(i)-zqev,0.) ! we withdraw from precip_rate the evaporated part
    269269                        d_q(i,k)=zqev/dmass(i,k)*ptimestep ! quantité évaporée
    270                         d_t(i,k) = - d_q(i,k) * RLVTT/RCPD
     270                        d_t(i,k) = - d_q(i,k) * RLVTT_generic/RCPD
    271271                     else
    272272                        zqev = MAX (0.0, (zqs(i,k)-q(i,k)))*dmass(i,k)/(ptimestep*(1.d0+dqsat(i,k)))
     
    280280
    281281                        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/RCPD
     282                        d_t(i,k) = - d_q(i,k) * RLVTT_generic/RCPD
    283283                        precip_rate(i)  = precip_rate_tmp(i)
    284284                     end if
  • trunk/LMDZ.GENERIC/libf/phystd/tracer_h.F90

    r2712 r2725  
    4747       integer, save, allocatable :: constants_Tref(:)                 ! Ref temperature for Clausis-Clapeyron (K)
    4848       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)
    5151       integer, save, allocatable :: constants_metallicity_coeff(:)    ! Coefficient to take into account the metallicity
    5252
Note: See TracChangeset for help on using the changeset viewer.