Index: LMDZ6/trunk/libf/phylmd/lmdz_lscp_tools.f90
===================================================================
--- LMDZ6/trunk/libf/phylmd/lmdz_lscp_tools.f90	(revision 5996)
+++ LMDZ6/trunk/libf/phylmd/lmdz_lscp_tools.f90	(revision 5997)
@@ -7,12 +7,11 @@
 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 SUBROUTINE FALLICE_VELOCITY(klon,iwc,temp,rho,pres,ptconv,velo)
-
-    ! Ref:
-    ! Stubenrauch, C. J., Bonazzola, M.,
-    ! Protopapadaki, S. E., & Musat, I. (2019).
-    ! New cloud system metrics to assess bulk
-    ! ice cloud schemes in a GCM. Journal of
-    ! Advances in Modeling Earth Systems, 11,
-    ! 3212–3234. https://doi.org/10.1029/2019MS001642
+!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+! routine that calculates the ice crystals fall velocity 
+! References:
+! - Heymsfield 1977, doi: 10.1175/1520-0469(1977)034<0367:PDISIC>2.0.CO;2
+! - Heymsfield and Donner 1990, doi: 10.1175/1520-0469(1990)047<1865:ASFPIC>2.0.CO;2
+! - Stubenrauch et al. 2019, doi: 10.1029/2019MS001642
+!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     
     use lmdz_lscp_ini, only: iflag_vice, ffallv_con, ffallv_lsc
@@ -22,11 +21,11 @@
 
     INTEGER, INTENT(IN) :: klon
-    REAL, INTENT(IN), DIMENSION(klon) :: iwc       ! specific ice water content [kg/m3]
-    REAL, INTENT(IN), DIMENSION(klon) :: temp      ! temperature [K]
-    REAL, INTENT(IN), DIMENSION(klon) :: rho       ! dry air density [kg/m3]
-    REAL, INTENT(IN), DIMENSION(klon) :: pres      ! air pressure [Pa]
-    LOGICAL, INTENT(IN), DIMENSION(klon) :: ptconv    ! convective point  [-]
-
-    REAL, INTENT(OUT), DIMENSION(klon) :: velo    ! fallspeed velocity of crystals [m/s]
+    REAL, INTENT(IN), DIMENSION(klon) :: iwc          !-- specific ice water content [kg/m3]
+    REAL, INTENT(IN), DIMENSION(klon) :: temp         !-- temperature [K]
+    REAL, INTENT(IN), DIMENSION(klon) :: rho          !-- dry air density [kg/m3]
+    REAL, INTENT(IN), DIMENSION(klon) :: pres         !-- air pressure [Pa]
+    LOGICAL, INTENT(IN), DIMENSION(klon) :: ptconv    !-- convective point  [-]
+
+    REAL, INTENT(OUT), DIMENSION(klon) :: velo        !-- fallspeed velocity of crystals [m/s]
 
 
@@ -44,5 +43,5 @@
             fallv_tun=ffallv_lsc
         ENDIF
-
+        
         tempc=temp(i)-273.15 ! celcius temp
         iwcg=MAX(iwc(i)*1000.,1E-3) ! iwc in g/m3. We set a minimum value to prevent from division by 0
@@ -114,9 +113,9 @@
     include "FCTTRE.h"
 
-    INTEGER, INTENT(IN) :: klon  ! number of horizontal grid points
-    REAL, INTENT(IN), DIMENSION(klon) :: temp     ! temperature in K
-    REAL, INTENT(IN), DIMENSION(klon) :: qtot     ! total specific water in kg/kg
-    REAL, INTENT(IN), DIMENSION(klon) :: pressure ! pressure in Pa
-    REAL, INTENT(IN)                  :: tref     ! reference temperature in K
+    INTEGER, INTENT(IN) :: klon                   !-- number of horizontal grid points
+    REAL, INTENT(IN), DIMENSION(klon) :: temp     !-- temperature [K]
+    REAL, INTENT(IN), DIMENSION(klon) :: qtot     !-- total specific water [kg/kg]
+    REAL, INTENT(IN), DIMENSION(klon) :: pressure !-- pressure [Pa]
+    REAL, INTENT(IN)                  :: tref     ! reference temperature [K]
     LOGICAL, INTENT(IN) :: flagth     ! flag for qsat calculation for thermals
     INTEGER, INTENT(IN) :: phase 
@@ -126,5 +125,5 @@
 
     REAL, INTENT(OUT), DIMENSION(klon) :: qs      ! saturation specific humidity [kg/kg]
-    REAL, INTENT(OUT), DIMENSION(klon) :: dqs     ! derivation of saturation specific humidity wrt T
+    REAL, INTENT(OUT), DIMENSION(klon) :: dqs     ! dqs/dT [kg/kg/K]
 
     REAL delta, cor, cvm5
@@ -164,8 +163,7 @@
 
 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-    ! programme that calculates the gammasat parameter that determines the
+    ! routine that calculates the gammasat parameter that determines the
     ! homogeneous condensation thresholds for cold (<0oC) clouds
     ! condensation at q>gammasat*qsat
-    ! Etienne Vignon, March 2021
 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
@@ -176,12 +174,12 @@
 
 
-    INTEGER, INTENT(IN) :: klon                       ! number of horizontal grid points
-    REAL, INTENT(IN), DIMENSION(klon) :: temp         ! temperature in K
-    REAL, INTENT(IN), DIMENSION(klon) :: qtot         ! total specific water in kg/kg
-
-    REAL, INTENT(IN), DIMENSION(klon) :: pressure     ! pressure in Pa
-
-    REAL, INTENT(OUT), DIMENSION(klon) :: gammasat    ! coefficient to multiply qsat with to calculate saturation
-    REAL, INTENT(OUT), DIMENSION(klon) :: dgammasatdt ! derivative of gammasat wrt temperature
+    INTEGER, INTENT(IN) :: klon                       !-- number of horizontal grid points
+    REAL, INTENT(IN), DIMENSION(klon) :: temp         !-- temperature [K]
+    REAL, INTENT(IN), DIMENSION(klon) :: qtot         !-- total specific water [kg/kg]
+
+    REAL, INTENT(IN), DIMENSION(klon) :: pressure     !-- pressure [Pa]
+
+    REAL, INTENT(OUT), DIMENSION(klon) :: gammasat    !-- coefficient to multiply qsat with to calculate saturation
+    REAL, INTENT(OUT), DIMENSION(klon) :: dgammasatdt !-- derivative of gammasat wrt temperature [K-1]
 
     REAL, DIMENSION(klon) ::  qsi,qsl,dqsl,dqsi
@@ -278,5 +276,9 @@
 !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 SUBROUTINE DISTANCE_TO_CLOUD_TOP(klon,klev,k,temp,pplay,paprs,rneb,distcltop1D,temp_cltop)
-!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+    ! routine that calculates the distance to cloud top for cloud phase
+    ! determination (when cloud phase is assumed to depend on both 
+    ! temperature and distance to cloud top, see Lea Raillard's PhD 
+!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    
    USE lmdz_lscp_ini, ONLY : rd,rg,tresh_cl
@@ -284,13 +286,13 @@
    IMPLICIT NONE
    
-   INTEGER, INTENT(IN) :: klon,klev                !number of horizontal and vertical grid points
-   INTEGER, INTENT(IN) :: k                        ! vertical index
-   REAL, INTENT(IN), DIMENSION(klon,klev) :: temp  ! temperature in K
-   REAL, INTENT(IN), DIMENSION(klon,klev) :: pplay ! pressure middle layer in Pa
-   REAL, INTENT(IN), DIMENSION(klon,klev+1) :: paprs ! pressure interfaces in Pa
-   REAL, INTENT(IN), DIMENSION(klon,klev) :: rneb  ! cloud fraction
-
-   REAL, INTENT(OUT), DIMENSION(klon) :: distcltop1D  ! distance from cloud top
-   REAL, INTENT(OUT), DIMENSION(klon) :: temp_cltop     ! temperature of cloud top
+   INTEGER, INTENT(IN) :: klon,klev                !-- number of horizontal and vertical grid points
+   INTEGER, INTENT(IN) :: k                        !-- vertical index
+   REAL, INTENT(IN), DIMENSION(klon,klev) :: temp  !-- temperature [K]
+   REAL, INTENT(IN), DIMENSION(klon,klev) :: pplay !-- pressure middle layer [Pa]
+   REAL, INTENT(IN), DIMENSION(klon,klev+1) :: paprs !-- pressure interfaces [Pa]
+   REAL, INTENT(IN), DIMENSION(klon,klev) :: rneb    !-- cloud fraction [-]
+
+   REAL, INTENT(OUT), DIMENSION(klon) :: distcltop1D !-- distance from cloud top [m]
+   REAL, INTENT(OUT), DIMENSION(klon) :: temp_cltop  !-- temperature of cloud top [K]
    
    REAL dzlay(klon,klev)
