From 85a1faf03d48888cf7eaf46bbc2beff348ca3156 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Vi=C3=A9?= <benoit.vie@meteo.fr>
Date: Thu, 5 May 2022 15:27:22 +0200
Subject: [PATCH] Corrections LIMA pour NMOM_I=1 & LSNOW_T=T

---
 src/MNH/ini_lima_cold_mixed.f90       | 3 ++-
 src/MNH/lima_ice_aggregation_snow.f90 | 9 +++++----
 src/MNH/lima_snow_deposition.f90      | 6 ++++--
 src/MNH/modd_param_lima_cold.f90      | 2 +-
 4 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/MNH/ini_lima_cold_mixed.f90 b/src/MNH/ini_lima_cold_mixed.f90
index c638491cc..e6daea87e 100644
--- a/src/MNH/ini_lima_cold_mixed.f90
+++ b/src/MNH/ini_lima_cold_mixed.f90
@@ -698,7 +698,8 @@ XITAUTS_THRESHOLD = 7.5
 !*       6.4    Constants for snow aggregation
 !
 XCOLEXIS = 0.05    ! Temperature factor of the I+S collection efficiency
-XFIAGGS  = (XPI/4.0)*0.25*XCCS*XCS*(ZRHO00**XCEXVT)*MOMG(XALPHAS,XNUS,XDS+2.0)
+XFIAGGS  = XNS*(XPI/4.0)*0.25*XCS*(ZRHO00**XCEXVT)*MOMG(XALPHAS,XNUS,XDS+2.0)
+XEXIAGGS = -XDS - 2.0
 XAGGS_CLARGE1 = XKER_ZRNIC_A2*ZGAMI(2)
 XAGGS_CLARGE2 = XKER_ZRNIC_A2*ZGAMS(2)
 XAGGS_RLARGE1 = XKER_ZRNIC_A2*ZGAMI(6)*XAI
diff --git a/src/MNH/lima_ice_aggregation_snow.f90 b/src/MNH/lima_ice_aggregation_snow.f90
index bc69b90b0..74f1594b5 100644
--- a/src/MNH/lima_ice_aggregation_snow.f90
+++ b/src/MNH/lima_ice_aggregation_snow.f90
@@ -61,9 +61,9 @@ END MODULE MODI_LIMA_ICE_AGGREGATION_SNOW
 !              ------------
 !
 USE MODD_CST,             ONLY : XTT
-USE MODD_PARAM_LIMA,      ONLY : XRTMIN, XCTMIN, XCEXVT, NMOM_I
+USE MODD_PARAM_LIMA,      ONLY : XRTMIN, XCTMIN, XCEXVT, NMOM_I, XNUS, XALPHAS, XCEXVT
 USE MODD_PARAM_LIMA_COLD, ONLY : XBI, XCCS, XCXS, XCOLEXIS, XAGGS_CLARGE1, XAGGS_CLARGE2, &
-                                 XAGGS_RLARGE1, XAGGS_RLARGE2, XFIAGGS, XBS, XNS
+                                 XAGGS_RLARGE1, XAGGS_RLARGE2, XFIAGGS, XBS, XNS, XFVELOS, XEXIAGGS
 !
 IMPLICIT NONE
 !
@@ -105,8 +105,9 @@ IF (NMOM_I.EQ.1) THEN
    WHERE ( (PRIT(:)>XRTMIN(4)) .AND. (PRST(:)>XRTMIN(5)) .AND. LDCOMPUTE(:) )
       ZZW1(:) = XFIAGGS * EXP( XCOLEXIS*(PT(:)-XTT) ) &
                         * PRIT(:)                     &
-                        * PLBDS(:)**(1.-0.27-2.)      &
-                        * PRHODREF(:)**(-XCEXVT)
+                        * PRST(:) * (1+(XFVELOS/PLBDS(:))**XALPHAS)**(-XNUS+XEXIAGGS/XALPHAS) &
+                        * PRHODREF(:)**(-XCEXVT+1.) &
+                        * ((PLBDS(:))**(XBS+XEXIAGGS))
 !
       P_RI_AGGS(:) = - ZZW1(:)
    END WHERE
diff --git a/src/MNH/lima_snow_deposition.f90 b/src/MNH/lima_snow_deposition.f90
index 4c3288390..89fa334ae 100644
--- a/src/MNH/lima_snow_deposition.f90
+++ b/src/MNH/lima_snow_deposition.f90
@@ -125,8 +125,10 @@ IF (NMOM_I.EQ.1) THEN
 !
       ZZW(:) = 0.0
       WHERE ( (PRST(:)>XRTMIN(5)) )
-         ZZW(:) = ( PSSI(:)/(PAI(:)*PRHODREF(:)) ) * &
-              ( X0DEPS*PLBDS(:)**XEX0DEPS + X1DEPS*PCJ(:)*PLBDS(:)**XEX1DEPS )
+         ZZW(:) = PRHODREF(:) * PRST(:) * PSSI(:) / PAI(:) * &
+              ( X0DEPS*PLBDS(:)**XEX0DEPS +                  &
+                X1DEPS*PLBDS(:)**(XEX1DEPS+XBS)*PCJ(:) *     &
+                     (1+(XFVELOS/(2.*PLBDS))**XALPHAS)**(-XNUS+XEX1DEPS/XALPHAS) )
          ZZW(:) =    ZZW(:)*(0.5+SIGN(0.5,ZZW(:))) - ABS(ZZW(:))*(0.5-SIGN(0.5,ZZW(:)))
       END WHERE
       P_RS_DEPS(:) = ZZW(:)
diff --git a/src/MNH/modd_param_lima_cold.f90 b/src/MNH/modd_param_lima_cold.f90
index 21227c661..3ae77bb76 100644
--- a/src/MNH/modd_param_lima_cold.f90
+++ b/src/MNH/modd_param_lima_cold.f90
@@ -110,7 +110,7 @@ REAL,SAVE :: XDICNVS_LIM, XLBDAICNVS_LIM,      & ! Constants for pristine ice
 REAL,SAVE :: XCOLEXIS,                         & ! Constants for snow 
     	     XAGGS_CLARGE1,XAGGS_CLARGE2,      & ! aggregation : AGG
              XAGGS_RLARGE1,XAGGS_RLARGE2,      &
-             XFIAGGS
+             XFIAGGS,XEXIAGGS
 !
 !??????????????????
 REAL,SAVE :: XKER_ZRNIC_A1,XKER_ZRNIC_A2         ! Long-Zrnic Kernels (ini_ice_coma)
-- 
GitLab