From f7541638b03ee7c98ad7638cb934dd5069628e36 Mon Sep 17 00:00:00 2001
From: Quentin Rodier <quentin.rodier@meteo.fr>
Date: Thu, 1 Dec 2022 11:38:11 +0100
Subject: [PATCH] Quentin 01/12/2022: merge common modd_rain_ice.f90 (delete in
 mesonh)

---
 src/common/micro/modd_param_ice.F90 |   3 +
 src/mesonh/micro/modd_param_ice.f90 | 156 ----------------------------
 2 files changed, 3 insertions(+), 156 deletions(-)
 delete mode 100644 src/mesonh/micro/modd_param_ice.f90

diff --git a/src/common/micro/modd_param_ice.F90 b/src/common/micro/modd_param_ice.F90
index fbf4c51df..0ce2390e8 100644
--- a/src/common/micro/modd_param_ice.F90
+++ b/src/common/micro/modd_param_ice.F90
@@ -51,6 +51,7 @@ REAL    :: XVDEPOSC    ! Droplet deposition velocity
 CHARACTER(LEN=4) :: CPRISTINE_ICE ! Pristine ice type PLAT, COLU or BURO
 CHARACTER(LEN=4) :: CSEDIM        ! Sedimentation calculation mode      
 !
+LOGICAL :: LRED       ! To use modified ICE3/ICE4 to reduce time step dependency
 LOGICAL :: LFEEDBACKT ! When .TRUE. feed back on temperature is taken into account
 LOGICAL :: LEVLIMIT   ! When .TRUE. water vapour pressure is limited by saturation
 LOGICAL :: LNULLWETG  ! When .TRUE. graupel wet growth is activated with null rate (to allow water shedding)
@@ -85,6 +86,7 @@ TYPE(PARAM_ICE_t), SAVE, TARGET :: PARAM_ICE
 LOGICAL, POINTER :: LWARM => NULL(), &
                     LSEDIC => NULL(), &
                     LDEPOSC => NULL(), &
+                    LRED => NULL(), &
                     LFEEDBACKT => NULL(), &
                     LEVLIMIT => NULL(), &
                     LNULLWETG => NULL(), &
@@ -123,6 +125,7 @@ SUBROUTINE PARAM_ICE_ASSOCIATE()
   LWARM => PARAM_ICE%LWARM
   LSEDIC => PARAM_ICE%LSEDIC
   LDEPOSC => PARAM_ICE%LDEPOSC
+  LRED => PARAM_ICE%LRED
   LFEEDBACKT => PARAM_ICE%LFEEDBACKT
   LEVLIMIT => PARAM_ICE%LEVLIMIT
   LNULLWETG => PARAM_ICE%LNULLWETG
diff --git a/src/mesonh/micro/modd_param_ice.f90 b/src/mesonh/micro/modd_param_ice.f90
deleted file mode 100644
index 75d276b36..000000000
--- a/src/mesonh/micro/modd_param_ice.f90
+++ /dev/null
@@ -1,156 +0,0 @@
-!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier
-!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
-!MNH_LIC for details. version 1.
-!-----------------------------------------------------------------
-!     ######spl
-      MODULE MODD_PARAM_ICE
-!     #####################
-!
-!!****  *MODD_PARAM_ICE* - declaration of the control parameters for the
-!!                           mixed phase cloud parameterization
-!!
-!!    PURPOSE
-!!    -------
-!!      The purpose of this declarative module is to define the set of space
-!!    and time control parameters for the microphysics.
-!!
-!!
-!!**  IMPLICIT ARGUMENTS
-!!    ------------------
-!!      None
-!!
-!!    REFERENCE
-!!    ---------
-!!      Book2 of documentation of Meso-NH (module MODD_PARAM_ICE)
-!!
-!!    AUTHOR
-!!    ------
-!!     J.-P. Pinty   *Laboratoire d'Aerologie*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original      14/12/95
-!!      Jan 2015 S. Riette: new ICE3/ICE4 parameters
-!!      01/10/16 (C.Lac)  Add droplet deposition for fog
-!!
-!-------------------------------------------------------------------------------
-!
-!*       0.   DECLARATIONS
-!             ------------
-!
-IMPLICIT NONE
-!
-TYPE PARAM_ICE_t
-LOGICAL :: LWARM       ! When .TRUE. activates the formation of rain by
-                             ! the warm microphysical processes
-LOGICAL :: LSEDIC      ! TRUE to enable the droplet sedimentation
-LOGICAL :: LDEPOSC     ! TRUE to enable cloud droplet deposition
-REAL    :: XVDEPOSC    ! Droplet deposition velocity
-!
-CHARACTER(LEN=4) :: CPRISTINE_ICE ! Pristine ice type PLAT, COLU or BURO
-CHARACTER(LEN=4) :: CSEDIM        ! Sedimentation calculation mode      
-!
-LOGICAL :: LRED       ! To use modified ICE3/ICE4 to reduce time step dependency
-LOGICAL :: LFEEDBACKT ! When .TRUE. feed back on temperature is taken into account
-LOGICAL :: LEVLIMIT   ! When .TRUE. water vapour pressure is limited by saturation
-LOGICAL :: LNULLWETG  ! When .TRUE. graupel wet growth is activated with null rate (to allow water shedding)
-LOGICAL :: LWETGPOST  ! When .TRUE. graupel wet growth is activated with positive temperature (to allow water shedding)
-LOGICAL :: LNULLWETH  ! Same as LNULLWETG but for hail
-LOGICAL :: LWETHPOST  ! Same as LWETGPOST but for hail
-CHARACTER(LEN=4) :: CSNOWRIMING ! OLD or M90 for Murakami 1990 formulation
-REAL :: XFRACM90 ! Fraction used for the Murakami 1990 formulation
-INTEGER :: NMAXITER ! Maximum number of iterations for mixing ratio or time splitting
-REAL :: XMRSTEP ! maximum mixing ratio step for mixing ratio splitting
-LOGICAL :: LCONVHG ! TRUE to allow the conversion from hail to graupel
-LOGICAL :: LCRFLIMIT !True to limit rain contact freezing to possible heat exchange
-!
-REAL :: XTSTEP_TS ! Approximative time step for time-splitting (0 for no time-splitting)
-!
-CHARACTER(LEN=80) :: CSUBG_RC_RR_ACCR ! subgrid rc-rr accretion
-CHARACTER(LEN=80) :: CSUBG_RR_EVAP ! subgrid rr evaporation
-CHARACTER(LEN=80) :: CSUBG_PR_PDF ! pdf for subgrid precipitation
-!
-LOGICAL :: LADJ_BEFORE ! must we perform an adjustment before rain_ice call
-LOGICAL :: LADJ_AFTER ! must we perform an adjustment after rain_ice call
-CHARACTER(LEN=1) :: CFRAC_ICE_ADJUST ! ice fraction for adjustments
-CHARACTER(LEN=1) :: CFRAC_ICE_SHALLOW_MF ! ice fraction for shallow_mf
-LOGICAL :: LSEDIM_AFTER ! sedimentation done before (.FALSE.) or after (.TRUE.) microphysics
-!
-REAL :: XSPLIT_MAXCFL ! Maximum CFL number allowed for SPLIT scheme
-END TYPE PARAM_ICE_t
-!
-TYPE(PARAM_ICE_t), SAVE, TARGET :: PARAM_ICE
-!
-LOGICAL, POINTER :: LWARM => NULL(), &
-                    LSEDIC => NULL(), &
-                    LDEPOSC => NULL(), &
-                    LRED => NULL(), &
-                    LFEEDBACKT => NULL(), &
-                    LEVLIMIT => NULL(), &
-                    LNULLWETG => NULL(), &
-                    LWETGPOST => NULL(), &
-                    LNULLWETH => NULL(), &
-                    LWETHPOST => NULL(), &
-                    LCONVHG => NULL(), &
-                    LCRFLIMIT => NULL(), &
-                    LADJ_BEFORE => NULL(), &
-                    LADJ_AFTER => NULL(), &
-                    LSEDIM_AFTER => NULL()
-
-REAL, POINTER :: XVDEPOSC => NULL(), &
-                 XFRACM90 => NULL(), &
-                 XMRSTEP => NULL(), &
-                 XTSTEP_TS => NULL(), &
-                 XSPLIT_MAXCFL => NULL()
-
-INTEGER, POINTER :: NMAXITER => NULL()
-
-CHARACTER(LEN=1), POINTER :: CFRAC_ICE_ADJUST => NULL()
-CHARACTER(LEN=1), POINTER :: CFRAC_ICE_SHALLOW_MF => NULL()
-CHARACTER(LEN=4), POINTER :: CPRISTINE_ICE => NULL()
-CHARACTER(LEN=4), POINTER :: CSEDIM => NULL()
-CHARACTER(LEN=4), POINTER :: CSNOWRIMING => NULL()
-CHARACTER(LEN=80),POINTER :: CSUBG_RC_RR_ACCR => NULL()
-CHARACTER(LEN=80),POINTER :: CSUBG_RR_EVAP => NULL()
-CHARACTER(LEN=80),POINTER :: CSUBG_PR_PDF => NULL()
-!
-!-------------------------------------------------------------------------------
-!
-CONTAINS
-SUBROUTINE PARAM_ICE_ASSOCIATE()
-  IMPLICIT NONE
-  LWARM => PARAM_ICE%LWARM
-  LSEDIC => PARAM_ICE%LSEDIC
-  LDEPOSC => PARAM_ICE%LDEPOSC
-  LRED => PARAM_ICE%LRED
-  LFEEDBACKT => PARAM_ICE%LFEEDBACKT
-  LEVLIMIT => PARAM_ICE%LEVLIMIT
-  LNULLWETG => PARAM_ICE%LNULLWETG
-  LWETGPOST => PARAM_ICE%LWETGPOST
-  LNULLWETH => PARAM_ICE%LNULLWETH
-  LWETHPOST => PARAM_ICE%LWETHPOST
-  LCONVHG => PARAM_ICE%LCONVHG
-  LCRFLIMIT => PARAM_ICE%LCRFLIMIT
-  LADJ_BEFORE => PARAM_ICE%LADJ_BEFORE
-  LADJ_AFTER => PARAM_ICE%LADJ_AFTER
-  LSEDIM_AFTER => PARAM_ICE%LSEDIM_AFTER
-  !
-  XVDEPOSC => PARAM_ICE%XVDEPOSC
-  XFRACM90 => PARAM_ICE%XFRACM90
-  XMRSTEP => PARAM_ICE%XMRSTEP
-  XTSTEP_TS => PARAM_ICE%XTSTEP_TS
-  XSPLIT_MAXCFL => PARAM_ICE%XSPLIT_MAXCFL
-  !
-  NMAXITER => PARAM_ICE%NMAXITER
-  !
-  CFRAC_ICE_ADJUST => PARAM_ICE%CFRAC_ICE_ADJUST
-  CFRAC_ICE_SHALLOW_MF => PARAM_ICE%CFRAC_ICE_SHALLOW_MF
-  CPRISTINE_ICE => PARAM_ICE%CPRISTINE_ICE
-  CSEDIM => PARAM_ICE%CSEDIM
-  CSNOWRIMING => PARAM_ICE%CSNOWRIMING
-  CSUBG_RC_RR_ACCR => PARAM_ICE%CSUBG_RC_RR_ACCR
-  CSUBG_RR_EVAP => PARAM_ICE%CSUBG_RR_EVAP
-  CSUBG_PR_PDF => PARAM_ICE%CSUBG_PR_PDF
-END SUBROUTINE PARAM_ICE_ASSOCIATE
-END MODULE MODD_PARAM_ICE
-- 
GitLab