Changeset 5997


Ignore:
Timestamp:
Jan 5, 2026, 5:38:05 PM (7 days ago)
Author:
evignon
Message:

ajout commentaires dans lmdz_lscp_tools

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/lmdz_lscp_tools.f90

    r5996 r5997  
    77!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    88SUBROUTINE FALLICE_VELOCITY(klon,iwc,temp,rho,pres,ptconv,velo)
    9 
    10     ! Ref:
    11     ! Stubenrauch, C. J., Bonazzola, M.,
    12     ! Protopapadaki, S. E., & Musat, I. (2019).
    13     ! New cloud system metrics to assess bulk
    14     ! ice cloud schemes in a GCM. Journal of
    15     ! Advances in Modeling Earth Systems, 11,
    16     ! 3212–3234. https://doi.org/10.1029/2019MS001642
     9!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     10! routine that calculates the ice crystals fall velocity
     11! References:
     12! - Heymsfield 1977, doi: 10.1175/1520-0469(1977)034<0367:PDISIC>2.0.CO;2
     13! - Heymsfield and Donner 1990, doi: 10.1175/1520-0469(1990)047<1865:ASFPIC>2.0.CO;2
     14! - Stubenrauch et al. 2019, doi: 10.1029/2019MS001642
     15!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    1716   
    1817    use lmdz_lscp_ini, only: iflag_vice, ffallv_con, ffallv_lsc
     
    2221
    2322    INTEGER, INTENT(IN) :: klon
    24     REAL, INTENT(IN), DIMENSION(klon) :: iwc       ! specific ice water content [kg/m3]
    25     REAL, INTENT(IN), DIMENSION(klon) :: temp      ! temperature [K]
    26     REAL, INTENT(IN), DIMENSION(klon) :: rho       ! dry air density [kg/m3]
    27     REAL, INTENT(IN), DIMENSION(klon) :: pres      ! air pressure [Pa]
    28     LOGICAL, INTENT(IN), DIMENSION(klon) :: ptconv    ! convective point  [-]
    29 
    30     REAL, INTENT(OUT), DIMENSION(klon) :: velo    ! fallspeed velocity of crystals [m/s]
     23    REAL, INTENT(IN), DIMENSION(klon) :: iwc          !-- specific ice water content [kg/m3]
     24    REAL, INTENT(IN), DIMENSION(klon) :: temp         !-- temperature [K]
     25    REAL, INTENT(IN), DIMENSION(klon) :: rho          !-- dry air density [kg/m3]
     26    REAL, INTENT(IN), DIMENSION(klon) :: pres         !-- air pressure [Pa]
     27    LOGICAL, INTENT(IN), DIMENSION(klon) :: ptconv    !-- convective point  [-]
     28
     29    REAL, INTENT(OUT), DIMENSION(klon) :: velo        !-- fallspeed velocity of crystals [m/s]
    3130
    3231
     
    4443            fallv_tun=ffallv_lsc
    4544        ENDIF
    46 
     45       
    4746        tempc=temp(i)-273.15 ! celcius temp
    4847        iwcg=MAX(iwc(i)*1000.,1E-3) ! iwc in g/m3. We set a minimum value to prevent from division by 0
     
    114113    include "FCTTRE.h"
    115114
    116     INTEGER, INTENT(IN) :: klon  ! number of horizontal grid points
    117     REAL, INTENT(IN), DIMENSION(klon) :: temp     ! temperature in K
    118     REAL, INTENT(IN), DIMENSION(klon) :: qtot     ! total specific water in kg/kg
    119     REAL, INTENT(IN), DIMENSION(klon) :: pressure ! pressure in Pa
    120     REAL, INTENT(IN)                  :: tref     ! reference temperature in K
     115    INTEGER, INTENT(IN) :: klon                   !-- number of horizontal grid points
     116    REAL, INTENT(IN), DIMENSION(klon) :: temp     !-- temperature [K]
     117    REAL, INTENT(IN), DIMENSION(klon) :: qtot     !-- total specific water [kg/kg]
     118    REAL, INTENT(IN), DIMENSION(klon) :: pressure !-- pressure [Pa]
     119    REAL, INTENT(IN)                  :: tref     ! reference temperature [K]
    121120    LOGICAL, INTENT(IN) :: flagth     ! flag for qsat calculation for thermals
    122121    INTEGER, INTENT(IN) :: phase
     
    126125
    127126    REAL, INTENT(OUT), DIMENSION(klon) :: qs      ! saturation specific humidity [kg/kg]
    128     REAL, INTENT(OUT), DIMENSION(klon) :: dqs     ! derivation of saturation specific humidity wrt T
     127    REAL, INTENT(OUT), DIMENSION(klon) :: dqs     ! dqs/dT [kg/kg/K]
    129128
    130129    REAL delta, cor, cvm5
     
    164163
    165164!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    166     ! programme that calculates the gammasat parameter that determines the
     165    ! routine that calculates the gammasat parameter that determines the
    167166    ! homogeneous condensation thresholds for cold (<0oC) clouds
    168167    ! condensation at q>gammasat*qsat
    169     ! Etienne Vignon, March 2021
    170168!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    171169
     
    176174
    177175
    178     INTEGER, INTENT(IN) :: klon                       ! number of horizontal grid points
    179     REAL, INTENT(IN), DIMENSION(klon) :: temp         ! temperature in K
    180     REAL, INTENT(IN), DIMENSION(klon) :: qtot         ! total specific water in kg/kg
    181 
    182     REAL, INTENT(IN), DIMENSION(klon) :: pressure     ! pressure in Pa
    183 
    184     REAL, INTENT(OUT), DIMENSION(klon) :: gammasat    ! coefficient to multiply qsat with to calculate saturation
    185     REAL, INTENT(OUT), DIMENSION(klon) :: dgammasatdt ! derivative of gammasat wrt temperature
     176    INTEGER, INTENT(IN) :: klon                       !-- number of horizontal grid points
     177    REAL, INTENT(IN), DIMENSION(klon) :: temp         !-- temperature [K]
     178    REAL, INTENT(IN), DIMENSION(klon) :: qtot         !-- total specific water [kg/kg]
     179
     180    REAL, INTENT(IN), DIMENSION(klon) :: pressure     !-- pressure [Pa]
     181
     182    REAL, INTENT(OUT), DIMENSION(klon) :: gammasat    !-- coefficient to multiply qsat with to calculate saturation
     183    REAL, INTENT(OUT), DIMENSION(klon) :: dgammasatdt !-- derivative of gammasat wrt temperature [K-1]
    186184
    187185    REAL, DIMENSION(klon) ::  qsi,qsl,dqsl,dqsi
     
    278276!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    279277SUBROUTINE DISTANCE_TO_CLOUD_TOP(klon,klev,k,temp,pplay,paprs,rneb,distcltop1D,temp_cltop)
    280 !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     278!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     279    ! routine that calculates the distance to cloud top for cloud phase
     280    ! determination (when cloud phase is assumed to depend on both
     281    ! temperature and distance to cloud top, see Lea Raillard's PhD
     282!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    281283   
    282284   USE lmdz_lscp_ini, ONLY : rd,rg,tresh_cl
     
    284286   IMPLICIT NONE
    285287   
    286    INTEGER, INTENT(IN) :: klon,klev                !number of horizontal and vertical grid points
    287    INTEGER, INTENT(IN) :: k                        ! vertical index
    288    REAL, INTENT(IN), DIMENSION(klon,klev) :: temp  ! temperature in K
    289    REAL, INTENT(IN), DIMENSION(klon,klev) :: pplay ! pressure middle layer in Pa
    290    REAL, INTENT(IN), DIMENSION(klon,klev+1) :: paprs ! pressure interfaces in Pa
    291    REAL, INTENT(IN), DIMENSION(klon,klev) :: rneb  ! cloud fraction
    292 
    293    REAL, INTENT(OUT), DIMENSION(klon) :: distcltop1D  ! distance from cloud top
    294    REAL, INTENT(OUT), DIMENSION(klon) :: temp_cltop     ! temperature of cloud top
     288   INTEGER, INTENT(IN) :: klon,klev                !-- number of horizontal and vertical grid points
     289   INTEGER, INTENT(IN) :: k                        !-- vertical index
     290   REAL, INTENT(IN), DIMENSION(klon,klev) :: temp  !-- temperature [K]
     291   REAL, INTENT(IN), DIMENSION(klon,klev) :: pplay !-- pressure middle layer [Pa]
     292   REAL, INTENT(IN), DIMENSION(klon,klev+1) :: paprs !-- pressure interfaces [Pa]
     293   REAL, INTENT(IN), DIMENSION(klon,klev) :: rneb    !-- cloud fraction [-]
     294
     295   REAL, INTENT(OUT), DIMENSION(klon) :: distcltop1D !-- distance from cloud top [m]
     296   REAL, INTENT(OUT), DIMENSION(klon) :: temp_cltop  !-- temperature of cloud top [K]
    295297   
    296298   REAL dzlay(klon,klev)
Note: See TracChangeset for help on using the changeset viewer.