diff --git a/src/arome/conv/convect_chem_transport.F90 b/src/arome/conv/convect_chem_transport.F90
index 85b33c8c16fcdf892fe3c48f713d9848233e53fc..b5030c5b70947c34bde2dfad0ae40d63efa668e1 100644
--- a/src/arome/conv/convect_chem_transport.F90
+++ b/src/arome/conv/convect_chem_transport.F90
@@ -49,8 +49,8 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CST
-USE MODD_CONVPAREXT
+USE MODD_CST, ONLY : XG
+USE MODD_CONVPAREXT, ONLY : JCVEXB, JCVEXT
 USE MODD_NSV,  ONLY : NSV_LGBEG,NSV_LGEND
 !
 IMPLICIT NONE
diff --git a/src/arome/conv/convect_closure_adjust_shal.F90 b/src/arome/conv/convect_closure_adjust_shal.F90
index e66a38775bbbd13912950f27d44da197b8b97218..4b5447ab1f8344e31dd1fa0a0bd880a96672ee04 100644
--- a/src/arome/conv/convect_closure_adjust_shal.F90
+++ b/src/arome/conv/convect_closure_adjust_shal.F90
@@ -52,7 +52,7 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CONVPAREXT
+USE MODD_CONVPAREXT, ONLY : JCVEXB, JCVEXT
 !
 IMPLICIT NONE
 !
diff --git a/src/arome/conv/convect_closure_shal.F90 b/src/arome/conv/convect_closure_shal.F90
index d45e04aa76d4157f2595ae220d19b8334ece5bd3..cfae7f68451336695eba5ac7d1de960004aac616 100644
--- a/src/arome/conv/convect_closure_shal.F90
+++ b/src/arome/conv/convect_closure_shal.F90
@@ -76,9 +76,9 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CST
-USE MODD_CONVPAR_SHAL
-USE MODD_CONVPAREXT
+USE MODD_CST, ONLY : XCPD, XRD, XG, XP00, XCPV, XLVTT, XCL, XTT, XCI
+USE MODD_CONVPAR_SHAL, ONLY : XSTABT, XSTABC
+USE MODD_CONVPAREXT, ONLY : JCVEXB, JCVEXT
 !
 !
 IMPLICIT NONE
diff --git a/src/arome/conv/convect_closure_thrvlcl.F90 b/src/arome/conv/convect_closure_thrvlcl.F90
index 54e69ad15f385b9ad2cb071e62d92dd6f4bd9dc8..1ad35ec7c6c345fa932d741782be648868b928be 100644
--- a/src/arome/conv/convect_closure_thrvlcl.F90
+++ b/src/arome/conv/convect_closure_thrvlcl.F90
@@ -67,9 +67,8 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CST
-USE MODD_CONVPAR
-USE MODD_CONVPAREXT
+USE MODD_CST, ONLY : XRD, XRV, XCPD, XP00, XTT, XBETAW, XGAMW
+USE MODD_CONVPAREXT, ONLY : JCVEXB, JCVEXT
 !
 !
 IMPLICIT NONE
diff --git a/src/arome/conv/convect_condens.F90 b/src/arome/conv/convect_condens.F90
index 5bfbc0e902914690fa8e0013fe9c315bd20e2b73..1facb675f96a219b48f2be66e2253c170d1ed37e 100644
--- a/src/arome/conv/convect_condens.F90
+++ b/src/arome/conv/convect_condens.F90
@@ -63,8 +63,8 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CST
-USE MODD_CONVPAR
+USE MODD_CST, ONLY : XALPI, XALPW, XBETAI, XBETAW, XCI, XCL, XCPD, XCPV, XG, XGAMI, XGAMW, XLSTT, XLVTT, XRD, XRV, XTT
+USE MODD_CONVPAR, ONLY : XTFRZ1, XTFRZ2
 !
 !
 IMPLICIT NONE
diff --git a/src/arome/conv/convect_satmixratio.F90 b/src/arome/conv/convect_satmixratio.F90
index 34da003ce6a54fd4a63fde8cc16bab9646e227f2..0926cd7a39d2e9aec2a4339b9372719a4448a835 100644
--- a/src/arome/conv/convect_satmixratio.F90
+++ b/src/arome/conv/convect_satmixratio.F90
@@ -52,7 +52,7 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CST
+USE MODD_CST, ONLY : XALPW, XBETAW, XCI, XCL, XCPD, XCPV, XGAMW, XLSTT, XLVTT, XRD, XRV, XTT
 !
 !
 IMPLICIT NONE
diff --git a/src/arome/conv/convect_trigger_shal.F90 b/src/arome/conv/convect_trigger_shal.F90
index 7738cad93cda7cd2df77509fbcffd56534e4ead1..9b09758085642eaebcc36435e3148a6a1fe494d9 100644
--- a/src/arome/conv/convect_trigger_shal.F90
+++ b/src/arome/conv/convect_trigger_shal.F90
@@ -80,9 +80,9 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CST
-USE MODD_CONVPAR_SHAL
-USE MODD_CONVPAREXT
+USE MODD_CST, ONLY : XBETAW, XCPD, XG, XGAMW, XP00, XRD, XRV, XTT
+USE MODD_CONVPAR_SHAL, ONLY : XATPERT, XAW, XBTPERT, XBW, XCDEPTH, XDTPERT, XNHGAM, XZLCL, XZPBL
+USE MODD_CONVPAREXT, ONLY : JCVEXB, JCVEXT
 !
 !
 IMPLICIT NONE
diff --git a/src/arome/conv/convect_updraft_shal.F90 b/src/arome/conv/convect_updraft_shal.F90
index 360088752c29c722889326e7c7c834ebbf6e4a76..6aa68e00d89dcf117f22e52eeeb1c30fbb0c9cc3 100644
--- a/src/arome/conv/convect_updraft_shal.F90
+++ b/src/arome/conv/convect_updraft_shal.F90
@@ -77,9 +77,9 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CST
-USE MODD_CONVPAR_SHAL
-USE MODD_CONVPAREXT
+USE MODD_CST, ONLY : XCPD, XCPV, XG, XP00, XRD, XRV
+USE MODD_CONVPAR_SHAL, ONLY : XCDEPTH, XCDEPTH_D, XCRAD, XENTR, XNHGAM
+USE MODD_CONVPAREXT, ONLY : JCVEXB, JCVEXT
 !
 !
 IMPLICIT NONE
diff --git a/src/arome/conv/ini_convpar.F90 b/src/arome/conv/ini_convpar.F90
index a1be28567acc7120cc53d89f467d4272bb486290..16ab5ca90480685de18d1d9fa21c918f46818019 100644
--- a/src/arome/conv/ini_convpar.F90
+++ b/src/arome/conv/ini_convpar.F90
@@ -42,7 +42,9 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CONVPAR
+USE MODD_CONVPAR, ONLY : XA25, XCDEPTH, XCRAD, XENTR, XMELDPTH, XNHGAM, XRCONV, XRHDBC, XSTABC, &
+& XSTABT, XTFRZ1, XTFRZ2, XUSRDPTH, XUVDP, XWTRIG, XZLCL, XZPBL
+
 !
 IMPLICIT NONE
 !  
diff --git a/src/arome/conv/shallow_convection.F90 b/src/arome/conv/shallow_convection.F90
index 172d00af76037c1eaf26c8ae9b605f38ca4219bb..ba40743d07d5acfa98fb831b4e1111ff2f315773 100644
--- a/src/arome/conv/shallow_convection.F90
+++ b/src/arome/conv/shallow_convection.F90
@@ -94,9 +94,9 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CST
-USE MODD_CONVPAREXT
-USE MODD_CONVPAR_SHAL
+USE MODD_CST, ONLY : XALPW, XBETAW, XCI, XCL, XCPD, XCPV, XG, XGAMW, XLSTT, XLVTT, XP00, XRD, XRV, XTT
+USE MODD_CONVPAREXT, ONLY : JCVEXB, JCVEXT
+USE MODD_CONVPAR_SHAL, ONLY : LLSMOOTH, XA25, XCTIME_SHAL
 USE MODD_NSV,       ONLY : NSV_LGBEG,NSV_LGEND
 !
 !
diff --git a/src/arome/ext/apl_arome.F90 b/src/arome/ext/apl_arome.F90
index 1af66f4e83aa91846edf543253e899e96bc050f8..71ce44e701918bc98c5a961ccdc4de09fe85e4a2 100644
--- a/src/arome/ext/apl_arome.F90
+++ b/src/arome/ext/apl_arome.F90
@@ -1,47 +1,10 @@
-!OPTION! -pvctl noloopfusion
-SUBROUTINE APL_AROME(YDGEOMETRY,YDSURF, YDCFU, YDXFU, YDMODEL, KBL, KGPCOMP, KIDIA , KFDIA , KLON ,&
- & KTDIA  , KLEV , KSTEP ,&
- & KMAXDRAFT, KSGST, KNFRRC, PDT, LDXFUMSE, PINDX, PINDY ,&
- & PGEMU,PGELAM,POROG,PGM,PMU0,PMU0LU,PMU0M,PMU0N,PCLON, PSLON,PVO3ABC,PLSM,&
- & PAESEA , PAELAN , PAESOO , PAEDES , PAESUL, PAEVOL,&
- & PGP2DSDT, PGP2DSPP, &
- !---------------------------------------------------------------------
- ! - INPUT A M
- & PAPHIM,PAPHIFM,PAPRSM, PAPRSFM, PRDELPM, PDELPM, PTM, PQVM ,&
- & PCPM    , PRM     ,PALPHM , PLNPRM,&
- & PQCM    , PQIM    ,PQRM   , PQSM, PQGM, PQHM,&
- 
- & PLIMAM  , &
- & PTKEM   , PEFB1   ,PEFB2  , PEFB3,&
- & PSIGM,PSVM,&
- & PUM    , PVM, PWM, PEDR,&
- & PFORCEU,PFORCEV,PFORCET,PFORCEQ,&
- !---------------------------------------------------------------------
- !  - INOUT A S
- & PGPAR, PEMTD, PEMTU, PTRSO,&
- & PGDEOSI, PGUEOSI, PGMU0, PGMU0_MIN, PGMU0_MAX,&
- & PGDEOTI, PGDEOTI2, PGUEOTI, PGUEOTI2, PGEOLT, PGEOXT,&
- & PGRPROX, PGMIXP, PGFLUXC, PGRSURF,&
- & PTURB3D,&
- !  - OUT A S
- & PQLRAD, PQIRAD, PRH, PCLFS, PSIGS,&
- & PTENDT, PTENDR, PTENDU, PTENDV,PTENDW,&
-
- & PTENDLIMA, &
- & PTENDTKE, PTENDEFB1, PTENDEFB2, PTENDEFB3,&
- & PTENDEXT,PFRTH, PFRSO,PFRTHDS, PFRSODS, PFRSOPS, PFRSDNI,&
- & PFRSOPT, PFRTHC, PFRSOC, &
- !---------------------------------------------------------------------
- !  - IN FOR RADIATION IF NO SURFACE SCHEME
- & PALBIN,PEMIS,&
- !  - INOUT for easy diag
- & PEZDIAG,&
- !  - INOUT for CFU XFU
- & PCLCH,PCLCL,PCLCM,PCLCT,PFPLSL,PFPLSN,PFPLSG,PFPLSH,PSTRTU,PSTRTV,PFCS,PFCLL,&
- & PFCLN,PUCLS,PVCLS,PNUCLS,PNVCLS,PTCLS,PQCLS,PHUCLS,PUGST,PVGST,PFEVL,PFEVN, PPBLH,PSPSG,PSPSGR,&
- & PSDUR,PDIAGH,PFLASH,PSFORC,PTPWCLS,PDPRECIPS,PDPRECIPS2,PVISICLD,PVISIHYDRO,PMXCLWC,&
- ! daand: radflex
- & YDPROCSET ,YDDDH)
+#ifdef RS6K
+@PROCESS NOCHECK
+#endif
+SUBROUTINE APL_AROME(YDCST, YDMF_PHYS_BASE_STATE, YDMF_PHYS_NEXT_STATE, YDGEOMETRY, YDCPG_BNDS, YDCPG_OPTS, &
+& YDCPG_MISC, YDCPG_GPAR, YDCPG_PHY0, YDCPG_PHY9, YDMF_PHYS, YDCPG_DYN0, YDCPG_DYN9, YDMF_PHYS_SURF, &
+& YDCPG_SL1, YDVARS, YDGMV, YDSURF, YDCFU, YDXFU, YDMODEL, PGFL, PGP2DSDT, PGMVT1,  &
+& PGFLT1, PTRAJ_PHYS, YDDDH)
 
 !**** *APL_AROME * - CALL OF PHYSICAL PARAMETERISATIONS FOR ALARO/AROME
 
@@ -62,75 +25,30 @@ SUBROUTINE APL_AROME(YDGEOMETRY,YDSURF, YDCFU, YDXFU, YDMODEL, KBL, KGPCOMP, KID
 ! - NOM DES PARAMETRES DE DIMENSIONNEMENT DE LA PHYSIQUE.
 ! - DIMENSIONS.
 
-! KBL  : NUMERO DE BLOC NPROMA
-! KBL  : NPROMA-PACKETS NUMBER
-! KGPCOMP : NOMBRE TOTAL DE POINTS DE GRILLE SUR LE DOMAINE
-! KGPCOMP : TOTAL GRID POINTS NUMBER IN THE DOMAIN
-! KIDIA, KFDIA : BORNES BOUCLES HORIZONTALES   (IST,IEND DANS CPG).
-! KIDIA, KFDIA : START/END OF HORIZONTAL LOOP  (IST,IEND IN *CPG*).
-! KLON : DIMENSION HORIZONTALE                 (NPROMA DANS CPG).
-! KLON : HORIZONTAL DIMENSION                  (NPROMA IN *CPG*).
-! KTDIA : DEBUT BOUCLE VERTICALE DANS LA PHYSIQUE.
-! KTDIA : START OF THE VERTICAL LOOP IN THE PHYSICS (IF SOME LEVELS ARE
-!                     SKIPPED AT THE TOP OF THE MODEL).
-! KLEV : FIN BOUCLE VERTICE ET DIMENSION VERTICALE (NFLEVG DANS CPG).
-! KLEV : END OF VERTICAL LOOP AND VERTICAL DIMENSION(NFLEVG IN *CPG*).
-! KSTEP : TIME STEP NUMBER (starting with zero)
 ! KMAXDRAFT : MAX NUMBER OF DRAFTS (FOR DIMENSIONNING)
 ! KSGST : NUMBER OF SUBGRID SURFACE TEMPERATURES AND FLUXES (NTSSG IN *CPG*)
 ! KNFRRC : FREQUENCY FOR CLEAR SKY RADIATION CALCULATION
-! PDT : TIME STEP (in s) 
+! PDT : TIME STEP (in s)
 ! LDXFUMSE : T if CDCONF=X in order not to increment surfex timer in that case
 !-----------------------------------------------------------------------
-! PGEMU      : SINE OF GEOGRAPHICAL LATITUDE
+! YDVARS%GEOMETRY%GEMU%T0      : SINE OF GEOGRAPHICAL LATITUDE
 ! PGELAM     :  LONGITUDE
 ! POROG      : g * OROGRAPHY
 ! PGM        : MAP FACTOR (used in ALARO convection only)
-! PMU0       : COSINUS LOCAL INSTANTANE DE L'ANGLE ZENITHAL SOLAIRE.
-! PMU0LU     : COSINUS LOCAL INSTANTANE DE L'ANGLE ZENITHAL LUNAIRE.
-! PMU0       : LOCAL COSINE OF INSTANTANEOUS SOLAR ZENITH ANGLE.
-! PMU0M      : COSINUS LOCAL MOYEN DE L'ANGLE ZENITHAL.
-! PMU0M      : LOCAL COSINE OF AVERAGED SOLAR ZENITH ANGLE.
-! PMU0N      : COSINUS LOCAL AU PAS DE TEMPS SUIVANT DE L'ANGLE ZENITHAL SOLAIRE.
-! PMU0N      : NEXT TIME STEP COSINUS LOCAL INSTANTANE DE L'ANGLE ZENITHAL SOLAIRE.
 ! PCLON      : cosine of geographical longitude.
 ! PSLON      : sine of geographical longitude.
-! PVO3ABC    : OZONE COEFFICIENTS FOR ARPEGE PROFILES
-! PLSM       : -ATMOSPHERIC MODEL- LAND-SEA MASK (! MAY BE DIFFERENT FROM 
-!              THE SURFACE ONE) 
-! PAESEA     : MARINE AEROSOLS (IF NVCLIA >= 4)
-! PAELAN     : CONTINENTAL AEROSOLS (IF NVCLIA >= 4)
-! PAESOO     : SOOT AEROSOLS (IF NVCLIA >= 4)
-! PAEDES     : DESERT AEROSOLS (IF NVCLIA >= 4)
-! PAESUL     : SULFATE AEROSOLS  (IF LAEROSUL=.T.)
-! PAEVOL     : VOLCANO AEROSOLS  (IF LAEROVOL=.T.)
 ! PGP2DSDT   : STOCHASTIC PHYSICS PATTERNS
 
 ! FIELDS WITH SUBSCRIPT M FOR TIME T-DT IN 3TL OR T IN 2TL
 
-! PAPHIM     : GEOPOTENTIAL ON HALF-LEVELS
-! PAPHIFM    : GEOPOTENTIAL ON FULL-LEVELS
-! PAPRSM     : PRESSURE ON HALF LEVELS
-! PAPRSFM    : PRESSURE ON FULL LEVELS.
-! PRDELPM    : INVERSE OF PDELP 
 ! PDELPM     : LAYER THICKNESS IN PRESSURE UNITS
 
 ! PTM        : TEMPERATURE.
-! PQVM        : SPECIFIC HUMIDITY OF WATER VAPOR
 ! PCPM        : SPECIFIC HEAT AT CONSTANT PRESSURE FOR AIR
 ! PRM         : GAS CONSTANT FOR AIR
-! PALPHM      : "alpha" on layers
-! PLNPRM      : "delta" on layers
-
-! PQCM        : SPECIFIC HUMIDITY OF CLOUD WATER
-! PQIM        : SPECIFIC HUMIDITY OF ICE
-! PQRM        : SPECIFIC HUMIDITY OF RAIN
-! PQSM        : SPECIFIC HUMIDITY OF SNOW
-! PQGM        : SPECIFIC HUMIDITY OF GRAUPEL
-! PQHM        : SPECIFIC HUMIDITY OF HAIL
+
 ! PTKEM       : TURBULENT KINETIC ENERGY
 ! PSVM        : PASSIVE SCALARS
-! PSIGM       : SIGMA FOR SUBGRIDCOND
 ! PUM         : ZONAL WIND
 ! PVM         : MERIDIAN WIND
 ! PWM         : VERTICAL VELOCITY (m/s)
@@ -138,112 +56,33 @@ SUBROUTINE APL_AROME(YDGEOMETRY,YDSURF, YDCFU, YDXFU, YDMODEL, KBL, KGPCOMP, KID
 !-----------------------------------------------------------------------
 ! - INOUT
 
-! PGPAR       : BUFFER FOR 2D FIELDS - CONTAINS PRECIP, ALBEDO, EMISS, TS 
+! PGPAR       : BUFFER FOR 2D FIELDS - CONTAINS PRECIP, ALBEDO, EMISS, TS
 !             : SURFACE FLUXES
-! PEMTD       : DOWNWARD LONGWAVE EMISSIVITY
-! PEMTU       : UPWARD   LONGWAVE EMISSIVITY
-! PTRSO       : SHORTWAVE TRANSMISSIVITY
 
 ! ACRANEB2 intermittency storage
 
-! PGDEOSI   : DESCENDING INCREMENTAL OPTICAL DEPTHS, SOLAR
-! PGUEOSI   : ASCENDING  INCREMENTAL OPTICAL DEPTHS, SOLAR
-! PGMU0     : COSINE OF SOLAR ZENITH ANGLE, APPROXIMATE ACTUAL VALUE
-! PGMU0_MIN : COSINE OF SOLAR ZENITH ANGLE, MIN VALUE
-! PGMU0_MAX : COSINE OF SOLAR ZENITH ANGLE, MAX VALUE
-! PGDEOTI     : DESCENDING INCREMENTAL OPTICAL DEPTHS, dB/dT(T0) WEIGHTS
-! PGDEOTI2    : DESCENDING INCREMENTAL OPTICAL DEPTHS, B WEIGHTS WITH
 !               LINEAR T_e CORRECTION
-! PGUEOTI     : ASCENDING INCREMENTAL OPTICAL DEPTHS, dB/dT(T0) WEIGHTS
-! PGUEOTI2    : ASCENDING INCREMENTAL OPTICAL DEPTHS, B WEIGHTS WITH
 !               LINEAR T_e CORRECTION
-! PGEOLT      : LOCAL OPTICAL DEPTHS, dB/dT(T0) WEIGHTS
-! PGEOXT      : MAXIMUM OPTICAL DEPTHS FOR EBL-EAL, dB/dT(T0) WEIGHTS
-! PGRPROX     : CORRECTION TERM FOR ADJACENT EXCHANGES
-! PGMIXP      : NON-STATISTICAL WEIGHTS FOR BRACKETING
-! PGFLUXC     : OUT OF BRACKET PART OF CLEARSKY EBL, RESP. EBL-EAL FLUX
-! PGRSURF     : CORRECTIVE RATIO FOR SURFACE CTS CONTRIBUTION
-! PTURB3D     : MATRICE DE GRADIENTS HORIZONTAUX
 !-----------------------------------------------------------------------
 ! - OUTPUT (SUBSCRIPT S FOR T+DT)
 
-! PCLFS       : CLOUD FRACTION
-! PQLRAD      : SPECIFIC HUMIDITY OF CLOUD WATER FOR RTTOV
-! PQIRAD      : SPECIFIC HUMIDITY OF ICE FOR RTTOV
 ! PSIGS       : SIGMA FOR SUBGRIDCOND
 ! PTENDT      : TEMPERATURE TENDENCY
 ! PTENDR      : HYDROMETEORE TENDENCIES
-! PTENDU      : ZONAL WIND TENDENCY
-! PTENDV      : MERIDIAN WIND TENDENCY
 ! PTENDW      : VERTICAL VELOCITY TENDENCY
 ! PTENDTKE    : TKE TENDENCY
 ! PTENDEXT    : PASSIVE SCALARS TENDENCY
-! PFRTH       : LONGWAVE RADIATIVE FLUX
 ! PFRSO       : SHORTWAVE RADIATIVE FLUX
-! PFRTHDS     : LONGWAVE DOWNWARD SURFACE RADIATIVE FLUX
-! PFRSOPS     : SHORTWAVE DOWNWARD SURFACE RADIATIVE FLUX DIRECT
-! PFRSDNI     : SHORTWAVE DIRECT NORMAL IRRADIANCE
-! PFRSODS     : SHORTWAVE DOWNWARD SURFACE RADIATIVE FLUX GLOBAL
-! PFRSOPT     : SHORTWAVE DOWNWARD TOP RADIATIVE FLUX DIRECT
 ! - 2D (0:1)
-! PFRTHC      : LONGWAVE CLEAR SKY NET RADIATIVE FLUX
-! PFRSOC      : SHORTWAVE CLEAR SKY NET RADIATIVE FLUX
 
-! variables used in input for radiation in case no surface scheme is used 
+! variables used in input for radiation in case no surface scheme is used
 
-! PALBIN     : MODEL SURFACE SHORTWAVE ALBEDO.
-! PEMIS      : MODEL SURFACE LONGWAVE EMISSIVITY.
+! PSIC       : MODEL SEA ICE CONCENTRATION
 
 ! Part of GFL strcture dedicated to easy diagnostics (to be used as a print...)
 ! PEZDIAG    : MULPITPLE ARRAY TO BE FILLED BY THE USER BY 3D FIELDS
 !              (NGFL_EZDIAG ONES)
 ! output for CFU XFU
-! PCLCH      : HIGH CLOUD COVER (DIAGNOSTIC).
-! PCLCL      : LOW CLOUD COVER (DIAGNOSTIC).
-! PCLCM      : MEDIUM CLOUD COVER (DIAGNOSTIC).
-! PCLCT      : TOTAL CLOUD COVER (DIAGNOSTIC).
-! PFPLSL     : RESOLVED PRECIPITATION AS RAIN.
-! PFPLSN     : RESOLVED PRECIPITATION AS SNOW
-! PFPLSG     : RESOLVED PRECIPITATION AS GRAUPEL
-! PFPLSH     : RESOLVED PRECIPITATION AS HAIL
-! PSTRTU     : TURBULENT FLUX OF MOMENTUM "U".
-! PSTRTV     : TURBULENT FLUX OF MOMENTUM "V".
-! PFCS       : SENSIBLE HEAT FLUX AT SURFACE LEVEL.
-! PFCLL      : LATENT HEAT FLUX AT SURFACE LEVEL OVER WATER.
-! PFCLN      : LATENT HEAT FLUX AT SURFACE LEVEL OVER SNOW.
-! PUCLS      : SORTIE DIAGNOSTIQUE DU VENT EN X A HUV METEO.
-! PUCLS      : U-COMPONENT OF WIND AT 10 METERS (DIAGNOSTIC).
-! PVCLS      : SORTIE DIAGNOSTIQUE DU VENT EN Y A HUV METEO.
-! PVCLS      : V-COMPONENT OF WIND AT 10 METERS (DIAGNOSTIC).
-! PNUCLS     : SORTIE DIAGNOSTIQUE DU VENT NEUTRE EN X A HUV METEO.
-! PNUCLS     : U-COMPONENT OF NEUTRAL WIND AT 10 METERS (DIAGNOSTIC).
-! PNVCLS     : SORTIE DIAGNOSTIQUE DU VENT NEUTRE EN Y A HUV METEO.
-! PNVCLS     : V-COMPONENT OF NEUTRAL WIND AT 10 METERS (DIAGNOSTIC).
-! PTCLS      : SORTIE DIAGNOSTIQUE DE LA TEMPERATURE A HTQ METEO.
-! PTCLS      : TEMPERATURE AT 2 METERS (DIAGNOSTIC).
-! PQCLS      : SORTIE DIAGNOSTIQUE DE L'HUMIDITE SPECIFIQUE A HTQ METEO.
-! PQCLS      : SPECIFIC HUMIDITY AT 2 METERS (DIAGNOSTIC).
-! PHUCLS     : SORTIE DIAGNOSTIQUE DE L'HUMIDITE RELATIVE A HTQ METEO.
-! PHUCLS     : RELATIVE HUMIDITY AT 2 METERS (DIAGNOSTIC).
-! PUGST      : SORTIE DIAGNOSTIQUE DU VENT RAFALE EN X A HUV METEO.
-! PUGST      : U-COMPONENT OF WIND GUST AT 10 METERS (DIAGNOSTIC).
-! PVGST      : SORTIE DIAGNOSTIQUE DU VENT RAFALE EN Y A HUV METEO.
-! PVGST      : V-COMPONENT OF WIND GUST AT 10 METERS (DIAGNOSTIC).
-! PFEVL      : FLUX DE VAPEUR D'EAU SUR EAU LIQUIDE (OU SOL HUMIDE).
-! PFEVL      : WATER VAPOUR FLUX OVER LIQUID WATER (OR WET SOIL)
-! PFEVN      : FLUX DE VAPEUR D'EAU SUR NEIGE (OU GLACE) ET SOL GELE.
-! PFEVN      : WATER VAPOUR FLUX OVER SNOW (OR ICE) AND FROZEN SOIL.
-! PPBLH      : PSEUDO-HISTORICAL ARRAY FOR PBL HEIGHT
-! PSPSG      : SNOW COVER
-! PSPSGR     : SNOW DENSITY
-! PSDUR      : SUNSHINE DURATION [s]
-! PDIAGH     : HAIL DIAGNOSTIC
-! PFLASH     : LIGHTNING DIAGNOSTICS
-! PVISICLD   : VISIBILITY DUE TO CLOUD WATER AND CLOUD ICE
-! PVISIHYDRO : VISIBILITY DUE TO RAIN AND SNOW AND GRAUPEL
-! PMXCLWC    : CLOUD WATER LIQUID CONTENT AT HVISI METERS
-! PDPRECIPS  : PRECIPITATION TYPE
-! PDPRECIPS2 : PRECIPITATION TYPE FOR 2NDE PERIOD
 
 !-----------------------------------------------------------------------
 
@@ -252,8 +91,8 @@ SUBROUTINE APL_AROME(YDGEOMETRY,YDSURF, YDCFU, YDXFU, YDMODEL, KBL, KGPCOMP, KID
 
 !     Method
 !     ------
-!     - convert aladin variables into mesonh variables (level inversion 
-!       and q to r, t to theta) 
+!     - convert aladin variables into mesonh variables (level inversion
+!       and q to r, t to theta)
 !     - call mesoNH physics and ECMWF radiation scheme
 !     - convert mesoNH tendencies to aladin tendencies
 
@@ -265,44 +104,44 @@ SUBROUTINE APL_AROME(YDGEOMETRY,YDSURF, YDCFU, YDXFU, YDMODEL, KBL, KGPCOMP, KID
 !     externalisation of surface scheme call + small cleaning (20-07-04) Y.Seity
 !     Modifications
 !     -------------
-!      G. Hello 04-02-06: Add the call of KFB-convection scheme 
+!      G. Hello 04-02-06: Add the call of KFB-convection scheme
 !                         for future use in ALARO
-!      T.Kovacic 04-05-05: Added ZCVTENDPR_ and ZCVTENDPRS_ 
+!      T.Kovacic 04-05-05: Added ZCVTENDPR_ and ZCVTENDPRS_
 !        M.Hamrud      01-Oct-2003 CY28 Cleaning
 !      F.Bouyssel 04-05-05: New arguments in ACRADIN
 !     Y. Seity 30-Sept-2005 Add MNH Chemistry scheme
 !     R. Zaaboul 15-feb-2006 add surface scheme call
-!     T.Kovacic  2006-03-23: calls to subroutines for budgets 
+!     T.Kovacic  2006-03-23: calls to subroutines for budgets
 !                             and new arguments PFRTH and PFRSO
-!     Y. Seity   2007-05-07: add CFU and XFU calculations 
+!     Y. Seity   2007-05-07: add CFU and XFU calculations
 !                           and call aro_ground_diag
-!     S.Ivatek-S 2007-04-17: Over dimensioning of PGPAR by NGPAR+1 just 
-!                            (KLON,NGPAR) is used boundary checking bf
+!     S.Ivatek-S 2007-04-17: Over dimensioning of PGPAR by NGPAR+1 just
+!                            (YDCPG_OPTS%KLON,NGPAR) is used boundary checking bf
 !     T.Kovacic  2007-03-16: Fourth dim. in APFT
-!     JJMorcrette, ECMWF, 20080325: dummy arguments for RADACT to allow for 
+!     JJMorcrette, ECMWF, 20080325: dummy arguments for RADACT to allow for
 !                        using a new sulphate climatology in the ECMWF model
 !     Y. Seity   2008-06-15: correct calculations of PFRTHDS, PFRSODS and PFCLL
 !     Y. Seity   2008-09-29: phasing Chemistry corrections
 !     O.Riviere  2008-10-01: introduction of new data flow for DDH in Arome
 !     Y. Seity   2009-05-03: new version of EDKF and implementation of EDMF
-!     Y. Seity   2009-10-03: add missed deallocations 
+!     Y. Seity   2009-10-03: add missed deallocations
 !     S. Riette  2009-03-25: Arguments modification for AROCLDIA to add HTKERAF
 !     K. Yessad (Jul 2009): remove CDLOCK + some cleanings
 !     A. Alias   2009-09-01: Sulfate and Volcano aerosols added (call radaer)
 !     S. Riette  2010-01-19: ZUM__, ZVM__ and ZDEPTH_HEIGHT_ are given
-!                            ARO_GROUND_DIAG in 3D.                     
+!                            ARO_GROUND_DIAG in 3D.
 !     Y. Seity   2010-03-09: add PFEVN and PFEVL
 !     Y. Bouteloup 2010-03-26 : Add PQLRAD et PQIRAD
 !     Y. Seity : Test TKE > 0.
 !     Y. Seity : Optimized version of EDKF + diag HCLS
 !     Y. Seity : 2010-09 Save Ts at the end of apl_arome for ICMSH+0000
-!     L. Bengtsson (2010): Introduce cloud diagnostics based on geop. 
-!                               height (LWMOCLOUD), AND cloud-overlap assumptions 
+!     L. Bengtsson (2010): Introduce cloud diagnostics based on geop.
+!                               height (LWMOCLOUD), AND cloud-overlap assumptions
 !                               from C. Wittman 2009 (LACPANMX + WMXOV)
 !     S. Riette: 2010-12 aro_ground_diag interface modified
 !     Y. Seity: 2010-12 add hail diagnostic
 !     R. El Khatib 30-Jun-2010 NEC directive noloopfusion to preserve critical regions
-!     P.Marguinaud 2010-06-29 : KSURFEXCTL flag (disable SURFEX) 
+!     P.Marguinaud 2010-06-29 : KSURFEXCTL flag (disable SURFEX)
 !     2010-12    B. Decharme  : modify the radiative coupling with surfex (SW per band in ACRADIN and RADHEAT)
 !     2011-02    A. Voldoire : add ZAERINDS to CALL RADAER and ACRADIN
 !                              for sulfate indirect effect computation
@@ -331,11 +170,13 @@ SUBROUTINE APL_AROME(YDGEOMETRY,YDSURF, YDCFU, YDXFU, YDMODEL, KBL, KGPCOMP, KID
 !     2016-09, J. Masek: Proper calculation of sunshine duration in ACRANEB2.
 !     2016-10, P. Marguinaud : Port to single precision
 !     S. Riette 2016-11: Changes in ICE3/ICE4
+!     K.I Ivarsson 2018-02 : Some new variables for microphysics
 !     2018-09, E. Gleeson: Corrected misplaced arguments in ACRANEB2 call.
 !     2019-09-24 J.M. Piriou arguments for convective gusts.
 !     R. El Khatib 30-Oct-2018 substantial rewrite for optimization and coding standards respect.
 !     2018-10, I. Etchevers : add Visibilities
 !     2019-01, I. Etchevers, Y. Seity : add Precipitation Type
+!     2019-06, W. de Rooy: Modifications for new set-up statistical cloud scheme (LSTATNW)
 !     2019-09, J. Masek: Corrected dimensioning of dummy argument PGMU0.
 !                        Modified call to ACRANEB2 (clearsky fluxes).
 !     2019-10, I. Etchevers : Visibilities in ACVISIH, AROCLDIA=>ACCLDIA
@@ -344,212 +185,91 @@ SUBROUTINE APL_AROME(YDGEOMETRY,YDSURF, YDCFU, YDXFU, YDMODEL, KBL, KGPCOMP, KID
 !     2020-10, J. Masek: Modified call to ACCLDIA.
 !     2020-12, F. Meier add call to latent heat nudging if LNUDGLH is TRUE
 !     2020-12, U. Andrae : Introduce SPP for HARMONIE-AROME
-!     R. El Khatib 24-Aug-2021 NPROMICRO specific cache-blocking factor for microphysics
+!     2021-12, F. Meier add call to windfarm parametrisation if LWINDFARM is TRUE
+!     R. El Khatib 08-Jul-2022 Contribution to the encapsulation of YOMCST and YOETHF
 ! End modifications
 !-------------------------------------------------------------------------------
 
+
 USE GEOMETRY_MOD       , ONLY : GEOMETRY
+USE MF_PHYS_TYPE_MOD   , ONLY : MF_PHYS_TYPE
+USE CPG_TYPE_MOD       , ONLY : CPG_MISC_TYPE, CPG_GPAR_TYPE, CPG_SL1_TYPE, CPG_DYN_TYPE, CPG_PHY_TYPE
+USE CPG_OPTS_TYPE_MOD   , ONLY : CPG_BNDS_TYPE, CPG_OPTS_TYPE
+USE MF_PHYS_SURFACE_TYPE_MOD,ONLY : MF_PHYS_SURF_TYPE
+USE FIELD_VARIABLES_MOD, ONLY : FIELD_VARIABLES
 USE SURFACE_FIELDS_MIX , ONLY : TSURF
 USE YOMXFU             , ONLY : TXFU
 USE YOMCFU             , ONLY : TCFU
 USE TYPE_MODEL         , ONLY : MODEL
 USE PARKIND1           , ONLY : JPIM     ,JPRB     ,JPRD
 USE YOMHOOK            , ONLY : LHOOK    ,DR_HOOK
-
-! AROME SPECIFIC
-
-
-! OTHERS
 USE YOESW      , ONLY : RSUN2
-USE YOMCST     , ONLY : RG       ,RCPD     ,RD       ,RATM     ,RTT      ,&
-          &             RCW      ,RCPV     ,RLVTT    ,RCS      ,RLSTT    ,RGAMW    ,&
-          &             RBETW    ,RALPW    ,RGAMS    ,RBETS    ,RALPS    ,RGAMD    ,&
-          &             RBETD    ,RALPD    ,RETV     ,RV       ,RKAPPA   ,RHOUR
+USE YOMCST     , ONLY : TCST
 USE YOMLUN     , ONLY : NULOUT
-USE YOMCT0     , ONLY : LTWOTL, LSFORCS
+USE YOMCT0     , ONLY : LTWOTL, LSFORCS, LSLAG, LNHDYN, LAROME
 USE YOMVERT    , ONLY : VP00
 USE YOMRIP0    , ONLY : NINDAT
 USE YOMNUDGLH , ONLY :  LNUDGLH, NSTARTNUDGLH, NSTOPNUDGLH, NINTNUDGLH, NTAUNUDGLH, &
           &             RAMPLIFY,RMAXNUDGLH,RMINNUDGLH,LNUDGLHCOMPT,NTIMESPLITNUDGLH
 USE YOMNSV     , ONLY : NSV_CO2
-USE DDH_MIX    , ONLY : ADD_FIELD_3D, NEW_ADD_FIELD_3D, TYP_DDH ! for new diag data flow
+USE DDH_MIX    , ONLY : NEW_ADD_FIELD_3D, NEW_ADD_FIELD_2D,&
+                    & NTOTSVAR, NTOTSURF, NTOTSVFS, TYP_DDH ! for new data flow
 USE YOMSPSDT   , ONLY : YSPPT_CONFIG, YSPPT
 USE SPP_MOD    , ONLY : YSPP_CONFIG, YSPP
+USE SPP_MOD_TYPE, ONLY : ALL_SPP_VARS, SET_ALL_SPP, CLEAR_ALL_SPP, APPLY_SPP
 USE YOMLSFORC  , ONLY : LMUSCLFA, NMUSCLFA, REMIS_FORC, RALB_FORC
-! daand: radflex
 USE INTFLEX_MOD, ONLY : LINTFLEX, LRADFLEX,&
                       & TYPE_INTPROC, TYPE_INTPROCSET,&
-                      & NEWINTFIELD, NEWINTPROC
+                      & NEWINTFIELD, NEWINTPROC, NEWINTPROCSET, CLEANINTPROCSET
+USE YOMGFL     , ONLY : GFL_WKA, GFL_WKA2
 USE YOMMP0     , ONLY : MYPROC     
+USE MF_PHYS_BASE_STATE_TYPE_MOD &
+             & , ONLY : MF_PHYS_BASE_STATE_TYPE
+USE MF_PHYS_NEXT_STATE_TYPE_MOD &
+             & , ONLY : MF_PHYS_NEXT_STATE_TYPE
+USE YOMGMV             , ONLY : TGMV
+USE SC2PRG_MOD         , ONLY : SC2PRG
 
-!     --------------------------------------------------------------------------
+USE YOMCVER            , ONLY : LVERTFE  ,LVFE_GWMPA 
+USE YOMDYNA            , ONLY : LGWADV, L_RDRY_VD
+USE YOMSCM             , ONLY : LGSCM
+USE YOMTRAJ            , ONLY : TRAJ_PHYS_TYPE
+
+!     -------------------------------------------------------------------------
 
 IMPLICIT NONE
 
-TYPE(GEOMETRY)    ,INTENT(IN)    :: YDGEOMETRY
-TYPE(TSURF)       ,INTENT(INOUT) :: YDSURF
-TYPE(TXFU)        ,INTENT(INOUT) :: YDXFU
-TYPE(TCFU)        ,INTENT(INOUT) :: YDCFU
-TYPE(MODEL)       ,INTENT(INOUT) :: YDMODEL
-INTEGER(KIND=JPIM),INTENT(IN)    :: KLON
-INTEGER(KIND=JPIM),INTENT(IN)    :: KLEV
-INTEGER(KIND=JPIM),INTENT(IN)    :: KBL 
-INTEGER(KIND=JPIM),INTENT(IN)    :: KGPCOMP 
-INTEGER(KIND=JPIM),INTENT(IN)    :: KIDIA 
-INTEGER(KIND=JPIM),INTENT(IN)    :: KFDIA 
-INTEGER(KIND=JPIM),INTENT(IN)    :: KTDIA 
-INTEGER(KIND=JPIM),INTENT(IN)    :: KSTEP 
-INTEGER(KIND=JPIM),INTENT(IN)    :: KMAXDRAFT
-INTEGER(KIND=JPIM),INTENT(IN)    :: KSGST
-INTEGER(KIND=JPIM),INTENT(IN)    :: KNFRRC
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PDT 
-LOGICAL           ,INTENT(IN)    :: LDXFUMSE 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PINDX(KLON) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PINDY(KLON) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PGEMU(KLON)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PGELAM(KLON)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PGM(KLON) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: POROG(KLON)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PMU0(KLON)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PMU0LU(KLON)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PMU0M(KLON)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PMU0N(KLON)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PCLON(KLON)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PSLON(KLON)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PVO3ABC(KLON,3) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PLSM(KLON) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PAESEA(KLON)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PAELAN(KLON)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PAESOO(KLON)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PAEDES(KLON)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PAESUL(KLON)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PAEVOL(KLON)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PGP2DSDT(KLON,YSPPT%YGPSDT(1)%NG2D,YSPPT%N2D)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PGP2DSPP(KLON,YSPP%N2D)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PAPHIM(KLON,0:KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PAPHIFM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PAPRSM(KLON,0:KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PAPRSFM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PRDELPM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PDELPM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PTM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PQVM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PCPM(KLON,KLEV)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PRM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PALPHM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PLNPRM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PQCM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PQIM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PQRM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PQSM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PQGM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PQHM(KLON,KLEV) 
-
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PLIMAM(KLON,KLEV,YDMODEL%YRML_GCONF%YGFL%NLIMA)
-REAL(KIND=JPRB)   ,INTENT(IN), TARGET :: PTKEM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PEFB1(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PEFB2(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PEFB3(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PSVM(KLON,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PSIGM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PUM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PVM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PWM(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PFORCEU(KLON,KLEV)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PFORCEV(KLON,KLEV)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PFORCET(KLON,KLEV)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PFORCEQ(KLON,KLEV)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PGPAR(KLON,YDMODEL%YRML_PHY_MF%YRPARAR%NGPAR+1) 
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PEMTD(KLON,0:KLEV)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PEMTU(KLON,0:KLEV)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PTRSO(KLON,0:KLEV)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PGDEOSI(KLON,0:KLEV,2)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PGUEOSI(KLON,0:KLEV,2)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PGMU0(KLON,0:YDMODEL%YRML_PHY_MF%YRPHY%NSORAYFR-1)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PGMU0_MIN(KLON)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PGMU0_MAX(KLON)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PGDEOTI(KLON,0:KLEV)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PGDEOTI2(KLON,0:KLEV)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PGUEOTI(KLON,0:KLEV)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PGUEOTI2(KLON,0:KLEV)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PGEOLT(KLON,KLEV)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PGEOXT(KLON,KLEV)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PGRPROX(KLON,0:KLEV)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PGMIXP(KLON,0:KLEV)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PGFLUXC(KLON,0:KLEV)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PGRSURF(KLON)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PTURB3D(KLON,YDMODEL%YRML_PHY_MF%YRARPHY%NGRADIENTS,KLEV)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PCLFS(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PQLRAD(KLON,KLEV)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PEDR(KLON,KLEV)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PQIRAD(KLON,KLEV)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PSIGS(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PTENDT(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PTENDR(KLON,KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NRR) 
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PTENDU(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PTENDV(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PTENDW(KLON,KLEV) 
+TYPE(TCST),                     INTENT(IN)    :: YDCST
+TYPE (MF_PHYS_BASE_STATE_TYPE), INTENT(IN)    :: YDMF_PHYS_BASE_STATE
+TYPE (MF_PHYS_NEXT_STATE_TYPE), INTENT(INOUT) :: YDMF_PHYS_NEXT_STATE
+TYPE(GEOMETRY),                 INTENT(IN)    :: YDGEOMETRY
+TYPE(CPG_BNDS_TYPE),            INTENT(IN)    :: YDCPG_BNDS
+TYPE(CPG_OPTS_TYPE),            INTENT(IN)    :: YDCPG_OPTS
+TYPE(CPG_MISC_TYPE),            INTENT(INOUT) :: YDCPG_MISC
+TYPE(CPG_GPAR_TYPE),            INTENT(INOUT) :: YDCPG_GPAR
+TYPE(CPG_PHY_TYPE),             INTENT(IN)    :: YDCPG_PHY0
+TYPE(CPG_PHY_TYPE),             INTENT(IN)    :: YDCPG_PHY9
+TYPE(MF_PHYS_TYPE),             INTENT(IN)    :: YDMF_PHYS
+TYPE(CPG_DYN_TYPE),             INTENT(IN)    :: YDCPG_DYN0
+TYPE(CPG_DYN_TYPE),             INTENT(IN)    :: YDCPG_DYN9
+TYPE(MF_PHYS_SURF_TYPE),        INTENT(INOUT) :: YDMF_PHYS_SURF
+TYPE(CPG_SL1_TYPE),             INTENT(INOUT) :: YDCPG_SL1
+TYPE(FIELD_VARIABLES),          INTENT(INOUT) :: YDVARS
+TYPE(TGMV),                     INTENT(IN)    :: YDGMV
+TYPE(TSURF),                    INTENT(IN)    :: YDSURF
+TYPE(TCFU),                     INTENT(IN)    :: YDCFU
+TYPE(TXFU),                     INTENT(IN)    :: YDXFU
+TYPE(MODEL),                    INTENT(IN)    :: YDMODEL
+
  
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PTENDLIMA(KLON,KLEV,YDMODEL%YRML_GCONF%YGFL%NLIMA)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PTENDTKE(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PRH(KLON,KLEV)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PTENDEFB1(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PTENDEFB2(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PTENDEFB3(KLON,KLEV) 
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PTENDEXT(KLON,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PALBIN(KLON)
-! daand: radflex; made target
-REAL(KIND=JPRB)   ,INTENT(INOUT), TARGET :: PFRTH(KLON,0:KLEV,KSGST+1)
-REAL(KIND=JPRB)   ,INTENT(OUT), TARGET :: PFRSO(KLON,0:KLEV,KSGST+1)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PFRTHDS(KLON)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PFRSOPS(KLON)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PFRSDNI(KLON)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PFRSODS(KLON)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PFRSOPT(KLON)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PFRSOC(KLON,0:1)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PFRTHC(KLON,0:1)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PEMIS(KLON) 
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PEZDIAG(KLON,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EZDIAG)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PCLCH(KLON) 
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PCLCL(KLON) 
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PCLCM(KLON) 
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PCLCT(KLON) 
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PFPLSL(KLON,0:KLEV) 
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PFPLSN(KLON,0:KLEV) 
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PFPLSG(KLON,0:KLEV) 
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PFPLSH(KLON,0:KLEV) 
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PSTRTU(KLON,0:KLEV) 
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PSTRTV(KLON,0:KLEV) 
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PFCS(KLON,KSGST+1) 
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PFCLL(KLON,KSGST+1)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PFCLN(KLON,KSGST+1)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PFEVL(KLON,KSGST+1)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PFEVN(KLON,KSGST+1)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PUCLS(KLON)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PVCLS(KLON)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PNUCLS(KLON)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PNVCLS(KLON)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PTCLS(KLON)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PQCLS(KLON)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PHUCLS(KLON)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PUGST(KLON)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PVGST(KLON)
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PPBLH(KLON)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PSPSG(KLON)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PSPSGR(KLON) 
-REAL(KIND=JPRB)   ,INTENT(INOUT) :: PSDUR(KLON)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PDIAGH(KLON) 
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PTPWCLS(KLON)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PFLASH(KLON)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PDPRECIPS(KLON,YDMODEL%YRML_PHY_MF%YRPHY%YRDPRECIPS%NDTPREC)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PDPRECIPS2(KLON,YDMODEL%YRML_PHY_MF%YRPHY%YRDPRECIPS%NDTPREC2)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PVISICLD(KLON)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PVISIHYDRO(KLON)
-REAL(KIND=JPRB)   ,INTENT(OUT)   :: PMXCLWC(KLON)
-REAL(KIND=JPRB)   ,INTENT(IN)    :: PSFORC(KLON,YDMODEL%YRML_PHY_MF%YRPHYDS%NSFORC)
-! daand: radflex
-TYPE(TYPE_INTPROCSET), INTENT(INOUT) :: YDPROCSET
-TYPE(TYP_DDH)     ,INTENT(INOUT) :: YDDDH
+REAL(KIND=JPRB),                INTENT(INOUT) :: PGFL(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NDIM) 
+REAL(KIND=JPRB),                INTENT(IN)    :: PGP2DSDT(YDCPG_OPTS%KLON,YSPPT%YGPSDT(1)%NG2D,YSPPT%N2D)
+REAL(KIND=JPRB),                INTENT(INOUT) :: PGMVT1(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDGMV%YT1%NDIM) 
+REAL(KIND=JPRB),                INTENT(INOUT) :: PGFLT1(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NDIM1)
+TYPE (TRAJ_PHYS_TYPE),          INTENT(INOUT) :: PTRAJ_PHYS
+
+TYPE(TYP_DDH),                  INTENT(INOUT) :: YDDDH
+
 !*
 !     ------------------------------------------------------------------
 
@@ -570,7 +290,7 @@ TYPE(TYP_DDH)     ,INTENT(INOUT) :: YDDDH
 ! Local 3D arrays with extra levels for Meso-NH turbulence scheme :
 ! - first dimension is KFDIA not KDLON in order to limit array copies
 ! - suffixed with two underscore to be easily identified
-! These arrays are passed in argument as ZXXX__(:,1:KLEV) except for aro_turb_mnh where they are passed as ZXXX__.
+! These arrays are passed in argument as ZXXX__(:,1:YDCPG_OPTS%KFLEVG) except for aro_turb_mnh where they are passed as ZXXX__.
 
 ! Local 3D arrays with regular number of levels for Meso-NH interfaces :
 ! - first dimension is KFDIA not KDLON in order to limit array copies due to non-contiguous data.
@@ -598,11 +318,11 @@ TYPE(TYP_DDH)     ,INTENT(INOUT) :: YDDDH
 ! because the compiler will be able to use an optimized function to initialize/copy a segment of memory,
 ! and may be able to address simultaneously several cach lines :
 ! 1D array : 
-!   Z(KIDIA:KFDIA)=value
+!   Z(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=value
 ! 2D arrays :
-!  DO JLEV=1,KLEV
-!     ZX(KIDIA:KFDIA,JLEV)=xval
-!     ZY(KIDIA:KFDIA,JLEV)=yval
+!  DO JLEV=1,YDCPG_OPTS%KFLEVG
+!     ZX(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=xval
+!     ZY(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=yval
 !  ENDDO
 
 ! - if you need the bakup of an array, use a swapp mechanism, as what is done here for instance for
@@ -636,232 +356,257 @@ TYPE(TYP_DDH)     ,INTENT(INOUT) :: YDDDH
 !    CALL COMPUTE(ZARG)
 !    IF (JI > IFIRST) THEN
 !      ! Add increment
-!      ZSUM(KIDIA:KFDIA)=ZSUM(KIDIA:KFDIA)+ZINC(KIDIA:KFDIA)
+!      ZSUM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=ZSUM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)+ZINC(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
 !    ENDIF
 !  ENDDO
 
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-REAL(KIND=JPRB) :: ZRHODJM__(KFDIA,0:KLEV+1),      ZRHODREFM__(KFDIA,0:KLEV+1),   ZPABSM__(KFDIA,0:KLEV+1)
-REAL(KIND=JPRB) :: ZUM__(KFDIA,0:KLEV+1),          ZVM__(KFDIA,0:KLEV+1),         ZTHM__(KFDIA,0:KLEV+1)
-REAL(KIND=JPRB) :: ZUS__(KFDIA,0:KLEV+1),          ZVS__(KFDIA,0:KLEV+1),         ZWS__(KFDIA,0:KLEV+1)
-REAL(KIND=JPRB) :: ZTKES_OUT__(KFDIA,0:KLEV+1),    ZMF_UP__(KFDIA,0:KLEV+1),      ZTHVREFM__(KFDIA,0:KLEV+1)  ! thetav de l etat
-REAL(KIND=JPRB) :: ZTENDU_TURB__(KFDIA,0:KLEV+1),  ZTENDV_TURB__(KFDIA,0:KLEV+1), ZTENDTHL_TURB__(KFDIA,0:KLEV+1)
-REAL(KIND=JPRB) :: ZTENDRT_TURB__(KFDIA,0:KLEV+1), ZTKEM__(KFDIA,0:KLEV+1),       ZSRCS__(KFDIA,0:KLEV+1) 
-REAL(KIND=JPRB) :: ZHLC_HRC__(KFDIA,0:KLEV+1),     ZHLC_HCF__(KFDIA,0:KLEV+1), &
-                 & ZHLI_HRI__(KFDIA,0:KLEV+1),     ZHLI_HCF__(KFDIA,0:KLEV+1)
-
-REAL(KIND=JPRB) :: ZSIGS__(KFDIA,0:KLEV+1),        ZEDR__(KFDIA,0:KLEV+1)
+REAL(KIND=JPRB) :: ZRHODJM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1),      ZRHODREFM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1),   ZPABSM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1)
+REAL(KIND=JPRB) :: ZUM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1),          ZVM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1),         ZTHM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1)
+REAL(KIND=JPRB) :: ZUS__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1),          ZVS__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1),         ZWS__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1)
+REAL(KIND=JPRB) :: ZTKES_OUT__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1),    ZMF_UP__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1),      ZTHVREFM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1)  ! thetav de l etat
+REAL(KIND=JPRB) :: ZTENDU_TURB__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1),  ZTENDV_TURB__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZTENDTHL_TURB__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1)
+REAL(KIND=JPRB) :: ZTENDRT_TURB__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZTKEM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1),       ZSRCS__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1) 
+REAL(KIND=JPRB) :: ZSIGS__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1),        ZEDR__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1)
 ! THE DDH budgets
-REAL(KIND=JPRB) :: ZDP__(KFDIA,0:KLEV+1),          ZTP__(KFDIA,0:KLEV+1),         ZTPMF__(KFDIA,0:KLEV+1)
-REAL(KIND=JPRB) :: ZTDIFF__(KFDIA,0:KLEV+1),       ZTDISS__(KFDIA,0:KLEV+1)
+REAL(KIND=JPRB) :: ZDP__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1),          ZTP__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1),         ZTPMF__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1)
+REAL(KIND=JPRB) :: ZTDIFF__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1),       ZTDISS__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1)
 ! length scales for momentum and heat for mnh level definitions in case LHARATU=TRUE
-REAL(KIND=JPRB) :: ZLENGTHM__(KFDIA,0:KLEV+1), ZLENGTHH__(KFDIA,0:KLEV+1)
+REAL(KIND=JPRB) :: ZLENGTHM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZLENGTHH__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1)
 
 REAL(KIND=JPRB), POINTER :: ZTHS__(:,:)
 ! horizontal gradients and diagnostics
-REAL(KIND=JPRB) :: ZTURB3D__(KFDIA,0:KLEV+1,YDMODEL%YRML_PHY_MF%YRARPHY%NGRADIENTS)
+REAL(KIND=JPRB) :: ZTURB3D__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1,YDMODEL%YRML_PHY_MF%YRARPHY%NGRADIENTS)
 ! WARNING ! Don't use ZTHSWAP__ or ZTHSAVE__ below because they may be swapped !
 ! Use only the pointer ZTHS__, and possibly ZTHSIN_ if you need the backup of input data.
-REAL(KIND=JPRB), TARGET  :: ZTHSWAP__(KFDIA,0:KLEV+1),        ZTHSAVE__(KFDIA,0:KLEV+1)
-REAL(KIND=JPRB), TARGET  :: ZFLXZTHVMF_SUM__(KFDIA,0:KLEV+1), ZWM__(KFDIA,0:KLEV+1)
+REAL(KIND=JPRB), TARGET  :: ZTHSWAP__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1),        ZTHSAVE__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1)
+REAL(KIND=JPRB), TARGET  :: ZFLXZTHVMF_SUM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZWM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1)
 
 
 ! Updraft characteristics for Meso-NH world (input of ARO_SHALLOW_MF)
-REAL(KIND=JPRB) :: ZTHETAL_UP_(KFDIA,KLEV), ZTHETAV_UP_(KFDIA,KLEV), ZZFRAC_UP_(KFDIA,KLEV)
-REAL(KIND=JPRB) :: ZRT_UP_(KFDIA,KLEV),     ZRC_UP_(KFDIA,KLEV),     ZRI_UP_(KFDIA,KLEV)
-REAL(KIND=JPRB) :: ZZU_UP_(KFDIA,KLEV),     ZZV_UP_(KFDIA,KLEV),     ZZW_UP_(KFDIA,KLEV)
-REAL(KIND=JPRB) :: ZZRV_UP_(KFDIA,KLEV),    ZTKES_(KFDIA,KLEV),      ZZZ_(KFDIA,KLEV)
-REAL(KIND=JPRB) :: ZDZZ_(KFDIA,KLEV),       ZZZ_F_(KFDIA,KLEV),      ZDZZ_F_(KFDIA,KLEV)
-REAL(KIND=JPRB) :: ZCIT_(KFDIA,KLEV),       ZMFM_(KFDIA,KLEV),       ZEXNREFM_(KFDIA,KLEV)
-REAL(KIND=JPRB) :: ZSIGM_(KFDIA,KLEV),      ZNEBMNH_(KFDIA,KLEV),    ZEVAP_(KFDIA,KLEV)
+REAL(KIND=JPRB) :: ZTHETAL_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZTHETAV_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZZFRAC_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZRT_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),     ZRC_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),     ZRI_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZZU_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),     ZZV_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),     ZZW_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZZRV_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),    ZTKES_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),      ZZZ_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZDZZ_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),       ZZZ_F_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),      ZDZZ_F_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZCIT_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),       ZMFM_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),       ZEXNREFM_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZSIGM_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),      ZNEBMNH_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),    ZEVAP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
 ! additions for MF scheme (Pergaud et al)
-REAL(KIND=JPRB) :: ZSIGMF_(KFDIA,KLEV),     ZRC_MF_(KFDIA,KLEV),     ZRI_MF_(KFDIA,KLEV)
-REAL(KIND=JPRB) :: ZCF_MF_(KFDIA,KLEV),     ZAERD_(KFDIA,KLEV),      ZCVTENDT_(KFDIA,KLEV)
-REAL(KIND=JPRB) :: ZCVTENDRV_(KFDIA,KLEV),  ZCVTENDRC_(KFDIA,KLEV),  ZCVTENDRI_(KFDIA,KLEV)
-REAL(KIND=JPRB) :: ZMFS_(KFDIA,KLEV),       ZTHLS_(KFDIA,KLEV),      ZRTS_(KFDIA,KLEV)
-REAL(KIND=JPRB) :: ZMFUS_(KFDIA,KLEV),      ZMFVS_(KFDIA,KLEV),      ZDEPTH_HEIGHT_(KFDIA,KLEV)
+REAL(KIND=JPRB) :: ZSIGMF_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),     ZRC_MF_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),     ZRI_MF_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZCF_MF_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),     ZAERD_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),      ZCVTENDT_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZCVTENDRV_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),  ZCVTENDRC_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),  ZCVTENDRI_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZMFS_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),       ZTHLS_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),      ZRTS_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZMFUS_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),      ZMFVS_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),      ZDEPTH_HEIGHT_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
 
-REAL(KIND=JPRB), TARGET :: ZFLXZTHVMF_(KFDIA,KLEV)
+REAL(KIND=JPRB), TARGET :: ZFLXZTHVMF_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
 REAL(KIND=JPRB), POINTER :: ZARG_FLXZTHVMF_(:,:)
 
+! Subgrid autoconversions
+REAL(KIND=JPRB) :: ZHLC_HRC_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),     ZHLC_HCF_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), &
+                   ZHLI_HRI_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),     ZHLI_HCF_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
+
 
 ! WARNING ! Don't use ZRSWAP_ or ZRSAVE_ below because they may be swapped !
 ! Use only the pointer ZRS_, and possibly ZRSIN_ if you need the backup of input data.
 REAL(KIND=JPRB), POINTER :: ZRSIN_(:,:,:), ZRS_(:,:,:)
-REAL(KIND=JPRB), TARGET :: ZRSWAP_(KFDIA,KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NRR)
-REAL(KIND=JPRB), TARGET :: ZRSAVE_(KFDIA,KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NRR)
+REAL(KIND=JPRB), TARGET :: ZRSWAP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_PHY_MF%YRPARAR%NRR)
+REAL(KIND=JPRB), TARGET :: ZRSAVE_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_PHY_MF%YRPARAR%NRR)
 
 REAL(KIND=JPRB), POINTER  :: ZPTRWNU_(:,:), ZTHSIN_(:,:)
-REAL(KIND=JPRB), TARGET :: ZWNU_(KFDIA,KLEV)
+REAL(KIND=JPRB), TARGET :: ZWNU_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
 
 ! WARNING ! Don't use ZSVSWAP_ or ZSVSAVE_ below because they may be swapped !
 ! Use only the pointer ZSVS_, and possibly ZSVSIN_ if you need the backup of input data.
 REAL(KIND=JPRB), POINTER :: ZSVSIN_(:,:,:), ZSVS_(:,:,:)
-REAL(KIND=JPRB), TARGET :: ZSVSWAP_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT)
-REAL(KIND=JPRB), TARGET :: ZSVSAVE_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT)
+REAL(KIND=JPRB), TARGET :: ZSVSWAP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT)
+REAL(KIND=JPRB), TARGET :: ZSVSAVE_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT)
 
-REAL(KIND=JPRB) :: ZSVXXX_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT)
+REAL(KIND=JPRB) :: ZSVXXX_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT)
 
 ! WARNING ! Don't use ZSVMSWAP_ or ZSVMSAVE_ below because they may be swapped !
 ! Use only the pointer ZSVM_, and possibly ZSVMIN_ if you need the backup of input data.
 REAL(KIND=JPRB), POINTER :: ZSVMIN_(:,:,:), ZSVM_(:,:,:)
-REAL(KIND=JPRB), TARGET :: ZSVMSWAP_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) 
-REAL(KIND=JPRB), TARGET :: ZSVMSAVE_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT)
-REAL(KIND=JPRB) :: ZSVMB_(KFDIA,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT)
+REAL(KIND=JPRB), TARGET :: ZSVMSWAP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) 
+REAL(KIND=JPRB), TARGET :: ZSVMSAVE_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT)
+REAL(KIND=JPRB) :: ZSVMB_(YDCPG_BNDS%KFDIA,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT)
 
 ! WARNING ! Don't use ZLIMASWAP_ or ZLIMASAVE_ below because they may be swapped !
 ! Use only the pointer ZLIMAS_, and possibly ZLIMASIN_ if you need the backup of input data.
 REAL(KIND=JPRB), POINTER :: ZLIMAS_(:,:,:), ZLIMASIN_(:,:,:)
-REAL(KIND=JPRB), TARGET :: ZLIMASWAP_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NLIMA)
-REAL(KIND=JPRB), TARGET :: ZLIMASAVE_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NLIMA)
+REAL(KIND=JPRB), TARGET :: ZLIMASWAP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NLIMA)
+REAL(KIND=JPRB), TARGET :: ZLIMASAVE_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NLIMA)
 
-REAL(KIND=JPRB) :: ZLIMAM_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NLIMA)
+REAL(KIND=JPRB) :: ZLIMAM_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NLIMA)
 !INTEGER(KIND=JPIM) :: KSV_TURB !CPtoclean?
-!CPtoclean REAL(KIND=JPRB) :: ZTURBM(KLON,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT+YDMODEL%YRML_GCONF%YGFL%NLIMA)
-!CPtoclean REAL(KIND=JPRB) :: ZTURBS(KLON,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT+YDMODEL%YRML_GCONF%YGFL%NLIMA)
+!CPtoclean REAL(KIND=JPRB) :: ZTURBM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT+YDMODEL%YRML_GCONF%YGFL%NLIMA)
+!CPtoclean REAL(KIND=JPRB) :: ZTURBS(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT+YDMODEL%YRML_GCONF%YGFL%NLIMA)
 !not (yet ?) used. REK
-!REAL(KIND=JPRB) :: ZSFTURB(KLON,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT+YDMODEL%YRML_GCONF%YGFL%NLIMA) ! surf. flux of SV (=0)
-!REAL(KIND=JPRB) :: ZTENDSV_TURB2(KLON,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT+YDMODEL%YRML_GCONF%YGFL%NLIMA)  ! SV (=0)
-REAL(KIND=JPRB) :: ZSFSVLIMA_(KFDIA,YDMODEL%YRML_GCONF%YGFL%NLIMA) ! surf. flux of LIMA vars
-REAL(KIND=JPRB) :: ZTENDSV_TURBLIMA_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NLIMA) ! LIMA
+!REAL(KIND=JPRB) :: ZSFTURB(YDCPG_OPTS%KLON,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT+YDMODEL%YRML_GCONF%YGFL%NLIMA) ! surf. flux of SV (=0)
+!REAL(KIND=JPRB) :: ZTENDSV_TURB2(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT+YDMODEL%YRML_GCONF%YGFL%NLIMA)  ! SV (=0)
+REAL(KIND=JPRB) :: ZSFSVLIMA_(YDCPG_BNDS%KFDIA,YDMODEL%YRML_GCONF%YGFL%NLIMA) ! surf. flux of LIMA vars
+REAL(KIND=JPRB) :: ZTENDSV_TURBLIMA_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NLIMA) ! LIMA
 
 ! For radiation scheme
-REAL(KIND=JPRB) :: ZRM_(KFDIA,KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NRR)
-REAL(KIND=JPRB) :: ZPFPR_(KFDIA,KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NRR)
+REAL(KIND=JPRB) :: ZRM_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_PHY_MF%YRPARAR%NRR)
+REAL(KIND=JPRB) :: ZPFPR_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_PHY_MF%YRPARAR%NRR)
 
-REAL(KIND=JPRB) :: ZPEZDIAG_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EZDIAG)
+REAL(KIND=JPRB) :: ZPEZDIAG_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NGFL_EZDIAG)
 
-REAL(KIND=JPRB) :: ZSFSV_(KFDIA,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) ! surf. flux of scalars
+REAL(KIND=JPRB) :: ZSFSV_(YDCPG_BNDS%KFDIA,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) ! surf. flux of scalars
+REAL(KIND=JPRD) :: ZGEMU_D(YDCPG_OPTS%KLON)  ! double precision version of YDVARS%GEOMETRY%GEMU%T0, for RADACT
 
 ! Single scattering albedo of dust (points,lev,wvl) :
-REAL(KIND=JPRB) :: ZPIZA_DST_(KFDIA,KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NSWB_MNH)
+REAL(KIND=JPRB) :: ZPIZA_DST_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_PHY_MF%YRPARAR%NSWB_MNH)
 ! Assymetry factor for dust (points,lev,wvl) :
-REAL(KIND=JPRB) :: ZCGA_DST_(KFDIA,KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NSWB_MNH)
+REAL(KIND=JPRB) :: ZCGA_DST_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_PHY_MF%YRPARAR%NSWB_MNH)
 ! tau/tau_{550} dust (points,lev,wvl) :
-REAL(KIND=JPRB) :: ZTAUREL_DST_(KFDIA,KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NSWB_MNH)
+REAL(KIND=JPRB) :: ZTAUREL_DST_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_PHY_MF%YRPARAR%NSWB_MNH)
 
 
 ! surface flux of theta and surface flux of vapor ; surface flux of CO2
-REAL(KIND=JPRB) :: ZSFTH_(KFDIA),  ZSFRV_(KFDIA),          ZSFCO2_(KFDIA)
-REAL(KIND=JPRB) :: ZACPRG_(KFDIA), ZINPRG_NOTINCR_(KFDIA), ZINPRG_(KFDIA)
-REAL(KIND=JPRB) :: ZACPRR_(KFDIA), ZINPRR_NOTINCR_(KFDIA), ZINPRR_(KFDIA)
-REAL(KIND=JPRB) :: ZACPRS_(KFDIA), ZINPRS_NOTINCR_(KFDIA), ZINPRS_(KFDIA)
-REAL(KIND=JPRB) :: ZCFBTH_(KFDIA), ZINPRH_NOTINCR_(KFDIA), ZINPRH_(KFDIA)
-REAL(KIND=JPRB) :: ZZS_(KFDIA),    ZSSO_STDEV_(KFDIA),     ZALB_UV_(KIDIA)
-REAL(KIND=JPRB) :: ZLAT_(KIDIA),   ZLON_(KIDIA),           ZZENITH_(KIDIA)
-REAL(KIND=JPRB) :: ZGZ0_(KFDIA),   ZGZ0H_(KFDIA),          ZTOWNS_(KFDIA) 
-REAL(KIND=JPRB) :: ZCFAQ_(KFDIA),  ZCFBQ_(KFDIA),          ZCFATH_(KFDIA)
-REAL(KIND=JPRB) :: ZCFAU_(KFDIA),  ZCFBU_(KFDIA),          ZCFBV_(KFDIA)
-REAL(KIND=JPRB) :: ZBUDTH_ (KFDIA),ZBUDSO_(KFDIA),         ZFCLL_(KFDIA)
-REAL(KIND=JPRB) :: ZCD_(KFDIA),    ZSEA_(KFDIA),           ZTOWN_(KFDIA)
-REAL(KIND=JPRB) :: ZZTOP_(KFDIA),  ZCVTENDPR_(KFDIA),      ZCVTENDPRS_(KFDIA)
+REAL(KIND=JPRB) :: ZSFTH_(YDCPG_BNDS%KFDIA),  ZSFRV_(YDCPG_BNDS%KFDIA),          ZSFCO2_(YDCPG_BNDS%KFDIA)
+REAL(KIND=JPRB) :: ZACPRG_(YDCPG_BNDS%KFDIA), ZINPRG_NOTINCR_(YDCPG_BNDS%KFDIA), ZINPRG_(YDCPG_BNDS%KFDIA)
+REAL(KIND=JPRB) :: ZACPRR_(YDCPG_BNDS%KFDIA), ZINPRR_NOTINCR_(YDCPG_BNDS%KFDIA), ZINPRR_(YDCPG_BNDS%KFDIA)
+REAL(KIND=JPRB) :: ZACPRS_(YDCPG_BNDS%KFDIA), ZINPRS_NOTINCR_(YDCPG_BNDS%KFDIA), ZINPRS_(YDCPG_BNDS%KFDIA)
+REAL(KIND=JPRB) :: ZCFBTH_(YDCPG_BNDS%KFDIA), ZINPRH_NOTINCR_(YDCPG_BNDS%KFDIA), ZINPRH_(YDCPG_BNDS%KFDIA)
+REAL(KIND=JPRB) :: ZZS_(YDCPG_BNDS%KFDIA),    ZSSO_STDEV_(YDCPG_BNDS%KFDIA),     ZALB_UV_(YDCPG_BNDS%KIDIA)
+REAL(KIND=JPRB) :: ZLAT_(YDCPG_BNDS%KIDIA),   ZLON_(YDCPG_BNDS%KIDIA),           ZZENITH_(YDCPG_BNDS%KIDIA)
+REAL(KIND=JPRB) :: ZGZ0_(YDCPG_BNDS%KFDIA),   ZGZ0H_(YDCPG_BNDS%KFDIA),          ZTOWNS_(YDCPG_BNDS%KFDIA) 
+REAL(KIND=JPRB) :: ZCFAQ_(YDCPG_BNDS%KFDIA),  ZCFBQ_(YDCPG_BNDS%KFDIA),          ZCFATH_(YDCPG_BNDS%KFDIA)
+REAL(KIND=JPRB) :: ZCFAU_(YDCPG_BNDS%KFDIA),  ZCFBU_(YDCPG_BNDS%KFDIA),          ZCFBV_(YDCPG_BNDS%KFDIA)
+REAL(KIND=JPRB) :: ZBUDTH_ (YDCPG_BNDS%KFDIA),ZBUDSO_(YDCPG_BNDS%KFDIA),         ZFCLL_(YDCPG_BNDS%KFDIA)
+REAL(KIND=JPRB) :: ZCD_(YDCPG_BNDS%KFDIA),    ZSEA_(YDCPG_BNDS%KFDIA),           ZTOWN_(YDCPG_BNDS%KFDIA)
+REAL(KIND=JPRB) :: ZZTOP_(YDCPG_BNDS%KFDIA),  ZCVTENDPR_(YDCPG_BNDS%KFDIA),      ZCVTENDPRS_(YDCPG_BNDS%KFDIA)
 ! surface flux of x and y component of wind. are they really necessary ? REK
-REAL(KIND=JPRB) :: ZSFU_(KFDIA),   ZSFV_(KFDIA)
+REAL(KIND=JPRB) :: ZSFU_(YDCPG_BNDS%KFDIA),   ZSFV_(YDCPG_BNDS%KFDIA)
 
+! local areas for OCND2 option:
+! ZICLDFR = ice cloud fraction , ZWCLDFR = water or mixed-phase cloud fraction,
+! ZSSIO = Super-saturation with respect to ice in ZICLDFR , 
+! ZSSIU = Sub-saturation with respect to ice outside ZICLDFR,
+! ZIFR = variable used for calulation of subgridscale ice
+! Meso-NH world
+REAL(KIND=JPRB) :: ZICLDFR_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),    ZWCLDFR_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZSSIO_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),      ZSSIU_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),      ZIFR_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
 
 ! Arpege-style dimensionning :
 ! --------------------------
 
 !Variables used in case LHARATU=TRUE
 ! length scales for momentum and heat and TKE
-REAL(KIND=JPRB) :: ZLENGTH_M(KLON,KLEV),ZLENGTH_H(KLON,KLEV)
-REAL(KIND=JPRB) :: ZTKEEDMF(KLON,KLEV)
-REAL(KIND=JPRB) :: ZTKEEDMFS(KLON,KLEV)
-
-REAL(KIND=JPRB) :: ZEMIS (KLON)
-REAL(KIND=JPRB) :: ZQICE(KLON,KLEV), ZQLIQ(KLON,KLEV)
+REAL(KIND=JPRB) :: ZLENGTH_M(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG),ZLENGTH_H(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZTKEEDMF(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZTKEEDMFS(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 
-REAL(KIND=JPRB) :: ZAER(KLON,KLEV,6)
-REAL(KIND=JPRB) :: ZAERINDS(KLON,KLEV)
+REAL(KIND=JPRB) :: ZEMIS (YDCPG_OPTS%KLON)
+REAL(KIND=JPRB) :: ZTMP2(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG),ZTMP(YDCPG_OPTS%KLON)
+REAL(KIND=JPRB) :: ZQICE(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQLIQ(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 
-REAL(KIND=JPRB) :: ZQSAT(KLON,KLEV)
+REAL(KIND=JPRB) :: ZAER(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,6)
+REAL(KIND=JPRB) :: ZAERINDS(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZRAER(YDCPG_OPTS%KLON,6,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZAERO(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,12)
 
-REAL(KIND=JPRB) :: ZFRSOFS(KLON)
-REAL(KIND=JPRB) :: ZLH(KLON,KLEV), ZLSCPE(KLON,KLEV), ZGEOSLC(KLON,KLEV)
-REAL(KIND=JPRB) :: ZQDM(KLON,KLEV), ZQV(KLON,KLEV)
-REAL(KIND=JPRB) :: ZQCO2(KLON,KLEV)
-REAL(KIND=JPRB), TARGET :: ZTKEM4SLDDH(KLON,KLEV)
-REAL(KIND=JPRB), POINTER :: ZTKEM(:,:)
-REAL(KIND=JPRB) :: ZQW(KLON,KLEV), ZTW(KLON,KLEV)
 
-REAL(KIND=JPRB) :: ZTENT(KLON,KLEV)
-REAL(KIND=JPRB) :: ZTENDT(KLON,KLEV) ! array to save heating profile for LHN
-REAL(KIND=JPRB) :: ZMAXTEND,ZMINTEND
-REAL(KIND=JPRB) :: ZDZZ(KLON,KLEV)
-REAL(KIND=JPRB) :: ZTPW(KLON,KLEV)
+REAL(KIND=JPRB) :: ZQSAT(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 
-! POUR GROUND 
-REAL(KIND=JPRB) :: ZZS_FSWDIR(KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW), ZZS_FSWDIF(KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW)
-REAL(KIND=JPRB) :: ZTRSODIR (KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW), ZTRSODIF (KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW)
+REAL(KIND=JPRB) :: ZFRSOFS(YDCPG_OPTS%KLON)
+REAL(KIND=JPRB) :: ZLH(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZLSCPE(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZGEOSLC(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZQDM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQV(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 
-REAL(KIND=JPRB) :: ZTRSOD(KLON)
-REAL(KIND=JPRB) :: ZSUDU(KLON), ZSDUR(KLON), ZDSRP(KLON)
-REAL(KIND=JPRB) :: ZCEMTR(KLON,2), ZCTRSO(KLON,2)
+REAL(KIND=JPRB) :: ZQCO2(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQCH4(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZQN2O(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQNO2(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQC11(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZQC12(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQC22(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQCL4(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZCHTIX(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG+1), ZCAPH(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG+1), ZTH(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG+1)
+REAL(KIND=JPRB) :: ZDUM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZGELAM(YDCPG_OPTS%KLON)
+REAL(KIND=JPRB), TARGET :: ZTKEM4SLDDH(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 
-REAL(KIND=JPRB) :: ZALBD(KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW), ZALBP(KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW)
-REAL(KIND=JPRB) :: ZALBD1(KLON), ZALBP1(KLON)
-REAL(KIND=JPRB) :: ZAPHIM(KLON,0:KLEV), ZAPHIFM(KLON,KLEV)
+REAL(KIND=JPRB), POINTER :: ZTKEM(:,:)
+REAL(KIND=JPRB) :: ZQW(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZTW(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 
-REAL(KIND=JPRB) :: ZTM(KLON,KLEV), ZQVM(KLON,KLEV), ZQIM(KLON,KLEV)
-REAL(KIND=JPRB) :: ZQCM(KLON,KLEV),ZQHM(KLON,KLEV), ZQHGM(KLON,KLEV)
-REAL(KIND=JPRB) :: ZQRM(KLON,KLEV), ZQSM(KLON,KLEV), ZQGM(KLON,KLEV)
-REAL(KIND=JPRB) :: ZUPGENL(KLON,KLEV)
-REAL(KIND=JPRB) :: ZUPGENN(KLON,KLEV)
-REAL(KIND=JPRB) :: ZCLFR(KLON)
+REAL(KIND=JPRB) :: ZTENT(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZTENDTT(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! array to save heating profile for LHN
+REAL(KIND=JPRB) :: ZMAXTEND,ZMINTEND
+REAL(KIND=JPRB) :: ZDZZ(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZTPW(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 
-REAL(KIND=JPRB) :: ZCPM(KLON,KLEV), ZRHM(KLON,KLEV)
+! POUR GROUND 
+REAL(KIND=JPRB) :: ZZS_FSWDIR(YDCPG_OPTS%KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW), ZZS_FSWDIF(YDCPG_OPTS%KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW)
+REAL(KIND=JPRB) :: ZTRSODIR (YDCPG_OPTS%KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW), ZTRSODIF (YDCPG_OPTS%KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW)
+REAL(KIND=JPRB) :: ZTP2(YDCPG_OPTS%KLON), ZWS2(YDCPG_OPTS%KLON), ZWP2(YDCPG_OPTS%KLON), ZWSI2(YDCPG_OPTS%KLON), ZWPI2(YDCPG_OPTS%KLON)
+REAL(KIND=JPRB) :: ZWR2(YDCPG_OPTS%KLON), ZSNA2(YDCPG_OPTS%KLON)
+REAL(KIND=JPRB) :: ZTRSOD(YDCPG_OPTS%KLON)
+REAL(KIND=JPRB) :: ZSUDU(YDCPG_OPTS%KLON), ZSDUR(YDCPG_OPTS%KLON), ZDSRP(YDCPG_OPTS%KLON)
+REAL(KIND=JPRB) :: ZCEMTR(YDCPG_OPTS%KLON,2), ZCTRSO(YDCPG_OPTS%KLON,2)
+
+REAL(KIND=JPRB) :: ZALBD(YDCPG_OPTS%KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW), ZALBP(YDCPG_OPTS%KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW)
+REAL(KIND=JPRB) :: ZALBD1(YDCPG_OPTS%KLON), ZALBP1(YDCPG_OPTS%KLON)
+REAL(KIND=JPRB) :: ZAPHIM(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG), ZAPHIFM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+
+REAL(KIND=JPRB) :: ZTM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQVM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQIM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZQCM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG),ZQHM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQHGM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZQRM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQSM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQGM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZUPGENL(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZUPGENN(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZCLFR(YDCPG_OPTS%KLON)
+
+REAL(KIND=JPRB) :: ZCPM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZRHM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 
 ! Variables concerning updraft rain/snow for EDMF
-REAL(KIND=JPRB) :: ZTENDTUP(KLON,KLEV), ZTENDQVUP(KLON,KLEV)
+REAL(KIND=JPRB) :: ZTENDTUP(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZTENDQVUP(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 
 ! specific to new data flow for diagnostics
-REAL(KIND=JPRB) :: ZTENDTBAK(KLON,KLEV), ZTENDRBAK(KLON,KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NRR)
-REAL(KIND=JPRB) :: ZTMPAF(KLON,KLEV)
+REAL(KIND=JPRB) :: ZTENDTBAK(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZTENDRBAK(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_PHY_MF%YRPARAR%NRR)
+REAL(KIND=JPRB) :: ZTMPAF(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 
 ! daand: radflex
-REAL(KIND=JPRB)  :: ZFPR(KLON,0:KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NRR)
+REAL(KIND=JPRB)  :: ZFPR(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG,YDMODEL%YRML_PHY_MF%YRPARAR%NRR)
 
 ! Target should not be necessary. REK
-REAL(KIND=JPRB), TARGET :: ZCON1(KLON,KLEV)
-REAL(KIND=JPRB), TARGET :: ZCON2(KLON,KLEV)
-REAL(KIND=JPRB), TARGET :: ZCON3(KLON,KLEV)
+REAL(KIND=JPRB), TARGET :: ZCON1(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB), TARGET :: ZCON2(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB), TARGET :: ZCON3(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 
 ! Ajout pour MF Dual Scheme (KNMI et al)
 ! Updraft characteristics in Arpege/IFS world
-REAL(KIND=JPRB) :: ZMF_UP(KLON,0:KLEV,KMAXDRAFT)
-REAL(KIND=JPRB) :: ZTHETAL_UP(KLON,0:KLEV,KMAXDRAFT)
-REAL(KIND=JPRB) :: ZQT_UP(KLON,0:KLEV,KMAXDRAFT)
-REAL(KIND=JPRB) :: ZTHTV_UP(KLON,0:KLEV,KMAXDRAFT)
-REAL(KIND=JPRB) :: ZQC_UP(KLON,0:KLEV,KMAXDRAFT)
-REAL(KIND=JPRB) :: ZQI_UP(KLON,0:KLEV,KMAXDRAFT)
-REAL(KIND=JPRB) :: ZU_UP(KLON,0:KLEV,KMAXDRAFT)
-REAL(KIND=JPRB) :: ZV_UP(KLON,0:KLEV,KMAXDRAFT)
-REAL(KIND=JPRB) :: ZTSURF(KLON), ZTN(KLON), ZQS(KLON)
+REAL(KIND=JPRB) :: ZMF_UP(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KMAXDRAFT)
+REAL(KIND=JPRB) :: ZTHETAL_UP(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KMAXDRAFT)
+REAL(KIND=JPRB) :: ZQT_UP(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KMAXDRAFT)
+REAL(KIND=JPRB) :: ZTHTV_UP(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KMAXDRAFT)
+REAL(KIND=JPRB) :: ZQC_UP(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KMAXDRAFT)
+REAL(KIND=JPRB) :: ZQI_UP(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KMAXDRAFT)
+REAL(KIND=JPRB) :: ZU_UP(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KMAXDRAFT)
+REAL(KIND=JPRB) :: ZV_UP(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KMAXDRAFT)
+REAL(KIND=JPRB) :: ZTSURF(YDCPG_OPTS%KLON), ZTN(YDCPG_OPTS%KLON), ZQS(YDCPG_OPTS%KLON)
+REAL(KIND=JPRB) :: ZZEXNREFM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZZWCLDFR(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 
-REAL(KIND=JPRB) :: ZFRSOLU(KLON), ZFRSODS(KLON)
-REAL(KIND=JPRB) :: ZFSDNN(KLON), ZFSDNV(KLON)
+REAL(KIND=JPRB) :: ZFRSOLU(YDCPG_OPTS%KLON), ZFRSODS(YDCPG_OPTS%KLON)
+REAL(KIND=JPRB) :: ZFSDNN(YDCPG_OPTS%KLON), ZFSDNV(YDCPG_OPTS%KLON)
 
-REAL(KIND=JPRB) :: ZSURFPREP(KLON), ZSURFSNOW(KLON)
+REAL(KIND=JPRB) :: ZSURFPREP(YDCPG_OPTS%KLON), ZSURFSNOW(YDCPG_OPTS%KLON)
 
-REAL(KIND=JPRB) :: ZQO3(KLON,0:KLEV)
+REAL(KIND=JPRB) :: ZQO3(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG)
 
-REAL(KIND=JPRB) :: ZZS_FTH_(KLON), ZZS_FRV_(KLON), ZZS_FU_(KLON), ZZS_FV_(KLON)
+REAL(KIND=JPRB) :: ZZS_FTH_(YDCPG_OPTS%KLON), ZZS_FRV_(YDCPG_OPTS%KLON), ZZS_FU_(YDCPG_OPTS%KLON), ZZS_FV_(YDCPG_OPTS%KLON)
 
 ! Surface forcing arrays for MUSC
-REAL(KIND=JPRB) :: ZRHODREFM(KLON), ZTHETAS(KLON)
+REAL(KIND=JPRB) :: ZRHODREFM(YDCPG_OPTS%KLON), ZTHETAS(YDCPG_OPTS%KLON)
 
 ! ACRANEB2 local variables
-REAL(KIND=JPRB) :: ZNEB0    (KLON,KLEV)  ! protected cloud fractions
-REAL(KIND=JPRB) :: ZCLCT_RAD(KLON)       ! total cloud cover for radiation
-REAL(KIND=JPRB) :: ZDECRD   (KLON)       ! decorrelation depth
+REAL(KIND=JPRB) :: ZNEB0    (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)  ! protected cloud fractions
+REAL(KIND=JPRB) :: ZCLCT_RAD(YDCPG_OPTS%KLON)       ! total cloud cover for radiation
+REAL(KIND=JPRB) :: ZDECRD   (YDCPG_OPTS%KLON)       ! decorrelation depth
 
 ! Stochastic physics pattern & dummy tendencies for calling sppten
 ! Bof. REK
-REAL(KIND=JPRB) :: ZDUMMY(KLON,KLEV)
-REAL(KIND=JPRB) :: ZDUMMY1(KLON)
+REAL(KIND=JPRB) :: ZMULNOISE(YDCPG_OPTS%KLON,1)
+REAL(KIND=JPRB) :: ZDUMMY(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZDUMMY1(YDCPG_OPTS%KLON)
+REAL(KIND=JPRB) :: PTENDENCYU(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,1),PTENDENCYV(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,1)
+REAL(KIND=JPRB) :: PTENDENCYT(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,1),PTENDENCYQ(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,1)
 
-REAL(KIND=JPRB) :: ZROZ(KLON,KLEV)
+REAL(KIND=JPRB) :: ZROZ(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 
 ! Can we remove ? REK
 REAL(KIND=JPRB) :: ZEPSM(0,0,0) ! Dissipation of TKE (eps) at time t-dt
@@ -874,17 +619,17 @@ INTEGER(KIND=JPIM) :: IJN  ! max. number of day/night slices within NRPOMA
 INTEGER(KIND=JPIM) :: IKL  !ordering of vert levels 1:MNH -1:AROME
 INTEGER(KIND=JPIM) :: IOFF_MFSHAL, IEZDIAG_CHEM
 INTEGER(KIND=JPIM) :: IKA,IKB,IKU,IKT,IKTE,IKTB ! vertical points as in mpa
-INTEGER(KIND=JPIM) :: JSG, JK, JR, JSW
+INTEGER(KIND=JPIM) :: JSG, JK, JR, JSW, JAE
 INTEGER(KIND=JPIM) :: IDRAFT,JDRAFT,INDRAFT
 INTEGER(KIND=JPIM) :: ISURFEX
-INTEGER(KIND=JPIM) :: IDAY,IYEAR,IMONTH
+INTEGER(KIND=JPIM) :: IDAY,IYEAR,IMONTH,IAERO
 
 INTEGER(KIND=JPIM) :: INIT0 ! Kind of safety/debugging initialization :
                             ! 0 = initialize to HUGE (debugging)
                             ! 1 = initialize to realistic value (discouraged)
                             ! -1 = no initialization (optimized code) - this is the default.
 
-INTEGER(KIND=JPIM) :: ICLPH(KLON)             !PBL top level
+INTEGER(KIND=JPIM) :: ICLPH(YDCPG_OPTS%KLON)             !PBL top level
 INTEGER(KIND=JPIM) :: JLHSTEP,ISTEP
 
 !       Real
@@ -892,21 +637,21 @@ REAL(KIND=JPRB) :: ZRHO
 REAL(KIND=JPRB) :: ZAEO, ZAEN, ZSALBCOR
 REAL(KIND=JPRB) :: ZDT, ZDT2, ZINVDT, ZINVG, ZRSCP, ZINVATM, Z_WMAX, Z_WMIN
  ! pas de temps pour la surface externalise
-REAL(KIND=JPRB) :: ZDTMSE,ZRHGMT,ZSTATI
+REAL(KIND=JPRB) :: ZDTMSE,ZRHGMT,ZSTATI,ZADTMS
 REAL(KIND=JPRB) :: ZDELTA
 REAL(KIND=JPRB) :: ZEPSNEB
 
 ! default values for initialization :
 REAL(KIND=JPRB) :: ZVALUE, ZVALUE_ONE, ZVALUE_T, ZVALUE_P, ZVALUE_L, ZVALUE_EPSILON
 
-REAL(KIND=JPRB) :: ZVETAH(0:KLEV)
+REAL(KIND=JPRB) :: ZVETAH(0:YDCPG_OPTS%KFLEVG)
 
 !       Boolean
 LOGICAL :: LLMSE, LLMSE_PARAM, LLMSE_DIAG
 LOGICAL :: LLAROME
 LOGICAL :: LLRAD
 LOGICAL :: LLSWAP_THS, LLSWAP_RS, LLSWAP_SVS, LLSWAP_SVM, LLSWAP_LIMAS ! logical to swap or not pointers in and out
-LOGICAL :: LLHN(KLON,KLEV)
+LOGICAL :: LLHN(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 LOGICAL :: LNUDGLHNREAD
 
 !       Characters
@@ -916,7 +661,7 @@ CHARACTER(LEN=2),DIMENSION(7):: CLVARNAME=(/"QV","QL","QR","QI","QS","QG","QH"/)
 ! daand: radflex
 REAL(KIND=JPRB), POINTER :: ZFRSO(:,:), ZFRTH(:,:)
 TYPE(TYPE_INTPROC), POINTER :: YLRADPROC
-REAL(KIND=JPRB)   :: ZCAPE(KLON), ZDCAPE(KLON)
+REAL(KIND=JPRB)   :: ZCAPE(YDCPG_OPTS%KLON), ZDCAPE(YDCPG_OPTS%KLON)
 
 !
 ! Phaser team note from CY43T1:
@@ -929,13 +674,121 @@ REAL(KIND=JPRB), PARAMETER :: PPTKEMIN = 1.E-6
 
 
 ! Perturbed radiation-cloud interaction coef
-REAL(KIND=JPRB), DIMENSION (KLON) :: ZRADGR,ZRADSN
-REAL(KIND=JPRB) :: ZMU,ZVAL
-INTEGER(KIND=JPIM) :: JKO,JKE
+REAL(KIND=JPRB), DIMENSION (YDCPG_OPTS%KLON) :: ZRADGR,ZRADSN
+
+TYPE(ALL_SPP_VARS) :: ZSPP_ALL
+
+!     ------------------------------------------------------------------
+LOGICAL :: LLDIAB
+LOGICAL :: LL_SAVE_PHSURF
+LOGICAL :: LLXFUMSE
+
+INTEGER(KIND=JPIM) :: IPTREXT,IEFB1,IEFB2,IEFB3
+INTEGER(KIND=JPIM) :: IPTR(YDMODEL%YRML_GCONF%YGFL%NUMFLDS)
+INTEGER(KIND=JPIM) :: IPTRLIMA
+INTEGER(KIND=JPIM) :: IRR ! pointer of 1st hydrometeors in ZTENDGFLR
+INTEGER(KIND=JPIM) :: IPTRTKE ! pointer of TKE in ZTENDGFLR
+
+INTEGER(KIND=JPIM) :: IPGFL(YDMODEL%YRML_GCONF%YGFL%NUMFLDS)
+
+INTEGER(KIND=JPIM) :: INSTEP_DEB,INSTEP_FIN
+INTEGER(KIND=JPIM) :: JROF, JSPP
+INTEGER(KIND=JPIM) :: ISLB1U9  ,ISLB1V9  ,ISLB1T9  ,ISLB1GFL9, ISLB1VD9
+
+!     --- UPPER AIR PHYSICAL TENDENCIES.
+REAL(KIND=JPRB) :: ZTENDH(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)     ! Enthalpy tendency.
+REAL(KIND=JPRB) :: ZTENDPTKE(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)  ! Pseudo progn. TKE
+
+! GFL tendencies for APL_AROME (assumes YDMODEL%YRML_GCONF%YGFL%NUMFLDS>=YDMODEL%YRML_PHY_MF%YRPARAR%NRR)
+! for now, use Jovi's trick :
+REAL(KIND=JPRB), TARGET :: ZTENDGFLR(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,0:YDMODEL%YRML_GCONF%YGFL%NUMFLDS)
+REAL(KIND=JPRB) :: ZTENDGFL(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NUMFLDS)   ! GFL tendencies
+
+!     --- UPPER AIR PHYSICAL TENDENCIES FOR AROME.
+!       (the previous one are not used in AROME)
+REAL(KIND=JPRB) :: ZTENDT (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)        ! temperature tendency
+REAL(KIND=JPRB) :: ZTENDW (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)        ! W  tendency
+REAL(KIND=JPRB) :: ZTENDD (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)        ! d  tendency
+
+REAL(KIND=JPRB) :: ZTENDU (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)    ! U tendency without deep convection contribution
+REAL(KIND=JPRB) :: ZTENDV (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)    ! V tendency without deep convection contribution
+
+
+!     ---FOR AROME PHYSICS  ---
+REAL(KIND=JPRB) :: ZGWT1(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG)     ! vertical velocity calculated by cputqy_arome before convertion in d
+REAL(KIND=JPRB) :: ZTT1(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)       ! Temperature at t1
+
+! ZRTT1: appropriate version of R*T at t1 for gnhgw2svd
+!  Version of R must be consistent with definition of vertical divergence.
+REAL(KIND=JPRB) :: ZRTT1(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+
+
+REAL (KIND=JPRB) :: ZSAV_GZ0F (YDCPG_OPTS%KLON)
+REAL (KIND=JPRB) :: ZSAV_UDOM (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%KFLEVG)
+REAL (KIND=JPRB) :: ZPRC_DPRECIPS2 (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%NDTPREC2)
+REAL (KIND=JPRB) :: ZRDG_LCVQ (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%KFLEVG)
+REAL (KIND=JPRB) :: ZSAV_DDAL (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%KFLEVG)
+REAL (KIND=JPRB) :: ZPRC_DPRECIPS (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%NDTPREC)
+REAL (KIND=JPRB) :: ZRDG_MU0M (YDCPG_OPTS%KLON)
+REAL (KIND=JPRB) :: ZRDG_CVGQ (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%KFLEVG)
+REAL (KIND=JPRB) :: ZRDG_MU0N (YDCPG_OPTS%KLON)
+REAL (KIND=JPRB) :: ZSAV_UDAL (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%KFLEVG)
+REAL (KIND=JPRB) :: ZSAV_UDGRO (YDCPG_OPTS%KLON)
+REAL (KIND=JPRB) :: ZSAV_HV (YDCPG_OPTS%KLON)
+REAL (KIND=JPRB) :: ZSAV_QSH  (YDCPG_OPTS%KLON)
+REAL (KIND=JPRB) :: ZSAV_DDOM (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%KFLEVG)
+REAL (KIND=JPRB) :: ZSAV_UNEBH (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%KFLEVG)
+REAL (KIND=JPRB) :: ZRDG_MU0 (YDCPG_OPTS%KLON)
+REAL (KIND=JPRB) :: ZSAV_ENTCH (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%KFLEVG)
+REAL (KIND=JPRB) :: ZRDG_MU0LU (YDCPG_OPTS%KLON)
+REAL (KIND=JPRB) :: ZSAV_PBLH (YDCPG_OPTS%KLON)
+REAL (KIND=JPRB) :: ZSAV_GZ0HF (YDCPG_OPTS%KLON)
+REAL (KIND=JPRB) :: ZSAV_FHPS (YDCPG_OPTS%KLON)
+
+! required for INTFLEX
+TYPE(TYPE_INTPROCSET) :: YLPROCSET
+
+! SPP
+REAL(KIND=JPRB) :: ZGP2DSPP(YDCPG_OPTS%KLON,YSPP%N2D)
+
+REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTEND_Q    (:,:)  
+REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTEND_L    (:,:)  
+REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTEND_R    (:,:)  
+REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTEND_I    (:,:)  
+REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTEND_S    (:,:)  
+REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTEND_G    (:,:)  
+REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTEND_H    (:,:)  
+REAL(KIND=JPRB), TARGET :: ZDUM2 (1,1)
+
+REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTENDRA   (:,:,:) 
+
+REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTENDLIMA (:,:,:) 
+REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTENDTKE  (:,:) 
+REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTENDEFB1 (:,:) 
+REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTENDEFB2 (:,:)
+REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTENDEFB3 (:,:)
+REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTENDEXT  (:,:,:)
+
+REAL(KIND=JPRB), POINTER :: ZP1EZDIAG(:,:,:)
 
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!     --------------------------------------------------------------------------
 
+!     ------------------------------------------------------------------
+
+#include "cpphinp.intfb.h"
+#include "cptend_flex.intfb.h"
+#include "cputqy_arome_expl.intfb.h"
+#include "cputqy_arome_loop.intfb.h"
+#include "cputqy.intfb.h"
+#include "cp_ptrslb1.intfb.h"
+#include "gnhgw2svdarome.intfb.h"
+#include "writephysio.intfb.h"
+#include "mf_phys_save_phsurf_part1.intfb.h"
+#include "mf_phys_save_phsurf_part2.intfb.h"
+#include "mf_phys_transfer.intfb.h"
+#include "mf_phys_precips.intfb.h"
+#include "apl_arome_calc_iptr.intfb.h"
+#include "apl_arome_calc_ipgfl.intfb.h"
 #include "abor1.intfb.h"
 #include "recmwf.intfb.h"
 #include "acraneb2.intfb.h"
@@ -945,8 +798,10 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE
 #include "gpgeo.intfb.h"
 #include "gprcp.intfb.h"
 #include "radheat.intfb.h"
+#include "radghg.intfb.h"
 #include "suozon.intfb.h"
 #include "radaer.intfb.h"
+#include "radact.intfb.h"
 #include "radozc.intfb.h"
 #include "accldia.intfb.h"
 #include "vdfhghthl.intfb.h"
@@ -954,12 +809,12 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE
 #include "surf_ideal_flux.intfb.h"
 #include "ecr1d.intfb.h"
 #include "apl_arome2intflex.intfb.h"
-
 #include "aro_rain_ice.h"
 #include "nudglhprecip.intfb.h"
 #include "nudglh.intfb.h"
 #include "nudglhclimprof.intfb.h"
 #include "nudglhprep.intfb.h"
+#include "aro_windfarm.intfb.h"
 #include "aro_turb_mnh.h"
 #include "aro_adjust.h"
 #include "aro_mnhc.h"
@@ -977,104 +832,176 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE
 #include "acvisih.intfb.h"
 #include "aro_ground_diag_2isba.h"
 
+#ifdef REPRO48
+!To compensate a bug introduced in 48t3
+!Must be suppressed as soon as the bug is corrected
+#include "aroini_budget.h"
+#endif
+
 !     ------------------------------------------------------------------
 
 #include "fcttrm.func.h"
 
-!     --------------------------------------------------------------------------
 
+!     ------------------------------------------------------------------
 IF (LHOOK) CALL DR_HOOK('APL_AROME',0,ZHOOK_HANDLE)
 
-ASSOCIATE(YDDIM=>YDGEOMETRY%YRDIM,YDDIMV=>YDGEOMETRY%YRDIMV,YDGEM=>YDGEOMETRY%YRGEM, YDMP=>YDGEOMETRY%YRMP, &
- & YDVETA=>YDGEOMETRY%YRVETA, YDVFE=>YDGEOMETRY%YRVFE,  YDSTA=>YDGEOMETRY%YRSTA, YDLAP=>YDGEOMETRY%YRLAP, &
- & YDCSGLEG=>YDGEOMETRY%YRCSGLEG,  YDVSPLIP=>YDGEOMETRY%YRVSPLIP, YDVSLETA=>YDGEOMETRY%YRVSLETA, &
- & YDHSLMER=>YDGEOMETRY%YRHSLMER,  YDCSGEOM=>YDGEOMETRY%YRCSGEOM, YDCSGEOM_NB=>YDGEOMETRY%YRCSGEOM_NB, &
- & YDGSGEOM=>YDGEOMETRY%YRGSGEOM, YDGSGEOM_NB=>YDGEOMETRY%YRGSGEOM_NB,  YDSPGEOM=>YDGEOMETRY%YSPGEOM, &
- & YDPHY=>YDMODEL%YRML_PHY_MF%YRPHY, &
- & YLDDH=>YDMODEL%YRML_DIAG%YRLDDH,YDTOPH=>YDMODEL%YRML_PHY_MF%YRTOPH,  &
- & YDERDI=>YDMODEL%YRML_PHY_RAD%YRERDI,YDRIP=>YDMODEL%YRML_GCONF%YRRIP,YDARPHY=>YDMODEL%YRML_PHY_MF%YRARPHY,  &
- & YDERAD=>YDMODEL%YRML_PHY_RAD%YRERAD,YDPHY3=>YDMODEL%YRML_PHY_MF%YRPHY3,YDPHYDS=>YDMODEL%YRML_PHY_MF%YRPHYDS,  &
- & YDPHY0=>YDMODEL%YRML_PHY_MF%YRPHY0, YDVISI=>YDMODEL%YRML_PHY_MF%YRPHY%YRDVISI,&
- & YDPHY2=>YDMODEL%YRML_PHY_MF%YRPHY2,&
- & YGFL=>YDMODEL%YRML_GCONF%YGFL,YDMSE=>YDMODEL%YRML_PHY_MF%YRMSE, &
- & YDPARAR=>YDMODEL%YRML_PHY_MF%YRPARAR,YDPRECIPS=>YDMODEL%YRML_PHY_MF%YRPHY%YRDPRECIPS, &
- & YDSTOPH=>YDMODEL%YRML_PHY_STOCH%YRSTOPH)
-
-ASSOCIATE(MINPRR=>YDPARAR%MINPRR, MINPRS=>YDPARAR%MINPRS, MVQS=>YDPARAR%MVQS, &
- & MINPRG=>YDPARAR%MINPRG, LOTOWNC=>YDPARAR%LOTOWNC, LFPREC3D=>YDPARAR%LFPREC3D, &
- & NGPAR=>YDPARAR%NGPAR, CSUBG_PR_PDF=>YDPARAR%CSUBG_PR_PDF, &
- & NRRI=>YDPARAR%NRRI, NRRL=>YDPARAR%NRRL, CSUBG_AUCV_RC=>YDPARAR%CSUBG_AUCV_RC, &
- & CSUBG_AUCV_RI=>YDPARAR%CSUBG_AUCV_RI, CCONDENS=>YDPARAR%CCONDENS, &
- & CSUBG_MF_PDF=>YDPARAR%CSUBG_MF_PDF, &
- & LTOTPREC=>YDPARAR%LTOTPREC, CSUBG_RC_RR_ACCR=>YDPARAR%CSUBG_RC_RR_ACCR, CSUBG_RR_EVAP=>YDPARAR%CSUBG_RR_EVAP, &
- & NPRINTFR=>YDPARAR%NPRINTFR, CMF_CLOUD=>YDPARAR%CMF_CLOUD, &
- & MALBDIR=>YDPARAR%MALBDIR, NSWB_MNH=>YDPARAR%NSWB_MNH, &
- & XSW_BANDS=>YDPARAR%XSW_BANDS, MACPRG=>YDPARAR%MACPRG, MSWDIR=>YDPARAR%MSWDIR, &
- & LMIXUV=>YDPARAR%LMIXUV, MSWDIF=>YDPARAR%MSWDIF, LOLSMC=>YDPARAR%LOLSMC, &
- & NDIAGWMAX=>YDPARAR%NDIAGWMAX, MACPRS=>YDPARAR%MACPRS, MACPRR=>YDPARAR%MACPRR, &
- & LSQUALL=>YDPARAR%LSQUALL, VSIGQSAT=>YDPARAR%VSIGQSAT, &
- & MALBSCA=>YDPARAR%MALBSCA,&
- & RADSN=>YDPARAR%RADSN, LOSEDIC=>YDPARAR%LOSEDIC, LDIAGWMAX=>YDPARAR%LDIAGWMAX, &
- & CSEDIM=>YDPARAR%CSEDIM, CLAMBDA3=>YDPARAR%CLAMBDA3, &
- & NPTP=>YDPARAR%NPTP, NSPLITR=>YDPARAR%NSPLITR, NSPLITG=>YDPARAR%NSPLITG, NSV=>YDPARAR%NSV, &
- & CFRAC_ICE_SHALLOW_MF=>YDPARAR%CFRAC_ICE_SHALLOW_MF, CFRAC_ICE_ADJUST=>YDPARAR%CFRAC_ICE_ADJUST, &
- & MVTS=>YDPARAR%MVTS, NREFROI2=>YDPARAR%NREFROI2, NREFROI1=>YDPARAR%NREFROI1, &
- & MVEMIS=>YDPARAR%MVEMIS, LOWARM=>YDPARAR%LOWARM, LOCND2=>YDPARAR%LOCND2, &
- & LGRSN=>YDPARAR%LGRSN, LOSIGMAS=>YDPARAR%LOSIGMAS, NRR=>YDPARAR%NRR, &
- & LOSUBG_COND=>YDPARAR%LOSUBG_COND, RADGR=>YDPARAR%RADGR, &
- & CMF_UPDRAFT=>YDPARAR%CMF_UPDRAFT, LHARATU=>YDPARAR%LHARATU, &
- & XMINLM=>YDPHY0%XMINLM, XMAXLM=>YDPHY0%XMAXLM, AERCS1=>YDPHY0%AERCS1, &
- & AERCS3=>YDPHY0%AERCS3, AERCS5=>YDPHY0%AERCS5, &
- & RDECRD1=>YDPHY0%RDECRD1, RDECRD2=>YDPHY0%RDECRD2, &
- & RDECRD3=>YDPHY0%RDECRD3, RDECRD4=>YDPHY0%RDECRD4, &
- & LMPA=>YDARPHY%LMPA, LUSECHEM=>YDARPHY%LUSECHEM, LKFBCONV=>YDARPHY%LKFBCONV, &
- & LMFSHAL=>YDARPHY%LMFSHAL, LMICRO=>YDARPHY%LMICRO, &
- & CCOUPLING=>YDARPHY%CCOUPLING, LTURB=>YDARPHY%LTURB, LGRADHPHY=>YDARPHY%LGRADHPHY, &
- & NSURFEX_ITER=>YDARPHY%NSURFEX_ITER, LRDUST=>YDARPHY%LRDUST, &
- & NGRADIENTS=>YDARPHY%NGRADIENTS, &
- & LRDEPOS=>YDARPHY%LRDEPOS, LSURFEX_CRITICAL=>YDARPHY%LSURFEX_CRITICAL, &
- & LRCO2=>YDARPHY%LRCO2, LMSE=>YDARPHY%LMSE, &
- & LSURFEX_KFROM=>YDARPHY%LSURFEX_KFROM, &
- & NSURFEXCTL=>YDMSE%NSURFEXCTL, XZSEPS=>YDMSE%XZSEPS, &
- & NDLUNG=>YDDIM%NDLUNG, NDGUNG=>YDDIM%NDGUNG, NPROMA=>YDDIM%NPROMA, &
- & NDLUXG=>YDDIM%NDLUXG, NDGUXG=>YDDIM%NDGUXG, &
- & NSFORC=>YDPHYDS%NSFORC, &
- & NGFL_EXT=>YGFL%NGFL_EXT, YLRAD=>YGFL%YLRAD, YIRAD=>YGFL%YIRAD, &
- & NGFL_EZDIAG=>YGFL%NGFL_EZDIAG, &
- & NLIMA=>YGFL%NLIMA, CMICRO=>YDPARAR%CMICRO,NPROMICRO=>YDPARAR%NPROMICRO, &
- & YSD_VAD=>YDSURF%YSD_VAD, &
- & QCO2=>YDPHY3%QCO2, &
- & NTEND_DIAG_POS=>YDPHY%NTEND_DIAG_POS, NTEND_DIAG_FREQ_RESET=>YDPHY%NTEND_DIAG_FREQ_RESET, &
- & NRAY=>YDPHY%NRAY, LRAYFM=>YDPHY%LRAYFM, &
- & LO3ABC=>YDPHY%LO3ABC, LRAY=>YDPHY%LRAY, &
- & LAEROVOL=>YDPHY%LAEROVOL, LRSTAER=>YDPHY%LRSTAER, LRNUEXP=>YDPHY%LRNUEXP, &
- & AMAGSTOPH_CASBS=> YDSTOPH%AMAGSTOPH_CASBS, LFORCENL=>YDSTOPH%LFORCENL, &
- & NFORCESTART=>YDSTOPH%NFORCESTART, NFORCEEND=>YDSTOPH%NFORCEEND, &
- & NTRADI=>YDTOPH%NTRADI, NTQSAT=>YDTOPH%NTQSAT, NTNEBU=>YDTOPH%NTNEBU,&
- & NAER=>YDERAD%NAER, &
- & LHLRADUPD=>YDPHY%LHLRADUPD, &
- & TSPHY=>YDPHY2%TSPHY,&
- & NMODE=>YDERAD%NMODE, &
- & NOZOCL=>YDERAD%NOZOCL, &
- & NRADFR=>YDERAD%NRADFR, &
- & NSW=>YDERAD%NSW, &
- & RCARDI=>YDERDI%RCARDI, &
- & LFLEXDIA=>YLDDH%LFLEXDIA, LDDH_OMP=>YLDDH%LDDH_OMP, LRSLDDH=>YLDDH%LRSLDDH, &
- & RDECLI=>YDRIP%RDECLI, &
- & RCODEC=>YDRIP%RCODEC, &
- & RHGMT=>YDRIP%RHGMT, &
- & RSIDEC=>YDRIP%RSIDEC, &
- & RSOVR=>YDRIP%RSOVR, &
- & RSTATI=>YDRIP%RSTATI, &
- & TSTEP=>YDRIP%TSTEP, &
- & STPREH=>YDSTA%STPREH, &
- & LXXDIAGH=>YDXFU%LXXDIAGH,&
- & LFLASH =>YDCFU%LFLASH,&
- & LDPRECIPS=>YDPHY%LDPRECIPS,LDPRECIPS2=>YDPHY%LDPRECIPS2,&
- & NDTPREC=>YDPRECIPS%NDTPREC,NDTPREC2=>YDPRECIPS%NDTPREC2,&
- & NDTPRECCUR=>YDPRECIPS%NDTPRECCUR,NDTPRECCUR2=>YDPRECIPS%NDTPRECCUR2,&
- & NGPTOT=>YDGEM%NGPTOT,&
- & NGPBLKS=>YDDIM%NGPBLKS)
+ASSOCIATE(YDDIM=>YDGEOMETRY%YRDIM, YDGEM=>YDGEOMETRY%YRGEM, YDSTA=>YDGEOMETRY%YRSTA, YDPHY=>YDMODEL%YRML_PHY_MF%YRPHY,     &
+& YLDDH=>YDMODEL%YRML_DIAG%YRLDDH, YDTOPH=>YDMODEL%YRML_PHY_MF%YRTOPH, YDERDI=>YDMODEL%YRML_PHY_RAD%YRERDI,                &
+& YDRIP=>YDMODEL%YRML_GCONF%YRRIP, YDARPHY=>YDMODEL%YRML_PHY_MF%YRARPHY, YDERAD=>YDMODEL%YRML_PHY_RAD%YRERAD,              &
+& YDPHY3=>YDMODEL%YRML_PHY_MF%YRPHY3, YDPHYDS=>YDMODEL%YRML_PHY_MF%YRPHYDS, YDPHY0=>YDMODEL%YRML_PHY_MF%YRPHY0,            &
+& YDVISI=>YDMODEL%YRML_PHY_MF%YRPHY%YRDVISI, YDPHY2=>YDMODEL%YRML_PHY_MF%YRPHY2, YGFL=>YDMODEL%YRML_GCONF%YGFL,            &
+& YDMSE=>YDMODEL%YRML_PHY_MF%YRMSE, YDPARAR=>YDMODEL%YRML_PHY_MF%YRPARAR, YDPRECIPS=>YDMODEL%YRML_PHY_MF%YRPHY%YRDPRECIPS, &
+& YDSTOPH=>YDMODEL%YRML_PHY_STOCH%YRSTOPH, YDPTRSLB1=>YDMODEL%YRML_DYN%YRPTRSLB1, YDMDDH=>YDMODEL%YRML_DIAG%YRMDDH,        &
+& YDDPHY=>YDMODEL%YRML_PHY_G%YRDPHY, YDLDDH=>YDMODEL%YRML_DIAG%YRLDDH, YDEPHY=> YDMODEL%YRML_PHY_EC%YREPHY                 &
+& )
+
+ASSOCIATE(MINPRR=>YDPARAR%MINPRR, MINPRS=>YDPARAR%MINPRS, MVQS=>YDPARAR%MVQS, MINPRG=>YDPARAR%MINPRG,                                 &
+& LOTOWNC=>YDPARAR%LOTOWNC, LFPREC3D=>YDPARAR%LFPREC3D, NRRI=>YDPARAR%NRRI, NRRL=>YDPARAR%NRRL, CSUBG_AUCV_RC=>YDPARAR%CSUBG_AUCV_RC, &
+& CSUBG_AUCV_RI=>YDPARAR%CSUBG_AUCV_RI, CCONDENS=>YDPARAR%CCONDENS, CSUBG_MF_PDF=>YDPARAR%CSUBG_MF_PDF,                               &
+& LTOTPREC=>YDPARAR%LTOTPREC, NPRINTFR=>YDPARAR%NPRINTFR, CMF_CLOUD=>YDPARAR%CMF_CLOUD, MALBDIR=>YDPARAR%MALBDIR,                     &
+& NSWB_MNH=>YDPARAR%NSWB_MNH, XSW_BANDS=>YDPARAR%XSW_BANDS, MACPRG=>YDPARAR%MACPRG, MSWDIR=>YDPARAR%MSWDIR,                           &
+& LMIXUV=>YDPARAR%LMIXUV, MSWDIF=>YDPARAR%MSWDIF, LOLSMC=>YDPARAR%LOLSMC, NDIAGWMAX=>YDPARAR%NDIAGWMAX,                               &
+& MACPRS=>YDPARAR%MACPRS, MACPRR=>YDPARAR%MACPRR, LSQUALL=>YDPARAR%LSQUALL, VSIGQSAT=>YDPARAR%VSIGQSAT,                               &
+& MALBSCA=>YDPARAR%MALBSCA, RADSN=>YDPARAR%RADSN, LOSEDIC=>YDPARAR%LOSEDIC, LDIAGWMAX=>YDPARAR%LDIAGWMAX,                             &
+& CSEDIM=>YDPARAR%CSEDIM, CLAMBDA3=>YDPARAR%CLAMBDA3,                                                                                 &
+& NPTP=>YDPARAR%NPTP, NSPLITR=>YDPARAR%NSPLITR, NSPLITG=>YDPARAR%NSPLITG, NSV=>YDPARAR%NSV,                                           &
+& CFRAC_ICE_SHALLOW_MF=>YDPARAR%CFRAC_ICE_SHALLOW_MF, CFRAC_ICE_ADJUST=>YDPARAR%CFRAC_ICE_ADJUST, MVTS=>YDPARAR%MVTS,                 &
+& NREFROI2=>YDPARAR%NREFROI2, NREFROI1=>YDPARAR%NREFROI1, MVEMIS=>YDPARAR%MVEMIS, LOWARM=>YDPARAR%LOWARM,                             &
+& LOCND2=>YDPARAR%LOCND2, LOSIGMAS=>YDPARAR%LOSIGMAS, NRR=>YDPARAR%NRR, LOSUBG_COND=>YDPARAR%LOSUBG_COND,       &
+& RADGR=>YDPARAR%RADGR, CMF_UPDRAFT=>YDPARAR%CMF_UPDRAFT, LHARATU=>YDPARAR%LHARATU, XMINLM=>YDPHY0%XMINLM,                            &
+& XMAXLM=>YDPHY0%XMAXLM, AERCS1=>YDPHY0%AERCS1, AERCS3=>YDPHY0%AERCS3, AERCS5=>YDPHY0%AERCS5, RDECRD1=>YDPHY0%RDECRD1,                &
+& RDECRD2=>YDPHY0%RDECRD2, RDECRD3=>YDPHY0%RDECRD3, RDECRD4=>YDPHY0%RDECRD4, LMPA=>YDARPHY%LMPA, LUSECHEM=>YDARPHY%LUSECHEM,          &
+& LKFBCONV=>YDARPHY%LKFBCONV, LMFSHAL=>YDARPHY%LMFSHAL, LMICRO=>YDARPHY%LMICRO, CCOUPLING=>YDARPHY%CCOUPLING,                         &
+& LTURB=>YDARPHY%LTURB, LGRADHPHY=>YDARPHY%LGRADHPHY, LRDUST=>YDARPHY%LRDUST,                     &
+& NGRADIENTS=>YDARPHY%NGRADIENTS, LRDEPOS=>YDARPHY%LRDEPOS,                               &
+& LRCO2=>YDARPHY%LRCO2, LMSE=>YDARPHY%LMSE, LSURFEX_KFROM=>YDARPHY%LSURFEX_KFROM, NSURFEXCTL=>YDMSE%NSURFEXCTL,                       &
+& XZSEPS=>YDMSE%XZSEPS, NDLUNG=>YDDIM%NDLUNG, NDGUNG=>YDDIM%NDGUNG, NPROMA=>YDDIM%NPROMA, NDLUXG=>YDDIM%NDLUXG,                       &
+& NDGUXG=>YDDIM%NDGUXG, NGFL_EXT=>YGFL%NGFL_EXT, YLRAD=>YGFL%YLRAD, YIRAD=>YGFL%YIRAD, NGFL_EZDIAG=>YGFL%NGFL_EZDIAG,                 &
+& NLIMA=>YGFL%NLIMA, CMICRO=>YDPARAR%CMICRO, NPROMICRO=>YDPARAR%NPROMICRO,                                                            &
+& YSD_VAD=>YDSURF%YSD_VAD, QCO2=>YDPHY3%QCO2, NRAY=>YDPHY%NRAY,                            &
+& LRAYFM=>YDPHY%LRAYFM, LO3ABC=>YDPHY%LO3ABC, LRAY=>YDPHY%LRAY, LRSTAER=>YDPHY%LRSTAER, LRNUEXP=>YDPHY%LRNUEXP,                       &
+& AMAGSTOPH_CASBS=> YDSTOPH%AMAGSTOPH_CASBS, LFORCENL=>YDSTOPH%LFORCENL, NFORCESTART=>YDSTOPH%NFORCESTART,                            &
+& NFORCEEND=>YDSTOPH%NFORCEEND, NTRADI=>YDTOPH%NTRADI, NTQSAT=>YDTOPH%NTQSAT, NTNEBU=>YDTOPH%NTNEBU, NAERMACC=>YDERAD%NAERMACC,       &
+& NAER=>YDERAD%NAER, LHLRADUPD=>YDPHY%LHLRADUPD, TSPHY=>YDPHY2%TSPHY, NOZOCL=>YDERAD%NOZOCL, NRADFR=>YDERAD%NRADFR,                   &
+& NSW=>YDERAD%NSW, RCARDI=>YDERDI%RCARDI, LFLEXDIA=>YLDDH%LFLEXDIA, LDDH_OMP=>YLDDH%LDDH_OMP, LRSLDDH=>YLDDH%LRSLDDH,                 &
+& RDECLI=>YDRIP%RDECLI, RCODEC=>YDRIP%RCODEC, RHGMT=>YDRIP%RHGMT, RSIDEC=>YDRIP%RSIDEC, RSOVR=>YDRIP%RSOVR,                           &
+& RSTATI=>YDRIP%RSTATI, TSTEP=>YDRIP%TSTEP, STPREH=>YDSTA%STPREH, LXXDIAGH=>YDXFU%LXXDIAGH, LFLASH =>YDCFU%LFLASH,                    &
+& LDPRECIPS=>YDPHY%LDPRECIPS, LDPRECIPS2=>YDPHY%LDPRECIPS2, NDTPREC=>YDPRECIPS%NDTPREC, NDTPREC2=>YDPRECIPS%NDTPREC2,                 &
+& NGPTOT=>YDGEM%NGPTOT, NGPBLKS=>YDDIM%NGPBLKS, NTSSG=>YDDPHY%NTSSG, YEZDIAG=>YGFL%YEZDIAG, YEXT=>YGFL%YEXT,                          &
+& YNOGW=>YGFL%YNOGW, YCHEM=>YGFL%YCHEM, YSP_SBD=>YDSURF%YSP_SBD, LEDR=>YDPHY%LEDR, LAGPHY=>YDEPHY%LAGPHY,                             &
+& YLIMA=>YGFL%YLIMA, LSPSDT => YSPPT_CONFIG%LSPSDT, LKOGAN=>YDPARAR%LKOGAN, LHGT_QS=>YDPARAR%LHGT_QS,                                 &
+& LMODICEDEP=>YDPARAR%LMODICEDEP, LWINDFARM=>YDPHY%LWINDFARM, LSTATNW=>YDPARAR%LSTATNW,                                               &
+ & RG=>YDCST%RG, RCPD=>YDCST%RCPD, RATM=>YDCST%RATM, RTT=>YDCST%RTT, RPI=>YDCST%RPI, &
+ & RCW=>YDCST%RCW, RCPV=>YDCST%RCPV, RLVTT=>YDCST%RLVTT, RCS=>YDCST%RCS, RLSTT=>YDCST%RLSTT, &
+ & RGAMW=>YDCST%RGAMW, RBETW=>YDCST%RBETW, RALPW=>YDCST%RALPW, RGAMS=>YDCST%RGAMS, &
+ & RBETS=>YDCST%RBETS, RALPS=>YDCST%RALPS, RGAMD=>YDCST%RGAMD, RBETD=>YDCST%RBETD, &
+ & RALPD=>YDCST%RALPD, RETV=>YDCST%RETV, RKAPPA=>YDCST%RKAPPA, RHOUR=>YDCST%RHOUR, RV=>YDCST%RV, RD=>YDCST%RD, &
+& LTOTPRECL=>YDPARAR%LTOTPRECL)
+
+CALL SC2PRG(1, YEZDIAG(:)%MP, YDMODEL%YRML_GCONF%YGFL%NGFL_EZDIAG, PGFL, ZP1EZDIAG)
+
+!     ------------------------------------------------------------------
+
+!        0.    constructor for procset
+IF (LINTFLEX) YLPROCSET=NEWINTPROCSET()
+
+!        1.    Preliminary calculations necessary
+!              for all types of physics.
+!              ------------------------------------
+#ifdef REPRO48
+!see comment associated to the include statement
+CALL AROINI_BUDGET(YDMODEL%YRML_DIAG%YRLDDH%LSDDH)
+#endif
+
+INSTEP_DEB=1
+INSTEP_FIN=1
+
+! initialisation for surfex if XFU
+LLXFUMSE=.FALSE.
+IF (YDCPG_OPTS%LCONFX) THEN
+  LLXFUMSE=.TRUE.
+ENDIF
+
+! SPP 
+IF ( YSPP_CONFIG%LSPP ) THEN
+ DO JSPP=1,YSPP%N2D
+   ZGP2DSPP(:,JSPP) = YSPP%GP_ARP(JSPP)%GP2D(:,1,YDCPG_BNDS%KBL)
+ ENDDO
+ENDIF
+
+! Complete physics is called.
+LLDIAB=(.NOT.LAGPHY)
+
+IF (LLDIAB) THEN
+  CALL CPPHINP(YDCPG_OPTS%LVERTFE, YDGEOMETRY, YDMODEL, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDVARS%GEOMETRY%GEMU%T0,            &
+  & YDVARS%GEOMETRY%GELAM%T0, YDVARS%U%T0, YDVARS%V%T0, YDVARS%Q%T0, YDVARS%Q%DL, YDVARS%Q%DM, YDVARS%CVGQ%DL, YDVARS%CVGQ%DM,  &
+  & YDCPG_PHY0%XYB%RDELP, YDCPG_DYN0%CTY%EVEL, YDVARS%CVGQ%T0, ZRDG_MU0, ZRDG_MU0LU, ZRDG_MU0M,                                 &
+  & ZRDG_MU0N, ZRDG_CVGQ)
+  ZRDG_LCVQ(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=ZRDG_CVGQ(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
+ENDIF
+
+! * In some cases, some pseudo-historic surface buffers (like z0) should
+!   not be modified between the entrance and the output of APL_AROME
+!   (this is the case for example if LDCONFX=T).
+!   For the time being, we must save:
+!   - HV (group VV) : resistance to evapotranspiration
+!   - Z0F (group VD): gravity * surface roughness length
+!   - Z0H (group VV): gravity * roughness length for heat
+!   - PBLH (group VH): PBL height
+!   - SPSH (group VH):
+!   - QSH (group VH):
+
+LL_SAVE_PHSURF = .FALSE.
+
+IF (LLDIAB) THEN
+  LL_SAVE_PHSURF=YDCPG_OPTS%LCONFX
+  IF (LL_SAVE_PHSURF) THEN
+    CALL MF_PHYS_SAVE_PHSURF_PART1 (YDCPG_BNDS, YDCPG_OPTS, ZSAV_DDAL, ZSAV_DDOM, ZSAV_ENTCH,                           &
+    & ZSAV_FHPS, ZSAV_GZ0F, ZSAV_GZ0HF, ZSAV_HV, ZSAV_PBLH, ZSAV_QSH, ZSAV_UDAL, ZSAV_UDGRO,                            &
+    & ZSAV_UDOM, ZSAV_UNEBH, YDMF_PHYS_SURF%GSD_VF%PZ0F, YDMF_PHYS_SURF%GSD_VH%PPBLH, YDMF_PHYS_SURF%GSD_VH%PQSH,       &
+    & YDMF_PHYS_SURF%GSD_VH%PSPSH, YDMF_PHYS_SURF%GSD_VK%PUDGRO, YDMF_PHYS_SURF%GSD_VV%PHV, YDMF_PHYS_SURF%GSD_VV%PZ0H, &
+    & YDVARS%DAL%T0, YDVARS%DOM%T0, YDVARS%UAL%T0, YDVARS%UEN%T0, YDVARS%UNEBH%T0, YDVARS%UOM%T0,                       &
+    & YDMODEL)
+  ENDIF
+ENDIF
+
+
+CALL APL_AROME_CALC_IPGFL (YDGEOMETRY, YDCPG_BNDS, YDCPG_OPTS, YDMODEL, IPGFL)
+
+CALL MF_PHYS_TRANSFER (YDCPG_BNDS, YDCPG_OPTS, YDVARS, YDMODEL%YRML_PHY_MF%YRPHY, YDMODEL%YRML_GCONF%YGFL)
+
+CALL APL_AROME_CALC_IPTR (YDMODEL, IEFB1, IEFB2, IEFB3, IPTR, IPTREXT, IPTRLIMA, IPTRTKE, IRR)
+
+! If an incorrect address is used, then the initialization below will detect it :
+ZTENDGFLR(:,:,0)=HUGE(1._JPRB)
+
+ZTEND_Q    => ZTENDGFLR (:,:,IRR+0) ! 1 Q
+ZTEND_L    => ZTENDGFLR (:,:,IRR+1) ! 2 L
+ZTEND_R    => ZTENDGFLR (:,:,IRR+2) ! 3 R
+ZTEND_I    => ZTENDGFLR (:,:,IRR+3) ! 4 I
+ZTEND_S    => ZTENDGFLR (:,:,IRR+4) ! 5 S
+ZTEND_G    => ZTENDGFLR (:,:,IRR+5) ! 6 G
+IF (YDMODEL%YRML_PHY_MF%YRPARAR%NRR == 7) THEN
+  ZTEND_H    => ZTENDGFLR (:,:,IRR+6) ! 7 H
+ELSE
+  ZTEND_H    => ZDUM2
+ENDIF
+
+
+ZTENDRA   => ZTENDGFLR (:, :, IRR:IRR+YDMODEL%YRML_PHY_MF%YRPARAR%NRR-1)
+ZTENDLIMA => ZTENDGFLR (:, :, IPTRLIMA:IPTRLIMA+YDMODEL%YRML_GCONF%YGFL%NLIMA-1)
+ZTENDTKE  => ZTENDGFLR (:, :, IPTRTKE)
+ZTENDEFB1 => ZTENDGFLR (:, :, IEFB1)
+ZTENDEFB2 => ZTENDGFLR (:, :, IEFB2)
+ZTENDEFB3 => ZTENDGFLR (:, :, IEFB3)
+ZTENDEXT  => ZTENDGFLR (:, :, IPTREXT:IPTREXT+YDMODEL%YRML_GCONF%YGFL%NGFL_EXT-1)
+
+
+
+
+
+
 !     --------------------------------------------------------------------------
 
 !    ------------------------------------------------------------------
@@ -1113,38 +1040,38 @@ ELSE
   ZEPSNEB=1.E-06
 ENDIF
 
-NSV=0
-
 !         1.3 time step initialisation
-!             the mesoNH physics (turb and microphysics) is written 
+!             the mesoNH physics (turb and microphysics) is written
 !             for leap frog scheme
-!             !!! be carefull for 2TL or 3TL 
+!             !!! be carefull for 2TL or 3TL
 
 IF (LTWOTL) THEN
-  ZDT=PDT/2._JPRB
+  ZDT=YDCPG_OPTS%ZDTPHY/2._JPRB
 ELSE
-  IF (KSTEP/=0) THEN
-    ZDT=PDT/2._JPRB
+  IF (YDCPG_OPTS%KSTEP/=0) THEN
+    ZDT=YDCPG_OPTS%ZDTPHY/2._JPRB
   ELSE
-    ZDT=PDT
+    ZDT=YDCPG_OPTS%ZDTPHY
   ENDIF
 ENDIF
 
-ZINVDT=1/PDT
+ZINVDT=1/YDCPG_OPTS%ZDTPHY
 
 ZINVG=1._JPRB/RG 
 
 ! initialisation de ZDTMSE
-IF (LDXFUMSE) THEN
+IF (LLXFUMSE) THEN
   ZDTMSE=0.01_JPRB
-  ZSTATI=REAL(RSTATI,JPRB)-ZDTMSE/2._JPRB
+  ZSTATI=REAL(RSTATI,JPRB)-ZDTMSE*.5_JPRB
+  ZADTMS=0._JPRB
 ELSE
-  ZDTMSE=PDT
+  ZDTMSE=YDCPG_OPTS%ZDTPHY
   ZSTATI=REAL(RSTATI,JPRB)
+  ZADTMS=ZDTMSE
 ENDIF
 
 IF(LTWOTL) THEN
-  ZRHGMT=REAL(RHGMT,JPRB)-ZDTMSE/2._JPRB
+  ZRHGMT=REAL(RHGMT,JPRB)-ZDTMSE*.5_JPRB
 ELSE
   ZRHGMT=REAL(RHGMT,JPRB)
 ENDIF
@@ -1156,11 +1083,11 @@ LLMSE_DIAG=LLMSE.AND.(NSURFEXCTL >= 3)
 
 
 !  Vertical points
-IKA=KLEV
-IKB=KLEV
+IKA=YDCPG_OPTS%KFLEVG
+IKB=YDCPG_OPTS%KFLEVG
 IKU=1
-IKT=KLEV
-IKTE=KLEV
+IKT=YDCPG_OPTS%KFLEVG
+IKTE=YDCPG_OPTS%KFLEVG
 IKTB=1
 IKL=-1
 
@@ -1188,6 +1115,11 @@ IF (INIT0 >= 0) THEN
   ZMFM_(:,:)=ZVALUE
   ZSIGM_(:,:)=ZVALUE
   ZNEBMNH_(:,:)=ZVALUE
+  ZICLDFR_(:,:)=ZVALUE
+  ZWCLDFR_(:,:)=ZVALUE
+  ZSSIO_(:,:)=ZVALUE
+  ZSSIU_(:,:)=ZVALUE
+  ZIFR_(:,:)=ZVALUE
   ZEVAP_(:,:)=ZVALUE
 
   ZRSWAP_(:,:,:)=ZVALUE
@@ -1265,7 +1197,7 @@ IF (INIT0 >= 0) THEN
   ZFRSOFS(:)=ZVALUE
 
   ZQW(:,:)=ZVALUE
-  PRH(:,:)=ZVALUE
+  YDCPG_MISC%RH(:,:)=ZVALUE
   ZTW(:,:)=ZVALUE
 
   ZTRSODIF(:,:)=ZVALUE
@@ -1283,10 +1215,10 @@ IF (INIT0 >= 0) THEN
   ZQV(:,:)=ZVALUE
   ZSFSV_(:,:)=ZVALUE
 
-  PFRSOC(:,:)=ZVALUE
-  PFRTHC(:,:)=ZVALUE
-  PFRSOPS(:)=ZVALUE
-  PDIAGH(:)=ZVALUE
+  YDMF_PHYS%OUT%FRSOC(:,:)=ZVALUE
+  YDMF_PHYS%OUT%FRTHC(:,:)=ZVALUE
+  YDMF_PHYS%OUT%FRSOPS(:)=ZVALUE
+  YDMF_PHYS%OUT%DIAGH(:)=ZVALUE
 
   ZTENDSV_TURBLIMA_(:,:,:)=ZVALUE
 
@@ -1294,76 +1226,76 @@ ENDIF
 
 !  INITIALIZE (CUMULATED) TENDENCIES
 
-DO JLEV=1,KLEV
-  PTENDT(KIDIA:KFDIA,JLEV)=0.0_JPRB
-  PTENDU(KIDIA:KFDIA,JLEV)=0.0_JPRB
-  PTENDV(KIDIA:KFDIA,JLEV)=0.0_JPRB
-  PTENDW(KIDIA:KFDIA,JLEV)=0.0_JPRB
-  PTENDTKE(KIDIA:KFDIA,JLEV)=0.0_JPRB
+DO JLEV=1,YDCPG_OPTS%KFLEVG
+  ZTENDT(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0.0_JPRB
+  YDMF_PHYS%OUT%TENDU(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0.0_JPRB
+  YDMF_PHYS%OUT%TENDV(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0.0_JPRB
+  ZTENDW(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0.0_JPRB
+  ZTENDTKE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0.0_JPRB
 ENDDO
 DO JRR=1,NRR
-  DO JLEV=1,KLEV
-    PTENDR(KIDIA:KFDIA,JLEV,JRR)=0.0_JPRB
+  DO JLEV=1,YDCPG_OPTS%KFLEVG
+    ZTENDRA(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,JRR)=0.0_JPRB
   ENDDO
 ENDDO
 DO JGFL=1,NGFL_EXT
-  DO JLEV=1,KLEV
-    PTENDEXT(KIDIA:KFDIA,JLEV,JGFL)=0.0_JPRB
+  DO JLEV=1,YDCPG_OPTS%KFLEVG
+    ZTENDEXT(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,JGFL)=0.0_JPRB
   ENDDO
 ENDDO
 DO JGFL=1,NLIMA
-  DO JLEV=1,KLEV
-    PTENDLIMA(KIDIA:KFDIA,JLEV,JGFL)=0.0_JPRB
+  DO JLEV=1,YDCPG_OPTS%KFLEVG
+    ZTENDLIMA(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,JGFL)=0.0_JPRB
   ENDDO
 ENDDO
 
 !  INITIALIZE CUMULATED STUFF
 
 ! Small array, OK. REK
-ZINPRH_(KIDIA:KFDIA)=0._JPRB
-ZINPRR_(KIDIA:KFDIA)=0._JPRB
-ZACPRR_(KIDIA:KFDIA)=0._JPRB
-ZINPRS_(KIDIA:KFDIA)=0._JPRB
-ZACPRS_(KIDIA:KFDIA)=0._JPRB
-ZINPRG_(KIDIA:KFDIA)=0._JPRB
+ZINPRH_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB
+ZINPRR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB
+ZACPRR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB
+ZINPRS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB
+ZACPRS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB
+ZINPRG_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB
 
 
-DO JLEV = 1,KLEV
-  DO JLON = KIDIA,KFDIA
-    ZZZ_F_(JLON,JLEV)=PAPHIFM(JLON,JLEV)*ZINVG
-    ZTENDT(JLON,JLEV)=0._JPRB
+DO JLEV = 1,YDCPG_OPTS%KFLEVG
+  DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+    ZZZ_F_(JLON,JLEV)=YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF(JLON,JLEV)*ZINVG
+    ZTENDTT(JLON,JLEV)=0._JPRB
   ENDDO
 ENDDO
 
 ! adhoc solution to avoid negative tke values
 ! when SL advective ddh is activated 
 IF (LRSLDDH) THEN
-  DO JLEV=1, KLEV
-    DO JLON = KIDIA, KFDIA
-      ZTKEM4SLDDH(JLON,JLEV)=MAX(PTKEM(JLON,JLEV),PPTKEMIN)
+  DO JLEV=1, YDCPG_OPTS%KFLEVG
+    DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
+      ZTKEM4SLDDH(JLON,JLEV)=MAX(YDMF_PHYS_BASE_STATE%TKE(JLON,JLEV),PPTKEMIN)
     ENDDO
   ENDDO
   ZTKEM => ZTKEM4SLDDH(:,:)
 ELSE
-  ZTKEM => PTKEM(:,:)
+  ZTKEM => YDMF_PHYS_BASE_STATE%TKE(:,:)
   !test TKE > 0.
-  IF (MINVAL(ZTKEM(KIDIA:KFDIA,1:KLEV)) <= 0._JPRB) THEN
+  IF (MINVAL(ZTKEM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)) <= 0._JPRB) THEN
     CALL ABOR1('TKE < 0 under APL_AROME check YTKE_NL%NREQIN')
   ENDIF
 ENDIF
 
-
-!test invalid combinations
-IF (LHARATU .AND. CMF_UPDRAFT == 'EDKF') THEN
-  CALL ABOR1('Combination LHARATU and EDKF not valid!')
-ENDIF
-
 !initialisation of first useful field for EZDIAG use in Chemistry/Dust
 IOFF_MFSHAL=1
 IF(LFPREC3D) IOFF_MFSHAL=2
 
+! 1.5 SPP settings
+IF (YSPP_CONFIG%LSPP) THEN
+  CALL SET_ALL_SPP(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,NGFL_EZDIAG, &
+   &  YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA,ZGP2DSPP,ZP1EZDIAG,ZSPP_ALL)
+ENDIF
+
 !    ------------------------------------------------------------------
-!     2 - CHANGEMENTS DE VARIABLES ET INVERSION DES NIVEAUX 
+!     2 - CHANGEMENTS DE VARIABLES ET INVERSION DES NIVEAUX
 !     --------------------------------------------------------------------
 
 IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN
@@ -1371,83 +1303,83 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN
   ZRSCP=RD/RCPD
   ZINVATM=1/RATM
   !initialisation de ZZZ_
-  DO JLEV = 1,KLEV
-   !initialisation de qdm (utile localement pour calculer rho  
+  DO JLEV = 1,YDCPG_OPTS%KFLEVG
+   !initialisation de qdm (utile localement pour calculer rho
    !et convertir q en r 
     IF (NRR==7) THEN
-      DO JLON = KIDIA,KFDIA
-        ZQDM(JLON,JLEV)=1._JPRB-PQVM(JLON,JLEV)-PQCM(JLON,JLEV)-PQRM(JLON,JLEV)&
-         & -PQIM(JLON,JLEV)-PQSM(JLON,JLEV)-PQGM(JLON,JLEV)-PQHM(JLON,JLEV)   
+      DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZQDM(JLON,JLEV)=1._JPRB-YDMF_PHYS_BASE_STATE%Q(JLON,JLEV)-YDMF_PHYS_BASE_STATE%L(JLON,JLEV)-YDMF_PHYS_BASE_STATE%R(JLON,JLEV)&
+         & -YDMF_PHYS_BASE_STATE%I(JLON,JLEV)-YDMF_PHYS_BASE_STATE%S(JLON,JLEV)-YDMF_PHYS_BASE_STATE%G(JLON,JLEV)-YDMF_PHYS_BASE_STATE%H(JLON,JLEV)   
       ENDDO
     ELSE
-      DO JLON = KIDIA,KFDIA
-        ZQDM(JLON,JLEV)=1._JPRB-PQVM(JLON,JLEV)-PQCM(JLON,JLEV)-PQRM(JLON,JLEV)&
-         & -PQIM(JLON,JLEV)-PQSM(JLON,JLEV)-PQGM(JLON,JLEV)
+      DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZQDM(JLON,JLEV)=1._JPRB-YDMF_PHYS_BASE_STATE%Q(JLON,JLEV)-YDMF_PHYS_BASE_STATE%L(JLON,JLEV)-YDMF_PHYS_BASE_STATE%R(JLON,JLEV)&
+         & -YDMF_PHYS_BASE_STATE%I(JLON,JLEV)-YDMF_PHYS_BASE_STATE%S(JLON,JLEV)-YDMF_PHYS_BASE_STATE%G(JLON,JLEV)
       ENDDO
     ENDIF
-    DO JLON = KIDIA,KFDIA
-   !initialisation de ZRHODREFM__ (=qd*zrho) 
-      ZRHO=PAPRSFM(JLON,JLEV)/(PRM(JLON,JLEV)*PTM(JLON,JLEV))
+    DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+   !initialisation de ZRHODREFM__ (=qd*zrho)
+      ZRHO=YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(JLON,JLEV)/(YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%R(JLON,JLEV)*YDMF_PHYS_BASE_STATE%T(JLON,JLEV))
       ZRHODREFM__(JLON,JLEV)=ZRHO*ZQDM(JLON,JLEV)
-      ZRHODJM__(JLON,JLEV)=PDELPM(JLON,JLEV)*ZINVG
+      ZRHODJM__(JLON,JLEV)=YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)*ZINVG
   !initialisation de ZEXNREFM_
-      ZEXNREFM_(JLON,JLEV)=(PAPRSFM(JLON,JLEV)*ZINVATM)**(ZRSCP)
+      ZEXNREFM_(JLON,JLEV)=(YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(JLON,JLEV)*ZINVATM)**(ZRSCP)
  ! vent horizontal et TKE
-      ZPABSM__(JLON,JLEV)=PAPRSFM(JLON,JLEV)
-      ZUM__(JLON,JLEV)= PUM(JLON,JLEV)
-      ZVM__(JLON,JLEV)= PVM(JLON,JLEV)
-      ZWM__(JLON,JLEV)= PWM(JLON,JLEV)
+      ZPABSM__(JLON,JLEV)=YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(JLON,JLEV)
+      ZUM__(JLON,JLEV)= YDMF_PHYS_BASE_STATE%U(JLON,JLEV)
+      ZVM__(JLON,JLEV)= YDMF_PHYS_BASE_STATE%V(JLON,JLEV)
+      ZWM__(JLON,JLEV)= YDMF_PHYS_BASE_STATE%YCPG_PHY%W(JLON,JLEV)
       ZTKEM__(JLON,JLEV)= ZTKEM(JLON,JLEV)
-      ZZZ_(JLON,JLEV)=PAPHIM(JLON,JLEV)*ZINVG
+      ZZZ_(JLON,JLEV)=YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI(JLON,JLEV)*ZINVG
     ENDDO
   ENDDO
   !initialise sigma for subgrid condensation coming
   !from previous time step turbulence scheme
   IF (LOSIGMAS) THEN
-    DO JLEV = 1, KLEV 
-      ZSIGM_(KIDIA:KFDIA,JLEV)= PSIGM(KIDIA:KFDIA,JLEV)
+    DO JLEV = 1, YDCPG_OPTS%KFLEVG 
+      ZSIGM_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)= YDMF_PHYS_BASE_STATE%SRC(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)
     ENDDO
   ENDIF
-  !initialise convective mas flux for subgrid condensation coming 
+  !initialise convective mas flux for subgrid condensation coming
   !from previous time step convection scheme
   IF (LOSUBG_COND.AND..NOT.LOSIGMAS) THEN
     IF (LKFBCONV) THEN
-      DO JLEV = 1, KLEV 
-        ZMFM_(KIDIA:KFDIA,JLEV)=PSIGM(KIDIA:KFDIA,JLEV) 
+      DO JLEV = 1, YDCPG_OPTS%KFLEVG
+        ZMFM_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=YDMF_PHYS_BASE_STATE%SRC(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)
       ENDDO
     ELSE
-      DO JLEV = 1, KLEV
-        ZMFM_(KIDIA:KFDIA,JLEV)=0._JPRB
+      DO JLEV = 1, YDCPG_OPTS%KFLEVG
+        ZMFM_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0.
       ENDDO
     ENDIF
   ENDIF
-!!! initialisation des variables d etat MNH �t
+!!! initialisation des variables d etat MNH
 
   !initialisation de ZRM_ pour les hydrometeores (ri=qi/qd)
-  DO JLEV = 1, KLEV
-    DO JLON = KIDIA,KFDIA
-      ZTHM__(JLON,JLEV)=PTM(JLON,JLEV)/ZEXNREFM_(JLON,JLEV)
-      ZRM_(JLON,JLEV,1)=PQVM(JLON,JLEV)/ZQDM(JLON,JLEV)  
-      ZRM_(JLON,JLEV,2)=PQCM(JLON,JLEV)/ZQDM(JLON,JLEV)  
-      ZRM_(JLON,JLEV,3)=PQRM(JLON,JLEV)/ZQDM(JLON,JLEV)  
-      ZRM_(JLON,JLEV,4)=PQIM(JLON,JLEV)/ZQDM(JLON,JLEV)  
-      ZRM_(JLON,JLEV,5)=PQSM(JLON,JLEV)/ZQDM(JLON,JLEV)  
-      ZRM_(JLON,JLEV,6)=PQGM(JLON,JLEV)/ZQDM(JLON,JLEV)  
+  DO JLEV = 1, YDCPG_OPTS%KFLEVG
+    DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      ZTHM__(JLON,JLEV)=YDMF_PHYS_BASE_STATE%T(JLON,JLEV)/ZEXNREFM_(JLON,JLEV)
+      ZRM_(JLON,JLEV,1)=YDMF_PHYS_BASE_STATE%Q(JLON,JLEV)/ZQDM(JLON,JLEV)  
+      ZRM_(JLON,JLEV,2)=YDMF_PHYS_BASE_STATE%L(JLON,JLEV)/ZQDM(JLON,JLEV)  
+      ZRM_(JLON,JLEV,3)=YDMF_PHYS_BASE_STATE%R(JLON,JLEV)/ZQDM(JLON,JLEV)  
+      ZRM_(JLON,JLEV,4)=YDMF_PHYS_BASE_STATE%I(JLON,JLEV)/ZQDM(JLON,JLEV)  
+      ZRM_(JLON,JLEV,5)=YDMF_PHYS_BASE_STATE%S(JLON,JLEV)/ZQDM(JLON,JLEV)  
+      ZRM_(JLON,JLEV,6)=YDMF_PHYS_BASE_STATE%G(JLON,JLEV)/ZQDM(JLON,JLEV)  
     ENDDO
   ENDDO
-  
+
   IF (NRR==7) THEN
-    DO JLEV = 1, KLEV
-      DO JLON = KIDIA,KFDIA
-        ZRM_(JLON,JLEV,7)=PQHM(JLON,JLEV)/ZQDM(JLON,JLEV)  
+    DO JLEV = 1, YDCPG_OPTS%KFLEVG
+      DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZRM_(JLON,JLEV,7)=YDMF_PHYS_BASE_STATE%H(JLON,JLEV)/ZQDM(JLON,JLEV)  
       ENDDO
     ENDDO
   ENDIF
-   
+
   IF (NRR==6) THEN
     !initialisation de ZTHVREFM__
-    DO JLEV = 1, KLEV 
-      DO JLON = KIDIA,KFDIA
+    DO JLEV = 1, YDCPG_OPTS%KFLEVG 
+      DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
         ZTHVREFM__(JLON,JLEV)=ZTHM__(JLON,JLEV)*&
          & (1._JPRB+ZRM_(JLON,JLEV,1)*(RV/RD))/&
          & (1._JPRB+ZRM_(JLON,JLEV,1)+ZRM_(JLON,JLEV,2) +&
@@ -1456,8 +1388,8 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN
       ENDDO
     ENDDO
   ELSEIF (NRR==7) THEN
-    DO JLEV = 1, KLEV 
-      DO JLON = KIDIA,KFDIA
+    DO JLEV = 1, YDCPG_OPTS%KFLEVG 
+      DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
         ZTHVREFM__(JLON,JLEV)=ZTHM__(JLON,JLEV)*&
          & (1._JPRB+ZRM_(JLON,JLEV,1)*(RV/RD))/&
          & (1._JPRB+ZRM_(JLON,JLEV,1)+ZRM_(JLON,JLEV,2) +&
@@ -1470,17 +1402,17 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN
 
 !!! initialisation des variables d etat MNH a t+dt
 !!! division pas le pas de temps
-!!!(la multiplication par rhodj est faite plus tard, si necessaire, 
-!!! suivant les parametrisations)   
+!!!(la multiplication par rhodj est faite plus tard, si necessaire,
+!!! suivant les parametrisations)
 
   ! initialise pointers :
   CALL SWAP_THS
   ! vent horizontal
-  DO JLEV = 1, KLEV 
-    DO JLON=KIDIA,KFDIA
-      ZUS__(JLON,JLEV)= PUM(JLON,JLEV)*ZINVDT
-      ZVS__(JLON,JLEV)= PVM(JLON,JLEV)*ZINVDT
-      ZWS__(JLON,JLEV)= PWM(JLON,JLEV)*ZINVDT
+  DO JLEV = 1, YDCPG_OPTS%KFLEVG 
+    DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      ZUS__(JLON,JLEV)= YDMF_PHYS_BASE_STATE%U(JLON,JLEV)*ZINVDT
+      ZVS__(JLON,JLEV)= YDMF_PHYS_BASE_STATE%V(JLON,JLEV)*ZINVDT
+      ZWS__(JLON,JLEV)= YDMF_PHYS_BASE_STATE%YCPG_PHY%W(JLON,JLEV)*ZINVDT
       ZTKES_(JLON,JLEV)= ZTKEM(JLON,JLEV)*ZINVDT
       ZTHS__(JLON,JLEV)=ZTHM__(JLON,JLEV)*ZINVDT
     ENDDO
@@ -1490,8 +1422,8 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN
   ! initialise pointers :
   CALL SWAP_RS
   DO JRR=1,NRR 
-    DO JLEV = 1, KLEV
-      DO JLON=KIDIA,KFDIA
+    DO JLEV = 1, YDCPG_OPTS%KFLEVG
+      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
         ZRS_(JLON,JLEV,JRR)=ZRM_(JLON,JLEV,JRR)*ZINVDT
       ENDDO
     ENDDO
@@ -1499,17 +1431,17 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN
 
 !!! Initialisations temporaires d'arguments non-utilises
   !initialisation de ZCIT_
-  ZCIT_(KIDIA:KFDIA,1:IKT)=0.0_JPRB
+  ZCIT_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:IKT)=0.0_JPRB
   
-  !initialisation des tableaux de precipitations inst. and cumulated 
+  !initialisation des tableaux de precipitations inst. and cumulated
   !and surface fluxes for turbulence
   IF (LLMSE.OR.LSFORCS) THEN
-    ZACPRR_(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MACPRR)
-    ZACPRS_(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MACPRS)
-    ZACPRG_(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MACPRG)
-    ZINPRR_NOTINCR_(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MINPRR)
-    ZINPRS_NOTINCR_(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MINPRS)
-    ZINPRG_NOTINCR_(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MINPRG)
+    ZACPRR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%ACPRR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+    ZACPRS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%ACPRS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+    ZACPRG_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%ACPRG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+    ZINPRR_NOTINCR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%INPRR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+    ZINPRS_NOTINCR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%INPRS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+    ZINPRG_NOTINCR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%INPRG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
   ENDIF
 
   !initialisation des scalaires passifs
@@ -1517,10 +1449,10 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN
   CALL SWAP_SVM
   CALL SWAP_SVS
   DO JGFL=1,NGFL_EXT
-    DO JLEV = 1, KLEV
-      DO JLON=KIDIA,KFDIA
-        ZSVM_(JLON,JLEV,JGFL)=PSVM(JLON,JLEV,JGFL)
-        ZSVS_(JLON,JLEV,JGFL)=PSVM(JLON,JLEV,JGFL)*ZINVDT
+    DO JLEV = 1, YDCPG_OPTS%KFLEVG
+      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZSVM_(JLON,JLEV,JGFL)=YDMF_PHYS_BASE_STATE%P1EXT(JLON,JLEV,JGFL)
+        ZSVS_(JLON,JLEV,JGFL)=YDMF_PHYS_BASE_STATE%P1EXT(JLON,JLEV,JGFL)*ZINVDT
       ENDDO
     ENDDO
   ENDDO
@@ -1529,10 +1461,10 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN
   ! initialise pointers :
   CALL SWAP_LIMAS
   DO JGFL=1,NLIMA
-    DO JLEV = 1, KLEV
-      DO JLON=KIDIA,KFDIA
-        ZLIMAM_(JLON,JLEV,JGFL)=PLIMAM(JLON,JLEV,JGFL)
-        ZLIMAS_(JLON,JLEV,JGFL)=PLIMAM(JLON,JLEV,JGFL)*ZINVDT
+    DO JLEV = 1, YDCPG_OPTS%KFLEVG
+      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZLIMAM_(JLON,JLEV,JGFL)=YDMF_PHYS_BASE_STATE%P1LIMA(JLON,JLEV,JGFL)
+        ZLIMAS_(JLON,JLEV,JGFL)=YDMF_PHYS_BASE_STATE%P1LIMA(JLON,JLEV,JGFL)*ZINVDT
       ENDDO
     ENDDO
   ENDDO
@@ -1540,24 +1472,24 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN
 ENDIF
 
 ! daand: radflex
-ZFRSO => PFRSO(:,:,1)
-ZFRTH => PFRTH(:,:,1)
+ZFRSO => YDMF_PHYS%OUT%FRSO(:,:,1)
+ZFRTH => YDMF_PHYS%OUT%FRTH(:,:,1)
 
 !    ------------------------------------------------------------------
 !     3 - PRINTS FOR DIAGNOSTICS IF NEEDED
 !    ------------------------------------------------------------------
 IF (LDIAGWMAX) THEN
-  IF (MOD(KSTEP+1,NDIAGWMAX)==0) THEN
+  IF (MOD(YDCPG_OPTS%KSTEP+1,NDIAGWMAX)==0) THEN
   ! calcul de wmax
-    DO JLEV = 1 , KLEV
+    DO JLEV = 1 , YDCPG_OPTS%KFLEVG
       Z_WMAX=0._JPRB
       Z_WMIN=0._JPRB
-      DO JLON=KIDIA,KFDIA
-        IF (PWM(JLON,JLEV)>Z_WMAX) THEN
-          Z_WMAX=PWM(JLON,JLEV)
+      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        IF (YDMF_PHYS_BASE_STATE%YCPG_PHY%W(JLON,JLEV)>Z_WMAX) THEN
+          Z_WMAX=YDMF_PHYS_BASE_STATE%YCPG_PHY%W(JLON,JLEV)
         ENDIF
-        IF (PWM(JLON,JLEV)<Z_WMIN) THEN
-          Z_WMIN=PWM(JLON,JLEV)
+        IF (YDMF_PHYS_BASE_STATE%YCPG_PHY%W(JLON,JLEV)<Z_WMIN) THEN
+          Z_WMIN=YDMF_PHYS_BASE_STATE%YCPG_PHY%W(JLON,JLEV)
         ENDIF
       ENDDO
     ENDDO
@@ -1566,15 +1498,15 @@ ENDIF
 
 IF (LFLEXDIA) THEN
   !save tendencies
-  ZTENDTBAK(KIDIA:KFDIA,1:KLEV)=PTENDT(KIDIA:KFDIA,1:KLEV)
+  ZTENDTBAK(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=ZTENDT(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
   DO JR=1,NRR
-    ZTENDRBAK(KIDIA:KFDIA,1:KLEV,JR)=PTENDR(KIDIA:KFDIA,1:KLEV,JR)
+    ZTENDRBAK(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,JR)=ZTENDRA(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,JR)
   ENDDO
 ENDIF
 
 
 !    ------------------------------------------------------------------
-!     4 - ADJUSTMENT (CALLED IF THE MICROPHYSICS IS SWITCH ON) 
+!     4 - ADJUSTMENT (CALLED IF THE MICROPHYSICS IS SWITCH ON)
 !    ------------------------------------------------------------------
 
 IF (LMICRO) THEN
@@ -1585,150 +1517,130 @@ IF (LMICRO) THEN
 
   IF (LMFSHAL .AND. (CMF_CLOUD=='DIRE'.OR.CMF_CLOUD=='BIGA')) THEN
     IOFF_MFSHAL=IOFF_MFSHAL+3
-    IF (KSTEP==0) THEN
-      DO JLEV = 1, KLEV 
-        ZRC_MF_(KIDIA:KFDIA,JLEV)=0._JPRB
-        ZRI_MF_(KIDIA:KFDIA,JLEV)=0._JPRB
-        ZCF_MF_(KIDIA:KFDIA,JLEV)=0._JPRB
+    IF (YDCPG_OPTS%KSTEP==0) THEN
+      DO JLEV = 1, YDCPG_OPTS%KFLEVG 
+        ZRC_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB
+        ZRI_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB
+        ZCF_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB
       ENDDO
     ELSE
-      DO JLEV = 1, KLEV 
-        ZRC_MF_(KIDIA:KFDIA,JLEV)=PEZDIAG(KIDIA:KFDIA,JLEV,1)
-        ZRI_MF_(KIDIA:KFDIA,JLEV)=PEZDIAG(KIDIA:KFDIA,JLEV,3)
-        ZCF_MF_(KIDIA:KFDIA,JLEV)=PEZDIAG(KIDIA:KFDIA,JLEV,2)
+      DO JLEV = 1, YDCPG_OPTS%KFLEVG 
+        ZRC_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,1)
+        ZRI_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,3)
+        ZCF_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,2)
       ENDDO
     ENDIF
-    PEZDIAG(KIDIA:KFDIA,1:KLEV,1:3)=0._JPRB
+    ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:3)=0._JPRB
   ELSE
-    DO JLEV = 1, KLEV 
-      ZRC_MF_(KIDIA:KFDIA,JLEV)=0._JPRB
-      ZRI_MF_(KIDIA:KFDIA,JLEV)=0._JPRB
-      ZCF_MF_(KIDIA:KFDIA,JLEV)=0._JPRB
+    DO JLEV = 1, YDCPG_OPTS%KFLEVG
+      ZRC_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB
+      ZRI_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB
+      ZCF_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB
     ENDDO
   ENDIF
 
-  IF (MOD(KSTEP+1,NPRINTFR)==0) THEN
+  IF (MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
     WRITE(NULOUT,*)'avant aro_adjust sous apl_arome'
     WRITE(NULOUT,*)'JLEV   ZZZ_F_   RHODJM   EXNREFM       PABSM       THM      SIGM         MFM    '
-    DO JLEV=1,KLEV+1 
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
       WRITE(NULOUT,'(I2,X,7F10.3)') JLEV,ZZZ_F_(NPTP,JLEV),ZRHODJM__(NPTP,JLEV),&
        & ZEXNREFM_(NPTP,JLEV), ZPABSM__(NPTP,JLEV), ZTHM__(NPTP,JLEV), ZSIGM_(NPTP,JLEV), ZMFM_(NPTP,JLEV)
     ENDDO 
     WRITE (NULOUT,*)'JLEV  rhoQv  rhoQc   rhoQr   rhoQi   rhoQs   rhoQg'
-    DO JLEV=1,KLEV
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
       WRITE(NULOUT,'(I2,X,6E11.4)') JLEV,ZRM_(NPTP,JLEV,1),&
-       & ZRM_(NPTP,JLEV,2), ZRM_(NPTP,JLEV,3),ZRM_(NPTP,JLEV,4),ZRM_(NPTP,JLEV,5), ZRM_(NPTP,JLEV,6)  
+       & ZRM_(NPTP,JLEV,2), ZRM_(NPTP,JLEV,3),ZRM_(NPTP,JLEV,4),ZRM_(NPTP,JLEV,5), ZRM_(NPTP,JLEV,6)
     ENDDO
     WRITE (NULOUT,*)'JLEV  ZRC_MF_  ZRI_MF_  ZCF_MF_ ZTHSIN_  ZSRCS__ ZNEBMNH_'
-    DO JLEV=1,KLEV
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
       WRITE(NULOUT,'(I2,X,6E11.4)') JLEV,ZRC_MF_(NPTP,JLEV),&
        & ZRI_MF_(NPTP,JLEV),ZCF_MF_(NPTP,JLEV), ZTHSIN_(NPTP,JLEV),ZSRCS__(NPTP,JLEV), ZNEBMNH_(NPTP,JLEV)
     ENDDO
   ENDIF
 
   ! for now a copy is needed (see below, inside). I don't like than :-( REK
-  ZTHS__(KIDIA:KFDIA,1:KLEV)=ZTHSIN_(KIDIA:KFDIA,1:KLEV)
-  ZRS_(KIDIA:KFDIA,1:KLEV,1:NRR)=ZRSIN_(KIDIA:KFDIA,1:KLEV,1:NRR)
+  ZTHS__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=ZTHSIN_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
+  ZRS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NRR)=ZRSIN_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NRR)
 
   IF (CMICRO == 'LIMA') THEN
 
     CALL SWAP_LIMAS
     ! for now a copy is needed (see below, inside). I don't like than :-( REK
-    ZLIMAS_(KIDIA:KFDIA,1:KLEV,1:NLIMA)=ZLIMASIN_(KIDIA:KFDIA,1:KLEV,1:NLIMA)
-
-    CALL ARO_ADJUST_LIMA (KLEV,IKU,IKL,KFDIA,KLEV,NRR,NLIMA,KSTEP+1,&
-     & LOSUBG_COND, LOSIGMAS, LOCND2, &
-     & ZDT,VSIGQSAT,ZZZ_F_,&
-     & ZRHODJM__(:,1:KLEV),&
-     & ZRHODREFM__(:,1:KLEV),&
-     & ZEXNREFM_,&
-     & ZPABSM__(:,1:KLEV),&
-     & ZTHM__(:,1:KLEV),&
-     & ZRM_,&
-     & ZLIMAM_,&
-     & ZSIGM_,&
-     & ZMFM_,ZRC_MF_,&
-     & ZRI_MF_,ZCF_MF_,&
-     & ZTHS__(:,1:KLEV),ZRS_,&
-     & ZLIMAS_,&
-     & ZSRCS__(:,1:KLEV),ZNEBMNH_,&
-     & YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH)
+    ZLIMAS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NLIMA)=ZLIMASIN_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NLIMA)
+
+    CALL ARO_ADJUST_LIMA (YDCPG_OPTS%KFLEVG, IKU, IKL, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, NRR,                          &
+    & NLIMA, YDCPG_OPTS%KSTEP+1, LOSUBG_COND, LOSIGMAS, LOCND2, ZDT, VSIGQSAT, ZZZ_F_, ZRHODJM__(:, 1:YDCPG_OPTS%KFLEVG), &
+    & ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG), ZEXNREFM_, ZPABSM__(:, 1:YDCPG_OPTS%KFLEVG), ZTHM__(:, 1:YDCPG_OPTS%KFLEVG),   &
+    & ZRM_, ZLIMAM_, ZSIGM_, ZMFM_, ZRC_MF_, ZRI_MF_, ZCF_MF_, ZTHS__(:, 1:YDCPG_OPTS%KFLEVG), ZRS_,                      &
+    & ZLIMAS_, ZSRCS__(:, 1:YDCPG_OPTS%KFLEVG), ZNEBMNH_, YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH       &
+    &                               )
   ELSE
 
-    CALL ARO_ADJUST (KLEV,IKU,IKL,KFDIA,KLEV,NRR,&
-     & NGFL_EZDIAG, &
-     & CFRAC_ICE_ADJUST, CCONDENS, CLAMBDA3, LOSUBG_COND, &
-     & LOSIGMAS, CMICRO, LOCND2, CSUBG_MF_PDF, &
-     & ZDT,VSIGQSAT,ZZZ_F_,&
-     & ZRHODJM__(:,1:KLEV),&
-     & ZEXNREFM_,&
-     & ZRHODREFM__(:,1:KLEV),&
-     & ZPABSM__(:,1:KLEV),&
-     & ZTHM__(:,1:KLEV),&
-     & ZRM_,ZSIGM_,&
-     & ZMFM_,ZRC_MF_,&
-     & ZRI_MF_,ZCF_MF_,&
-     & ZTHS__(:,1:KLEV),ZRS_,&
-     & ZSRCS__(:,1:KLEV),ZNEBMNH_,&
-     & ZHLC_HRC__(:,1:KLEV), ZHLC_HCF__(:,1:KLEV),&
-     & ZHLI_HRI__(:,1:KLEV), ZHLI_HCF__(:,1:KLEV),&
-     & PGP2DSPP,PEZDIAG,&
-     & YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH)
+    CALL ARO_ADJUST (YDCPG_OPTS%KFLEVG, IKU, IKL, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, NRR,                                           &
+    & CFRAC_ICE_ADJUST, CCONDENS, CLAMBDA3, LOSUBG_COND,                                                                              &
+    & LOSIGMAS, CMICRO, LOCND2, LHGT_QS, CSUBG_MF_PDF,                                                                                &
+    & ZDT, VSIGQSAT, ZZZ_F_, ZRHODJM__(:, 1:YDCPG_OPTS%KFLEVG), &
+    & ZEXNREFM_, ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG), ZPABSM__(:, 1:YDCPG_OPTS%KFLEVG), ZTHM__(:, 1:YDCPG_OPTS%KFLEVG), ZRM_, ZSIGM_, &
+    & ZMFM_, ZRC_MF_, ZRI_MF_, ZCF_MF_, ZTHS__(:, 1:YDCPG_OPTS%KFLEVG), ZRS_, ZSRCS__(:, 1:YDCPG_OPTS%KFLEVG),                        &
+    & ZNEBMNH_, &
+    & ZICLDFR_,ZWCLDFR_,ZSSIO_,ZSSIU_,ZIFR_,&
+    & ZHLC_HRC_, ZHLC_HCF_, ZHLI_HRI_, ZHLI_HCF_,                                                                                     &
+    & YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH,&
+    & ZSPP_ALL%YSPP_PSIGQSAT,ZSPP_ALL%YSPP_ICE_CLD_WGT)
 
   ENDIF
   
-  IF (MOD(KSTEP+1,NPRINTFR)==0) THEN
+  IF (MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
     WRITE(NULOUT,*)'apres aro_adjust sous apl_arome'
-    WRITE(NULOUT,*)'JLEV   ZZZ_F_   RHODJM   EXNREFM       PABSM       THM      SIGM         MFM    '   
-    DO JLEV=1,KLEV+1 
+    WRITE(NULOUT,*)'JLEV   ZZZ_F_   RHODJM   EXNREFM       PABSM       THM      SIGM         MFM    '
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
       WRITE(NULOUT,'(I2,X,7F10.3)') JLEV,ZZZ_F_(NPTP,JLEV),ZRHODJM__(NPTP,JLEV),&
        & ZEXNREFM_(NPTP,JLEV), ZPABSM__(NPTP,JLEV), ZTHM__(NPTP,JLEV), ZSIGM_(NPTP,JLEV), ZMFM_(NPTP,JLEV)
     ENDDO 
     WRITE (NULOUT,*)'JLEV  rhoQv  rhoQc   rhoQr   rhoQi   rhoQs   rhoQg'
-    DO JLEV=1,KLEV
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
       WRITE(NULOUT,'(I2,X,6E11.4)') JLEV,ZRS_(NPTP,JLEV,1),&
-       & ZRS_(NPTP,JLEV,2), ZRS_(NPTP,JLEV,3),ZRS_(NPTP,JLEV,4),ZRS_(NPTP,JLEV,5), ZRS_(NPTP,JLEV,6)  
+       & ZRS_(NPTP,JLEV,2), ZRS_(NPTP,JLEV,3),ZRS_(NPTP,JLEV,4),ZRS_(NPTP,JLEV,5), ZRS_(NPTP,JLEV,6)
     ENDDO
     WRITE (NULOUT,*)'JLEV  ZRC_MF_  ZRI_MF_  ZCF_MF_ ZTHS__ ZSRCS__ ZNEBMNH_'
-    DO JLEV=1,KLEV
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
       WRITE(NULOUT,'(I2,X,6E11.4)')JLEV,ZRC_MF_(NPTP,JLEV),&
        & ZRI_MF_(NPTP,JLEV),ZCF_MF_(NPTP,JLEV), ZTHS__(NPTP,JLEV),ZSRCS__(NPTP,JLEV), ZNEBMNH_(NPTP,JLEV)
     ENDDO
   ENDIF
 
-  DO JLEV=1,KLEV
-    PCLFS(KIDIA:KFDIA,JLEV)=ZNEBMNH_(KIDIA:KFDIA,JLEV) 
+  DO JLEV=1,YDCPG_OPTS%KFLEVG
+    YDVARS%A%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZNEBMNH_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) 
   ENDDO
 
   !adjusted zthm and zrm
-  DO JLEV = 1, KLEV
-    DO JLON = KIDIA,KFDIA
-      ZTHM__(JLON,JLEV)=ZTHS__(JLON,JLEV)*PDT
+  DO JLEV = 1, YDCPG_OPTS%KFLEVG
+    DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      ZTHM__(JLON,JLEV)=ZTHS__(JLON,JLEV)*YDCPG_OPTS%ZDTPHY
     ENDDO
   ENDDO
 
   DO JRR=1,NRR
-    DO JLEV = 1, KLEV
-      DO JLON = KIDIA,KFDIA
-        ZRM_(JLON,JLEV,JRR)=ZRS_(JLON,JLEV,JRR)*PDT
+    DO JLEV = 1, YDCPG_OPTS%KFLEVG
+      DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZRM_(JLON,JLEV,JRR)=ZRS_(JLON,JLEV,JRR)*YDCPG_OPTS%ZDTPHY
       ENDDO
     ENDDO
   ENDDO
 
-
-  !initialisation de qdm utile pour 
-  !convertir tendance de r en tendance de q 
+  !initialisation de qdm utile pour
+  !convertir tendance de r en tendance de q
   IF (NRR==6) THEN
-    DO JLEV=1,KLEV
-      DO JLON= KIDIA, KFDIA
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
+      DO JLON= YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
         ZQDM(JLON,JLEV)=1._JPRB/(1._JPRB+ZRM_(JLON,JLEV,1)+&
         &ZRM_(JLON,JLEV,2)+ZRM_(JLON,JLEV,3)+ZRM_(JLON,JLEV,4)+ZRM_(JLON,JLEV,5)+&
         &ZRM_(JLON,JLEV,6) )
       ENDDO
     ENDDO
   ELSEIF (NRR==7) THEN
-    DO JLEV=1,KLEV
-      DO JLON= KIDIA, KFDIA
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
+      DO JLON= YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
         ZQDM(JLON,JLEV)=1._JPRB/(1._JPRB+ZRM_(JLON,JLEV,1)+&
         &ZRM_(JLON,JLEV,2)+ZRM_(JLON,JLEV,3)+ZRM_(JLON,JLEV,4)+ZRM_(JLON,JLEV,5)+&
         &ZRM_(JLON,JLEV,6)+ZRM_(JLON,JLEV,7) )
@@ -1736,8 +1648,8 @@ IF (LMICRO) THEN
     ENDDO
   ENDIF 
   !reinitialisation des qi
-  DO JLEV = 1, KLEV
-    DO JLON = KIDIA,KFDIA
+  DO JLEV = 1, YDCPG_OPTS%KFLEVG
+    DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
       ZQVM(JLON,JLEV)=ZRM_(JLON,JLEV,1)*ZQDM(JLON,JLEV)
       ZQCM(JLON,JLEV)=ZRM_(JLON,JLEV,2)*ZQDM(JLON,JLEV)
       ZQRM(JLON,JLEV)=ZRM_(JLON,JLEV,3)*ZQDM(JLON,JLEV)
@@ -1748,158 +1660,170 @@ IF (LMICRO) THEN
   ENDDO
 
   IF (NRR==7) THEN
-    DO JLEV = 1,KLEV
-      DO JLON = KIDIA,KFDIA
+    DO JLEV = 1,YDCPG_OPTS%KFLEVG
+      DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
         ZQHM(JLON,JLEV)=ZRM_(JLON,JLEV,7)*ZQDM(JLON,JLEV)
       ENDDO
     ENDDO
   ELSE
-    ZQHM(KIDIA:KFDIA,1:KLEV)=0._JPRB
+    ZQHM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=0._JPRB
   ENDIF
 
   ! Tendances des variables LIMA
   DO JGFL=1,NLIMA
-    DO JLEV = 1, KLEV
+    DO JLEV = 1, YDCPG_OPTS%KFLEVG
       ! Réinitialisation des variables LIMA
-      DO JLON=KIDIA,KFDIA
-        ZLIMAM_(JLON,JLEV,JGFL)=ZLIMAS_(JLON,JLEV,JGFL)*PDT
-        PTENDLIMA(JLON,JLEV,JGFL)=PTENDLIMA(JLON,JLEV,JGFL)+(ZLIMAS_(JLON,JLEV,JGFL)-ZLIMASIN_(JLON,JLEV,JGFL))  
+      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZLIMAM_(JLON,JLEV,JGFL)=ZLIMAS_(JLON,JLEV,JGFL)*YDCPG_OPTS%ZDTPHY
+        ZTENDLIMA(JLON,JLEV,JGFL)=ZTENDLIMA(JLON,JLEV,JGFL)+(ZLIMAS_(JLON,JLEV,JGFL)-ZLIMASIN_(JLON,JLEV,JGFL))  
       ENDDO
     ENDDO
   ENDDO
 
   !modif de R et CP
-  ZQHGM(KIDIA:KFDIA,:)=ZQHM(KIDIA:KFDIA,:)+ZQGM(KIDIA:KFDIA,:)
-  CALL GPRCP(KLON,KIDIA,KFDIA,KLEV,PQ=ZQVM,PQI=ZQIM,PQL=ZQCM,PQR=ZQRM,PQS=ZQSM,PQG=ZQHGM,PCP=ZCPM,PR=ZRHM)  
+  ZQHGM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)=ZQHM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)+ZQGM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)
+  CALL GPRCP(YDCPG_OPTS%KLON, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, PQ=ZQVM, PQI=ZQIM, &
+  & PQL=ZQCM, PQR=ZQRM, PQS=ZQSM, PQG=ZQHGM, PCP=ZCPM, PR=ZRHM)  
 
-  DO JLEV = 1,KLEV
-    DO JLON = KIDIA,KFDIA
+  DO JLEV = 1,YDCPG_OPTS%KFLEVG
+    DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
       ZTM(JLON,JLEV)=ZTHM__(JLON,JLEV)*ZEXNREFM_(JLON,JLEV)
   !reinitialisation de ZRHODREFM__ (=qd*zrho)
-      ZRHO=PAPRSFM(JLON,JLEV)/(ZRHM(JLON,JLEV)*ZTM(JLON,JLEV))
+      ZRHO=YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(JLON,JLEV)/(ZRHM(JLON,JLEV)*ZTM(JLON,JLEV))
       ZRHODREFM__(JLON,JLEV)=ZRHO*ZQDM(JLON,JLEV)
     ENDDO
   ENDDO
 
   !geopotentiel calculation
  
-  ZAPHIM(KIDIA:KFDIA,KLEV)=PAPHIM(KIDIA:KFDIA,KLEV)
-  CALL GPGEO(KLON,KIDIA,KFDIA,KLEV,ZAPHIM,ZAPHIFM,ZTM,ZRHM,PLNPRM,PALPHM,YDGEOMETRY%YRVERT_GEOM)
+  ZAPHIM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
+  CALL GPGEO(YDCPG_OPTS%KLON, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, ZAPHIM, ZAPHIFM,                &
+  & ZTM, ZRHM, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%LNPR, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%ALPH, YDGEOMETRY%YRVERT_GEOM&
+  &             )
    
   !calcul de l'altitude
-  DO JLEV = 1, KLEV
-    DO JLON = KIDIA,KFDIA
+  DO JLEV = 1, YDCPG_OPTS%KFLEVG
+    DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
       ZZZ_(JLON,JLEV)=ZAPHIM(JLON,JLEV)*ZINVG
       !initialisation de ZZZ_F_
       ZZZ_F_(JLON,JLEV)=ZAPHIFM(JLON,JLEV)*ZINVG
       ! tendency of T
-      PTENDT(JLON,JLEV)=PTENDT(JLON,JLEV)+(ZTHS__(JLON,JLEV)-ZTHSIN_(JLON,JLEV))*ZEXNREFM_(JLON,JLEV)
-      ZTENDT(JLON,JLEV)=ZTHS__(JLON,JLEV)-ZTHSIN_(JLON,JLEV)
+      ZTENDT(JLON,JLEV)=ZTENDT(JLON,JLEV)+(ZTHS__(JLON,JLEV)-ZTHSIN_(JLON,JLEV))*ZEXNREFM_(JLON,JLEV)
+      ZTENDTT(JLON,JLEV)=ZTHS__(JLON,JLEV)-ZTHSIN_(JLON,JLEV)
     ENDDO
   ENDDO
-  !inversion niveaux tendances des ri et conversion en qi en multipliant par qd 
+  !inversion niveaux tendances des ri et conversion en qi en multipliant par qd
   DO JR=1,NRR
-    DO JLEV=1,KLEV
-      DO JLON=KIDIA,KFDIA
-        PTENDR(JLON,JLEV,JR)=PTENDR(JLON,JLEV,JR)+(ZRS_(JLON,JLEV,JR)-ZRSIN_(JLON,JLEV,JR))*ZQDM(JLON,JLEV)
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
+      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZTENDRA(JLON,JLEV,JR)=ZTENDRA(JLON,JLEV,JR)+(ZRS_(JLON,JLEV,JR)-ZRSIN_(JLON,JLEV,JR))*ZQDM(JLON,JLEV)
       ENDDO
     ENDDO
   ENDDO
   !initialisation de ZDZZ_
-  DO JLON = KIDIA,KFDIA
+  DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
     ZDZZ_(JLON,1)=ZAPHIM(JLON,0)*ZINVG-ZZZ_(JLON,1)
   ENDDO
-  DO JLEV = 2, KLEV
-    DO JLON = KIDIA,KFDIA
+  DO JLEV = 2, YDCPG_OPTS%KFLEVG
+    DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
       ZDZZ_(JLON,JLEV)=ZZZ_(JLON,JLEV+IKL)-ZZZ_(JLON,JLEV)
     ENDDO
   ENDDO
 
 ELSE
 
-  ZTM (KIDIA:KFDIA,1:KLEV)=PTM(KIDIA:KFDIA,1:KLEV)
-  ZRHM(KIDIA:KFDIA,1:KLEV)=PRM(KIDIA:KFDIA,1:KLEV)
-  ZQVM(KIDIA:KFDIA,1:KLEV)=PQVM(KIDIA:KFDIA,1:KLEV)
-  ZQIM(KIDIA:KFDIA,1:KLEV)=PQIM(KIDIA:KFDIA,1:KLEV)
-  ZQCM(KIDIA:KFDIA,1:KLEV)=PQCM(KIDIA:KFDIA,1:KLEV)
-  ZQRM(KIDIA:KFDIA,1:KLEV)=PQRM(KIDIA:KFDIA,1:KLEV)
-  ZQSM(KIDIA:KFDIA,1:KLEV)=PQSM(KIDIA:KFDIA,1:KLEV)
-  ZQGM(KIDIA:KFDIA,1:KLEV)=PQGM(KIDIA:KFDIA,1:KLEV)
+  ZTM (YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%T(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
+  ZRHM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%R(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
+  ZQVM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%Q(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
+  ZQIM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%I(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
+  ZQCM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%L(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
+  ZQRM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%R(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
+  ZQSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%S(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
+  ZQGM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%G(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
   IF (NRR==7) THEN
-    ZQHM(KIDIA:KFDIA,1:KLEV)=PQHM(KIDIA:KFDIA,1:KLEV)
+    ZQHM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%H(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
   ELSE
-    ZQHM(KIDIA:KFDIA,1:KLEV)=0._JPRB
+    ZQHM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=0._JPRB
   ENDIF
-  ZCPM(KIDIA:KFDIA,KTDIA:KLEV)=PCPM(KIDIA:KFDIA,KTDIA:KLEV)
-  ZAPHIM(KIDIA:KFDIA,0:KLEV)=PAPHIM(KIDIA:KFDIA,0:KLEV)
-  ZAPHIFM(KIDIA:KFDIA,1:KLEV)=PAPHIFM(KIDIA:KFDIA,1:KLEV)
-  ZZZ_(KIDIA:KFDIA,1:KLEV)=PAPHIM(KIDIA:KFDIA,1:KLEV)*ZINVG
+  ZCPM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KTDIA:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%CP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KTDIA:YDCPG_OPTS%KFLEVG)
+  ZAPHIM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG)
+  ZAPHIFM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
+  ZZZ_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)*ZINVG
   !initialisation of PCLFS outside LMICRO to be zero in case LMICRO=F
-  PCLFS(KIDIA:KFDIA,1:KLEV)=0._JPRB
+  YDVARS%A%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=0._JPRB
 
 ENDIF ! ADJUSTMENT LMICRO
 
+!     ------------------------------------------------------------------
+!     NEBULOSITE (CONVECTIVE+STRATIFORME) A TROIS NIVEAUX.
+!     DIAGNOSTIC OF THREE LEVELS (CONVECTIVE+STRATIFORM) CLOUDINESS.
+
+! protect cloudiness from being 0 or 1  (needed for ACRANEB2 and ACNPART)
+DO JLEV=YDCPG_OPTS%KTDIA,YDCPG_OPTS%KFLEVG
+  DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+    ZNEB0(JLON,JLEV)=MAX(ZEPSNEB,MIN(1._JPRB-ZEPSNEB,YDVARS%A%T1(JLON,JLEV)))
+  ENDDO
+ENDDO
+
+! decorrelation depth for cloud overlaps
+
+IF (LRNUEXP) THEN
+  DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+    ZDECRD(JLON)=RDECRD1+RDECRD2*EXP(-((ASIN(YDVARS%GEOMETRY%GEMU%T0(JLON))-RDECRD3*RDECLI)/RDECRD4)**2)
+  ENDDO
+ENDIF
+
+! calculate high, medium, low and total cloud cover
+CALL ACNPART(YDCST, YDMODEL%YRML_PHY_MF,YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA,YDCPG_OPTS%KLON,NTNEBU,YDCPG_OPTS%KFLEVG,&
+ & YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI,YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF,YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF,ZDECRD,ZNEB0,&
+ & YDMF_PHYS%OUT%CLCH, YDMF_PHYS%OUT%CLCM, YDMF_PHYS%OUT%CLCL, YDCPG_MISC%CLCT, ZCLCT_RAD)
+
 IF (LFLEXDIA) THEN
-  DO JLEV = 1, KLEV
-    DO JLON=KIDIA,KFDIA 
-      ZTMPAF(JLON,JLEV)=(PTENDT(JLON,JLEV)-ZTENDTBAK(JLON,JLEV))*PDELPM(JLON,JLEV)*ZINVG*ZCPM(JLON,JLEV)
+  DO JLEV = 1, YDCPG_OPTS%KFLEVG
+    DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA 
+      ZTMPAF(JLON,JLEV)=(ZTENDT(JLON,JLEV)-ZTENDTBAK(JLON,JLEV))*YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)*ZINVG*ZCPM(JLON,JLEV)
     ENDDO
   ENDDO
-  IF (LDDH_OMP) THEN
-    CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMPAF,'TCTADJU',YDDDH)
-  ELSE
-    CALL ADD_FIELD_3D(YLDDH,ZTMPAF,'TCTADJU','T','ARP',.TRUE.,.TRUE.)
-  ENDIF
+  CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMPAF,'TCTADJU',YDDDH)
   DO JR=1,NRR
     CLNAME='T'//CLVARNAME(JR)//'ADJU'
-    DO JLEV = 1, KLEV
-      DO JLON=KIDIA,KFDIA 
-        ZTMPAF(JLON,JLEV)=(PTENDR(JLON,JLEV,JR)-ZTENDRBAK(JLON,JLEV,JR))*PDELPM(JLON,JLEV)*ZINVG
+    DO JLEV = 1, YDCPG_OPTS%KFLEVG
+      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA 
+        ZTMPAF(JLON,JLEV)=(ZTENDRA(JLON,JLEV,JR)-ZTENDRA(JLON,JLEV,JR))*YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)*ZINVG
       ENDDO
     ENDDO
-    IF (LDDH_OMP) THEN
-      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMPAF,CLNAME,YDDDH)
-    ELSE
-      CALL ADD_FIELD_3D(YLDDH,ZTMPAF,CLNAME,'T','ARP',.TRUE.,.TRUE.)
-    ENDIF
-    DO JLEV = 1, KLEV
-      DO JLON=KIDIA,KFDIA 
-        ZTMPAF(JLON,JLEV)=PCLFS(JLON,JLEV)*PDELPM(JLON,JLEV)
+    CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMPAF,CLNAME,YDDDH)
+    DO JLEV = 1, YDCPG_OPTS%KFLEVG
+      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA 
+        ZTMPAF(JLON,JLEV)=YDVARS%A%T1(JLON,JLEV)*YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)
       ENDDO
     ENDDO
-    IF (LDDH_OMP) THEN
-      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMPAF,'VNT',YDDDH)
-    ELSE
-      CALL ADD_FIELD_3D(YLDDH,ZTMPAF,'VNT','V','ARP',.TRUE.,.TRUE.)
-    ENDIF
+    CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMPAF,'VNT',YDDDH)
   ENDDO
 ! specific to new data flow for diagnostics
-  IF (LDDH_OMP) THEN
-    DO JLEV = 1, KLEV
-      ZCON1(KIDIA:KFDIA,JLEV) = 1.0_JPRB
-      ZCON2(KIDIA:KFDIA,JLEV) = ZQDM(KIDIA:KFDIA,JLEV)
-    ENDDO
-    DO JLEV = 1, KLEV
-      DO JLON=KIDIA,KFDIA 
-        ZCON3(JLON,JLEV) = PCPM(JLON,JLEV)*ZEXNREFM_(JLON,JLEV)
-      ENDDO
+  DO JLEV = 1, YDCPG_OPTS%KFLEVG
+      ZCON1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) = 1.0_JPRB
+      ZCON2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) = ZQDM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)
+  ENDDO
+  DO JLEV = 1, YDCPG_OPTS%KFLEVG
+    DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA 
+        ZCON3(JLON,JLEV) = YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%CP(JLON,JLEV)*ZEXNREFM_(JLON,JLEV)
     ENDDO
-    ! missing interface !!! REK
-    CALL ARO_SUINTBUDGET_OMP(KLON,KLEV,KSTEP,ZCON1,ZCON2,ZCON3,YDDDH)
-  ELSE
-    ! missing interface !!! REK
-    CALL ARO_SUINTBUDGET(KLON,KLEV,KSTEP,KFDIA,ZQDM,ZEXNREFM_,PCPM)
-  ENDIF
+  ENDDO
+  ! missing interface !!! REK
+    CALL ARO_SUINTBUDGET_OMP(YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDCPG_OPTS%KSTEP, ZCON1, ZCON2, &
+    & ZCON3, YDDDH)
+
 ENDIF
 
 
-DO JLEV = 1, KLEV-1
-  DO JLON = KIDIA,KFDIA
+DO JLEV = 1, YDCPG_OPTS%KFLEVG-1
+  DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
     ZDZZ_F_(JLON,JLEV)=ZZZ_F_(JLON,JLEV)-ZZZ_F_(JLON,JLEV-IKL)
   ENDDO
 ENDDO
-DO JLON = KIDIA,KFDIA
-  ZDZZ_F_(JLON,KLEV)=ZZZ_F_(JLON,KLEV)-POROG(JLON)*ZINVG
+DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+  ZDZZ_F_(JLON,YDCPG_OPTS%KFLEVG)=ZZZ_F_(JLON,YDCPG_OPTS%KFLEVG)-YDVARS%GEOMETRY%OROG%T0(JLON)*ZINVG
 ENDDO
 
 
@@ -1907,22 +1831,22 @@ ENDDO
 !     5 - COMPUTE DUST PROPERTIES FOR RADIATION IF LRDUST=T
 !     --------------------------------------------------------------------
 IF (LRDUST) THEN
-  PEZDIAG(KIDIA:KFDIA,1:KLEV,IOFF_MFSHAL:NGFL_EZDIAG)=0.0_JPRB
+  ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,IOFF_MFSHAL:NGFL_EZDIAG)=0.0_JPRB
   ! input dust scalar concentration in ppp from
   IEZDIAG_CHEM=NGFL_EZDIAG-IOFF_MFSHAL+1
   ! Swapp because IN and OUT will be needed simultaneously
   CALL SWAP_SVM
   ! input dust scalar concentration in ppp from
-  CALL ARO_MNHDUST (IKL,KFDIA,KLEV,NGFL_EXT, PDT,ZSVMIN_,ZZZ_,ZDZZ_,&
-   & ZPABSM__(:,1:KLEV),ZTHM__(:,1:KLEV),ZRHODREFM__(:,1:KLEV),&
-   & NSWB_MNH,KSTEP+1,ZSVM_,ZPIZA_DST_,ZCGA_DST_,ZTAUREL_DST_,ZAERD_,IEZDIAG_CHEM,&
-   & ZPEZDIAG_(:,:,IOFF_MFSHAL:NGFL_EZDIAG)           )
-  PEZDIAG(KIDIA:KFDIA,1:KLEV,IOFF_MFSHAL:NGFL_EZDIAG)=ZPEZDIAG_(KIDIA:KFDIA,1:KLEV,IOFF_MFSHAL:NGFL_EZDIAG)
+  CALL ARO_MNHDUST (IKL, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, NGFL_EXT, YDCPG_OPTS%ZDTPHY, ZSVMIN_, ZZZ_, ZDZZ_,                                       &
+  & ZPABSM__(:, 1:YDCPG_OPTS%KFLEVG), ZTHM__(:, 1:YDCPG_OPTS%KFLEVG), ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG),                                  &
+  & NSWB_MNH, YDCPG_OPTS%KSTEP+1, ZSVM_, ZPIZA_DST_, ZCGA_DST_, ZTAUREL_DST_, ZAERD_, IEZDIAG_CHEM, ZPEZDIAG_(:, :, IOFF_MFSHAL:NGFL_EZDIAG)&
+  &                                                                                                                                                                  )
+  ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,IOFF_MFSHAL:NGFL_EZDIAG)=ZPEZDIAG_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,IOFF_MFSHAL:NGFL_EZDIAG)
 ! return to tendency
   DO JGFL=1, NGFL_EXT
-    DO JLEV = 1,KLEV
-      DO JLON = KIDIA,KFDIA
-        PTENDEXT(JLON,JLEV,JGFL)=PTENDEXT(JLON,JLEV,JGFL)+(ZSVM_(JLON,JLEV,JGFL)-ZSVMIN_(JLON,JLEV,JGFL))*ZINVDT
+    DO JLEV = 1,YDCPG_OPTS%KFLEVG
+      DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZTENDEXT(JLON,JLEV,JGFL)=ZTENDEXT(JLON,JLEV,JGFL)+(ZSVM_(JLON,JLEV,JGFL)-ZSVMIN_(JLON,JLEV,JGFL))*ZINVDT
       ENDDO
     ENDDO
   ENDDO
@@ -1930,33 +1854,35 @@ ENDIF ! LRDUST
 
 IF (LSFORCS) THEN   ! <== Surface forcing for MUSC
 
-  ZTSURF(KIDIA:KFDIA) = PTM(KIDIA:KFDIA,KLEV)
-  ZTN(KIDIA:KFDIA)    = PTM(KIDIA:KFDIA,KLEV)
-  ZQS(KIDIA:KFDIA)    = PQVM(KIDIA:KFDIA,KLEV)
-  DO JLON=KIDIA,KFDIA
-    ZRHODREFM(JLON) = PAPRSFM(JLON,KLEV)/(PTM(JLON,KLEV)*PRM(JLON,KLEV))
-    ZTHETAS(JLON)   = ZTSURF(JLON)*(RATM/PAPRSM(JLON,KLEV))**RKAPPA
+  ZTSURF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) = YDMF_PHYS_BASE_STATE%T(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
+  ZTN(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)    = YDMF_PHYS_BASE_STATE%T(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
+  ZQS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)    = YDMF_PHYS_BASE_STATE%Q(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
+  DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+    ZRHODREFM(JLON) = YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(JLON,YDCPG_OPTS%KFLEVG)/(YDMF_PHYS_BASE_STATE%T(JLON,YDCPG_OPTS%KFLEVG)*YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%R(JLON,YDCPG_OPTS%KFLEVG))
+    ZTHETAS(JLON)   = ZTSURF(JLON)*(RATM/YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(JLON,YDCPG_OPTS%KFLEVG))**RKAPPA
   ENDDO
 
   LLAROME=.TRUE.
-  CALL SURF_IDEAL_FLUX(YDRIP,YDPHY0,YDPHYDS, LLAROME, KIDIA , KFDIA  , KLON, PAPHIFM(:,KLEV), &
-   & ZRHODREFM, PSFORC,ZTN,ZTSURF,PLSM,PQVM(:,KLEV), PUM(:,KLEV), PVM(:,KLEV), ZTHETAS, &
-   & ZSFTH_, ZSFRV_, ZSFU_, ZSFV_)
+  CALL SURF_IDEAL_FLUX(YDRIP, YDPHY0, YDPHYDS, LLAROME, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON,                             &
+  & YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF(:, YDCPG_OPTS%KFLEVG), ZRHODREFM, YDMF_PHYS_SURF%GSD_SFO%PGROUP,                                  &
+  & ZTN, ZTSURF, YDMF_PHYS_SURF%GSD_VF%PLSM, YDMF_PHYS_BASE_STATE%Q(:, YDCPG_OPTS%KFLEVG), YDMF_PHYS_BASE_STATE%U(:, YDCPG_OPTS%KFLEVG), &
+  & YDMF_PHYS_BASE_STATE%V(:, YDCPG_OPTS%KFLEVG), ZTHETAS, ZSFTH_, ZSFRV_, ZSFU_, ZSFV_)
 
 !* Compute PBL-diagnostics
    
    ZCAPE(:)=0._JPRB
    ZDCAPE(:)=0._JPRB
-  CALL ACCLDIA(YDXFU,YDPHY,YDMODEL%YRML_PHY_MF%YRPHY2,YDTOPH,KIDIA,KFDIA,KLON,KLEV,PUCLS,&
-   & PVCLS,PUM(:,1:KLEV),PVM(:,1:KLEV),ZCAPE,ZDCAPE,ZTKEM(:,1:KLEV),PAPHIFM(:,1:KLEV),POROG,&
-   & PUGST,PVGST,PPBLH,ICLPH)
+  CALL ACCLDIA(YDCST, YDCPG_OPTS%LXCLP, YDCPG_OPTS%LXTGST, YDCPG_OPTS%LXXGST, YDPHY, YDMODEL%YRML_PHY_MF%YRPHY2, YDTOPH, YDCPG_BNDS%KIDIA,    &
+  & YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDMF_PHYS%OUT%UCLS, YDMF_PHYS%OUT%VCLS, YDMF_PHYS_BASE_STATE%U(:, 1:YDCPG_OPTS%KFLEVG),     &
+  & YDMF_PHYS_BASE_STATE%V(:, 1:YDCPG_OPTS%KFLEVG), ZCAPE, ZDCAPE, ZTKEM(:, 1:YDCPG_OPTS%KFLEVG), YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF(:, 1:YDCPG_OPTS%KFLEVG), &
+  & YDVARS%GEOMETRY%OROG%T0, YDMF_PHYS%OUT%UGST, YDMF_PHYS%OUT%VGST, YDMF_PHYS%OUT%CLPH, ICLPH)
 
-  PPBLH(KIDIA:KFDIA)=MIN(XMAXLM,MAX(XMINLM,PPBLH(KIDIA:KFDIA))) 
+  YDMF_PHYS%OUT%CLPH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=MIN(XMAXLM,MAX(XMINLM,YDMF_PHYS%OUT%CLPH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA))) 
 
 ENDIF    ! <== End of surface forcing for MUSC
 
 !     --------------------------------------------------------------------
-!     6 - RADIATION LRAYFM (IFS) or LRAY (ACRANEB2) 
+!     6 - RADIATION LRAYFM (IFS) or LRAY (ACRANEB2)
 !     --------------------------------------------------------------------
 IF (LRAYFM.OR.LRAY) THEN
   ! prepare some input for both radiation schemes at every time step
@@ -1968,61 +1894,35 @@ IF (LRAYFM.OR.LRAY) THEN
   ENDIF
 
   ! compute saturated specific humidity
-  CALL ACTQSAT ( YDPHY,KIDIA,KFDIA,KLON,NTQSAT,KLEV, PAPRSFM, ZCPM, ZQVM, ZTM,&
-   & ZGEOSLC, ZLH, ZLSCPE, ZQSAT, ZQW, PRH, ZTW)  
-
-  IF (YSPP_CONFIG%LSPP.AND.YSPP_CONFIG%LPERT_RADGR) THEN
-   IF (YSPP_CONFIG%LLNN_MEAN1.OR.YSPP_CONFIG%LLNN_MEAN1_RADGR) THEN
-    ZMU = -0.5_JPRB * (YSPP_CONFIG%CMPERT_RADGR * YSPP_CONFIG%SDEV)**2
-   ELSE
-    ZMU = 0._JPRB
-   ENDIF
-   DO JLON=KIDIA,KFDIA
-    ZVAL = RADGR*EXP(ZMU+YSPP_CONFIG%CMPERT_RADGR*PGP2DSPP(JLON,YSPP%MP_RADGR))
-    ZRADGR(JLON) = MAX(YSPP_CONFIG%CLIP_RADGR(1),MIN(ZVAL,YSPP_CONFIG%CLIP_RADGR(2)))
-   ENDDO
-   IF ( YSPP_CONFIG%IEZDIAG_POS > 0 ) THEN
-    JKO=2*YSPP%MP_RADGR-1
-    JKE=2*YSPP%MP_RADGR
-    DO JLON=KIDIA,KFDIA
-     PEZDIAG(JLON,JKO,YSPP_CONFIG%IEZDIAG_POS) = PGP2DSPP(JLON,YSPP%MP_RADGR)
-     PEZDIAG(JLON,JKE,YSPP_CONFIG%IEZDIAG_POS) = ZRADGR(JLON)
-    ENDDO
-   ENDIF
+  CALL ACTQSAT (YDCST, YDPHY, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, NTQSAT, YDCPG_OPTS%KFLEVG,   &
+                & YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF, ZCPM, ZQVM, ZTM, ZGEOSLC, ZLH, ZLSCPE, ZQSAT, ZQW, YDCPG_MISC%RH, &
+                & ZTW)  
+
+  IF (ZSPP_ALL%YSPP_RADGR%LPERT) THEN
+   CALL APPLY_SPP(ZSPP_ALL%YSPP_RADGR, &
+                & YDCPG_OPTS%KLON,YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA, &
+                & RADGR,ZRADGR)
   ELSE
-   DO JLON=KIDIA,KFDIA
+   DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
     ZRADGR(JLON) = RADGR
    ENDDO
   ENDIF
 
-  IF (YSPP_CONFIG%LSPP.AND.YSPP_CONFIG%LPERT_RADSN) THEN
-   IF (YSPP_CONFIG%LLNN_MEAN1.OR.YSPP_CONFIG%LLNN_MEAN1_RADSN) THEN
-    ZMU = -0.5_JPRB * (YSPP_CONFIG%CMPERT_RADSN * YSPP_CONFIG%SDEV)**2
-   ELSE
-    ZMU = 0._JPRB
-   ENDIF
-   DO JLON=KIDIA,KFDIA
-    ZVAL = RADSN*EXP(ZMU+YSPP_CONFIG%CMPERT_RADSN*PGP2DSPP(JLON,YSPP%MP_RADSN))
-    ZRADSN(JLON) = MAX(YSPP_CONFIG%CLIP_RADSN(1),MIN(ZVAL,YSPP_CONFIG%CLIP_RADSN(2)))
-   ENDDO
-   IF ( YSPP_CONFIG%IEZDIAG_POS > 0 ) THEN
-    JKO=2*YSPP%MP_RADSN-1
-    JKE=2*YSPP%MP_RADSN
-    DO JLON=KIDIA,KFDIA
-     PEZDIAG(JLON,JKO,YSPP_CONFIG%IEZDIAG_POS) = PGP2DSPP(JLON,YSPP%MP_RADSN)
-     PEZDIAG(JLON,JKE,YSPP_CONFIG%IEZDIAG_POS) = ZRADSN(JLON)
-    ENDDO
-   ENDIF
+  IF (ZSPP_ALL%YSPP_RADSN%LPERT) THEN
+   CALL APPLY_SPP(ZSPP_ALL%YSPP_RADSN, &
+                & YDCPG_OPTS%KLON,YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA, &
+                & RADSN,ZRADSN)
   ELSE
-   DO JLON=KIDIA,KFDIA
+   DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
     ZRADSN(JLON) = RADSN
    ENDDO
   ENDIF
-  ! initialisation des humidite (dans le rayonnement, l'eau liquide nuageuse 
+
+  ! initialisation des humidite (dans le rayonnement, l'eau liquide nuageuse
   ! et la glace sont donne par des hu par rapport au gaz.
   ! (qi/qa+qv pour ice par ex. C'est donc different de ri)
-  DO JLEV=KTDIA,KLEV
-    DO JLON=KIDIA,KFDIA 
+  DO JLEV=YDCPG_OPTS%KTDIA,YDCPG_OPTS%KFLEVG
+    DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA 
        ZQICE(JLON,JLEV)= MAX(0.0_JPRB,&
         & (ZQIM(JLON,JLEV) + ZQSM(JLON,JLEV)*ZRADSN(JLON) + ZQGM(JLON,JLEV)*ZRADGR(JLON))/&
         & (1.0_JPRB-ZQIM(JLON,JLEV)-ZQCM(JLON,JLEV)-ZQRM(JLON,JLEV)&
@@ -2037,117 +1937,162 @@ IF (LRAYFM.OR.LRAY) THEN
   ENDDO
 
   ! store cloud water content for RTTOV
-  IF (YIRAD%LGP) PQIRAD(KIDIA:KFDIA,:) = ZQICE(KIDIA:KFDIA,:)
-  IF (YLRAD%LGP) PQLRAD(KIDIA:KFDIA,:) = ZQLIQ(KIDIA:KFDIA,:)
+  IF (YIRAD%LGP) YDVARS%IRAD%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:) = ZQICE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)
+  IF (YLRAD%LGP) YDVARS%LRAD%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:) = ZQLIQ(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)
 
   ! Hannu Savijarvi diffuse -> direct albedo correction from hlradia,
-  ! Assuming that SURFEX does not make difference between  
+  ! Assuming that SURFEX does not make difference between
   ! dir/dif albedo as surfex/SURFEX/albedo_from_nir_vis.F90 defines
   ! PSCA_ALB(:,:) = PDIR_ALB(:,:)
-  
+
 ! Albedo dans les intervalles, direct (parallel) et diffus (diffuse).
   IF (NSW==6.OR.NSW==1) THEN
     IF (LLMSE) THEN
       DO JSW=1,NSW
-        ZALBP(KIDIA:KFDIA,JSW)=PGPAR(KIDIA:KFDIA,MALBDIR-1+JSW)
-        ZALBD(KIDIA:KFDIA,JSW)=PGPAR(KIDIA:KFDIA,MALBSCA-1+JSW)
+        ZALBP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=YDCPG_GPAR%ALBDIR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)
+        ZALBD(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=YDCPG_GPAR%ALBSCA(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)
         IF (LHLRADUPD) THEN
-          DO JLON=KIDIA,KFDIA
-            ZSALBCOR=0.2_JPRB/(1._JPRB+PMU0(JLON))-0.12_JPRB
+          DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+            ZSALBCOR=0.2_JPRB/(1._JPRB+ZRDG_MU0(JLON))-0.12_JPRB
             ZALBP(JLON,JSW)=ZALBD(JLON,JSW)+ZSALBCOR
           ENDDO
         ENDIF
       ENDDO
     ELSEIF (LSFORCS) THEN
       DO JSW=1,NSW
-        ZALBP(KIDIA:KFDIA,JSW)=RALB_FORC
-        ZALBD(KIDIA:KFDIA,JSW)=RALB_FORC
+        ZALBP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=RALB_FORC
+        ZALBD(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=RALB_FORC
 !  direct>diffuse correction might be applied to RALB_FORC,too:
 !              ZALBP(JLON,JSW)=RALB_FORC+ZSALBCOR
       ENDDO
     ELSE
      !pour pouvoir tourner sans la surface
       DO JSW=1,NSW
-        ZALBP(KIDIA:KFDIA,JSW)=PALBIN(KIDIA:KFDIA)
-        ZALBD(KIDIA:KFDIA,JSW)=PALBIN(KIDIA:KFDIA)
+        ZALBP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=YDMF_PHYS_SURF%GSD_VF%PALBF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+        ZALBD(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=YDMF_PHYS_SURF%GSD_VF%PALBF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
 !              ZALBP(JLON,JSW)=PALBIN(JLON)+ZSALBCOR
       ENDDO
     ENDIF
 
-  ! Spectral average albedo done with RSUN2 weights, 
+  ! Spectral average albedo done with RSUN2 weights,
   ! to be applied for HLRADIA, ACRANEB2 which use a single solar spectral band
     IF (LHLRADUPD) THEN
-      ZALBP1(KIDIA:KFDIA)=0._JPRB
-      ZALBD1(KIDIA:KFDIA)=0._JPRB
+      ZALBP1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB
+      ZALBD1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB
       DO JSW=1,NSW
-        DO JLON=KIDIA,KFDIA
+        DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
           ZALBP1(JLON)=ZALBP1(JLON)+RSUN2(JSW)*ZALBP(JLON,JSW)
           ZALBD1(JLON)=ZALBD1(JLON)+RSUN2(JSW)*ZALBD(JLON,JSW)
         ENDDO
       ENDDO
     ELSE
-       ZALBP1(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MALBDIR)
-       ZALBD1(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MALBSCA)
+       ZALBP1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%ALBDIR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)
+       ZALBD1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%ALBSCA(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)
     ENDIF
-
   ELSE
-
     CALL ABOR1 ('ALBEDO FOR NSW/= 1 or 6 not defined in apl_arome')
-
   ENDIF
 
   ! all albedo operations
 
   IF (LLMSE) THEN
-    ZEMIS(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MVEMIS)
-    ZTSURF(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MVTS)
+    ZEMIS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%VEMIS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+    ZTSURF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%VTS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
     ! protection for E Zone, Where surface scheme send back EMIS and T =0
     ! the protection in aro_ground_paramn is not sufficient !!! WHY ??
-    DO JLON=KIDIA,KFDIA
+    DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
       IF (ZEMIS(JLON)==0._JPRB) THEN
         ZEMIS(JLON)=1.0_JPRB
         ZTSURF(JLON)=288.0_JPRB
       ENDIF
     ENDDO
   ELSEIF (LSFORCS) THEN
-    ZEMIS(KIDIA:KFDIA)=REMIS_FORC
+    ZEMIS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=REMIS_FORC
   ELSE
-    ZEMIS(KIDIA:KFDIA)=0.5_JPRB ! value 0.5 is suspicious
-    ZTSURF(KIDIA:KFDIA)=ZTM(KIDIA:KFDIA,KLEV)
+    ZEMIS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0.5_JPRB ! value 0.5 is suspicious
+    ZTSURF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=ZTM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
   ENDIF !LLMSE EMIS
   
   ! initialization of aerosols
   IF (LRAY.AND.NRAY == 2.AND.LRADFLEX.AND.LRSTAER) THEN
 
     ! old ("standard") aerosols for LRAY only
-    ZAER(KIDIA:KFDIA,1:KTDIA-1,1)=0._JPRB
-    DO JLEV=KTDIA-1,KLEV
+    ZAER(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KTDIA-1,1)=0._JPRB
+    DO JLEV=YDCPG_OPTS%KTDIA-1,YDCPG_OPTS%KFLEVG
       ZVETAH(JLEV)=STPREH(JLEV)/VP00
     ENDDO
-    ZAEO=AERCS1*ZVETAH(KTDIA-1)+AERCS3*ZVETAH(KTDIA-1)**3+AERCS5*ZVETAH(KTDIA-1)**5
-    DO JLEV=KTDIA,KLEV
+    ZAEO=AERCS1*ZVETAH(YDCPG_OPTS%KTDIA-1)+AERCS3*ZVETAH(YDCPG_OPTS%KTDIA-1)**3+AERCS5*ZVETAH(YDCPG_OPTS%KTDIA-1)**5
+    DO JLEV=YDCPG_OPTS%KTDIA,YDCPG_OPTS%KFLEVG
       ZAEN=AERCS1*ZVETAH(JLEV)+AERCS3*ZVETAH(JLEV)**3+AERCS5*ZVETAH(JLEV)**5
-      ZAER(KIDIA:KFDIA,JLEV,1)=ZAEN-ZAEO
+      ZAER(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,1)=ZAEN-ZAEO
       ZAEO=ZAEN
     ENDDO
-    ZAER(KIDIA:KFDIA,1:KLEV,2:6)=0._JPRB
+    ZAER(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,2:6)=0._JPRB
   
   ELSE
     
-    IF (NAER >= 1 ) THEN
+    IF (NAER >= 1 .AND. NAERMACC == 0) THEN
       IF(YSD_VAD%NUMFLDS >= 4) THEN
-        CALL RADAER ( YDMODEL%YRML_PHY_RAD%YREAERD,YDERAD,YDPHY, KIDIA , KFDIA , KLON  , KLEV,&
-         & PAPRSM,PAPRSFM,ZTM,ZTSURF,PAESEA,PAELAN,PAESOO,PAEDES,PAESUL,PAEVOL,ZAER,ZAERINDS)
+        CALL RADAER ( YDMODEL%YRML_PHY_RAD%YREAERD, YDERAD, YDPHY, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA,               &
+        & YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF, &
+        & ZTM, ZTSURF, YDMF_PHYS_SURF%GSD_VA%PSEA, YDMF_PHYS_SURF%GSD_VA%PLAN, YDMF_PHYS_SURF%GSD_VA%PSOO,           &
+        & YDMF_PHYS_SURF%GSD_VA%PDES, YDMF_PHYS_SURF%GSD_VA%PSUL, YDMF_PHYS_SURF%GSD_VA%PVOL, ZAER,                  &
+        & ZAERINDS)
       ELSE
         WRITE(NULOUT,*) 'YSD_VAD%NUMFLDS SHOULD BE >= 4, IT IS: ',YSD_VAD%NUMFLDS
         CALL ABOR1('APL_AROME: PB AEROSOLS!')
         ! NB : this abort excludes the use of radact. REK.
       ENDIF
+    ELSE
+      !AEROSOLS from MACC (NAERMACC=1)
+      ZDUM=1._JPRB
+      ! in E Zone, there are YDVARS%GEOMETRY%GEMU%T0 < 0.
+      ZGELAM=YDVARS%GEOMETRY%GELAM%T0
+      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        IF (ZGELAM(JLON)<0._JPRB) THEN
+              ZGELAM(JLON)=ZGELAM(JLON)+2*RPI
+        ENDIF
+      ENDDO
+      ! Init ZCHTIX
+      ! Warning YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE is 0:YDCPG_OPTS%KFLEVG here whereas in radintg it is
+      ! 1:YDCPG_OPTS%KFLEVG+1
+      DO JK=2,YDCPG_OPTS%KFLEVG
+        ZCAPH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK)=YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK-1)
+        ZTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK)=(ZTM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK-1)*YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK-1)&
+      & *(YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK)-YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK-1))&
+      & +ZTM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK)*YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK)*(YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK-1)&
+     & -YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK-1)))&
+     &*(1.0_JPRB/(YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK-1)*(YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK)-YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK-1))))
+        ZCHTIX(1:YDCPG_OPTS%KLON,JK)=ZTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK)
+      ENDDO
+      ! QUANTITIES AT BOUNDARIES
+      ZCAPH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)=YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,0)
+      ZCAPH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG+1)=YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
+      ZTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)=ZTM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)-YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)*(ZTM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)&
+       & -ZTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,2))/(YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)-YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1))
+      ZTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG+1)=ZTSURF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+      ZCHTIX(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG+1)=ZTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG+1)
+      ZCHTIX(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)=ZTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)
+      IAERO=SIZE(ZAERO,3)
+      ZGEMU_D=REAL(YDVARS%GEOMETRY%GEMU%T0,JPRD)
+      CALL RADACT(YDMODEL%YRML_PHY_RAD%YREAERD,YDERAD,YDMODEL%YRML_PHY_AER%YREAERSNK,YDRIP, &
+         & YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG,&
+         & 1 , YDCPG_OPTS%KLON , YDCPG_OPTS%KLON  ,0 , 1,&
+         & YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE , ZGELAM, ZGEMU_D, YDVARS%GEOMETRY%GECLO%T0, YDVARS%GEOMETRY%GESLO%T0, ZCHTIX,&
+         & ZQVM   , ZQSAT  , ZDUM  ,&
+         & ZRAER  , ZAERO,ZROZ  )
+      DO JAE=1,6
+        DO JK=1,YDCPG_OPTS%KFLEVG
+          DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+            ZAER(JLON,JK,JAE)=ZRAER(JLON,JAE,JK)
+          ENDDO
+        ENDDO
+      ENDDO
     ENDIF
 
     IF (LRDUST) THEN
       ! We use the extinction coefficient explicitly solved by ARO_MNHDUST
-      ZAER(KIDIA:KFDIA,1:KLEV,3) = ZAERD_(KIDIA:KFDIA,1:KLEV)
+      ZAER(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,3) = ZAERD_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
     ENDIF
 
   ENDIF
@@ -2156,156 +2101,143 @@ IF (LRAYFM.OR.LRAY) THEN
   ! initialization of ozone
   IF (NOZOCL == 1) THEN
     ! as in IFS
-    CALL RADOZC(KIDIA,KFDIA,KLON,KLEV,1,KLON,0,PAPRSM,PGEMU,ZROZ)
-    DO JK=1,KLEV
-      DO JLON=KIDIA,KFDIA
-        ZQO3(JLON,JK)=ZROZ(JLON,JK)/PDELPM(JLON,JK)
+    CALL RADOZC(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, 1, YDCPG_OPTS%KLON, &
+    & 0, YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, YDVARS%GEOMETRY%GEMU%T0, ZROZ)
+    DO JK=1,YDCPG_OPTS%KFLEVG
+      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZQO3(JLON,JK)=ZROZ(JLON,JK)/YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JK)
       ENDDO
     ENDDO
   ELSEIF (NOZOCL == 2) THEN
     ! as in ARPEGE (from clim profiles)
-    CALL SUOZON(KIDIA,KFDIA,KLON,KLEV,ZQO3,.FALSE.,PAPRSM,PRDELPM,LO3ABC,PVO3ABC)
+    CALL SUOZON(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, ZQO3,                                  &
+    & .FALSE., YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%RDELP, LO3ABC, YDMF_PHYS_SURF%GSD_VC%PA,   &
+    & YDMF_PHYS_SURF%GSD_VC%PB, YDMF_PHYS_SURF%GSD_VC%PC)
+  ENDIF
+  IF (NOZOCL==3.OR.NOZOCL==4) THEN ! Clims MACC
+     CALL RADGHG (YDERAD,YDRIP,YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA,YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KLON, &
+     & YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE,YDVARS%GEOMETRY%GEMU%T0,&
+     & ZQCO2, ZQCH4, ZQN2O, ZQNO2, ZQC11, ZQC12, ZROZ, ZQC22, ZQCL4 )
+    DO JK=1,YDCPG_OPTS%KFLEVG
+      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZQO3(JLON,JK)=ZROZ(JLON,JK)
+      ENDDO
+    ENDDO
   ENDIF
 
+
 ELSE
 
   DO JSW=1,NSW
-    ZALBP(KIDIA:KFDIA,JSW)=0._JPRB 
-    ZALBD(KIDIA:KFDIA,JSW)=0._JPRB
+    ZALBP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=0._JPRB 
+    ZALBD(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=0._JPRB
   ENDDO
 
 ENDIF
  !of preparation of input for LRAYFM, LRAY at every time step
- 
+
  IF (LRAYFM) THEN
    ! Intermittent call to radiation interface
-   IF (MOD(KSTEP,NRADFR) == 0) THEN 
-     CALL RECMWF (YDGEOMETRY%YRDIMV, YDMODEL,         &
-     & KIDIA   , KFDIA , KLON     , KLEV     ,           & 
-     & ZALBD   , ZALBP , PAPRSM   , PAPRSFM  ,           &
-     & PCLFS   , ZQO3  , ZAER     , PDELPM   , ZEMIS   , &
-     & PMU0M   , ZQV   , ZQSAT    , ZQICE    , ZQLIQ   , &
-     & ZQSM    , ZQRM  , PLSM     , ZTM      , ZTSURF  , &
-     & PGP2DSPP, PEZDIAG,                                &
-     & PEMTD   , PEMTU , PTRSO    , PFRTHC   , PFRTH   , & 
-     & PFRSOC  , PFRSO , ZZS_FSWDIR, ZZS_FSWDIF, ZFSDNN  , &
-     & ZFSDNV  , ZCTRSO, ZCEMTR   , ZTRSOD   , ZTRSODIR, &
-     & ZTRSODIF, ZPIZA_DST_,ZCGA_DST_,ZTAUREL_DST_,ZAERINDS,&
-     & PGELAM , PGEMU ,PGPAR , &
-     & PMU0LU , ZALBD1 , ZFRSOLU)
+   IF (MOD(YDCPG_OPTS%KSTEP,NRADFR) == 0) THEN 
+     CALL RECMWF (YDGEOMETRY%YRDIMV, YDMODEL, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, &
+     & YDCPG_OPTS%KSW, &
+     & NOZOCL   ,NAERMACC, IAERO, &
+     & ZALBD, ZALBP, YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF,           &
+     & YDVARS%A%T1, ZQO3,ZQCO2 , ZQCH4    , ZQN2O   , &
+     & ZQNO2   , ZQC11   , ZQC12 , ZQC22    , ZQCL4   , &
+     & ZAER, ZAERO, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP, ZEMIS, &
+     & ZRDG_MU0M, ZQV, ZQSAT,                 &
+     & ZQICE, ZQLIQ, ZQSM, ZQRM, YDMF_PHYS_SURF%GSD_VF%PLSM, ZTM, ZTSURF, YDMF_PHYS%RAD%EMTD, YDMF_PHYS%RAD%EMTU,     &
+     & YDMF_PHYS%RAD%TRSW, YDMF_PHYS%OUT%FRTHC, YDMF_PHYS%OUT%FRTH, YDMF_PHYS%OUT%FRSOC, YDMF_PHYS%OUT%FRSO,          &
+     & ZZS_FSWDIR, ZZS_FSWDIF, ZFSDNN, ZFSDNV, ZCTRSO, ZCEMTR, ZTRSOD, ZTRSODIR, ZTRSODIF,                            &
+     & ZPIZA_DST_, ZCGA_DST_, ZTAUREL_DST_, ZAERINDS, YDVARS%GEOMETRY%GELAM%T0, YDVARS%GEOMETRY%GEMU%T0,              &
+     & YDCPG_GPAR%SWDIR, YDCPG_GPAR%SWDIF, ZRDG_MU0LU, ZALBD1, ZFRSOLU, &
+     & YSPP_RSWINHF=ZSPP_ALL%YSPP_RSWINHF, YSPP_RLWINHF=ZSPP_ALL%YSPP_RLWINHF)
    ELSE
-     IF (LLMSE) THEN 
-       DO JSW=1,NSW 
-         ZTRSODIR(KIDIA:KFDIA,JSW)=PGPAR(KIDIA:KFDIA,MSWDIR+JSW-1)
-         ZTRSODIF(KIDIA:KFDIA,JSW)=PGPAR(KIDIA:KFDIA,MSWDIF+JSW-1)
-       ENDDO 
+     IF (LLMSE) THEN
+       DO JSW=1,NSW
+         ZTRSODIR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=YDCPG_GPAR%SWDIR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)
+         ZTRSODIF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=YDCPG_GPAR%SWDIF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)
+       ENDDO
      ENDIF
      ZCTRSO(:,:)=0._JPRB
    ENDIF
    ! daand: radflex
    IF (LRADFLEX) THEN
-     YLRADPROC => NEWINTPROC(YDPROCSET,'Radiation')
-     ZFRSO => NEWINTFIELD(YLRADPROC,KLON,KLEV,'FRSO','H','F')
-     ZFRTH => NEWINTFIELD(YLRADPROC,KLON,KLEV,'FRTH','H','F')
+     YLRADPROC => NEWINTPROC(YLPROCSET,'Radiation')
+     ZFRSO => NEWINTFIELD(YLRADPROC,YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,'FRSO','H','F')
+     ZFRTH => NEWINTFIELD(YLRADPROC,YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,'FRTH','H','F')
    ENDIF
 
-    DO JLEV=1,KLEV
-      ZTENT(KIDIA:KFDIA,JLEV)=0.0_JPRB
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
+      ZTENT(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0.0_JPRB
     ENDDO
 
-   ZSUDU(KIDIA:KFDIA)=0.0_JPRB
+   ZSUDU(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0.0_JPRB
 
-   CALL RADHEAT&
-   & (  YDERAD,YDERDI,YDMODEL%YRML_PHY_MF, KIDIA  , KFDIA  , KLON   , KLEV,&
-   & PAPRSM  , ZEMIS  , PEMTD  , PMU0, ZQVM,&
-   & ZTENT  , PTRSO  , ZTRSOD , ZTSURF   , PDT,&
-   & ZTRSODIR,ZTRSODIF, ZALBD , ZALBP,&
-   ! daand: radflex; replaced PFRSO and PRFTH by pointers
-   & ZFRSO  , ZFRTH  , PFRSODS, PFRTHDS, ZCEMTR , ZCTRSO , PFRSOC , PFRTHC,&
-   & ZSUDU  , ZSDUR  , ZDSRP  , ZZS_FSWDIR , ZZS_FSWDIF    ,&
-   & PFRSOPS, ZFRSOFS, PFRSOPT )
+   CALL RADHEAT  (  YDERAD, YDERDI, YDMODEL%YRML_PHY_MF, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON,     &
+   & YDCPG_OPTS%KFLEVG, YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, ZEMIS, YDMF_PHYS%RAD%EMTD, ZRDG_MU0, ZQVM,             &
+   & ZTENT, YDMF_PHYS%RAD%TRSW, ZTRSOD, ZTSURF, YDCPG_OPTS%ZDTPHY, ZTRSODIR, ZTRSODIF, ZALBD, ZALBP, ZFRSO,                  &
+   & ZFRTH, YDMF_PHYS%OUT%FRSODS, YDMF_PHYS%OUT%FRTHDS, ZCEMTR, ZCTRSO, YDMF_PHYS%OUT%FRSOC, YDMF_PHYS%OUT%FRTHC, &
+   & ZSUDU, ZSDUR, ZDSRP, ZZS_FSWDIR, ZZS_FSWDIF, YDMF_PHYS%OUT%FRSOPS, ZFRSOFS, YDMF_PHYS%OUT%FRSOPT             &
+   &                                                                                                                        )
 
   ! daand: radflex
   IF (LRADFLEX) THEN
     ! store for further calculations and diagnostics
     ! warning : pointers. REK
-    PFRSO(:,:,1)=ZFRSO
-    PFRTH(:,:,1)=ZFRTH
+    YDMF_PHYS%OUT%FRSO(:,:,1)=ZFRSO
+    YDMF_PHYS%OUT%FRTH(:,:,1)=ZFRTH
   ELSE
   ! daand: if LRADFLEX, the contribution to temperature is done by
   ! cptend_flex/cputqy
     ! update temperature tendency by radiative contribution
-    DO JLEV=1,KLEV
-      DO JLON = KIDIA, KFDIA
-        PTENDT(JLON,JLEV)=PTENDT(JLON,JLEV)+ZTENT(JLON,JLEV)
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
+      DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
+        ZTENDT(JLON,JLEV)=ZTENDT(JLON,JLEV)+ZTENT(JLON,JLEV)
       ENDDO
     ENDDO
   ENDIF
 
-  DO JLON = KIDIA, KFDIA
+  DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
     ! update sunshine duration [s]
-    PSDUR(JLON)=PSDUR(JLON)+ZSDUR(JLON)*TSTEP
+    !YDMF_PHYS_SURF%GSD_VD%PSUND(JLON)=YDMF_PHYS_SURF%GSD_VD%PSUND(JLON)+ZSDUR(JLON)*TSTEP
+    YDMF_PHYS_SURF%GSD_VD%PSUND(JLON)=YDMF_PHYS_SURF%GSD_VD%PSUND(JLON)+ZSDUR(JLON)*ZADTMS ! fix stepx case
     ! Estimate of the direct normal irradiance, with securities
-    IF (PMU0(JLON) > 3.0E-02_JPRB) THEN
-      PFRSDNI(JLON)=MAX(0.0_JPRB,PFRSOPS(JLON)/PMU0(JLON))
+    IF (ZRDG_MU0(JLON) > 3.0E-02_JPRB) THEN
+      YDMF_PHYS%OUT%FRSDNI(JLON)=MAX(0.0_JPRB,YDMF_PHYS%OUT%FRSOPS(JLON)/ZRDG_MU0(JLON))
     ELSE
-      PFRSDNI(JLON)=MAX(0.0_JPRB,PFRSOPS(JLON))
+      YDMF_PHYS%OUT%FRSDNI(JLON)=MAX(0.0_JPRB,YDMF_PHYS%OUT%FRSOPS(JLON))
     ENDIF
   ENDDO 
 
-  IF( MOD(KSTEP+1,NPRINTFR)==0) THEN
+  IF( MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
     WRITE(NULOUT,*)'sous apl_arome apres rayonnement ZTENT=',ZTENT(NPTP,30:41)
     IF (LLMSE) THEN
       DO JSW=1, NSW
         WRITE(NULOUT,*)'ZSFSWDIR ZSFSWDIF ZFSDNN ZFSDNV PFRSO',&
-         & ZZS_FSWDIR(NPTP,JSW),ZZS_FSWDIF(NPTP,JSW),ZFSDNN(NPTP), ZFSDNV(NPTP),PFRSO(NPTP,KLEV,1)
+         & ZZS_FSWDIR(NPTP,JSW),ZZS_FSWDIF(NPTP,JSW),ZFSDNN(NPTP), ZFSDNV(NPTP),YDMF_PHYS%OUT%FRSO(NPTP,YDCPG_OPTS%KFLEVG,1)
         WRITE(NULOUT,*)'ZALBD ZALBP',ZALBD(NPTP,JSW),ZALBP(NPTP,JSW)
       ENDDO
     ENDIF
     WRITE(NULOUT,*)ZFSDNN(NPTP),ZFSDNV(NPTP)
-    WRITE (NULOUT,*)'TSURF EMIS ZFRTH',ZTSURF(NPTP),ZEMIS(NPTP),PFRTHDS(NPTP)
+    WRITE (NULOUT,*)'TSURF EMIS ZFRTH',ZTSURF(NPTP),ZEMIS(NPTP),YDMF_PHYS%OUT%FRTHDS(NPTP)
   ENDIF
 
   IF (LFLEXDIA) THEN
-    IF (LDDH_OMP) THEN
-      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,PFRSO(:,:,1),'FCTRAYSO',YDDDH)
-      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,PFRTH(:,:,1),'FCTRAYTH',YDDDH)
-    ELSE
-      CALL ADD_FIELD_3D(YLDDH,PFRSO(:,:,1),'FCTRAYSO','F','ARP',.TRUE.,.TRUE.)
-      CALL ADD_FIELD_3D(YLDDH,PFRTH(:,:,1),'FCTRAYTH','F','ARP',.TRUE.,.TRUE.)
-    ENDIF
+      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH, YDMF_PHYS%OUT%FRSO(:, :, 1), 'FCTRAYSO', YDDDH&
+      &             )
+      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH, YDMF_PHYS%OUT%FRTH(:, :, 1), 'FCTRAYTH', YDDDH&
+      &             )
   ENDIF
 
 ELSE
 
-  PFRSOC(KIDIA:KFDIA,0:1)=0.0_JPRB
-  PFRTHC(KIDIA:KFDIA,0:1)=0.0_JPRB
+  YDMF_PHYS%OUT%FRSOC(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,0:1)=0.0_JPRB
+  YDMF_PHYS%OUT%FRTHC(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,0:1)=0.0_JPRB
 
 ENDIF  ! LRAYFM
 
-!     ------------------------------------------------------------------
-!     NEBULOSITE (CONVECTIVE+STRATIFORME) A TROIS NIVEAUX.
-!     DIAGNOSTIC OF THREE LEVELS (CONVECTIVE+STRATIFORM) CLOUDINESS.
-
-! protect cloudiness from being 0 or 1 (needed for ACRANEB2 and ACNPART)
-DO JLEV=KTDIA,KLEV
-  DO JLON=KIDIA,KFDIA
-    ZNEB0(JLON,JLEV)=MAX(ZEPSNEB,MIN(1._JPRB-ZEPSNEB,PCLFS(JLON,JLEV)))
-  ENDDO
-ENDDO
-
-! decorrelation depth for cloud overlaps
-
-IF (LRNUEXP) THEN
-  DO JLON=KIDIA,KFDIA
-    ZDECRD(JLON)=RDECRD1+RDECRD2*EXP(-((ASIN(PGEMU(JLON))-RDECRD3*RDECLI)/RDECRD4)**2)
-  ENDDO
-ENDIF
-
-! calculate high, medium, low and total cloud cover
-CALL ACNPART(YDMODEL%YRML_PHY_MF,KIDIA,KFDIA,KLON,NTNEBU,KLEV,&
- & PAPHIM,PAPHIFM,PAPRSFM,ZDECRD,ZNEB0,&
- & PCLCH,PCLCM,PCLCL,PCLCT,ZCLCT_RAD)
 
 IF (LRAY.AND.NRAY == 2.AND.LRADFLEX) THEN
 
@@ -2317,8 +2249,8 @@ IF (LRAY.AND.NRAY == 2.AND.LRADFLEX) THEN
 
   ! initialization of cloud ice, cloud liquid and specific humidity
   ! (with respect to moist air, i.e. excluding hydrometeors)
-  DO JLEV=KTDIA,KLEV
-    DO JLON=KIDIA,KFDIA
+  DO JLEV=YDCPG_OPTS%KTDIA,YDCPG_OPTS%KFLEVG
+    DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
       ZQICE(JLON,JLEV)=MAX(0.0_JPRB, ZQIM(JLON,JLEV)/&
        & (1.0_JPRB-ZQIM(JLON,JLEV)-ZQCM(JLON,JLEV)-ZQRM(JLON,JLEV)&
        & -ZQGM(JLON,JLEV)-ZQSM(JLON,JLEV)-ZQHM(JLON,JLEV)))
@@ -2332,46 +2264,63 @@ IF (LRAY.AND.NRAY == 2.AND.LRADFLEX) THEN
   ENDDO
 
   ! store cloud water content for RTTOV
-  IF (YIRAD%LGP) PQIRAD(KIDIA:KFDIA,:) = ZQICE(KIDIA:KFDIA,:)
-  IF (YLRAD%LGP) PQLRAD(KIDIA:KFDIA,:) = ZQLIQ(KIDIA:KFDIA,:)
+  IF (YIRAD%LGP) YDVARS%IRAD%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:) = ZQICE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)
+  IF (YLRAD%LGP) YDVARS%LRAD%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:) = ZQLIQ(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)
 
   ! initialization of ozone
   IF (NOZOCL == 1) THEN
     ! as in IFS
-    CALL RADOZC(KIDIA,KFDIA,KLON,KLEV,1,KLON,0,PAPRSM,PGEMU,ZROZ)
-    DO JK=1,KLEV
-      DO JLON=KIDIA,KFDIA
-        ZQO3(JLON,JK)=ZROZ(JLON,JK)/PDELPM(JLON,JK)
+    CALL RADOZC(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, 1, YDCPG_OPTS%KLON, &
+    & 0, YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, YDVARS%GEOMETRY%GEMU%T0, ZROZ)
+    DO JK=1,YDCPG_OPTS%KFLEVG
+      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZQO3(JLON,JK)=ZROZ(JLON,JK)/YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JK)
       ENDDO
     ENDDO
   ELSEIF (NOZOCL == 2) THEN
     ! as in ARPEGE (from clim profiles)
-    CALL SUOZON(KIDIA,KFDIA,KLON,KLEV,ZQO3,.FALSE.,PAPRSM,PRDELPM,LO3ABC,PVO3ABC)
+    CALL SUOZON(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, ZQO3,                                  &
+    & .FALSE., YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%RDELP, LO3ABC, YDMF_PHYS_SURF%GSD_VC%PA,   &
+    & YDMF_PHYS_SURF%GSD_VC%PB, YDMF_PHYS_SURF%GSD_VC%PC)
+  ENDIF
+  IF (NOZOCL==3.OR.NOZOCL==4) THEN ! Clims MACC
+     CALL RADGHG (YDERAD,YDRIP,YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA,YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KLON, &
+     & YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE,YDVARS%GEOMETRY%GEMU%T0,&
+     & ZQCO2, ZQCH4, ZQN2O, ZQNO2, ZQC11, ZQC12, ZROZ, ZQC22, ZQCL4 )
+    DO JK=1,YDCPG_OPTS%KFLEVG
+      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZQO3(JLON,JK)=ZROZ(JLON,JK)
+      ENDDO
+    ENDDO
   ENDIF
 
+
   ! initialization of aerosols
   IF (LRAY.AND.NRAY == 2.AND.LRADFLEX.AND.LRSTAER) THEN
 
-    ZAER(KIDIA:KFDIA,1:KTDIA-1,1)=0._JPRB
+    ZAER(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KTDIA-1,1)=0._JPRB
     ! old ("standard") aerosols
-    DO JLEV=KTDIA-1,KLEV
+    DO JLEV=YDCPG_OPTS%KTDIA-1,YDCPG_OPTS%KFLEVG
       ZVETAH(JLEV)=STPREH(JLEV)/VP00
     ENDDO
-    ZAEO=AERCS1*ZVETAH(KTDIA-1)+AERCS3*ZVETAH(KTDIA-1)**3+AERCS5*ZVETAH(KTDIA-1)**5
-    DO JLEV=KTDIA,KLEV
+    ZAEO=AERCS1*ZVETAH(YDCPG_OPTS%KTDIA-1)+AERCS3*ZVETAH(YDCPG_OPTS%KTDIA-1)**3+AERCS5*ZVETAH(YDCPG_OPTS%KTDIA-1)**5
+    DO JLEV=YDCPG_OPTS%KTDIA,YDCPG_OPTS%KFLEVG
       ZAEN=AERCS1*ZVETAH(JLEV)+AERCS3*ZVETAH(JLEV)**3+AERCS5*ZVETAH(JLEV)**5
-      ZAER(KIDIA:KFDIA,JLEV,1)=ZAEN-ZAEO
+      ZAER(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,1)=ZAEN-ZAEO
       ZAEO=ZAEN
     ENDDO
-    ZAER(KIDIA:KFDIA,1:KLEV,2:6)=0._JPRB
+    ZAER(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,2:6)=0._JPRB
   
   ELSE
 
     IF (NAER >= 1) THEN
       IF (YSD_VAD%NUMFLDS >= 4) THEN
         ! initialisation of aerosols as in ARPEGE (from clim files)
-        CALL RADAER (YDMODEL%YRML_PHY_RAD%YREAERD,YDERAD,YDPHY, KIDIA , KFDIA , KLON  , KLEV,&
-         & PAPRSM,PAPRSFM,ZTM,ZTSURF,PAESEA,PAELAN,PAESOO,PAEDES,PAESUL,PAEVOL,ZAER,ZAERINDS)
+        CALL RADAER (YDMODEL%YRML_PHY_RAD%YREAERD, YDERAD, YDPHY, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA,                &
+        & YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF, &
+        & ZTM, ZTSURF, YDMF_PHYS_SURF%GSD_VA%PSEA, YDMF_PHYS_SURF%GSD_VA%PLAN, YDMF_PHYS_SURF%GSD_VA%PSOO,           &
+        & YDMF_PHYS_SURF%GSD_VA%PDES, YDMF_PHYS_SURF%GSD_VA%PSUL, YDMF_PHYS_SURF%GSD_VA%PVOL, ZAER,                  &
+        & ZAERINDS)
       ELSE
         CALL ABOR1('APL_AROME: PB AEROSOLS!')
         ! NB : this abort excludes the use of radact. REK.
@@ -2380,19 +2329,19 @@ IF (LRAY.AND.NRAY == 2.AND.LRADFLEX) THEN
 
     IF (LRDUST) THEN
       ! We uses the extinction coefficient explicitely solved by ARO_MNHDUST
-      ZAER(KIDIA:KFDIA,1:KLEV,3) = ZAERD_(KIDIA:KFDIA,1:KLEV)
+      ZAER(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,3) = ZAERD_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
     ENDIF
 
   ENDIF ! (LRAY.AND.NRAY == 2.AND.LRADFLEX.AND.LRSTAER) THEN
 
   ! get diffuse and direct surface albedo, emissivity and temperature
   IF (.NOT.LHLRADUPD) THEN
-    ZALBD1(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MALBSCA)
-    ZALBP1(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MALBDIR)
+    ZALBD1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%ALBSCA(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)
+    ZALBP1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%ALBDIR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)
   ENDIF
-  ZEMIS  (KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MVEMIS)
-  ZTSURF (KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MVTS)
-  DO JLON=KIDIA,KFDIA
+  ZEMIS  (YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%VEMIS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+  ZTSURF (YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%VTS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+  DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
     ! protection of E-zone (not to have zero emissivity and T_surf there)
     IF (ZEMIS(JLON) == 0._JPRB) THEN
       ZEMIS (JLON)=  1._JPRB
@@ -2403,343 +2352,238 @@ IF (LRAY.AND.NRAY == 2.AND.LRADFLEX) THEN
 !+++ End of redundant input preparations for ACRANEB
 
   ! initialization of CO2(+), differs from IFS radiation scheme!
-  ZQCO2(KIDIA:KFDIA,1:KLEV)=QCO2
+  ZQCO2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=QCO2
 
   ! daand: radflex
-  YLRADPROC => NEWINTPROC(YDPROCSET,'Radiation')
-  ZFRSO => NEWINTFIELD(YLRADPROC,KLON,KLEV, 'FRSO','H','F')
-  ZFRTH => NEWINTFIELD(YLRADPROC,KLON,KLEV, 'FRTH','H','F')
+  YLRADPROC => NEWINTPROC(YLPROCSET,'Radiation')
+  ZFRSO => NEWINTFIELD(YLRADPROC,YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG, 'FRSO','H','F')
+  ZFRTH => NEWINTFIELD(YLRADPROC,YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG, 'FRTH','H','F')
 
   ! call radiation scheme
-  IJN=KLON
-  CALL ACRANEB2(YDERDI,YDRIP,YDMODEL%YRML_PHY_MF,&
-   & KIDIA,KFDIA,KLON,NTRADI,KLEV,IJN,KSTEP,KNFRRC,&
-   & PAPRSM,PAPRSFM,PCPM,PRM,PDELPM,ZNEB0,&
-   & ZQV,ZQCO2,ZQICE,ZQLIQ,ZQO3,PTM,&
-   & ZALBD1,ZALBP1,ZEMIS,PGELAM,PGEMU,PMU0,PMU0LU,ZTSURF, &
-   & ZDECRD,ZCLCT_RAD,&
-   & PGDEOSI,PGUEOSI,PGMU0,PGMU0_MIN,PGMU0_MAX,&
-   & PGDEOTI,PGDEOTI2,PGUEOTI,PGUEOTI2,PGEOLT,PGEOXT,&
-   & PGRPROX,PGMIXP,PGFLUXC,PGRSURF,PSDUR,&
-   & ZFRSO,ZFRTH,&
-   & PFRSOC,PFRTHC,ZFRSODS,PFRSOPS,ZFRSOLU,PFRTHDS,ZAER)
+  IJN=YDCPG_OPTS%KLON
+  CALL ACRANEB2(YDERDI, YDRIP, YDMODEL%YRML_PHY_MF, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON,               &
+  & NTRADI, YDCPG_OPTS%KFLEVG, IJN, YDCPG_OPTS%KSTEP, YDCFU%NFRRC, YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE,                  &
+  & YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%CP, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%R,     &
+  & YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP, ZNEB0, ZQV, ZQCO2, ZQICE, ZQLIQ, ZQO3, YDMF_PHYS_BASE_STATE%T,             &
+  & ZALBD1, ZALBP1, ZEMIS, YDVARS%GEOMETRY%GELAM%T0, YDVARS%GEOMETRY%GEMU%T0, ZRDG_MU0, ZRDG_MU0LU,                    &
+  & ZTSURF, ZDECRD, ZCLCT_RAD, YDMF_PHYS%OPT%GDEOSI, YDMF_PHYS%OPT%GUEOSI, YDMF_PHYS%OPT%GMU0, YDMF_PHYS%OPT%GMU0_MIN, &
+  & YDMF_PHYS%OPT%GMU0_MAX, YDMF_PHYS%OPT%GDEOTI, YDMF_PHYS%OPT%GDEOTI2, YDMF_PHYS%OPT%GUEOTI, YDMF_PHYS%OPT%GUEOTI2,  &
+  & YDMF_PHYS%OPT%GEOLT, YDMF_PHYS%OPT%GEOXT, YDMF_PHYS%OPT%GRPROX, YDMF_PHYS%OPT%GMIXP, YDMF_PHYS%OPT%GFLUXC,         &
+  & YDMF_PHYS%OPT%GRSURF, YDMF_PHYS_SURF%GSD_VD%PSUND, ZFRSO, ZFRTH, YDMF_PHYS%OUT%FRSOC, YDMF_PHYS%OUT%FRTHC,         &
+  & ZFRSODS, YDMF_PHYS%OUT%FRSOPS, ZFRSOLU, YDMF_PHYS%OUT%FRTHDS, ZAER)
 
   ! daand: radflex
   ! store for further calculations and diagnostics
   ! warning : pointers. REK
-  PFRSO(:,:,1)=ZFRSO
-  PFRTH(:,:,1)=ZFRTH
+  YDMF_PHYS%OUT%FRSO(:,:,1)=ZFRSO
+  YDMF_PHYS%OUT%FRTH(:,:,1)=ZFRTH
 
   ! extract surface fluxes
-  DO JLON=KIDIA,KFDIA
-    PFRSODS(JLON)=ZFRSODS(JLON)+PFRSOPS(JLON)  ! downward surface sw flux
+  DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+    YDMF_PHYS%OUT%FRSODS(JLON)=ZFRSODS(JLON)+YDMF_PHYS%OUT%FRSOPS(JLON)  ! downward surface sw flux
   ENDDO
 
   IF (LLMSE) THEN
     IF (LHLRADUPD) THEN
       DO JSW = 1,NSW
-        DO JLON=KIDIA,KFDIA
-          ZZS_FSWDIR(JLON,JSW) = PFRSOPS(JLON)*RSUN2(JSW)
+        DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+          ZZS_FSWDIR(JLON,JSW) = YDMF_PHYS%OUT%FRSOPS(JLON)*RSUN2(JSW)
           ZZS_FSWDIF(JLON,JSW) = ZFRSODS(JLON)*RSUN2(JSW)
          ENDDO
       ENDDO
     ELSE
-      ZZS_FSWDIR(KIDIA:KFDIA,1)=PFRSOPS(KIDIA:KFDIA) ! direct surface swdn flux
-      ZZS_FSWDIF(KIDIA:KFDIA,1)=ZFRSODS(KIDIA:KFDIA) ! diffuse surface swdn flux
+      ZZS_FSWDIR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)=YDMF_PHYS%OUT%FRSOPS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) ! direct surface swdn flux
+      ZZS_FSWDIF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)=ZFRSODS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) ! diffuse surface swdn flux
     ENDIF
   ENDIF
 
   ! Estimate of the direct normal irradiance, with securities
-  PFRSDNI(KIDIA:KFDIA)=PFRSOPS(KIDIA:KFDIA)
-  DO JLON = KIDIA, KFDIA
-    IF (PMU0(JLON) > 3.0E-02_JPRB) THEN
-      PFRSDNI(JLON)=PFRSOPS(JLON)/PMU0(JLON)
+  YDMF_PHYS%OUT%FRSDNI(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS%OUT%FRSOPS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+  DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
+    IF (ZRDG_MU0(JLON) > 3.0E-02_JPRB) THEN
+      YDMF_PHYS%OUT%FRSDNI(JLON)=YDMF_PHYS%OUT%FRSOPS(JLON)/ZRDG_MU0(JLON)
     ENDIF
   ENDDO
-  DO JLON = KIDIA, KFDIA
-    PFRSDNI(JLON)=MAX(0.0_JPRB,PFRSDNI(JLON))
+  DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
+    YDMF_PHYS%OUT%FRSDNI(JLON)=MAX(0.0_JPRB,YDMF_PHYS%OUT%FRSDNI(JLON))
   ENDDO
 
   IF (LFLEXDIA) THEN
-    IF (LDDH_OMP) THEN
-      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,PFRSO(:,:,1),'FCTRAYSO',YDDDH)
-      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,PFRTH(:,:,1),'FCTRAYSO',YDDDH)
-    ELSE
-      CALL ADD_FIELD_3D(YLDDH,PFRSO(:,:,1),'FCTRAYSO','F','ARP',.TRUE.,.TRUE.)
-      CALL ADD_FIELD_3D(YLDDH,PFRTH(:,:,1),'FCTRAYTH','F','ARP',.TRUE.,.TRUE.)
-    ENDIF
+      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH, YDMF_PHYS%OUT%FRSO(:, :, 1), 'FCTRAYSO', YDDDH&
+      &             )
+      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH, YDMF_PHYS%OUT%FRTH(:, :, 1), 'FCTRAYSO', YDDDH&
+      &             )
   ENDIF
 
 ENDIF
 
 IF (.NOT.(LRAY.AND.NRAY == 2.AND.LRADFLEX).AND..NOT.LRAYFM) THEN
   DO JSW = 1,NSW
-    ZZS_FSWDIR(KIDIA:KFDIA,JSW) = 0._JPRB
-    ZZS_FSWDIF(KIDIA:KFDIA,JSW) = 0._JPRB
+    ZZS_FSWDIR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW) = 0._JPRB
+    ZZS_FSWDIF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW) = 0._JPRB
   ENDDO
-  PFRSOPS(KIDIA:KFDIA)=0._JPRB
+  YDMF_PHYS%OUT%FRSOPS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB
 ENDIF
 
 IF (LFLEXDIA) THEN
-  CALL ARO_STARTBU( KIDIA, KFDIA, KLEV, NRR,NGFL_EXT,ZRHODJM__(:,1:KLEV),&
-   & ZUS__(:,1:KLEV), ZVS__(:,1:KLEV), ZWS__(:,1:KLEV), ZTHS__(:,1:KLEV), &
-   & ZRS_, ZTKES_, YDDDH,YDMODEL%YRML_DIAG%YRLDDH,YDMODEL%YRML_DIAG%YRMDDH)
+  CALL ARO_STARTBU( YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, NRR, NGFL_EXT, ZRHODJM__(:, 1:YDCPG_OPTS%KFLEVG),     &
+  & ZUS__(:, 1:YDCPG_OPTS%KFLEVG), ZVS__(:, 1:YDCPG_OPTS%KFLEVG), ZWS__(:, 1:YDCPG_OPTS%KFLEVG), ZTHS__(:, 1:YDCPG_OPTS%KFLEVG), &
+  & ZRS_, ZTKES_, YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH)
 ENDIF
 
 
 !    ------------------------------------------------------------------
-!     7 - CONVECTION. 
+!     7 - CONVECTION.
 !     --------------------------------------------------------------------
 
 IF(LKFBCONV) THEN
 
   ! No swapp needed becaus IN and OUT are not needed simultaneously
 
-  CALL BRI2ACCONV(YDMODEL%YRML_PHY_MF,YDGEOMETRY%YREGEO,KIDIA,KFDIA,KFDIA,KLEV,PGM(KIDIA:KFDIA),&
-   & ZPABSM__(:,1:KLEV),ZZZ_F_, ZTM(KIDIA:KFDIA,:), ZRM_(:,:,1),ZRM_(:,:,2), ZRM_(:,:,4), &
-   & ZRHODREFM__(:,1:KLEV), ZUM__(:,1:KLEV),ZVM__(:,1:KLEV), ZWM__(:,1:KLEV),ZMFS_,&
-   & ZCVTENDT_, ZCVTENDRV_,ZCVTENDRC_, ZCVTENDRI_,ZCVTENDPR_, ZCVTENDPRS_ &
-   & )
+  CALL BRI2ACCONV(YDMODEL%YRML_PHY_MF, YDGEOMETRY%YREGEO, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_BNDS%KFDIA,                          &
+  & YDCPG_OPTS%KFLEVG, YDVARS%GEOMETRY%GM%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZPABSM__(:, 1:YDCPG_OPTS%KFLEVG),                       &
+  & ZZZ_F_, ZTM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :), ZRM_(:, :, 1), ZRM_(:, :, 2), ZRM_(:, :, 4), ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG), &
+  & ZUM__(:, 1:YDCPG_OPTS%KFLEVG), ZVM__(:, 1:YDCPG_OPTS%KFLEVG), ZWM__(:, 1:YDCPG_OPTS%KFLEVG),                                         &
+  & ZMFS_, ZCVTENDT_, ZCVTENDRV_, ZCVTENDRC_, ZCVTENDRI_, ZCVTENDPR_, ZCVTENDPRS_   )
 
-  IF(MOD(KSTEP+1,NPRINTFR)==0) THEN
+  IF(MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
     WRITE(NULOUT,*)"Pluie conv au sol", ZCVTENDPR_(NPTP), &
-     & MAXVAL(ZCVTENDPR_(KIDIA:KFDIA)) ,MINVAL(ZCVTENDPR_(KIDIA:KFDIA))
+     & MAXVAL(ZCVTENDPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)) ,MINVAL(ZCVTENDPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA))
   ENDIF
 
-  DO JLEV = 1,KLEV
-    DO JLON = KIDIA, KFDIA
-      PTENDT(JLON,JLEV)=PTENDT(JLON,JLEV) + ZCVTENDT_(JLON,JLEV)
-      PTENDR(JLON,JLEV,1) = PTENDR(JLON,JLEV,1) + ZCVTENDRV_(JLON,JLEV)*ZQDM(JLON,JLEV)  
-      PTENDR(JLON,JLEV,2) = PTENDR(JLON,JLEV,2) + ZCVTENDRC_(JLON,JLEV)*ZQDM(JLON,JLEV)  
-      PTENDR(JLON,JLEV,4) = PTENDR(JLON,JLEV,4) + ZCVTENDRI_(JLON,JLEV)*ZQDM(JLON,JLEV)  
+  DO JLEV = 1,YDCPG_OPTS%KFLEVG
+    DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
+      ZTENDT(JLON,JLEV)=ZTENDT(JLON,JLEV) + ZCVTENDT_(JLON,JLEV)
+      ZTEND_Q(JLON,JLEV) = ZTEND_Q(JLON,JLEV) + ZCVTENDRV_(JLON,JLEV)*ZQDM(JLON,JLEV)  
+      ZTEND_L(JLON,JLEV) = ZTEND_L(JLON,JLEV) + ZCVTENDRC_(JLON,JLEV)*ZQDM(JLON,JLEV)  
+      ZTEND_I(JLON,JLEV) = ZTEND_I(JLON,JLEV) + ZCVTENDRI_(JLON,JLEV)*ZQDM(JLON,JLEV)  
       ZRS_(JLON,JLEV,1)=ZRS_(JLON,JLEV,1)+ZCVTENDRV_(JLON,JLEV)
       ZRS_(JLON,JLEV,2)=ZRS_(JLON,JLEV,2)+ZCVTENDRC_(JLON,JLEV)
       ZRS_(JLON,JLEV,4)=ZRS_(JLON,JLEV,4)+ZCVTENDRI_(JLON,JLEV)
-      ZTHS__(JLON,JLEV)=ZTHS__(JLON,JLEV)+ZCVTENDT_(JLON,JLEV)*(RATM/PAPRSFM(JLON,JLEV))**(RD/RCPD)  
+      ZTHS__(JLON,JLEV)=ZTHS__(JLON,JLEV)+ZCVTENDT_(JLON,JLEV)*(RATM/YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(JLON,JLEV))**(RD/RCPD)  
     ENDDO
   ENDDO
-  DO JLON =KIDIA, KFDIA
+  DO JLON =YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
     ZINPRR_(JLON)=ZINPRR_(JLON)+ZCVTENDPR_(JLON)-ZCVTENDPRS_(JLON)
-    ZACPRR_(JLON)=ZACPRR_(JLON)+(ZCVTENDPR_(JLON)-ZCVTENDPRS_(JLON))*PDT
+    ZACPRR_(JLON)=ZACPRR_(JLON)+(ZCVTENDPR_(JLON)-ZCVTENDPRS_(JLON))*YDCPG_OPTS%ZDTPHY
     ZINPRS_(JLON)=ZINPRS_(JLON)+ZCVTENDPRS_(JLON)
-    ZACPRS_(JLON)=ZACPRS_(JLON)+ZCVTENDPRS_(JLON)*PDT
+    ZACPRS_(JLON)=ZACPRS_(JLON)+ZCVTENDPRS_(JLON)*YDCPG_OPTS%ZDTPHY
   ENDDO
   ! avance temporelle et inversion niveau pour ZMFS_
-  ! on utilise PSIGS pour le flux de masse pour la condensation sous maille 
+  ! on utilise PSIGS pour le flux de masse pour la condensation sous maille
   ! car PSIGS n est utilise que si LOSIGMAS=T
   IF (LOSUBG_COND.AND..NOT.LOSIGMAS) THEN
-    PSIGS(KIDIA:KFDIA,1:KLEV)=ZMFS_(KIDIA:KFDIA,1:KLEV)
+    YDVARS%SRC%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=ZMFS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
   ENDIF
-  IF(MOD(KSTEP+1,NPRINTFR)==0) THEN
+  IF(MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
     WRITE(NULOUT,*)"aps CONV, TENRV, TENRC, TENRI"
-    DO JLEV=1,KLEV
-      WRITE(NULOUT,*)PTENDR(NPTP,JLEV,1),PTENDR(NPTP,JLEV,2),PTENDR(NPTP,JLEV,4)
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
+      WRITE(NULOUT,*)ZTEND_Q(NPTP,JLEV),ZTEND_L(NPTP,JLEV),ZTEND_I(NPTP,JLEV)
     ENDDO
   ENDIF
-  CALL ARO_CONVBU(KFDIA,KLEV,NRR,ZRHODJM__(:,1:KLEV),ZRS_,ZTHS__(:,1:KLEV), &
-   & YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH)
+  CALL ARO_CONVBU(YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, NRR, ZRHODJM__(:, 1:YDCPG_OPTS%KFLEVG), ZRS_, &
+  & ZTHS__(:, 1:YDCPG_OPTS%KFLEVG), YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH)
 
 ENDIF
 
 !    ------------------------------------------------------------------
-!     8 - SURFACE. 
+!     8 - SURFACE.
 !     --------------------------------------------------------------------
 
 IF (LLMSE) THEN
-! A loop around SURFEX in order to test OpenMP
-
-  SURFEX_LOOP : DO ISURFEX = 1, NSURFEX_ITER
+! Initialisations
 
-! Initialisations 
-
-  DO JLON=KIDIA,KFDIA
-    ZZS_(JLON)=POROG(JLON)*ZINVG 
+  DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+    ZZS_(JLON)=YDVARS%GEOMETRY%OROG%T0(JLON)*ZINVG 
   ENDDO
-  DO JLEV = 1,KLEV
-    DO JLON=KIDIA,KFDIA
-      ZDEPTH_HEIGHT_(JLON,JLEV)=ZZZ_F_(JLON,JLEV)-ZZS_(JLON)  
+  DO JLEV = 1,YDCPG_OPTS%KFLEVG
+    DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      ZDEPTH_HEIGHT_(JLON,JLEV)=ZZZ_F_(JLON,JLEV)-ZZS_(JLON)
     ENDDO
   ENDDO
-  IF (MINVAL(ZDEPTH_HEIGHT_(KIDIA:KFDIA,IKB)) <= 0._JPRB) THEN
-    DO JLON=KIDIA,KFDIA
+  IF (MINVAL(ZDEPTH_HEIGHT_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,IKB)) <= 0._JPRB) THEN
+    DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
       IF (ZDEPTH_HEIGHT_(JLON,IKB) <= 0._JPRB) THEN
-        WRITE (NULOUT,*)'sous apl_arome pb height en', JLON,ZAPHIFM(JLON,KLEV),POROG(JLON)
+        WRITE (NULOUT,*)'sous apl_arome pb height en', JLON,ZAPHIFM(JLON,YDCPG_OPTS%KFLEVG),YDVARS%GEOMETRY%OROG%T0(JLON)
       ENDIF
     ENDDO
   ENDIF
   ! Can't use a section of pointer. An explicit copy shows, by the way, that a copy is needed
   ! because data is not contiguous. REK
-  ZSVMB_(KIDIA:KFDIA,1:NGFL_EXT)=ZSVM_(KIDIA:KFDIA,IKB,1:NGFL_EXT)
-
-  IF (LSURFEX_CRITICAL) THEN
-
-!$OMP CRITICAL (ARO_GROUND_PARAM_LOCK)
-
-    IF (LLMSE_PARAM) THEN
-      CALL ARO_GROUND_PARAM( KBL,KGPCOMP,&
-       & KFDIA,KIDIA,KFDIA,KSTEP,&
-       & NRR,NSW,NGFL_EXT,NDGUNG, NDGUXG, NDLUNG, NDLUXG,LSURFEX_KFROM,&
-       & LMPA,CCOUPLING,LDXFUMSE,&
-       & NINDAT,ZRHGMT,ZSTATI,RSOVR,RCODEC,RSIDEC,&
-       & PINDX(KIDIA:KFDIA),PINDY(KIDIA:KFDIA),&
-       & ZUM__(:,IKB),&
-       & ZVM__(:,IKB),&
-       & ZTM(KIDIA:KFDIA,KLEV),ZRM_(:,IKB,1),&
-       & ZSVMB_,&
-       & RCARDI,ZRHODREFM__(:,IKB),&
-       & ZPABSM__(:,IKB),PAPRSM(KIDIA:KFDIA,KLEV),&
-       & ZDTMSE,ZDEPTH_HEIGHT_(:,IKB),ZZS_, XZSEPS,&
-       & PMU0(KIDIA:KFDIA),PMU0N(KIDIA:KFDIA),PGELAM(KIDIA:KFDIA),&
-       & PGEMU(KIDIA:KFDIA),XSW_BANDS,&
-       & ZINPRR_NOTINCR_,ZINPRS_NOTINCR_,&
-       & ZINPRG_NOTINCR_,&
-       & PFRTHDS(KIDIA:KFDIA),ZZS_FSWDIF(KIDIA:KFDIA,1:NSW),&
-       & ZZS_FSWDIR(KIDIA:KFDIA,1:NSW),&
-       & ZCFAQ_, ZCFATH_, ZCFAU_,ZCFBQ_, ZCFBTH_, ZCFBU_,ZCFBV_,&
-       & ZSFTH_,ZSFRV_,&
-       & ZSFSV_,ZSFCO2_,&
-       & ZSFU_,ZSFV_,&
-       & ZALBP(KIDIA:KFDIA,1:NSW),ZALBD(KIDIA:KFDIA,1:NSW),&
-       & ZEMIS(KIDIA:KFDIA),ZTSURF(KIDIA:KFDIA),PFRTH(KIDIA:KFDIA,KLEV,1))
-
-    ENDIF
-
-    IF (LRCO2) THEN
-      ZSFSV_(KIDIA:KFDIA,NSV_CO2)= ZSFCO2_(KIDIA:KFDIA)
-!print*,' FLUX CO2 =', MINVAL(ZSFSV_(KIDIA:KFDIA,NSV_CO2)),&
-!                    & MAXVAL(ZSFSV_(KIDIA:KFDIA,NSV_CO2))
-    ENDIF
-
-!!!!! TEST DDH ATTENTION
-!ZSFRV_(KIDIA:KFDIA) = 0._JPRB
-
-    IF (LLMSE_DIAG) THEN
-
-      CALL ARO_GROUND_DIAG( KBL, KGPCOMP,&
-       & KFDIA,KIDIA,KFDIA,KLEV, IKL,&
-       & NDGUNG, NDGUXG, NDLUNG, NDLUXG, LSURFEX_KFROM,&
-       & ZZS_,ZSFRV_,&
-       & ZUM__(:,IKTB:IKTE),&
-       & ZVM__(:,IKTB:IKTE),&
-       & ZDEPTH_HEIGHT_(:,IKTB:IKTE),&
-       & PFRTH(KIDIA:KFDIA,KLEV,1),PFRSO(KIDIA:KFDIA,KLEV,1),&
-       & PINDX(KIDIA:KFDIA),PINDY(KIDIA:KFDIA),&
-       & ZQS(KIDIA:KFDIA),ZGZ0_,ZGZ0H_,&
-       & PTCLS(KIDIA:KFDIA),PQCLS(KIDIA:KFDIA),PHUCLS(KIDIA:KFDIA),&
-       & PUCLS(KIDIA:KFDIA),PVCLS(KIDIA:KFDIA),&
-       & PNUCLS(KIDIA:KFDIA),PNVCLS(KIDIA:KFDIA),&
-       & PFCLL(KIDIA:KFDIA,1),PFCLN(KIDIA:KFDIA,1),&
-       & PFEVL(KIDIA:KFDIA,1),PFEVN(KIDIA:KFDIA,1),&
-       & ZSSO_STDEV_, PSPSG(KIDIA:KFDIA),&
-       & ZBUDTH_, ZBUDSO_,&
-       & ZFCLL_, ZTOWNS_,&
-       & ZCD_                         )
-      CALL ARO_GROUND_DIAG_2ISBA( KBL, KGPCOMP, &
-       & KFDIA, KIDIA, KFDIA, &
-       & NDGUNG, NDGUXG, NDLUNG, NDLUXG, LSURFEX_KFROM, &
-       & PINDX(KIDIA:KFDIA), PINDY(KIDIA:KFDIA), &
-       & PLSM, ZDUMMY1, ZDUMMY1, ZDUMMY1, ZTSURF(KIDIA:KFDIA), PSPSG(KIDIA:KFDIA), &
-       & ZDUMMY1(KIDIA:KFDIA), ZDUMMY1(KIDIA:KFDIA), ZDUMMY1(KIDIA:KFDIA), &
-       & ZDUMMY1(KIDIA:KFDIA), ZDUMMY1(KIDIA:KFDIA), ZDUMMY1(KIDIA:KFDIA), &
-       & ZDUMMY1(KIDIA:KFDIA), PSPSGR(KIDIA:KFDIA), ZDUMMY1 )
-
-    ENDIF
- 
-!$OMP END CRITICAL (ARO_GROUND_PARAM_LOCK)
-  ELSE
+  ZSVMB_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NGFL_EXT)=ZSVM_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,IKB,1:NGFL_EXT)
+
+  IF (LLMSE_PARAM) THEN
+
+      CALL ARO_GROUND_PARAM( YDCPG_BNDS%KBL, YDCPG_OPTS%KGPCOMP, YDCPG_BNDS%KFDIA, YDCPG_BNDS%KIDIA,                                                                     &
+      & YDCPG_BNDS%KFDIA, YDCPG_OPTS%KSTEP, NRR, NSW, NGFL_EXT, NDGUNG, NDGUXG, NDLUNG, NDLUXG,                                                                          &
+      & LSURFEX_KFROM, LMPA, CCOUPLING, LLXFUMSE, NINDAT, ZRHGMT, ZSTATI, RSOVR, RCODEC, RSIDEC, YDVARS%GEOMETRY%RINDX%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA),            &
+      & YDVARS%GEOMETRY%RINDY%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZUM__(:, IKB), ZVM__(:, IKB), ZTM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG),            &
+      & ZRM_(:, IKB, 1), ZSVMB_, RCARDI, ZRHODREFM__(:, IKB), ZPABSM__(:, IKB), YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG), &
+      & ZDTMSE, ZDEPTH_HEIGHT_(:, IKB), ZZS_, XZSEPS, ZRDG_MU0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZRDG_MU0N(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA),                         &
+      & YDVARS%GEOMETRY%GELAM%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDVARS%GEOMETRY%GEMU%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA),                                         &
+      & XSW_BANDS, ZINPRR_NOTINCR_, ZINPRS_NOTINCR_, ZINPRG_NOTINCR_, YDMF_PHYS%OUT%FRTHDS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA),                                           &
+      & ZZS_FSWDIF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:NSW), ZZS_FSWDIR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:NSW),                                                      &
+      & ZCFAQ_, ZCFATH_, ZCFAU_, ZCFBQ_, ZCFBTH_, ZCFBU_, ZCFBV_, ZSFTH_, ZSFRV_, ZSFSV_, ZSFCO2_,                                                                       &
+      & ZSFU_, ZSFV_, ZALBP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:NSW), ZALBD(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:NSW),                                                  &
+      & ZEMIS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZTSURF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDMF_PHYS%OUT%FRTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, 1) &
+      &     )
 
-    IF (LLMSE_PARAM) THEN
-
-      CALL ARO_GROUND_PARAM( KBL,KGPCOMP,&
-       & KFDIA,KIDIA,KFDIA,KSTEP,&
-       & NRR,NSW,NGFL_EXT,NDGUNG, NDGUXG, NDLUNG, NDLUXG,LSURFEX_KFROM,&
-       & LMPA,CCOUPLING,LDXFUMSE,&
-       & NINDAT,ZRHGMT,ZSTATI,RSOVR,RCODEC,RSIDEC,&
-       & PINDX(KIDIA:KFDIA),PINDY(KIDIA:KFDIA),&
-       & ZUM__(:,IKB),&
-       & ZVM__(:,IKB),&
-       & ZTM(KIDIA:KFDIA,KLEV),ZRM_(:,IKB,1),&
-       & ZSVMB_,&
-       & RCARDI,ZRHODREFM__(:,IKB),&
-       & ZPABSM__(:,IKB),PAPRSM(KIDIA:KFDIA,KLEV),&
-       & ZDTMSE,ZDEPTH_HEIGHT_(:,IKB),ZZS_, XZSEPS,&
-       & PMU0(KIDIA:KFDIA),PMU0N(KIDIA:KFDIA),PGELAM(KIDIA:KFDIA),&
-       & PGEMU(KIDIA:KFDIA),XSW_BANDS,&
-       & ZINPRR_NOTINCR_,ZINPRS_NOTINCR_,&
-       & ZINPRG_NOTINCR_,&
-       & PFRTHDS(KIDIA:KFDIA),ZZS_FSWDIF(KIDIA:KFDIA,1:NSW),&
-       & ZZS_FSWDIR(KIDIA:KFDIA,1:NSW),&
-       & ZCFAQ_, ZCFATH_, ZCFAU_,ZCFBQ_, ZCFBTH_, ZCFBU_,ZCFBV_,&
-       & ZSFTH_,ZSFRV_,&
-       & ZSFSV_,ZSFCO2_,&
-       & ZSFU_,ZSFV_,&
-       & ZALBP(KIDIA:KFDIA,1:NSW),ZALBD(KIDIA:KFDIA,1:NSW),&
-       & ZEMIS(KIDIA:KFDIA),ZTSURF(KIDIA:KFDIA),PFRTH(KIDIA:KFDIA,KLEV,1))
-
-    ENDIF
+  ENDIF
 
-    IF (LRCO2) THEN
-      ZSFSV_(KIDIA:KFDIA,NSV_CO2)= ZSFCO2_(KIDIA:KFDIA)
-!print*,' FLUX CO2 =', MINVAL(ZSFSV_(KIDIA:KFDIA,NSV_CO2)),&
-!                    & MAXVAL(ZSFSV_(KIDIA:KFDIA,NSV_CO2))
-    ENDIF
+  IF (LRCO2) THEN
+      ZSFSV_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,NSV_CO2)= ZSFCO2_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+!print*,' FLUX CO2 =', MINVAL(ZSFSV_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,NSV_CO2)),&
+!                    & MAXVAL(ZSFSV_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,NSV_CO2))
+  ENDIF
 
 !!!!! TEST DDH ATTENTION
-!ZSFRV_(KIDIA:KFDIA) = 0._JPRB
-
-    IF (LLMSE_DIAG) THEN
-
-      CALL ARO_GROUND_DIAG( KBL, KGPCOMP,&
-       & KFDIA,KIDIA,KFDIA,KLEV, IKL,&
-       & NDGUNG, NDGUXG, NDLUNG, NDLUXG, LSURFEX_KFROM,&
-       & ZZS_,ZSFRV_,&
-       & ZUM__(:,IKTB:IKTE),&
-       & ZVM__(:,IKTB:IKTE),&
-       & ZDEPTH_HEIGHT_(:,IKTB:IKTE),&
-       & PFRTH(KIDIA:KFDIA,KLEV,1),PFRSO(KIDIA:KFDIA,KLEV,1),&
-       & PINDX(KIDIA:KFDIA),PINDY(KIDIA:KFDIA),&
-       & ZQS(KIDIA:KFDIA),ZGZ0_,ZGZ0H_,&
-       & PTCLS(KIDIA:KFDIA),PQCLS(KIDIA:KFDIA),PHUCLS(KIDIA:KFDIA),&
-       & PUCLS(KIDIA:KFDIA),PVCLS(KIDIA:KFDIA),&
-       & PNUCLS(KIDIA:KFDIA),PNVCLS(KIDIA:KFDIA),&
-       & PFCLL(KIDIA:KFDIA,1),PFCLN(KIDIA:KFDIA,1),&
-       & PFEVL(KIDIA:KFDIA,1),PFEVN(KIDIA:KFDIA,1),&
-       & ZSSO_STDEV_, PSPSG(KIDIA:KFDIA),&
-       & ZBUDTH_, ZBUDSO_,&
-       & ZFCLL_, ZTOWNS_,&
-       & ZCD_                         )
-
-      CALL ARO_GROUND_DIAG_2ISBA( KBL, KGPCOMP, &
-       & KFDIA, KIDIA, KFDIA, &
-       & NDGUNG, NDGUXG, NDLUNG, NDLUXG, LSURFEX_KFROM, &
-       & PINDX(KIDIA:KFDIA), PINDY(KIDIA:KFDIA), &
-       & PLSM, ZDUMMY1, ZDUMMY1, ZDUMMY1, ZTSURF(KIDIA:KFDIA), PSPSG(KIDIA:KFDIA), &
-       & ZDUMMY1(KIDIA:KFDIA), ZDUMMY1(KIDIA:KFDIA), ZDUMMY1(KIDIA:KFDIA), &
-       & ZDUMMY1(KIDIA:KFDIA), ZDUMMY1(KIDIA:KFDIA), ZDUMMY1(KIDIA:KFDIA), &
-       & ZDUMMY1(KIDIA:KFDIA), PSPSGR(KIDIA:KFDIA), ZDUMMY1 )
+!ZSFRV_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) = 0._JPRB
+
+  IF (LLMSE_DIAG) THEN
+
+      CALL ARO_GROUND_DIAG( YDCPG_BNDS%KBL, YDCPG_OPTS%KGPCOMP, YDCPG_BNDS%KFDIA, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA,                             &
+      & YDCPG_OPTS%KFLEVG, IKL, NDGUNG, NDGUXG, NDLUNG, NDLUXG, LSURFEX_KFROM, ZZS_, ZSFRV_, ZUM__(:, IKTB:IKTE),                                 &
+      & ZVM__(:, IKTB:IKTE), ZDEPTH_HEIGHT_(:, IKTB:IKTE), YDMF_PHYS%OUT%FRTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, 1),           &
+      & YDMF_PHYS%OUT%FRSO(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, 1), YDVARS%GEOMETRY%RINDX%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), &
+      & YDVARS%GEOMETRY%RINDY%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZQS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA),                                      &
+      & ZGZ0_, ZGZ0H_, YDMF_PHYS%OUT%TCLS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDMF_PHYS%OUT%QCLS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA),              &
+      & YDMF_PHYS%OUT%RHCLS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDMF_PHYS%OUT%UCLS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA),                            &
+      & YDMF_PHYS%OUT%VCLS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDMF_PHYS%OUT%NUCLS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA),                            &
+      & YDMF_PHYS%OUT%NVCLS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDMF_PHYS%OUT%FCLL(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1),                         &
+      & YDMF_PHYS%OUT%FCLN(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1), YDMF_PHYS%OUT%FEVL(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1),                       &
+      & YDMF_PHYS%OUT%FEVN(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1), ZSSO_STDEV_, YDMF_PHYS_SURF%GSP_SG%PF_T1,                                       &
+      & ZBUDTH_, ZBUDSO_, ZFCLL_, ZTOWNS_, ZCD_, YDMF_PHYS%OUT%SIC(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA))
+
+      CALL ARO_GROUND_DIAG_2ISBA( YDCPG_BNDS%KBL, YDCPG_OPTS%KGPCOMP, YDCPG_BNDS%KFDIA, YDCPG_BNDS%KIDIA,                                   &
+      & YDCPG_BNDS%KFDIA, NDGUNG, NDGUXG, NDLUNG, NDLUXG, LSURFEX_KFROM, YDVARS%GEOMETRY%RINDX%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA),       &
+      & YDVARS%GEOMETRY%RINDY%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDMF_PHYS_SURF%GSD_VF%PLSM,                                            &
+      & ZDUMMY1, ZDUMMY1, ZDUMMY1, ZTSURF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDMF_PHYS_SURF%GSP_SG%PF_T1,                                  &
+      & ZTP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZWS2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZWP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), &
+      & ZWSI2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZWPI2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZWR2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), &
+      & ZDUMMY1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDMF_PHYS_SURF%GSP_SG%PR_T1, ZDUMMY1 )
  
-    ENDIF
-
   ENDIF
 
-  ENDDO SURFEX_LOOP
 
 !* Compute PBL-diagnostics
 
    ZCAPE(:)=0._JPRB
-   ZDCAPE(:)=0._JPRB   
-   CALL ACCLDIA(YDXFU,YDPHY,YDMODEL%YRML_PHY_MF%YRPHY2,YDTOPH, KIDIA,KFDIA,KLON,KLEV,PUCLS,&
-    & PVCLS,PUM(:,1:KLEV),PVM(:,1:KLEV), ZCAPE,ZDCAPE,ZTKEM(:,1:KLEV),PAPHIFM(:,1:KLEV),POROG,&
-    & PUGST,PVGST,PPBLH,ICLPH)
+   ZDCAPE(:)=0._JPRB
+   CALL ACCLDIA(YDCST, YDCPG_OPTS%LXCLP, YDCPG_OPTS%LXTGST, YDCPG_OPTS%LXXGST, YDPHY, YDMODEL%YRML_PHY_MF%YRPHY2, YDTOPH, YDCPG_BNDS%KIDIA,            &
+   & YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDMF_PHYS%OUT%UCLS, YDMF_PHYS%OUT%VCLS, YDMF_PHYS_BASE_STATE%U(:, 1:YDCPG_OPTS%KFLEVG),             &
+   & YDMF_PHYS_BASE_STATE%V(:, 1:YDCPG_OPTS%KFLEVG), ZCAPE, ZDCAPE, ZTKEM(:, 1:YDCPG_OPTS%KFLEVG), YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF(:, 1:YDCPG_OPTS%KFLEVG), &
+   & YDVARS%GEOMETRY%OROG%T0, YDMF_PHYS%OUT%UGST, YDMF_PHYS%OUT%VGST, YDMF_PHYS%OUT%CLPH, ICLPH)
 
-   PPBLH(KIDIA:KFDIA)=MIN(XMAXLM,MAX(XMINLM,PPBLH(KIDIA:KFDIA))) 
+   YDMF_PHYS%OUT%CLPH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=MIN(XMAXLM,MAX(XMINLM,YDMF_PHYS%OUT%CLPH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA))) 
 
-   CALL ACVISIH(YDVISI,KIDIA,KFDIA,KLON,KTDIA,KLEV,PAPHIM,PAPHIFM,PAPRSFM,&
-    & ZTM,ZRHM,ZQCM,ZQIM,ZQRM,ZQSM,ZQGM,PVISICLD, PVISIHYDRO,PMXCLWC)
+   CALL ACVISIH(YDCST, YDVISI, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KTDIA, YDCPG_OPTS%KFLEVG, &
+   & YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF,                  &
+   & ZTM, ZRHM, ZQCM, ZQIM, ZQRM, ZQSM, ZQGM, YDMF_PHYS%OUT%VISICLD, YDMF_PHYS%OUT%VISIHYD, YDMF_PHYS%OUT%MXCLWC                 &
+   &                         )
 
 ELSE
 
-  ZSFSV_(KIDIA:KFDIA,:)=0._JPRB
+  ZSFSV_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)=0._JPRB
 
 ENDIF    !  <== End block "IF (LMSE)"
 
@@ -2747,14 +2591,14 @@ ENDIF    !  <== End block "IF (LMSE)"
 !                --------------------------------------------------------
 
 IF (LSQUALL.AND.LTURB) THEN
-  ! on n'a besoin que d'un flux sur V (U est nul). 
-  DO JLON=KIDIA,KFDIA
+  ! on n'a besoin que d'un flux sur V (U est nul).
+  DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
     IF (ABS(ZVM__(JLON,IKB)) <= 1.E-12) THEN
       ZSFV_(JLON)=0._JPRB
     ELSE
       ZSFV_(JLON)=-(ZVM__(JLON,IKB))**2 *&
        & (0.4_JPRB  /(LOG(ZZZ_F_(JLON,IKB)/0.2_JPRB) ) )**2&
-       & *ZVM__(JLON,IKB)/ABS(ZVM__(JLON,IKB))  
+       & *ZVM__(JLON,IKB)/ABS(ZVM__(JLON,IKB))
     ENDIF
   ENDDO
 ENDIF
@@ -2763,7 +2607,6 @@ ENDIF
 !    9.  Shallow Mass Flux Mixing
 !    ------------------------------------------------------------------
 
-
 IF (LMFSHAL) THEN
   IF (CMF_UPDRAFT=='DUAL') THEN
     ! Updraft computation from EDMF/ECMWF dual proposal
@@ -2775,28 +2618,42 @@ IF (LMFSHAL) THEN
                ! only 2 and 3 are used for tendency computation in ARO_SHALLOW_MF
     INDRAFT=3   ! 1 for test, 2 for dry, 3 for wet
 
-    IF (KMAXDRAFT < INDRAFT) THEN
+    IF (YDCPG_OPTS%KMAXDRAFT < INDRAFT) THEN
       CALL ABOR1('APL_AROME : KMAXDRAFT TOO SMALL !')
     ENDIF
 
-    DO JLON = KIDIA, KFDIA
-      ZZS_FTH_(JLON)=-1._JPRB*ZSFTH_(JLON)*(PAPRSM(JLON,KLEV)*ZINVATM)**(ZRSCP)
+    DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
+      ZZS_FTH_(JLON)=-1._JPRB*ZSFTH_(JLON)*(YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(JLON,YDCPG_OPTS%KFLEVG)*ZINVATM)**(ZRSCP)
       ZZS_FRV_(JLON)=-1._JPRB*ZSFRV_(JLON)
     ENDDO
-    ZZS_FU_(KIDIA:KFDIA)=ZSFU_(KIDIA:KFDIA)
-    ZZS_FV_(KIDIA:KFDIA)=ZSFV_(KIDIA:KFDIA)
+    ZZS_FU_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=ZSFU_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+    ZZS_FV_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=ZSFV_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
+      ZZEXNREFM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZEXNREFM_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)
+    ENDDO
+
+    ! If OCND2 and non-LIMA microphysics use water or mixed-phase cloud fraction for VDFHGHTHL, else use cloud fraction YDVARS%A%T1
+    IF (LOCND2.AND.LMICRO.AND.CMICRO/='LIMA') THEN
+      DO JLEV=1,YDCPG_OPTS%KFLEVG
+        ZZWCLDFR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) = ZWCLDFR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)
+      ENDDO
+    ELSE
+      DO JLEV=1,YDCPG_OPTS%KFLEVG
+        ZZWCLDFR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) = YDVARS%A%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)
+      ENDDO
+    ENDIF
 
     !  IF LHARATU=TRUE then TKE at t-dt is needed as input for vdfexcuhl so fill ZTKEEDMF with t-1 value  from PTKEM
 
     IF (LHARATU) THEN
-      DO JLEV=1,KLEV
-        ZTKEEDMF(KIDIA:KFDIA,JLEV)=ZTKEM(KIDIA:KFDIA,JLEV)
-        ZLENGTH_M(KIDIA:KFDIA,JLEV)=0.01_JPRB
-        ZLENGTH_H(KIDIA:KFDIA,JLEV)=0.01_JPRB
-      ENDDO
-      IF (MAXVAL(ZTKEM(KIDIA:KFDIA,1:KLEV)) > 3300._JPRB) THEN
-        DO JLEV=1, KLEV
-          DO JLON = KIDIA, KFDIA
+      DO JLEV=1,YDCPG_OPTS%KFLEVG
+        ZTKEEDMF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZTKEM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)
+        ZLENGTH_M(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0.01_JPRB
+        ZLENGTH_H(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0.01_JPRB
+      ENDDO
+      IF (MAXVAL(ZTKEM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)) > 3300._JPRB) THEN
+        DO JLEV=1, YDCPG_OPTS%KFLEVG
+          DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
             IF (ZTKEM(JLON,JLEV) > 3300._JPRB) THEN
               WRITE (NULOUT,*) 'TKE > 3300 ! '
             ENDIF
@@ -2805,44 +2662,42 @@ IF (LMFSHAL) THEN
       ENDIF
     ENDIF
 
-    CALL VDFHGHTHL(YDMODEL%YRML_PHY_G%YRVDF,YDMODEL%YRML_PHY_SLIN%YREPHLI, &
-     & YDMODEL%YRML_PHY_EC%YRECUMF,YDMODEL%YRML_PHY_EC%YREPHY,YDPARAR, &
-     & KSTEP,KIDIA,KFDIA,KLON,KLEV,INDRAFT,&
-     & PDT, PUM, PVM,&
-     & ZTM,ZQVM,ZQCM,ZQIM,PCLFS,&
-     & PAPRSM, PAPRSFM, ZAPHIFM,ZAPHIM,&
-     & ZZS_FTH_,ZZS_FRV_,ZZS_FU_,ZZS_FV_,&
-     & ZMF_UP,ZTHETAL_UP,ZQT_UP,ZTHTV_UP,ZQC_UP,ZQI_UP,&
-     & ZU_UP, ZV_UP,&
-     & PGP2DSPP, NGFL_EZDIAG, PEZDIAG, &
-     & ZTENDQVUP,ZTENDTUP,ZSURFPREP,ZSURFSNOW, &
-     & ZUPGENL,ZUPGENN, ZCLFR, &
-     & ZLENGTH_M, ZLENGTH_H, ZTKEEDMF)
+    CALL VDFHGHTHL(YDMODEL%YRML_PHY_G%YRVDF, YDMODEL%YRML_PHY_SLIN%YREPHLI, YDMODEL%YRML_PHY_EC%YRECUMF,          &
+    & YDMODEL%YRML_PHY_EC%YREPHY, YDPARAR, YDCPG_OPTS%KSTEP, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, &
+    & YDCPG_OPTS%KFLEVG, INDRAFT, YDCPG_OPTS%ZDTPHY, YDMF_PHYS_BASE_STATE%U, YDMF_PHYS_BASE_STATE%V, ZTM, ZQVM,              &
+    & ZQCM, ZQIM, ZZWCLDFR, YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF,             &
+    & ZAPHIFM, ZAPHIM, ZZEXNREFM, ZZS_FTH_, ZZS_FRV_, ZZS_FU_, ZZS_FV_, ZMF_UP, ZTHETAL_UP, ZQT_UP, ZTHTV_UP,                &
+    & ZQC_UP, ZQI_UP, ZU_UP, ZV_UP, &
+    & ZSPP_ALL%YSPP_CLDDPTH,ZSPP_ALL%YSPP_CLDDPTHDP, &
+    & ZSPP_ALL%YSPP_RFAC_TWOC,ZSPP_ALL%YSPP_RZC_H,ZSPP_ALL%YSPP_RZL_INF, &
+    & ZTENDQVUP, ZTENDTUP, ZSURFPREP,             &
+    & ZSURFSNOW, ZUPGENL, ZUPGENN, ZCLFR, ZLENGTH_M, ZLENGTH_H, ZTKEEDMF)
+
 
     !  tendtup, tendqvup  tendencies for non-conserved AROME
     !  variables due to updraft precipitation/snow (and its evaporation)
-    DO JLEV = 2 ,KLEV
-      DO JLON = KIDIA,KFDIA
-        PTENDT(JLON,JLEV)=PTENDT(JLON,JLEV) + ZTENDTUP(JLON,JLEV)
-        PTENDR(JLON,JLEV,1)=PTENDR(JLON,JLEV,1) + ZTENDQVUP(JLON,JLEV)
+    DO JLEV = 2 ,YDCPG_OPTS%KFLEVG
+      DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZTENDT(JLON,JLEV)=ZTENDT(JLON,JLEV) + ZTENDTUP(JLON,JLEV)
+        ZTEND_Q(JLON,JLEV)=ZTEND_Q(JLON,JLEV) + ZTENDQVUP(JLON,JLEV)
       ENDDO
     ENDDO
-    
-    IF(LTOTPREC)THEN
+
+    IF (LTOTPREC.OR.LTOTPRECL) THEN
       !Add rain and snow tendencies from the sub-grid scheme to tendencies and sources,
-      !at all vertical levels, instead of diagnosing only surface precip. 
-      ZSURFPREP(KIDIA:KFDIA)=0.0_JPRB
-      ZSURFSNOW(KIDIA:KFDIA)=0.0_JPRB
-      DO JLEV= 1, KLEV
-        DO JLON = KIDIA, KFDIA
+      !at all vertical levels, instead of diagnosing only surface precip.
+      ZSURFPREP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0.0_JPRB
+      ZSURFSNOW(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0.0_JPRB
+      DO JLEV= 1, YDCPG_OPTS%KFLEVG
+        DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
           !Add rain and snow to sources:
           ZRS_(JLON,JLEV,3)=ZRS_(JLON,JLEV,3)+ZUPGENL(JLON,JLEV)
           ZRS_(JLON,JLEV,5)=ZRS_(JLON,JLEV,5)+ZUPGENN(JLON,JLEV)
           ZTHS__(JLON,JLEV)=ZTHS__(JLON,JLEV)+ZTENDTUP(JLON,JLEV)*(RATM/&
-           & PAPRSFM(JLON,JLEV))**(RD/RCPD)
+           & YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(JLON,JLEV))**(RD/RCPD)
           !Update rain/snow tendencies:
-          PTENDR(JLON,JLEV,3)=PTENDR(JLON,JLEV,3)+ZUPGENL(JLON,JLEV)
-          PTENDR(JLON,JLEV,5)=PTENDR(JLON,JLEV,5)+ZUPGENN(JLON,JLEV)
+          ZTEND_R(JLON,JLEV)=ZTEND_R(JLON,JLEV)+ZUPGENL(JLON,JLEV)
+          ZTEND_S(JLON,JLEV)=ZTEND_S(JLON,JLEV)+ZUPGENN(JLON,JLEV)
         ENDDO
       ENDDO 
     ENDIF
@@ -2850,8 +2705,8 @@ IF (LMFSHAL) THEN
   ELSE
     IDRAFT=3 ! only a wet updraft
     INDRAFT=1
-    ZSURFPREP(KIDIA:KFDIA)=0._JPRB
-    ZSURFSNOW(KIDIA:KFDIA)=0._JPRB
+    ZSURFPREP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB
+    ZSURFSNOW(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB
   ENDIF
 
   DO JDRAFT=IDRAFT,3
@@ -2868,8 +2723,8 @@ IF (LMFSHAL) THEN
     IF (CMF_UPDRAFT=='DUAL') THEN
       ! Goes from one of the updraft from the IFS level world to the Méso-NH level world
       ! go from q to r)
-      DO JLEV = 1,KLEV
-        DO JLON = KIDIA,KFDIA
+      DO JLEV = 1,YDCPG_OPTS%KFLEVG
+        DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
           ZMF_UP__(JLON,JLEV) = ZMF_UP(JLON,JLEV,JDRAFT)
           ZZU_UP_(JLON,JLEV) = ZU_UP(JLON,JLEV,JDRAFT)
           ZZV_UP_(JLON,JLEV) = ZV_UP(JLON,JLEV,JDRAFT)
@@ -2880,11 +2735,11 @@ IF (LMFSHAL) THEN
           ZRI_UP_(JLON,JLEV)  = ZQI_UP(JLON,JLEV,JDRAFT)/(1.-ZQT_UP(JLON,JLEV,JDRAFT))
         ENDDO
       ENDDO
-      ZZW_UP_(KIDIA:KFDIA,1:IKT)=0._JPRB
-      ZZFRAC_UP_(KIDIA:KFDIA,1:IKT)=0._JPRB
+      ZZW_UP_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:IKT)=0._JPRB
+      ZZFRAC_UP_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:IKT)=0._JPRB
       IF (LHARATU) THEN
-        DO JLEV = 1,KLEV
-          DO JLON = KIDIA,KFDIA
+        DO JLEV = 1,YDCPG_OPTS%KFLEVG
+          DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
             ZLENGTHM__(JLON,JLEV) = MAX(0.01_JPRB,ZLENGTH_M(JLON,JLEV))
             ZLENGTHH__(JLON,JLEV) = MAX(0.01_JPRB,ZLENGTH_H(JLON,JLEV))
             ! TKE should be bigger than a minimum value:
@@ -2893,82 +2748,76 @@ IF (LMFSHAL) THEN
         ENDDO
       ENDIF
     ENDIF
-    IF(MOD(KSTEP+1,NPRINTFR)==0) THEN
+    IF(MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
       WRITE(NULOUT,*)"apres surface zsfth zsfrv",ZSFTH_(NPTP),ZSFRV_(NPTP)
     ENDIF
 
-    DO JLEV = 1, KLEV 
-      ZRC_MF_(KIDIA:KFDIA,JLEV)=0._JPRB
-      ZRI_MF_(KIDIA:KFDIA,JLEV)=0._JPRB
-      ZCF_MF_(KIDIA:KFDIA,JLEV)=0._JPRB
+    DO JLEV = 1, YDCPG_OPTS%KFLEVG 
+      ZRC_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB
+      ZRI_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB
+      ZCF_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB
     ENDDO
 
     IF (JDRAFT == IDRAFT) THEN
       ! Fill the sum at the first iteration
-      ZARG_FLXZTHVMF_ => ZFLXZTHVMF_SUM__(:,1:KLEV)
+      ZARG_FLXZTHVMF_ => ZFLXZTHVMF_SUM__(:,1:YDCPG_OPTS%KFLEVG)
     ELSE
       ! increment
-      ZARG_FLXZTHVMF_ => ZFLXZTHVMF_(:,1:KLEV)
+      ZARG_FLXZTHVMF_ => ZFLXZTHVMF_(:,1:YDCPG_OPTS%KFLEVG)
     ENDIF
 
-    CALL ARO_SHALLOW_MF (KKL=IKL, KLON=KFDIA,KLEV=KLEV,KRR=NRR,KRRL=NRRL,&
-     & KRRI=NRRI,KSV=NGFL_EXT,HMF_UPDRAFT=CMF_UPDRAFT, HMF_CLOUD=CMF_CLOUD,&
-     & HFRAC_ICE=CFRAC_ICE_SHALLOW_MF,&
-     & OMIXUV=LMIXUV, ONOMIXLG=.FALSE.,KSV_LGBEG=0,KSV_LGEND=0,&
-     & KTCOUNT=KSTEP+1, PTSTEP=ZDT,&
-     & PDX=YDGEOMETRY%YREGEO%EDELX, PDY=YDGEOMETRY%YREGEO%EDELY,&
-     & PZZ=ZZZ_,PZZF=ZZZ_F_,&
-     & PDZZF=ZDZZ_F_,&
-     & PRHODJ=ZRHODJM__(:,1:KLEV),&
-     & PRHODREF=ZRHODREFM__(:,1:KLEV),&
-     & PPABSM=ZPABSM__(:,1:KLEV),&
-     & PEXNM=ZEXNREFM_,&
-     & PSFTH=ZSFTH_,PSFRV=ZSFRV_,&
-     & PTHM=ZTHM__(:,1:KLEV),PRM=ZRM_,&
-     & PUM=ZUM__(:,1:KLEV),PVM=ZVM__(:,1:KLEV),&
-     & PTKEM=ZTKEM__(:,1:KLEV),PSVM=ZSVM_,&
-     & PDUDT_MF=ZMFUS_,PDVDT_MF=ZMFVS_,&
-     & PDTHLDT_MF=ZTHLS_,PDRTDT_MF=ZRTS_,&
-     & PDSVDT_MF=ZSVXXX_,&
-     & PSIGMF=ZSIGMF_,PRC_MF=ZRC_MF_,&
-     & PRI_MF=ZRI_MF_,&
-     & PCF_MF=ZCF_MF_,PFLXZTHVMF=ZARG_FLXZTHVMF_,&
-     & PTHL_UP=ZTHETAL_UP_,PRT_UP= ZRT_UP_,&
-     & PRV_UP=ZZRV_UP_,&
-     & PRC_UP=ZRC_UP_,PRI_UP=ZRI_UP_,&
-     & PU_UP=ZZU_UP_,PV_UP=ZZV_UP_,&
-     & PTHV_UP=ZTHETAV_UP_,PW_UP=ZZW_UP_,&
-     & PFRAC_UP=ZZFRAC_UP_,PEMF=ZMF_UP__(:,1:KLEV))
+    CALL ARO_SHALLOW_MF (KKL=IKL, KLON=YDCPG_BNDS%KFDIA, KLEV=YDCPG_OPTS%KFLEVG, KRR=NRR, KRRL=NRRL,                                &
+    & KRRI=NRRI, KSV=NGFL_EXT, HMF_UPDRAFT=CMF_UPDRAFT, HMF_CLOUD=CMF_CLOUD, HFRAC_ICE=CFRAC_ICE_SHALLOW_MF,                        &
+    & OMIXUV=LMIXUV, ONOMIXLG=.FALSE., KSV_LGBEG=0, KSV_LGEND=0, KTCOUNT=YDCPG_OPTS%KSTEP+1, PTSTEP=ZDT,                            &
+    & PDX=YDGEOMETRY%YREGEO%EDELX, PDY=YDGEOMETRY%YREGEO%EDELY,                                                                     &
+    & PZZ=ZZZ_, PZZF=ZZZ_F_, PDZZF=ZDZZ_F_, PRHODJ=ZRHODJM__(:, 1:YDCPG_OPTS%KFLEVG), PRHODREF=ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG), &
+    & PPABSM=ZPABSM__(:, 1:YDCPG_OPTS%KFLEVG), PEXNM=ZEXNREFM_, PSFTH=ZSFTH_, PSFRV=ZSFRV_, PTHM=ZTHM__(:, 1:YDCPG_OPTS%KFLEVG),    &
+    & PRM=ZRM_, PUM=ZUM__(:, 1:YDCPG_OPTS%KFLEVG), PVM=ZVM__(:, 1:YDCPG_OPTS%KFLEVG), PTKEM=ZTKEM__(:, 1:YDCPG_OPTS%KFLEVG),        &
+    & PSVM=ZSVM_, PDUDT_MF=ZMFUS_, PDVDT_MF=ZMFVS_, PDTHLDT_MF=ZTHLS_, PDRTDT_MF=ZRTS_, PDSVDT_MF=ZSVXXX_,                          &
+    & PSIGMF=ZSIGMF_, PRC_MF=ZRC_MF_, PRI_MF=ZRI_MF_, PCF_MF=ZCF_MF_, PFLXZTHVMF=ZARG_FLXZTHVMF_, PTHL_UP=ZTHETAL_UP_,              &
+    & PRT_UP= ZRT_UP_, PRV_UP=ZZRV_UP_, PRC_UP=ZRC_UP_, PRI_UP=ZRI_UP_, PU_UP=ZZU_UP_, PV_UP=ZZV_UP_,                               &
+    & PTHV_UP=ZTHETAV_UP_, PW_UP=ZZW_UP_, PFRAC_UP=ZZFRAC_UP_, PEMF=ZMF_UP__(:, 1:YDCPG_OPTS%KFLEVG)                                &
+    & )
+
+    !wc No variance due to dry updraft yet.
+    ! Putting ZSIGMF to 0 for dry updraft might be obsolete 
+    IF (LSTATNW) THEN
+      IF (JDRAFT .EQ. 2) THEN
+        DO JLEV = 1,YDCPG_OPTS%KFLEVG
+          ZSIGMF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB
+        ENDDO
+      ENDIF
+    ENDIF
 
     IF (JDRAFT > IDRAFT) THEN
       ! Add increment
-      ZFLXZTHVMF_SUM__(KIDIA:KFDIA,1:KLEV)=ZFLXZTHVMF_SUM__(KIDIA:KFDIA,1:KLEV)+ZFLXZTHVMF_(KIDIA:KFDIA,1:KLEV)
+      ZFLXZTHVMF_SUM__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=ZFLXZTHVMF_SUM__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)+ZFLXZTHVMF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
     ENDIF
 
     ! traitement des sorties pour repasser dans le monde Aladin
 
     IF ((CMF_CLOUD=='DIRE'.OR.CMF_CLOUD=='BIGA').AND.JDRAFT==3) THEN
       ! sauvegarde pour le schema de nuage
-      DO JLEV = 1,KLEV
-        PEZDIAG(KIDIA:KFDIA,JLEV,1)=ZRC_MF_(KIDIA:KFDIA,JLEV)
-        PEZDIAG(KIDIA:KFDIA,JLEV,3)=ZRI_MF_(KIDIA:KFDIA,JLEV)
-        PEZDIAG(KIDIA:KFDIA,JLEV,2)=ZCF_MF_(KIDIA:KFDIA,JLEV)
+      DO JLEV = 1,YDCPG_OPTS%KFLEVG
+        ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,1)=ZRC_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)
+        ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,3)=ZRI_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)
+        ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,2)=ZCF_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)
       ENDDO
     ENDIF
-    DO JLEV = 1,KLEV
-      DO JLON = KIDIA,KFDIA
+    DO JLEV = 1,YDCPG_OPTS%KFLEVG
+      DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
         ZUS__(JLON,JLEV)=ZUS__(JLON,JLEV)+ZMFUS_(JLON,JLEV)
         ZVS__(JLON,JLEV)=ZVS__(JLON,JLEV)+ZMFVS_(JLON,JLEV)
         ZTHS__(JLON,JLEV)=ZTHS__(JLON,JLEV)+ZTHLS_(JLON,JLEV)
         ZRS_(JLON,JLEV,1)=ZRS_(JLON,JLEV,1)+ZRTS_(JLON,JLEV)
         !calcul de tendance et inversion des niveaux pour le vent horizontal
-        PTENDU(JLON,JLEV)=PTENDU(JLON,JLEV)+ZMFUS_(JLON,JLEV)
-        PTENDV(JLON,JLEV)=PTENDV(JLON,JLEV)+ZMFVS_(JLON,JLEV)
+        YDMF_PHYS%OUT%TENDU(JLON,JLEV)=YDMF_PHYS%OUT%TENDU(JLON,JLEV)+ZMFUS_(JLON,JLEV)
+        YDMF_PHYS%OUT%TENDV(JLON,JLEV)=YDMF_PHYS%OUT%TENDV(JLON,JLEV)+ZMFVS_(JLON,JLEV)
         !conversion de la tendance de theta en tendance de T et inversion niveau
-        PTENDT(JLON,JLEV)=PTENDT(JLON,JLEV)+ZTHLS_(JLON,JLEV)*ZEXNREFM_(JLON,JLEV)
-        ZTENDT(JLON,JLEV)=ZTENDT(JLON,JLEV)+ZTHLS_(JLON,JLEV)
+        ZTENDT(JLON,JLEV)=ZTENDT(JLON,JLEV)+ZTHLS_(JLON,JLEV)*ZEXNREFM_(JLON,JLEV)
+        ZTENDTT(JLON,JLEV)=ZTENDTT(JLON,JLEV)+ZTHLS_(JLON,JLEV)
         !inversion niveaux tendances des ri et conversion en qi en multipliant par qd
-        PTENDR(JLON,JLEV,1) = PTENDR(JLON,JLEV,1)+ZRTS_(JLON,JLEV)*ZQDM(JLON,JLEV)
+        ZTEND_Q(JLON,JLEV) = ZTEND_Q(JLON,JLEV)+ZRTS_(JLON,JLEV)*ZQDM(JLON,JLEV)
       ENDDO
     ENDDO
 
@@ -2990,11 +2839,11 @@ IF (LTURB) THEN
   CALL SWAP_SVS
   ! well let's keep the copy, though for now  OUT=IN anyway.
   IF (NGFL_EXT /=0 ) THEN
-    ZSVSIN_(KIDIA:KFDIA,1:KLEV,1:NGFL_EXT)=ZSVS_(KIDIA:KFDIA,1:KLEV,1:NGFL_EXT)
+    ZSVSIN_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NGFL_EXT)=ZSVS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NGFL_EXT)
   ENDIF
 
   !prints
-  IF(MOD(KSTEP+1,NPRINTFR)==0) THEN
+  IF(MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
     WRITE(NULOUT,*)'avant d entrer dans turb sous apl_arome U'
     WRITE(NULOUT,*)MAXVAL(ZUM__(:,IKB)), MINVAL(ZUM__(:,IKB))
     WRITE(NULOUT,*)'avant d entrer dans turb sous apl_arome V'
@@ -3003,15 +2852,15 @@ IF (LTURB) THEN
     WRITE(NULOUT,*)MAXVAL(ZWM__(:,IKB)), MINVAL(ZWM__(:,IKB))
     WRITE(NULOUT,*)'avant d entrer dans turb sous apl_arome TKE'
     WRITE(NULOUT,*)MAXVAL(ZTKEM__(:,IKB)), MINVAL(ZTKEM__(:,IKB))
-    DO JLEV=1,KLEV
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
       WRITE(NULOUT,*)JLEV,ZUM__(NPTP,JLEV),ZVM__(NPTP,JLEV),ZWM__(NPTP,JLEV),ZTKEM__(NPTP,JLEV)
     ENDDO
     WRITE(NULOUT,*)'u v w tke a S'
-    DO JLEV=1,KLEV
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
       WRITE(NULOUT,*)JLEV,ZUS__(NPTP,JLEV),ZVS__(NPTP,JLEV),ZWS__(NPTP,JLEV),ZTKES_(NPTP,JLEV)
     ENDDO
     WRITE(NULOUT,*)'ZTHS__ avant turb'
-    DO JLEV=1,KLEV
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
       WRITE(NULOUT,*)JLEV,ZTHS__(NPTP,JLEV)
     ENDDO
   ENDIF
@@ -3022,9 +2871,9 @@ IF (LTURB) THEN
 !!$!
 !!$  IF (NGFL_EXT/=0) THEN
 !!$     DO JGFL=1,NGFL_EXT
-!!$        DO JLON=KIDIA,KFDIA
+!!$        DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
 !!$           ZSFTURB(JLON,JGFL)=ZSFSV_(JLON,JGFL)
-!!$           DO JLEV = 1, KLEV
+!!$           DO JLEV = 1, YDCPG_OPTS%KFLEVG
 !!$              ZTURBM(JLON,JLEV,JGFL)=ZSVM_(JLON,1,JLEV,JGFL)
 !!$              ZTURBS(JLON,JLEV,JGFL)=ZSVSIN_(JLON,1,JLEV,JGFL)
 !!$           ENDDO
@@ -3034,9 +2883,9 @@ IF (LTURB) THEN
 !!$!
 !!$  IF (NLIMA/=0) THEN
 !!$     DO JGFL=1,NLIMA
-!!$        DO JLON=KIDIA,KFDIA
+!!$        DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
 !!$           ZSFTURB(JLON,NGFL_EXT+JGFL)=0.
-!!$           DO JLEV = 1, KLEV
+!!$           DO JLEV = 1, YDCPG_OPTS%KFLEVG
 !!$              ZTURBM(JLON,JLEV,NGFL_EXT+JGFL)=ZLIMAM_(JLON,JLEV,JGFL)
 !!$              ZTURBS(JLON,JLEV,NGFL_EXT+JGFL)=ZLIMASIN_(JLON,JLEV,JGFL)
 !!$           ENDDO
@@ -3045,16 +2894,16 @@ IF (LTURB) THEN
 !!$  ENDIF
 
   ! Input variable indeed. REK
-  ZSFSVLIMA_(KIDIA:KFDIA,1:NLIMA)=0._JPRB
+  ZSFSVLIMA_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NLIMA)=0._JPRB
 
   ! 10.2 calcul TURB
-  ZZTOP_(KIDIA:KFDIA)=ZAPHIM(KIDIA:KFDIA,0)*ZINVG
+  ZZTOP_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=ZAPHIM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,0)*ZINVG
 
   IF (LGRADHPHY) THEN
-  !   
-    DO JLEV = 1,KLEV
-      DO JGR=1,NGRADIENTS
-        ZTURB3D__(KIDIA:KFDIA,JLEV,JGR)=PTURB3D(KIDIA:KFDIA,JGR,JLEV)
+  !
+  DO JGR=1,NGRADIENTS  
+    DO JLEV = 1,YDCPG_OPTS%KFLEVG
+        ZTURB3D__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,JGR)=YDMF_PHYS%GRA%G(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,JGR)
       ENDDO
     ENDDO
   
@@ -3062,40 +2911,27 @@ IF (LTURB) THEN
 
 ! Appel avec les arguments modifiés pour variables LIMA :
 ! KSV_TURB, ZSFTURB, ZTURBM, ZTURBS, ZTENDSV_TURB
-  CALL ARO_TURB_MNH(KKA=IKA,KKU=IKU,KKL=IKL,KLON=KFDIA,KLEV=KLEV,&
-   & KRR=NRR, KRRL=NRRL,KRRI= NRRI,&
-   & KSV=NLIMA,KTCOUNT=KSTEP+1,KGRADIENTS=NGRADIENTS,&
-   &LDHARATU=LHARATU,CMICRO=CMICRO,PTSTEP=ZDT,&
-   & PZZ=ZZZ_,PZZF=ZZZ_F_,&
-   & PZZTOP=ZZTOP_,PRHODJ=ZRHODJM__,PTHVREF=ZTHVREFM__,&
-   & HINST_SFU='M',&
-   & PSFTH=ZSFTH_,PSFRV=ZSFRV_,&
-   & PSFSV=ZSFSVLIMA_,PSFU=ZSFU_,&
-   & PSFV=ZSFV_,PPABSM=ZPABSM__,&
-   & PUM=ZUM__,PVM=ZVM__,PWM=ZWM__,PTKEM=ZTKEM__,PEPSM=ZEPSM,&
-   & PSVM=ZLIMAM_,&
-   & PSRCM=ZSRCS__,PTHM=ZTHM__,&
-   & PRM=ZRM_,&
-   & PRUS=ZUS__,PRVS=ZVS__,PRWS=ZWS__,PRTHS=ZTHS__,&
-   & PRRS=ZRS_,&
-   & PRSVSIN=ZLIMASIN_,PRSVS=ZLIMAS_,&
-   & PRTKES=ZTKES_,PRTKES_OUT=ZTKES_OUT__,&
-   & PREPSS=ZEPSS,PHGRAD=ZTURB3D__,PSIGS=ZSIGS__,&
-   & OSUBG_COND=LOSUBG_COND,&
-   & PFLXZTHVMF=ZFLXZTHVMF_SUM__,&
-   & PLENGTHM=ZLENGTHM__,PLENGTHH=ZLENGTHH__,MFMOIST=ZMF_UP__,PDRUS_TURB=ZTENDU_TURB__, &
-   & PDRVS_TURB=ZTENDV_TURB__,PDRTHLS_TURB=ZTENDTHL_TURB__,PDRRTS_TURB=ZTENDRT_TURB__,&
-   & PDRSVS_TURB=ZTENDSV_TURBLIMA_,&
-   & PDP=ZDP__, PTP=ZTP__,PTPMF=ZTPMF__,PTDIFF=ZTDIFF__,PTDISS=ZTDISS__,PEDR=ZEDR__,YDDDH=YDDDH,&
-   & YDLDDH=YDMODEL%YRML_DIAG%YRLDDH,YDMDDH=YDMODEL%YRML_DIAG%YRMDDH)
+  CALL ARO_TURB_MNH(KKA=IKA, KKU=IKU, KKL=IKL, KLON=YDCPG_BNDS%KFDIA, KLEV=YDCPG_OPTS%KFLEVG, KRR=NRR,               &
+  & KRRL=NRRL, KRRI= NRRI, KSV=NLIMA, KTCOUNT=YDCPG_OPTS%KSTEP+1, KGRADIENTS=NGRADIENTS, LDHARATU=LHARATU,           &
+  & CMICRO=CMICRO,                                                                                                   &
+  & PTSTEP=ZDT, PZZ=ZZZ_, PZZF=ZZZ_F_, PZZTOP=ZZTOP_, PRHODJ=ZRHODJM__, PTHVREF=ZTHVREFM__,                          &
+  & HINST_SFU='M', PSFTH=ZSFTH_, PSFRV=ZSFRV_, PSFSV=ZSFSVLIMA_, PSFU=ZSFU_,                                         &
+  & PSFV=ZSFV_, PPABSM=ZPABSM__, PUM=ZUM__, PVM=ZVM__, PWM=ZWM__, PTKEM=ZTKEM__, PEPSM=ZEPSM, PSVM=ZLIMAM_,          &
+  & PSRCM=ZSRCS__, PTHM=ZTHM__, PRM=ZRM_, PRUS=ZUS__, PRVS=ZVS__, PRWS=ZWS__, PRTHS=ZTHS__, PRRS=ZRS_,               &
+  & PRSVSIN=ZLIMASIN_, PRSVS=ZLIMAS_, PRTKES=ZTKES_, PRTKES_OUT=ZTKES_OUT__, PREPSS=ZEPSS, PHGRAD=ZTURB3D__,         &
+  & PSIGS=ZSIGS__, OSUBG_COND=LOSUBG_COND, PFLXZTHVMF=ZFLXZTHVMF_SUM__, PLENGTHM=ZLENGTHM__, PLENGTHH=ZLENGTHH__,    &
+  & MFMOIST=ZMF_UP__, PDRUS_TURB=ZTENDU_TURB__, PDRVS_TURB=ZTENDV_TURB__, PDRTHLS_TURB=ZTENDTHL_TURB__,              &
+  & PDRRTS_TURB=ZTENDRT_TURB__, PDRSVS_TURB=ZTENDSV_TURBLIMA_, PDP=ZDP__, PTP=ZTP__, PTPMF=ZTPMF__, PTDIFF=ZTDIFF__, &
+  & PTDISS=ZTDISS__, PEDR=ZEDR__, YDDDH=YDDDH, YDLDDH=YDMODEL%YRML_DIAG%YRLDDH, YDMDDH=YDMODEL%YRML_DIAG%YRMDDH      &
+  &                                                 )
 
 
 ! Séparation des variables SV (NGFL_EXT + NLIMA)
 !!$  IF (NGFL_EXT/=0) THEN
 !!$     DO JGFL=1,NGFL_EXT
-!!$        DO JLON=KIDIA,KFDIA
+!!$        DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
 !!$           ZSFSV_(JLON,JGFL)=ZSFTURB(JLON,JGFL)
-!!$           DO JLEV = 1, KLEV
+!!$           DO JLEV = 1, YDCPG_OPTS%KFLEVG
 !!$              ZSVM_(JLON,1,JLEV,JGFL)=ZTURBM(JLON,JLEV,JGFL)
 !!$              ZSVS_(JLON,1,JLEV,JGFL)=ZTURBS(JLON,JLEV,JGFL)
 !!$           ENDDO
@@ -3105,8 +2941,8 @@ IF (LTURB) THEN
 !!$!
 !!$  IF (NLIMA/=0) THEN
 !!$     DO JGFL=1,NLIMA
-!!$        DO JLON=KIDIA,KFDIA
-!!$           DO JLEV = 1, KLEV
+!!$        DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+!!$           DO JLEV = 1, YDCPG_OPTS%KFLEVG
 !!$              ZLIMAM_(JLON,JLEV,JGFL)=ZTURBM(JLON,JLEV,NGFL_EXT+JGFL)
 !!$              ZLIMAS_(JLON,JLEV,JGFL)=ZTURBS(JLON,JLEV,NGFL_EXT+JGFL)
 !!$           ENDDO
@@ -3115,42 +2951,40 @@ IF (LTURB) THEN
 !!$  ENDIF
 
 
-  DO JLEV = 1 , KLEV
-     PEDR(KIDIA:KFDIA,JLEV)=ZEDR__(KIDIA:KFDIA,JLEV)
+  DO JLEV = 1 , YDCPG_OPTS%KFLEVG
+     YDMF_PHYS%OUT%EDR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZEDR__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)
   ENDDO
    
   IF (LFLEXDIA) THEN
-    DO JLEV = 1,KLEV
-      DO JLON = KIDIA,KFDIA
-        ZDP__(JLON,JLEV)=ZDP__(JLON,JLEV)*PDELPM(JLON,JLEV)*ZINVG
-        ZTP__(JLON,JLEV)=(ZTP__(JLON,JLEV)-ZTPMF__(JLON,JLEV))*PDELPM(JLON,JLEV)*ZINVG
-        ZTPMF__(JLON,JLEV)=ZTPMF__(JLON,JLEV)*PDELPM(JLON,JLEV)*ZINVG
-        ZTDIFF__(JLON,JLEV)=ZTDIFF__(JLON,JLEV)*PDELPM(JLON,JLEV)*ZINVG
-        ZTDISS__(JLON,JLEV)=ZTDISS__(JLON,JLEV)*PDELPM(JLON,JLEV)*ZINVG
-      ENDDO
-    ENDDO
-    IF (LDDH_OMP) THEN
-      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZDP__(:,1:KLEV),'TKEPRDY',YDDDH)
-      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTP__(:,1:KLEV),'TKEPRTH',YDDDH)
-      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTPMF__(:,1:KLEV),'TKEPRTHMF',YDDDH)
-      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTDIFF__(:,1:KLEV),'TKEDIFF',YDDDH)
-      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTDISS__(:,1:KLEV),'TKEDISS',YDDDH)
-    ELSE
-      CALL ADD_FIELD_3D(YLDDH,ZDP__(:,1:KLEV),'TKEPRDY','T','ARO',.TRUE.,.TRUE.)
-      CALL ADD_FIELD_3D(YLDDH,ZTP__(:,1:KLEV),'TKEPRTH','T','ARO',.TRUE.,.TRUE.)
-      CALL ADD_FIELD_3D(YLDDH,ZTPMF__(:,1:KLEV),'TKEPRTHMF','T','ARO',.TRUE.,.TRUE.)
-      CALL ADD_FIELD_3D(YLDDH,ZTDIFF__(:,1:KLEV),'TKEDIFF','T','ARO',.TRUE.,.TRUE.)
-      CALL ADD_FIELD_3D(YLDDH,ZTDISS__(:,1:KLEV),'TKEDISS','T','ARO',.TRUE.,.TRUE.)
-    ENDIF
+    DO JLEV = 1,YDCPG_OPTS%KFLEVG
+      DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZDP__(JLON,JLEV)=ZDP__(JLON,JLEV)*YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)*ZINVG
+        ZTP__(JLON,JLEV)=(ZTP__(JLON,JLEV)-ZTPMF__(JLON,JLEV))*YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)*ZINVG
+        ZTPMF__(JLON,JLEV)=ZTPMF__(JLON,JLEV)*YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)*ZINVG
+        ZTDIFF__(JLON,JLEV)=ZTDIFF__(JLON,JLEV)*YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)*ZINVG
+        ZTDISS__(JLON,JLEV)=ZTDISS__(JLON,JLEV)*YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)*ZINVG
+      ENDDO
+    ENDDO
+      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH, ZDP__(:, 1:YDCPG_OPTS%KFLEVG), 'TKEPRDY', &
+      & YDDDH            )
+      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH, ZTP__(:, 1:YDCPG_OPTS%KFLEVG), 'TKEPRTH', &
+      & YDDDH            )
+      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH, ZTPMF__(:, 1:YDCPG_OPTS%KFLEVG), 'TKEPRTHMF', &
+      & YDDDH)
+      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH, ZTDIFF__(:, 1:YDCPG_OPTS%KFLEVG), 'TKEDIFF', &
+      & YDDDH)
+      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH, ZTDISS__(:, 1:YDCPG_OPTS%KFLEVG), 'TKEDISS', &
+      & YDDDH)
+
   ENDIF 
 
-  IF(MOD(KSTEP+1,NPRINTFR)==0) THEN
+  IF(MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
     WRITE(NULOUT,*)'u v w a S apres turb'
-    DO JLEV=1,KLEV
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
       WRITE(NULOUT,*)JLEV,ZUS__(NPTP,JLEV),ZVS__(NPTP,JLEV),ZWS__(NPTP,JLEV),ZTKES_OUT__(NPTP,JLEV)
     ENDDO
     WRITE(NULOUT,*)'THS TKES SIGS apres turb'
-    DO JLEV=1,KLEV
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
       WRITE(NULOUT,*)JLEV,ZTHS__(NPTP,JLEV),ZTKES_OUT__(NPTP,JLEV),ZSIGS__(NPTP,JLEV)
     ENDDO
   ENDIF
@@ -3158,13 +2992,13 @@ IF (LTURB) THEN
   ! avance temporelle et inversion niveau pour ZSIGS__
   IF (LOSUBG_COND .AND. LOSIGMAS) THEN
     IF (CMF_CLOUD=='DIRE'.OR.CMF_CLOUD=='BIGA'.OR.CMF_CLOUD=='NONE') THEN
-      DO JLEV = 1,KLEV
-        PSIGS(KIDIA:KFDIA,JLEV)=ZSIGS__(KIDIA:KFDIA,JLEV)
+      DO JLEV = 1,YDCPG_OPTS%KFLEVG
+        YDVARS%SRC%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZSIGS__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)
       ENDDO
     ELSEIF (CMF_CLOUD=='STAT') THEN
-      DO JLEV = 1,KLEV
-        DO JLON = KIDIA,KFDIA
-          PSIGS(JLON,JLEV)=SQRT(ZSIGS__(JLON,JLEV)**2+ZSIGMF_(JLON,JLEV)**2 )
+      DO JLEV = 1,YDCPG_OPTS%KFLEVG
+        DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+          YDVARS%SRC%T1(JLON,JLEV)=SQRT(ZSIGS__(JLON,JLEV)**2+ZSIGMF_(JLON,JLEV)**2 )
         ENDDO
       ENDDO
     ENDIF
@@ -3174,57 +3008,81 @@ IF (LTURB) THEN
   !10.3. traitement des sorties pour repasser dans le monde Aladin
   !calcul de tendance et inversion des niveaux pour le vent horizontal et la TKE
 
-  DO JLEV = 1,KLEV
-    DO JLON = KIDIA,KFDIA
-      PTENDU(JLON,JLEV)=PTENDU(JLON,JLEV)+ZTENDU_TURB__(JLON,JLEV)
-      PTENDV(JLON,JLEV)=PTENDV(JLON,JLEV)+ZTENDV_TURB__(JLON,JLEV)
+  DO JLEV = 1,YDCPG_OPTS%KFLEVG
+    DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      YDMF_PHYS%OUT%TENDU(JLON,JLEV)=YDMF_PHYS%OUT%TENDU(JLON,JLEV)+ZTENDU_TURB__(JLON,JLEV)
+      YDMF_PHYS%OUT%TENDV(JLON,JLEV)=YDMF_PHYS%OUT%TENDV(JLON,JLEV)+ZTENDV_TURB__(JLON,JLEV)
       ! for the moment, turbulence do not compute w tendency:
-      PTENDW(JLON,JLEV)=0.0_JPRB
+      ZTENDW(JLON,JLEV)=0.0_JPRB
       ! PTENDW(JLON,JLEV)+(ZWS__(JLON,JLEV)-&
       ! & ZWS_AVE(JLON,1,JLEV))
       !conversion de la tendance de theta en tendance de T et inversion niveau
-      PTENDT(JLON,JLEV)=PTENDT(JLON,JLEV)+ZTENDTHL_TURB__(JLON,JLEV)*ZEXNREFM_(JLON,JLEV)
+      ZTENDT(JLON,JLEV)=ZTENDT(JLON,JLEV)+ZTENDTHL_TURB__(JLON,JLEV)*ZEXNREFM_(JLON,JLEV)
   !inversion niveaux tendances des rv et conversion en qv en multipliant par qd
-      PTENDR(JLON,JLEV,1)= PTENDR(JLON,JLEV,1)+ZTENDRT_TURB__(JLON,JLEV)*ZQDM(JLON,JLEV)
+      ZTEND_Q(JLON,JLEV)= ZTEND_Q(JLON,JLEV)+ZTENDRT_TURB__(JLON,JLEV)*ZQDM(JLON,JLEV)
     ENDDO
   ENDDO
 
 
   IF (LHARATU) THEN
-    DO JLEV = 1,KLEV
-      DO JLON = KIDIA,KFDIA
-          PTENDTKE(JLON,JLEV)=PTENDTKE(JLON,JLEV)+(ZTKEEDMFS(JLON,JLEV)-ZTKES_(JLON,JLEV))
+    DO JLEV = 1,YDCPG_OPTS%KFLEVG
+      DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+          ZTENDTKE(JLON,JLEV)=ZTENDTKE(JLON,JLEV)+(ZTKEEDMFS(JLON,JLEV)-ZTKES_(JLON,JLEV))
       ENDDO
     ENDDO
   ELSE
-    DO JLEV = 1,KLEV
-      DO JLON = KIDIA,KFDIA
-         PTENDTKE(JLON,JLEV)=PTENDTKE(JLON,JLEV)+(ZTKES_OUT__(JLON,JLEV)-ZTKES_(JLON,JLEV))
+    DO JLEV = 1,YDCPG_OPTS%KFLEVG
+      DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+         ZTENDTKE(JLON,JLEV)=ZTENDTKE(JLON,JLEV)+(ZTKES_OUT__(JLON,JLEV)-ZTKES_(JLON,JLEV))
       ENDDO
     ENDDO
   ENDIF
 
   DO JGFL=1,NGFL_EXT
-    DO JLEV = 1,KLEV
-      DO JLON = KIDIA,KFDIA
-        PTENDEXT(JLON,JLEV,JGFL)=PTENDEXT(JLON,JLEV,JGFL)+(ZSVS_(JLON,JLEV,JGFL)-ZSVSIN_(JLON,JLEV,JGFL))
+    DO JLEV = 1,YDCPG_OPTS%KFLEVG
+      DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZTENDEXT(JLON,JLEV,JGFL)=ZTENDEXT(JLON,JLEV,JGFL)+(ZSVS_(JLON,JLEV,JGFL)-ZSVSIN_(JLON,JLEV,JGFL))
       ENDDO
     ENDDO
   ENDDO
 
 ! Tendances LIMA
   DO JGFL=1,NLIMA
-    DO JLEV = 1, KLEV
-      DO JLON=KIDIA,KFDIA
-        PTENDLIMA(JLON,JLEV,JGFL)=PTENDLIMA(JLON,JLEV,JGFL)+ZTENDSV_TURBLIMA_(JLON,JLEV,JGFL)
+    DO JLEV = 1, YDCPG_OPTS%KFLEVG
+      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZTENDLIMA(JLON,JLEV,JGFL)=ZTENDLIMA(JLON,JLEV,JGFL)+ZTENDSV_TURBLIMA_(JLON,JLEV,JGFL)
 !        PTENDLIMA(JLON,JLEV,:)=PTENDLIMA(JLON,JLEV,:)+ (ZLIMAS_(JLON,JLEV,:)-ZLIMASIN_(JLON,JLEV,:))
       ENDDO
     ENDDO
   ENDDO
 
 ENDIF
+IF(LWINDFARM)THEN
+  DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+    ZP1EZDIAG(JLON,1,5)=0.0_JPRB
+    IF(GFL_WKA(JLON,YDCPG_BNDS%KBL)>0.0)THEN
+      JGFL=INT(GFL_WKA2(1,6,YDCPG_BNDS%KBL))*1_JPIM
+      CALL ARO_WINDFARM(YDGEOMETRY,YDMODEL,YDVARS%GEOMETRY%OROG%T0(JLON), &
+          & YDMF_PHYS_BASE_STATE%U(JLON,1:YDCPG_OPTS%KFLEVG),YDMF_PHYS_BASE_STATE%V(JLON,1:YDCPG_OPTS%KFLEVG),&
+          & YDMF_PHYS_BASE_STATE%YCPG_PHY%W(JLON,1:YDCPG_OPTS%KFLEVG),YDMF_PHYS_BASE_STATE%TKE(JLON,1:YDCPG_OPTS%KFLEVG),&
+          & YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI(JLON,0:YDCPG_OPTS%KFLEVG),&
+          & YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(JLON,1:YDCPG_OPTS%KFLEVG),ZTENDU_TURB__(JLON,1:YDCPG_OPTS%KFLEVG),&
+          & ZTENDV_TURB__(JLON,1:YDCPG_OPTS%KFLEVG),ZTKES_OUT__(JLON,1:YDCPG_OPTS%KFLEVG),&
+          & GFL_WKA(JLON,YDCPG_BNDS%KBL),GFL_WKA2(1:JGFL,1:6,YDCPG_BNDS%KBL),YDCPG_OPTS%KFLEVG,&
+          & YDCPG_OPTS%KSTEP,JGFL,ZP1EZDIAG(JLON,1,5))
+      DO JLEV=1,YDCPG_OPTS%KFLEVG
+        YDMF_PHYS%OUT%TENDU(JLON,JLEV)=YDMF_PHYS%OUT%TENDU(JLON,JLEV)+ZTENDU_TURB__(JLON,JLEV)
+        YDMF_PHYS%OUT%TENDV(JLON,JLEV)=YDMF_PHYS%OUT%TENDV(JLON,JLEV)+ZTENDV_TURB__(JLON,JLEV)
+        ZTENDTKE(JLON,JLEV)=ZTENDTKE(JLON,JLEV)+ZTKES_OUT__(JLON,JLEV)
+        !WRITE(*,*) 'windfarm tendencies dU/dt,dV/dt,dTKE/dt'
+        !WRITE(*,*)ZTENDU_TURB(JLON,1,JLEV),ZTENDV_TURB(JLON,1,JLEV),&
+        !        & ZZI_TKES(JLON,1,JLEV)
+      ENDDO
+    ENDIF
+  ENDDO
+ENDIF
 !    ------------------------------------------------------------------
-!     11 - MICROPHYSIQUE. 
+!     11 - MICROPHYSIQUE.
 !     --------------------------------------------------------------------
 
 IF (LMICRO) THEN
@@ -3235,90 +3093,94 @@ IF (LMICRO) THEN
   CALL SWAP_LIMAS
 
   ! for now a copy is needed (see below, inside). I don't like than :-( REK
-  ZTHS__(KIDIA:KFDIA,1:KLEV)=ZTHSIN_(KIDIA:KFDIA,1:KLEV)
-  ZRS_(KIDIA:KFDIA,1:KLEV,1:NRR)=ZRSIN_(KIDIA:KFDIA,1:KLEV,1:NRR)
+  ZTHS__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=ZTHSIN_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
+  ZRS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NRR)=ZRSIN_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NRR)
   ! for now a copy is needed (see below, inside). I don't like than :-( REK
-  ZLIMAS_(KIDIA:KFDIA,1:KLEV,1:NLIMA)=ZLIMASIN_(KIDIA:KFDIA,1:KLEV,1:NLIMA)
+  ZLIMAS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NLIMA)=ZLIMASIN_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NLIMA)
      
   !prints
-  IF (MOD(KSTEP+1,NPRINTFR)==0) THEN
+  IF (MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
     WRITE(NULOUT,*)'avant rain_ice sous apl_arome'
     WRITE(NULOUT,*)'JLEV   ZZZ_F_      ZZZ_      ZRHODREF',&
-     & '    ZRHODJ      ZPABSM__        ZTHSIN_       ZTHM__      '   
-    DO JLEV=1,KLEV+1 
+     & '    ZRHODJ      ZPABSM__        ZTHSIN_       ZTHM__      '
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
       WRITE(NULOUT,'(I2,X,7F10.3)')JLEV,ZZZ_F_(NPTP,JLEV),ZZZ_(NPTP,JLEV), ZRHODREFM__(NPTP,JLEV),&
        & ZRHODJM__(NPTP,JLEV), ZPABSM__(NPTP,JLEV), ZTHSIN_(NPTP,JLEV), ZTHM__(NPTP,JLEV)  
     ENDDO 
     WRITE(NULOUT,*)'JLEV        PDELPM        ZPABSM__         ZEXNREF','          ZSIGS__'
-    DO JLEV=2,KLEV
-      WRITE(NULOUT,'(I2,X,4f10.3)')JLEV, PDELPM(NPTP,JLEV),&
-       & ZPABSM__(NPTP,JLEV),ZEXNREFM_(NPTP,JLEV),ZSIGS__(NPTP,JLEV)  
+    DO JLEV=2,YDCPG_OPTS%KFLEVG
+      WRITE(NULOUT,'(I2,X,4f10.3)')JLEV, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(NPTP,JLEV),&
+       & ZPABSM__(NPTP,JLEV),ZEXNREFM_(NPTP,JLEV),ZSIGS__(NPTP,JLEV)
     ENDDO
     WRITE(NULOUT,*)'JLEV    PTM       PRM          PCPM'
-    DO JLEV=1,KLEV
-      WRITE(NULOUT,'(I2,X,3f10.3)')JLEV,ZTM(NPTP,KLEV+1-JLEV), ZRHM(NPTP,KLEV+1-JLEV) ,ZCPM(NPTP,KLEV+1-JLEV)  
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
+      WRITE(NULOUT,'(I2,X,3f10.3)')JLEV,ZTM(NPTP,YDCPG_OPTS%KFLEVG+1-JLEV), ZRHM(NPTP,YDCPG_OPTS%KFLEVG+1-JLEV) ,ZCPM(NPTP,YDCPG_OPTS%KFLEVG+1-JLEV)  
     ENDDO
     WRITE (NULOUT,*)'JLEV  rhoQv  rhoQc   rhoQr   rhoQi   rhoQs   rhoQg'
-    DO JLEV=1,KLEV
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
       WRITE(NULOUT,'(I2,X,6E11.4)')JLEV,ZRM_(NPTP,JLEV,1), ZRM_(NPTP,JLEV,2),&
-       & ZRM_(NPTP,JLEV,3),ZRM_(NPTP,JLEV,4),ZRM_(NPTP,JLEV,5), ZRM_(NPTP,JLEV,6)  
+       & ZRM_(NPTP,JLEV,3),ZRM_(NPTP,JLEV,4),ZRM_(NPTP,JLEV,5), ZRM_(NPTP,JLEV,6)
     ENDDO
     WRITE (NULOUT,*)'JLEV  ZRSQv  ZRSQc   ZRSQr   ZRSQi   ZRSQs   ZRSQg'
-    DO JLEV=1,KLEV
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
       WRITE(NULOUT,'(I2,X,6E11.4)')JLEV,ZRS_(NPTP,JLEV,1), ZRS_(NPTP,JLEV,2),&
-       & ZRSIN_(NPTP,JLEV,3),ZRSIN_(NPTP,JLEV,4),ZRSIN_(NPTP,JLEV,5), ZRSIN_(NPTP,JLEV,6)  
+       & ZRSIN_(NPTP,JLEV,3),ZRSIN_(NPTP,JLEV,4),ZRSIN_(NPTP,JLEV,5), ZRSIN_(NPTP,JLEV,6)
     ENDDO
     WRITE(NULOUT,*)'ZDT=',ZDT
-    WRITE(NULOUT,*)'NRR and co',NRR,KSTEP+1,NSPLITR,LOSUBG_COND, LOSIGMAS, CSUBG_AUCV_RC,LOWARM  
+    WRITE(NULOUT,*)'NRR and co',NRR,YDCPG_OPTS%KSTEP+1,NSPLITR,LOSUBG_COND, LOSIGMAS, CSUBG_AUCV_RC,LOWARM  
   ENDIF
-  
 
-  ZSEA_(KIDIA:KFDIA)=0.0_JPRB
+  ZSEA_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0.0_JPRB
   IF (LOLSMC) THEN
-    DO JLON = KIDIA, KFDIA
-      IF (PLSM(JLON) < 0.5) THEN
+    DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
+      IF (YDMF_PHYS_SURF%GSD_VF%PLSM(JLON) < 0.5) THEN
         ZSEA_(JLON) = 1.0_JPRB
       ENDIF
     ENDDO
   ENDIF
-         
+
   IF (LOTOWNC) THEN
-    ZTOWN_(KIDIA:KFDIA) = ZTOWNS_(KIDIA:KFDIA)
+    ZTOWN_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) = ZTOWNS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
   ELSE
-    ZTOWN_(KIDIA:KFDIA)=0.0_JPRB
-  ENDIF  
+    ZTOWN_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0.0_JPRB
+  ENDIF
 
   IF (CMICRO == 'LIMA') THEN
 
     IF (LTURB) THEN
-      DO JLON=KIDIA,KFDIA
-        DO JLEV=1,KLEV
+      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        DO JLEV=1,YDCPG_OPTS%KFLEVG
           ZWNU_(JLON,JLEV) = ZWM__(JLON,JLEV) + 0.66*SQRT(ZTKEM__(JLON,JLEV))
         ENDDO
       ENDDO
-      ZPTRWNU_ => ZWNU_(1:KFDIA,1:KLEV)
+      ZPTRWNU_ => ZWNU_(1:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
     ELSE
-      ZPTRWNU_ => ZWM__(1:KFDIA,1:KLEV)
+      ZPTRWNU_ => ZWM__(1:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
     ENDIF
-    CALL ARO_LIMA(KLEV,IKU,IKL,KFDIA,KLEV,NRR,NLIMA,KSTEP+1,NSPLITR,NSPLITG, ZDT,ZDZZ_ ,&
-     & ZRHODJM__(:,1:KLEV),ZRHODREFM__(:,1:KLEV), ZEXNREFM_, ZPABSM__(:,1:KLEV), ZPTRWNU_, &
-     & ZTHM__(:,1:KLEV),ZRM_, ZLIMAM_,  ZTHS__(:,1:KLEV),ZRS_,  ZLIMAS_,  ZEVAP_, &
-     & ZINPRR_NOTINCR_, ZINPRS_NOTINCR_, ZINPRG_NOTINCR_, ZINPRH_NOTINCR_,ZPFPR_,&
-     & YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH )
+    CALL ARO_LIMA(YDCPG_OPTS%KFLEVG, IKU, IKL, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, NRR, NLIMA, YDCPG_OPTS%KSTEP+1,       &
+    & NSPLITR, NSPLITG, ZDT, ZDZZ_, ZRHODJM__(:, 1:YDCPG_OPTS%KFLEVG), ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG),               &
+    & ZEXNREFM_, ZPABSM__(:, 1:YDCPG_OPTS%KFLEVG), ZPTRWNU_, ZTHM__(:, 1:YDCPG_OPTS%KFLEVG), ZRM_,                        &
+    & ZLIMAM_, ZTHS__(:, 1:YDCPG_OPTS%KFLEVG), ZRS_, ZLIMAS_, ZEVAP_, ZINPRR_NOTINCR_,                                    &
+    & ZINPRS_NOTINCR_, ZINPRG_NOTINCR_, ZINPRH_NOTINCR_, ZPFPR_, YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH&
+    &              )
   ELSE
-    CALL ARO_RAIN_ICE (NPROMICRO,KLEV,IKU,IKL,KFDIA,KLEV,NRR,KSTEP+1,NSPLITR,NGFL_EZDIAG,&
-     & LOSUBG_COND, CSUBG_AUCV_RC, CSUBG_AUCV_RI, LOSEDIC,CSEDIM, CMICRO, ZDT,ZDZZ_ ,&
-     & ZRHODJM__(:,1:KLEV),ZRHODREFM__(:,1:KLEV), ZEXNREFM_, ZPABSM__(:,1:KLEV),&
-     & ZHLC_HRC__(:,1:KLEV), ZHLC_HCF__(:,1:KLEV),&
-     & ZHLI_HRI__(:,1:KLEV), ZHLI_HCF__(:,1:KLEV),&
-     & ZTHM__(:,1:KLEV),ZRM_, ZSIGS__(:,1:KLEV), ZNEBMNH_, ZTHS__(:,1:KLEV),ZRS_,&
-     & ZEVAP_, ZCIT_,LOWARM,ZSEA_,ZTOWN_, LOCND2,LGRSN,&
-     & ZINPRR_NOTINCR_, ZINPRS_NOTINCR_, ZINPRG_NOTINCR_, ZINPRH_NOTINCR_,ZPFPR_,&
-     & PGP2DSPP,PEZDIAG, &
-     & YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH)
+    CALL ARO_RAIN_ICE (NPROMICRO, YDCPG_OPTS%KFLEVG, IKU, IKL, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, NRR, YDCPG_OPTS%KSTEP+1,    &
+    & NSPLITR, LOSUBG_COND, CSUBG_AUCV_RC, CSUBG_AUCV_RI, LOSEDIC, CSEDIM, CMICRO, ZDT, ZDZZ_,                                  &
+    & ZRHODJM__(:, 1:YDCPG_OPTS%KFLEVG), ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG), ZEXNREFM_, ZPABSM__(:, 1:YDCPG_OPTS%KFLEVG),      &
+    & ZHLC_HRC_, ZHLC_HCF_, ZHLI_HRI_, ZHLI_HCF_,                                                                               &
+    & ZTHM__(:, 1:YDCPG_OPTS%KFLEVG),                                                                                           &
+    & ZRM_, ZSIGS__(:, 1:YDCPG_OPTS%KFLEVG), ZNEBMNH_, ZTHS__(:, 1:YDCPG_OPTS%KFLEVG), ZRS_, ZEVAP_,                            &
+    & ZCIT_, LOWARM, ZSEA_, ZTOWN_, &
+    & ZICLDFR_, ZWCLDFR_, ZSSIO_, ZSSIU_, ZIFR_, &
+    & LOCND2, LKOGAN, LMODICEDEP,&
+    & ZINPRR_NOTINCR_, ZINPRS_NOTINCR_, ZINPRG_NOTINCR_,                           &
+    & ZINPRH_NOTINCR_, ZPFPR_, &
+    & YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH,&
+    & ZSPP_ALL%YSPP_ICENU,ZSPP_ALL%YSPP_KGN_ACON,ZSPP_ALL%YSPP_KGN_SBGR)
+
   ENDIF
 
-  DO JLON=KIDIA,KFDIA
+  DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
     ZINPRR_(JLON)=ZINPRR_(JLON)+ZINPRR_NOTINCR_(JLON)
     ZINPRS_(JLON)=ZINPRS_(JLON)+ZINPRS_NOTINCR_(JLON)
     ZINPRG_(JLON)=ZINPRG_(JLON)+ZINPRG_NOTINCR_(JLON)
@@ -3326,27 +3188,27 @@ IF (LMICRO) THEN
   ENDDO
 
   !conversion de la tendance de theta en tendance de T et inversion niveau
-  DO JLEV = 1,KLEV
-    DO JLON = KIDIA,KFDIA
-      PTENDT(JLON,JLEV)= PTENDT(JLON,JLEV)+(ZTHS__(JLON,JLEV)-ZTHSIN_(JLON,JLEV))*ZEXNREFM_(JLON,JLEV)  
-      ZTENDT(JLON,JLEV)= ZTENDT(JLON,JLEV)+ZTHS__(JLON,JLEV)-ZTHSIN_(JLON,JLEV)
+  DO JLEV = 1,YDCPG_OPTS%KFLEVG
+    DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      ZTENDT(JLON,JLEV)= ZTENDT(JLON,JLEV)+(ZTHS__(JLON,JLEV)-ZTHSIN_(JLON,JLEV))*ZEXNREFM_(JLON,JLEV)  
+      ZTENDTT(JLON,JLEV)= ZTENDTT(JLON,JLEV)+ZTHS__(JLON,JLEV)-ZTHSIN_(JLON,JLEV)
     ENDDO
   ENDDO
-  
+
   !inversion niveaux tendances des ri et conversion en qi en multipliant par qd
   DO JR=1,NRR
-    DO JLEV=1,KLEV
-      DO JLON=KIDIA,KFDIA
-        PTENDR(JLON,JLEV,JR)=PTENDR(JLON,JLEV,JR)+(ZRS_(JLON,JLEV,JR)-ZRSIN_(JLON,JLEV,JR))*ZQDM(JLON,JLEV)  
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
+      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZTENDRA(JLON,JLEV,JR)=ZTENDRA(JLON,JLEV,JR)+(ZRS_(JLON,JLEV,JR)-ZRSIN_(JLON,JLEV,JR))*ZQDM(JLON,JLEV)  
       ENDDO
     ENDDO
   ENDDO
 
   ! Tendances des variables LIMA
   DO JGFL=1,NLIMA
-    DO JLEV = 1, KLEV
-      DO JLON=KIDIA,KFDIA
-        PTENDLIMA(JLON,JLEV,JGFL)=PTENDLIMA(JLON,JLEV,JGFL)+(ZLIMAS_(JLON,JLEV,JGFL)-ZLIMASIN_(JLON,JLEV,JGFL))  
+    DO JLEV = 1, YDCPG_OPTS%KFLEVG
+      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZTENDLIMA(JLON,JLEV,JGFL)=ZTENDLIMA(JLON,JLEV,JGFL)+(ZLIMAS_(JLON,JLEV,JGFL)-ZLIMASIN_(JLON,JLEV,JGFL))  
       ENDDO
     ENDDO
   ENDDO
@@ -3354,50 +3216,50 @@ IF (LMICRO) THEN
   IF (LINTFLEX) THEN
     !inversion of levels of upper-air precipitation
     DO JR=2,NRR ! no precip for qv
-      ZFPR(KIDIA:KFDIA,0,JR)=0._JPRB  ! zero precip at top of atmosphere
-      DO JLEV=1,KLEV
-        ZFPR(KIDIA:KFDIA,JLEV,JR)=ZPFPR_(KIDIA:KFDIA,JLEV,JR)
+      ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,0,JR)=0._JPRB  ! zero precip at top of atmosphere
+      DO JLEV=1,YDCPG_OPTS%KFLEVG
+        ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,JR)=ZPFPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,JR)
       ENDDO
     ENDDO
   ENDIF
 
-  !store cumulative 3D precipitations for mocage      
+  !store cumulative 3D precipitations for mocage
   IF (LFPREC3D) THEN
     DO JR=2,NRR ! no precip for qv
-      DO JLEV=1,KLEV
-        DO JLON=KIDIA,KFDIA
-          PEZDIAG(JLON,JLEV,4)=PEZDIAG(JLON,JLEV,4)+ZPFPR_(JLON,JLEV,JR)*1000._JPRB*PDT
+      DO JLEV=1,YDCPG_OPTS%KFLEVG
+        DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+          ZP1EZDIAG(JLON,JLEV,4)=ZP1EZDIAG(JLON,JLEV,4)+ZPFPR_(JLON,JLEV,JR)*1000._JPRB*YDCPG_OPTS%ZDTPHY
         ENDDO
       ENDDO
     ENDDO
   ENDIF
-  !prints    
-  IF(MOD(KSTEP+1,NPRINTFR)==0) THEN
+  !prints
+  IF(MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
     WRITE(NULOUT,*)'PTENDT en sortie de rain_ice'
     WRITE(NULOUT,*)'ZTHS__ en sortie de rain_ice'
-    DO JLEV=1,KLEV
-      WRITE(NULOUT,*)PTENDT(NPTP,JLEV),ZTHS__(NPTP,JLEV)
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
+      WRITE(NULOUT,*)ZTENDT(NPTP,JLEV),ZTHS__(NPTP,JLEV)
     ENDDO
-    WRITE (NULOUT,*)'JLEV  ZTENDQv  ZTZNDQc   ZTENDQr   ZTENDQi' ,'ZTENDQs   ZTENDQg'  
-    DO JLEV=1,KLEV
-      WRITE(NULOUT,'(I2,X,6E11.4)')JLEV,PTENDR(NPTP,JLEV,1),PTENDR(NPTP,JLEV,2),&
-       & PTENDR(NPTP,JLEV,3),PTENDR(NPTP,JLEV,4),PTENDR(NPTP,JLEV,5),PTENDR(NPTP,JLEV,6)  
+    WRITE (NULOUT,*)'JLEV  ZTENDQv  ZTZNDQc   ZTENDQr   ZTENDQi' ,'ZTENDQs   ZTENDQg'
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
+      WRITE(NULOUT,'(I2,X,6E11.4)')JLEV,ZTEND_Q(NPTP,JLEV),ZTEND_L(NPTP,JLEV),&
+       & ZTEND_R(NPTP,JLEV),ZTEND_I(NPTP,JLEV),ZTEND_S(NPTP,JLEV),ZTEND_G(NPTP,JLEV)  
     ENDDO
-    WRITE (NULOUT,*) 'ZSRCS__ et ZNEBMNH_',MAXVAL(ZSRCS__),MAXVAL(ZNEBMNH_) 
+    WRITE (NULOUT,*) 'ZSRCS__ et ZNEBMNH_',MAXVAL(ZSRCS__),MAXVAL(ZNEBMNH_)
   ENDIF
-  
+
   IF (LRDEPOS) THEN
     ISPLITR=NSPLITR
     ! Swapp because IN and OUT will be needed simultaneously
     CALL SWAP_SVM
-    CALL ARO_RAINAERO(KFDIA,KLEV,NGFL_EXT,NRR, PDT,ZSVMIN_,ZZZ_,&
-     & ZPABSM__(:,1:KLEV),ZTHM__(:,1:KLEV),ZRHODREFM__(:,1:KLEV),&
-     & KSTEP+1,ZRM_,ZEVAP_, ISPLITR, ZSVM_           )
+    CALL ARO_RAINAERO(YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, NGFL_EXT, NRR, YDCPG_OPTS%ZDTPHY, ZSVMIN_, ZZZ_, ZPABSM__(:, 1:YDCPG_OPTS%KFLEVG), &
+    & ZTHM__(:, 1:YDCPG_OPTS%KFLEVG), ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG), YDCPG_OPTS%KSTEP+1, ZRM_,                               &
+    & ZEVAP_, ISPLITR, ZSVM_           )
     ! return to tendency
     DO JGFL=1,NGFL_EXT
-      DO JLEV = 1,KLEV
-        DO JLON = KIDIA,KFDIA
-          PTENDEXT(JLON,JLEV,JGFL)=PTENDEXT(JLON,JLEV,JGFL)+(ZSVM_(JLON,JLEV,JGFL)-ZSVMIN_(JLON,JLEV,JGFL))*ZINVDT
+      DO JLEV = 1,YDCPG_OPTS%KFLEVG
+        DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+          ZTENDEXT(JLON,JLEV,JGFL)=ZTENDEXT(JLON,JLEV,JGFL)+(ZSVM_(JLON,JLEV,JGFL)-ZSVMIN_(JLON,JLEV,JGFL))*ZINVDT
         ENDDO
       ENDDO
     ENDDO
@@ -3408,23 +3270,25 @@ ENDIF ! LMICRO
 ! start LHN F.Meier 2020 ******
 
 LNUDGLHNREAD=.TRUE.
-IF(MYPROC==1.AND.KSTEP==1.AND.LNUDGLH)THEN
-  CALL NUDGLHCLIMPROF(KLEV,LNUDGLHNREAD)
+IF(MYPROC==1.AND.YDCPG_OPTS%KSTEP==1.AND.LNUDGLH)THEN
+  CALL NUDGLHCLIMPROF(YDCPG_OPTS%KFLEVG, LNUDGLHNREAD)
 ENDIF
 ! save accumulated precipitation for LHN
-IF (LNUDGLH.AND.KSTEP == NSTARTNUDGLH.AND.NSTARTNUDGLH > 0) THEN
+IF (LNUDGLH.AND.YDCPG_OPTS%KSTEP == NSTARTNUDGLH.AND.NSTARTNUDGLH > 0) THEN
   !IF(MYPROC==1) WRITE(NULOUT,*)'save precip for LHN - STEP:',KSTEP, &
   !  & 'NUDGINGINT:',NINTNUDGLH,'NSTARTNUDGLH:',NSTARTNUDGLH
-  CALL NUDGLHPRECIP(KIDIA,KFDIA,KLON,ZACPRR_(KIDIA:KFDIA),&
-         & ZACPRS_(KIDIA:KFDIA),ZACPRG_(KIDIA:KFDIA),KBL)
+  CALL NUDGLHPRECIP(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, ZACPRR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), &
+  & ZACPRS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZACPRG_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDCPG_BNDS%KBL           &
+  &                                                                               )
 ENDIF
-ISTEP=KSTEP-NSTARTNUDGLH
+ISTEP=YDCPG_OPTS%KSTEP-NSTARTNUDGLH
 ! if LNUDGLH and KSTEP in nudging interval
-IF (LNUDGLH.AND.KSTEP > NSTARTNUDGLH.AND.KSTEP <= NSTOPNUDGLH) THEN
+IF (LNUDGLH.AND.YDCPG_OPTS%KSTEP > NSTARTNUDGLH.AND.YDCPG_OPTS%KSTEP <= NSTOPNUDGLH) THEN
   ! safe LH profile for step before LHN step
   LLHN=.FALSE.
   IF(MOD(ISTEP+1,NINTNUDGLH)==0) THEN
-    CALL NUDGLHPREP(KIDIA,KFDIA,KLON,KLEV,ZTENDT,KBL)
+    CALL NUDGLHPREP(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, ZTENDTT, &
+    & YDCPG_BNDS%KBL            )
   ENDIF
   ! LHN step
   IF(MOD(ISTEP,NINTNUDGLH)==0) THEN
@@ -3435,31 +3299,31 @@ IF (LNUDGLH.AND.KSTEP > NSTARTNUDGLH.AND.KSTEP <= NSTOPNUDGLH) THEN
     JLHSTEP=NINT(1.0_JPRB*ISTEP/(NTIMESPLITNUDGLH*NINTNUDGLH))+2
     !IF(MYPROC==1) WRITE(NULOUT,*)'observation array:',JLHSTEP
     ! call nudging routine to modify LHN profile where necessary
-    CALL NUDGLH(NGPTOT,NPROMA,NGPBLKS,KIDIA,KFDIA,KLON,KLEV,ZACPRR_(KIDIA:KFDIA),&
-       & ZACPRS_(KIDIA:KFDIA),ZACPRG_(KIDIA:KFDIA),&
-       & ZTENDT(KIDIA:KFDIA,1:KLEV),JLHSTEP,KBL,&
-       & ZEXNREFM_(KIDIA:KFDIA,1:KLEV),.TRUE.,&
-       & LLHN(KIDIA:KFDIA,1:KLEV),ZPABSM__(KIDIA:KFDIA,1:KLEV),ZDT,&
-       & ZTHM__(KIDIA:KFDIA,1:KLEV),ZRM_(KIDIA:KFDIA,1:KLEV,:),&
-       & ZQDM(KIDIA:KFDIA,1:KLEV),PTENDR(KIDIA:KFDIA,1:KLEV,1),NRR,LNUDGLHNREAD)
+    CALL NUDGLH(NGPTOT, NPROMA, NGPBLKS, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG,                                                   &
+    & ZACPRR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZACPRS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZACPRG_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA),                          &
+    & ZTENDTT(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), JLHSTEP, YDCPG_BNDS%KBL, ZEXNREFM_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), &
+    & .TRUE., LLHN(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), ZPABSM__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG),                      &
+    & ZDT, ZTHM__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), ZRM_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG, :),                        &
+    & ZQDM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), ZTEND_Q(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG),                               &
+    & NRR, LNUDGLHNREAD)
     !IF(MYPROC==1) WRITE(NULOUT,*)'calling LH successful - convert TH to T and
     !add temperature tendency'
     ! add LHN tendency to physics tendency, limit LHN tendency
     ZMAXTEND=0.0_JPRB
     ZMINTEND=0.0_JPRB
-    DO JLEV = 1,KLEV
-      DO JLON = KIDIA,KFDIA
+    DO JLEV = 1,YDCPG_OPTS%KFLEVG
+      DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
         IF(LLHN(JLON,JLEV))THEN
-          ZTENDT(JLON,JLEV)=MAX(ZTENDT(JLON,JLEV),RMINNUDGLH)
-          ZTENDT(JLON,JLEV)=MIN(ZTENDT(JLON,JLEV),RMAXNUDGLH)
-          PTENDT(JLON,JLEV)=PTENDT(JLON,JLEV)+ZTENDT(JLON,JLEV)*&
+          ZTENDTT(JLON,JLEV)=MAX(ZTENDTT(JLON,JLEV),RMINNUDGLH)
+          ZTENDTT(JLON,JLEV)=MIN(ZTENDTT(JLON,JLEV),RMAXNUDGLH)
+          ZTENDT(JLON,JLEV)=ZTENDT(JLON,JLEV)+ZTENDTT(JLON,JLEV)*&
            & RAMPLIFY*ZEXNREFM_(JLON,JLEV)
-          ZMINTEND=MIN(ZTENDT(JLON,JLEV),ZMINTEND)
-          ZMAXTEND=MAX(ZTENDT(JLON,JLEV),ZMAXTEND)
+          ZMINTEND=MIN(ZTENDTT(JLON,JLEV),ZMINTEND)
+          ZMAXTEND=MAX(ZTENDTT(JLON,JLEV),ZMAXTEND)
           ! keep RH constant if LNUDGLHCOMPT=T
-          IF(PTM(JLON,JLEV)>0.01_JPRB.AND.LNUDGLHCOMPT)THEN
-            PTENDR(JLON,JLEV,1)=PTENDR(JLON,JLEV,1)+RLVTT/RV/((PTM(JLON,JLEV))**2._JPRB)* &
-            & ZTENDT(JLON,JLEV)*RAMPLIFY*ZEXNREFM_(JLON,JLEV)*ZQSAT(JLON,JLEV)
+          IF(YDMF_PHYS_BASE_STATE%T(JLON,JLEV)>0.01_JPRB.AND.LNUDGLHCOMPT)THEN
+            ZTEND_Q(JLON,JLEV)=ZTEND_Q(JLON,JLEV)+RLVTT/RV/((YDMF_PHYS_BASE_STATE%T(JLON,JLEV))**2._JPRB)* &
+            & ZTENDTT(JLON,JLEV)*RAMPLIFY*ZEXNREFM_(JLON,JLEV)*ZQSAT(JLON,JLEV)
           ENDIF
         ENDIF
       ENDDO
@@ -3467,13 +3331,14 @@ IF (LNUDGLH.AND.KSTEP > NSTARTNUDGLH.AND.KSTEP <= NSTOPNUDGLH) THEN
     !IF(ZMINTEND<-0.01)WRITE(*,*)'ZMINTEND',ZMINTEND
     !IF(ZMAXTEND>0.01)WRITE(*,*)'ZMAXTEND',ZMAXTEND
     ! write LH profiles to array to save it for next time step
-    CALL NUDGLHPREP(KIDIA,KFDIA,KLON,KLEV,ZTENDT,KBL)
+    CALL NUDGLHPREP(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, ZTENDTT, &
+    & YDCPG_BNDS%KBL            )
     IF(MYPROC==1) WRITE(NULOUT,*)'calling LH successful finished'
     ! use LHN factor again on following time steps depending on NTAUNUDGLH
   ELSEIF(MOD(ISTEP,NINTNUDGLH)<NTAUNUDGLH.AND.MOD(ISTEP,NINTNUDGLH)>0 &
       & .AND.ISTEP>NINTNUDGLH) THEN
     IF(MYPROC==1)THEN
-      WRITE(NULOUT,*)'LH nudging applied-STEP:',KSTEP,'NUDGINGINT:',NINTNUDGLH
+      WRITE(NULOUT,*)'LH nudging applied-STEP:',YDCPG_OPTS%KSTEP,'NUDGINGINT:',NINTNUDGLH
       WRITE(NULOUT,*)'NTAUNUDGLH:',NTAUNUDGLH
     ENDIF
     ! get index for reading correctly most recent obs
@@ -3481,29 +3346,29 @@ IF (LNUDGLH.AND.KSTEP > NSTARTNUDGLH.AND.KSTEP <= NSTOPNUDGLH) THEN
     !IF(MYPROC==1) WRITE(NULOUT,*)'observation array:',JLHSTEP
     ! call nudging routine to modify LHN profile where necessary
     ! LHN factor is not recalculated but might be damped by RDAMPNUDGLH
-    CALL NUDGLH(NGPTOT,NPROMA,NGPBLKS,KIDIA,KFDIA,KLON,KLEV,ZACPRR_(KIDIA:KFDIA),&
-        & ZACPRS_(KIDIA:KFDIA),ZACPRG_(KIDIA:KFDIA),&
-        & ZTENDT(KIDIA:KFDIA,1:KLEV),JLHSTEP,KBL,&
-        & ZEXNREFM_(KIDIA:KFDIA,1:KLEV),.FALSE.,&
-        & LLHN(KIDIA:KFDIA,1:KLEV),ZPABSM__(KIDIA:KFDIA,1:KLEV),ZDT,&
-        & ZTHM__(KIDIA:KFDIA,1:KLEV),ZRM_(KIDIA:KFDIA,1:KLEV,:),&
-        & ZQDM(KIDIA:KFDIA,1:KLEV),PTENDR(KIDIA:KFDIA,1:KLEV,1),NRR,LNUDGLHNREAD)
+    CALL NUDGLH(NGPTOT, NPROMA, NGPBLKS, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG,                                                   &
+    & ZACPRR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZACPRS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZACPRG_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA),                          &
+    & ZTENDTT(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), JLHSTEP, YDCPG_BNDS%KBL, ZEXNREFM_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), &
+    & .FALSE., LLHN(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), ZPABSM__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG),                     &
+    & ZDT, ZTHM__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), ZRM_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG, :),                        &
+    & ZQDM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), ZTEND_Q(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG),                               &
+    & NRR, LNUDGLHNREAD)
     !IF(MYPROC==1) WRITE(NULOUT,*)'calling LH successful - convert TH to T and
     !add temperature tendency'
     ! add LHN tendency to physics tendency, limit LHN tendency
-    DO JLEV = 1,KLEV
-      DO JLON = KIDIA,KFDIA
+    DO JLEV = 1,YDCPG_OPTS%KFLEVG
+      DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
         IF(LLHN(JLON,JLEV))THEN
-          ZTENDT(JLON,JLEV)=MAX(ZTENDT(JLON,JLEV),RMINNUDGLH)
-          ZTENDT(JLON,JLEV)=MIN(ZTENDT(JLON,JLEV),RMAXNUDGLH)
-          PTENDT(JLON,JLEV)= PTENDT(JLON,JLEV)+ZTENDT(JLON,JLEV)*&
+          ZTENDTT(JLON,JLEV)=MAX(ZTENDTT(JLON,JLEV),RMINNUDGLH)
+          ZTENDTT(JLON,JLEV)=MIN(ZTENDTT(JLON,JLEV),RMAXNUDGLH)
+          ZTENDT(JLON,JLEV)= ZTENDT(JLON,JLEV)+ZTENDTT(JLON,JLEV)*&
            & RAMPLIFY*ZEXNREFM_(JLON,JLEV)
-          ZMINTEND=MIN(ZTENDT(JLON,JLEV),ZMINTEND)
-          ZMAXTEND=MAX(ZTENDT(JLON,JLEV),ZMAXTEND)
+          ZMINTEND=MIN(ZTENDTT(JLON,JLEV),ZMINTEND)
+          ZMAXTEND=MAX(ZTENDTT(JLON,JLEV),ZMAXTEND)
           ! keep RH constant if LNUDGLHCOMPT=T
-          IF(PTM(JLON,JLEV)>0.01_JPRB.AND.LNUDGLHCOMPT)THEN
-             PTENDR(JLON,JLEV,1)=PTENDR(JLON,JLEV,1)+RLVTT/RV/((PTM(JLON,JLEV))**2._JPRB)*&
-              & ZTENDT(JLON,JLEV)*RAMPLIFY*ZEXNREFM_(JLON,JLEV)*ZQSAT(JLON,JLEV)
+          IF(YDMF_PHYS_BASE_STATE%T(JLON,JLEV)>0.01_JPRB.AND.LNUDGLHCOMPT)THEN
+             ZTEND_Q(JLON,JLEV)=ZTEND_Q(JLON,JLEV)+RLVTT/RV/((YDMF_PHYS_BASE_STATE%T(JLON,JLEV))**2._JPRB)*&
+              & ZTENDTT(JLON,JLEV)*RAMPLIFY*ZEXNREFM_(JLON,JLEV)*ZQSAT(JLON,JLEV)
           ENDIF
         ENDIF
       ENDDO
@@ -3511,17 +3376,18 @@ IF (LNUDGLH.AND.KSTEP > NSTARTNUDGLH.AND.KSTEP <= NSTOPNUDGLH) THEN
     !IF(ZMAXTEND>0.01) WRITE(*,*)'ZMAXTEND',ZMAXTEND
     !IF(ZMINTEND<-0.01) WRITE(*,*)'ZMINTEND',ZMINTEND
     ! write LHN profiles to array for next timestep
-    CALL NUDGLHPREP(KIDIA,KFDIA,KLON,KLEV,ZTENDT,KBL)
+    CALL NUDGLHPREP(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, ZTENDTT, &
+    & YDCPG_BNDS%KBL            )
     IF(MYPROC==1) WRITE(NULOUT,*)'calling LH successful finished'
   ENDIF
 ENDIF
 ! **end latent heat nudging***********
 
-    
+
 !    ------------------------------------------------------------------
 !     11 - SAVE FIELDS FOR EXT. SURFACE.
 !     --------------------------------------------------------------------
-!    Cette partie n'est plus necessaire apres branchement de la physique 
+!    Cette partie n'est plus necessaire apres branchement de la physique
 !    de surface sous apl_arome
 
 !    ------------------------------------------------------------------
@@ -3536,11 +3402,11 @@ IF (LUSECHEM) THEN
   ! JOUR DU MOIS
   IDAY = NINDAT - 10000*IYEAR - 100*IMONTH
 
-  DO JLON = KIDIA,KFDIA
-    ZLAT_(JLON) = 180. * ASIN(PGEMU(JLON)) / (2.*ASIN(1.))
-    ZLON_(JLON) = 180. * PGELAM(JLON) / (2.*ASIN(1.))
-    ZZENITH_(JLON) = ACOS( PMU0(JLON) )
-    ZZS_(JLON)=POROG(JLON)/RG
+  DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+    ZLAT_(JLON) = 180. * ASIN(YDVARS%GEOMETRY%GEMU%T0(JLON)) / (2.*ASIN(1.))
+    ZLON_(JLON) = 180. * YDVARS%GEOMETRY%GELAM%T0(JLON) / (2.*ASIN(1.))
+    ZZENITH_(JLON) = ACOS( ZRDG_MU0(JLON) )
+    ZZS_(JLON)=YDVARS%GEOMETRY%OROG%T0(JLON)/RG
     ZALB_UV_(JLON)=ZALBP(JLON,1)
   ENDDO
 
@@ -3548,26 +3414,26 @@ IF (LUSECHEM) THEN
   CALL SWAP_SVS
 
   DO JGFL=1,NGFL_EXT
-    DO JLEV=1,KLEV
-      DO JLON= KIDIA,KFDIA
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
+      DO JLON= YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
         ! modify input
         ZSVSIN_(JLON,JLEV,JGFL)=MAX(0.0_JPRB, ZSVSIN_(JLON,JLEV,JGFL))
       ENDDO
     ENDDO
   ENDDO
   IEZDIAG_CHEM=NGFL_EZDIAG-IOFF_MFSHAL+1
-  CALL ARO_MNHC(ZSVSIN_,&
-   & ZRHODREFM__(:,1:KLEV),PDT, ZTHM__(:,1:KLEV), ZPABSM__(:,1:KLEV), ZRM_, ZLAT_, ZLON_, ZALB_UV_, &
-   & ZZS_, ZZENITH_,ZZZ_, IYEAR,IMONTH,IDAY, REAL(RHGMT,JPRB)+PDT/2._JPRB,&
-   & KFDIA,KLEV,NGFL_EXT, NRR, KSTEP+1,NULOUT,IEZDIAG_CHEM, ZPEZDIAG_(:,:,IOFF_MFSHAL:NGFL_EZDIAG),ZSVS_ )
+  CALL ARO_MNHC(ZSVSIN_, ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG), YDCPG_OPTS%ZDTPHY, ZTHM__(:, 1:YDCPG_OPTS%KFLEVG), &
+  & ZPABSM__(:, 1:YDCPG_OPTS%KFLEVG), ZRM_, ZLAT_, ZLON_, ZALB_UV_, ZZS_, ZZENITH_, ZZZ_, IYEAR,      &
+  & IMONTH, IDAY, REAL(RHGMT, JPRB)+YDCPG_OPTS%ZDTPHY/2._JPRB, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, NGFL_EXT,    &
+  & NRR, YDCPG_OPTS%KSTEP+1, NULOUT, IEZDIAG_CHEM, ZPEZDIAG_(:, :, IOFF_MFSHAL:NGFL_EZDIAG), ZSVS_ )
  
-  PEZDIAG(KIDIA:KFDIA,1:KLEV,IOFF_MFSHAL:NGFL_EZDIAG)=ZPEZDIAG_(KIDIA:KFDIA,1:KLEV,IOFF_MFSHAL:NGFL_EZDIAG)
+  ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,IOFF_MFSHAL:NGFL_EZDIAG)=ZPEZDIAG_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,IOFF_MFSHAL:NGFL_EZDIAG)
 
   !inversion niveau de la tendance des scalaires passifs
   DO JGFL=1,NGFL_EXT
-    DO JLEV = 1,KLEV
-      DO JLON = KIDIA,KFDIA
-        PTENDEXT(JLON,JLEV,JGFL)=PTENDEXT(JLON,JLEV,JGFL)+(ZSVS_(JLON,JLEV,JGFL)-ZSVSIN_(JLON,JLEV,JGFL))
+    DO JLEV = 1,YDCPG_OPTS%KFLEVG
+      DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        ZTENDEXT(JLON,JLEV,JGFL)=ZTENDEXT(JLON,JLEV,JGFL)+(ZSVS_(JLON,JLEV,JGFL)-ZSVSIN_(JLON,JLEV,JGFL))
       ENDDO
     ENDDO
   ENDDO
@@ -3578,26 +3444,33 @@ ENDIF ! LUSECHEM
 !     13 - STOCHASTIC PHYSICS : PERTURB TENDENCIES
 !     -----------------------------------------------------------------
 
-IF(YSPPT_CONFIG%LSPSDT) THEN
+IF(LSPSDT) THEN
+
+  DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+    ZMULNOISE(JLON,1)=PGP2DSDT(JLON,1,1)       ! Use a single 2D pattern for all levels
+  ENDDO
+
+  ZDUMMY(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=0.0_JPRB               ! Dummy nonphys tendency for compatibility with ecmwf stochphy
+  CALL SPPTEN (YDMODEL%YRML_PHY_EC%YRECLDP, YGFL, &
+  & YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, 1, YDCPG_OPTS%ZDTPHY, &  ! In: block indices, physicstimestep
+  & PTSL=YDMF_PHYS_BASE_STATE%T, PQSL=YDMF_PHYS_BASE_STATE%Q, PA=YDVARS%A%T1,       &  ! In: (T,Q,cloud) forsupersatcheck
+  & PAP=YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF, PAPH=YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, &  ! In: Pfull, Phalf
+  & PDYN_U=ZDUMMY, PDYN_V=ZDUMMY, PDYN_T=ZDUMMY, PDYN_Q=ZDUMMY,                     &  ! In: dummy nonphys tendencies
+  & PUNP_U=ZDUMMY, PUNP_V=ZDUMMY, PUNP_T=ZDUMMY, PUNP_Q=ZDUMMY,                     &  ! In: (u,v,t,qv) tendencies to perturb
+  & PPHY_U=YDMF_PHYS%OUT%TENDU, PPHY_V=YDMF_PHYS%OUT%TENDV, PPHY_T=ZTENDT, PPHY_Q=ZTEND_Q,     &  ! In: (u,v,t,qv) tendencies to perturb
+  & PMULNOISE=ZMULNOISE,                                                            &  ! In: stochphy 3D random multiplicative pattern (less one)  
+  & PTENU=YDMF_PHYS%OUT%TENDU, PTENV=YDMF_PHYS%OUT%TENDV, PTENT=ZTENDT, PTENQ=ZTEND_Q )  ! Out: (u,v,t,qv) total perturbed tendencies
 
-  ZDUMMY(KIDIA:KFDIA,1:KLEV)=0.0_JPRB               ! Dummy nonphys tendency for compatibility with ecmwf stochphy
-  CALL SPPTEN (YDMODEL%YRML_PHY_EC%YRECLDP,YGFL, &
-   & KIDIA,KFDIA,KLON,KLEV,1,PDT,         &  ! In: block indices, physicstimestep
-   & PTSL=PTM,PQSL=PQVM, PA=PCLFS, PAP=PAPRSFM, PAPH=PAPRSM,   &  ! In: (T,Q,cloud) forsupersatcheck, Pfull, Phalf
-   & PDYN_U=ZDUMMY,PDYN_V=ZDUMMY,PDYN_T=ZDUMMY,PDYN_Q=ZDUMMY,  &  ! In: dummy nonphys tendencies
-   & PUNP_U=PTENDU,PUNP_V=PTENDV,PUNP_T=PTENDT,PUNP_Q=PTENDR(:,:,1), &  ! In: (u,v,t,qv) tendencies to perturb
-   & PMULNOISE=PGP2DSDT(1,1,1),                           &  ! In: stochphy 3D random multiplicative pattern (less one)
-   & PTENU=PTENDU,PTENV=PTENDV,PTENT=PTENDT,PTENQ=PTENDR(:,:,1) )    ! Out: (u,v,t,qv) total perturbed tendencies
 ENDIF
 
-IF(LFORCENL.AND.(KSTEP*(TSPHY/RHOUR)>=NFORCESTART).AND.&
-              & (KSTEP*(TSPHY/RHOUR)<=NFORCEEND)) THEN
-  DO JLEV=1,KLEV
-    DO JLON=KIDIA,KFDIA
-      PTENDU(JLON,JLEV)=PTENDU(JLON,JLEV)+AMAGSTOPH_CASBS*PFORCEU(JLON,JLEV)
-      PTENDV(JLON,JLEV)=PTENDV(JLON,JLEV)+AMAGSTOPH_CASBS*PFORCEV(JLON,JLEV)
-      PTENDT(JLON,JLEV)=PTENDT(JLON,JLEV)+AMAGSTOPH_CASBS*PFORCET(JLON,JLEV)
-      PTENDR(JLON,JLEV,1)=PTENDR(JLON,JLEV,1)+AMAGSTOPH_CASBS*PFORCEQ(JLON,JLEV)
+IF(LFORCENL.AND.(YDCPG_OPTS%KSTEP*(TSPHY/RHOUR)>=NFORCESTART).AND.&
+              & (YDCPG_OPTS%KSTEP*(TSPHY/RHOUR)<=NFORCEEND)) THEN
+  DO JLEV=1,YDCPG_OPTS%KFLEVG
+    DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      YDMF_PHYS%OUT%TENDU(JLON,JLEV)=YDMF_PHYS%OUT%TENDU(JLON,JLEV)+AMAGSTOPH_CASBS*YDMF_PHYS%FOR%U(JLON,JLEV)
+      YDMF_PHYS%OUT%TENDV(JLON,JLEV)=YDMF_PHYS%OUT%TENDV(JLON,JLEV)+AMAGSTOPH_CASBS*YDMF_PHYS%FOR%V(JLON,JLEV)
+      ZTENDT(JLON,JLEV)=ZTENDT(JLON,JLEV)+AMAGSTOPH_CASBS*YDMF_PHYS%FOR%T(JLON,JLEV)
+      ZTEND_Q(JLON,JLEV)=ZTEND_Q(JLON,JLEV)+AMAGSTOPH_CASBS*YDMF_PHYS%FOR%Q(JLON,JLEV)
     ENDDO
   ENDDO
 ENDIF
@@ -3606,17 +3479,17 @@ ENDIF
 !     14 - FINAL CALCULATIONS.
 !     --------------------------------------------------------------------
 
-!forcage pour declencher la ligne de grain 
+!forcage pour declencher la ligne de grain
 IF (LSQUALL) THEN
   IF (LTWOTL) THEN
     ZDT2=2*ZDT
   ELSE
     ZDT2=ZDT
   ENDIF
-  IF((KSTEP+1)*ZDT2 < 600._JPRB) THEN
+  IF((YDCPG_OPTS%KSTEP+1)*ZDT2 < 600._JPRB) THEN
     WRITE(NULOUT, *)'refroidissement impose de',NREFROI1,' a ',NREFROI2
-    DO JLEV=KLEV,KLEV-20,-1
-      PTENDT(NREFROI1:NREFROI2,JLEV)=-0.01_JPRB
+    DO JLEV=YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KFLEVG-20,-1
+      ZTENDT(NREFROI1:NREFROI2,JLEV)=-0.01_JPRB
     ENDDO
   ENDIF
 ENDIF
@@ -3624,168 +3497,418 @@ ENDIF
 
 !ecriture du buffer
 IF(LLMSE.OR.LSFORCS) THEN
-  DO JLON = KIDIA,KFDIA
-    PGPAR(JLON,MINPRR)=ZINPRR_(JLON)+ZSURFPREP(JLON)/1000._JPRB
-    PGPAR(JLON,MINPRS)=ZINPRS_(JLON)+ZSURFSNOW(JLON)/1000._JPRB
-    PGPAR(JLON,MINPRG)=ZINPRG_(JLON)+ZINPRH_(JLON)
-    PGPAR(JLON,MACPRR)=PGPAR(JLON,MACPRR)+(ZINPRR_(JLON)+ZSURFPREP(JLON)/1000._JPRB)*PDT
-    PGPAR(JLON,MACPRS)=PGPAR(JLON,MACPRS)+(ZINPRS_(JLON)+ZSURFSNOW(JLON)/1000._JPRB)*PDT
-    PGPAR(JLON,MACPRG)=PGPAR(JLON,MACPRG)+(ZINPRG_(JLON)+ZINPRH_(JLON))*PDT
-  ENDDO
-  PGPAR(KIDIA:KFDIA,MVTS)=ZTSURF(KIDIA:KFDIA)
-  PGPAR(KIDIA:KFDIA,MVEMIS)=ZEMIS(KIDIA:KFDIA)
-  PGPAR(KIDIA:KFDIA,MVQS)=ZQS(KIDIA:KFDIA)
+  DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+    YDCPG_GPAR%INPRR(JLON)=ZINPRR_(JLON)+ZSURFPREP(JLON)/1000._JPRB
+    YDCPG_GPAR%INPRS(JLON)=ZINPRS_(JLON)+ZSURFSNOW(JLON)/1000._JPRB
+    YDCPG_GPAR%INPRG(JLON)=ZINPRG_(JLON)+ZINPRH_(JLON)
+    YDCPG_GPAR%ACPRR(JLON)=YDCPG_GPAR%ACPRR(JLON)+(ZINPRR_(JLON)+ZSURFPREP(JLON)/1000._JPRB)*YDCPG_OPTS%ZDTPHY
+    YDCPG_GPAR%ACPRS(JLON)=YDCPG_GPAR%ACPRS(JLON)+(ZINPRS_(JLON)+ZSURFSNOW(JLON)/1000._JPRB)*YDCPG_OPTS%ZDTPHY
+    YDCPG_GPAR%ACPRG(JLON)=YDCPG_GPAR%ACPRG(JLON)+(ZINPRG_(JLON)+ZINPRH_(JLON))*YDCPG_OPTS%ZDTPHY
+  ENDDO
+  YDCPG_GPAR%VTS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=ZTSURF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+  YDCPG_GPAR%VEMIS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=ZEMIS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+  YDCPG_GPAR%VQS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=ZQS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
   DO JSW=1,NSW
-    PGPAR(KIDIA:KFDIA,MALBDIR-1+JSW)=ZALBP(KIDIA:KFDIA,JSW)
-    PGPAR(KIDIA:KFDIA,MALBSCA-1+JSW)=ZALBD(KIDIA:KFDIA,JSW)
+    YDCPG_GPAR%ALBDIR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=ZALBP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)
+    YDCPG_GPAR%ALBSCA(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=ZALBD(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)
   ENDDO
 ENDIF
 
-IF (LMUSCLFA) CALL ECR1D(NMUSCLFA,'PCLCT_apl',PCLCT,1,KLON)
+IF (LMUSCLFA) CALL ECR1D(NMUSCLFA, 'PCLCT_apl', YDCPG_MISC%CLCT, 1, YDCPG_OPTS%KLON)
 ! initialisations for CFU for Rainfalls
-DO JLEV = 0,KLEV
-  DO JLON = KIDIA,KFDIA
+DO JLEV = 0,YDCPG_OPTS%KFLEVG
+  DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
     ! conversion from m/s in mm/s
-    PFPLSL(JLON,JLEV)= ZINPRR_(JLON)*1000._JPRB+ZSURFPREP(JLON)
-    PFPLSN(JLON,JLEV)= ZINPRS_(JLON)*1000._JPRB+ZSURFSNOW(JLON)
-    PFPLSG(JLON,JLEV)= ZINPRG_(JLON)*1000._JPRB
-    PFPLSH(JLON,JLEV)= ZINPRH_(JLON)*1000._JPRB
+    YDMF_PHYS%OUT%FPLSL(JLON,JLEV)= ZINPRR_(JLON)*1000._JPRB+ZSURFPREP(JLON)
+    YDMF_PHYS%OUT%FPLSN(JLON,JLEV)= ZINPRS_(JLON)*1000._JPRB+ZSURFSNOW(JLON)
+    YDMF_PHYS%OUT%FPLSG(JLON,JLEV)= ZINPRG_(JLON)*1000._JPRB
+    YDMF_PHYS%OUT%FPLSH(JLON,JLEV)= ZINPRH_(JLON)*1000._JPRB
     ! conversion in correct Unit for BADP (same as ALADIN)
-    PSTRTU(JLON,JLEV)= ZSFU_(JLON)*ZRHODREFM__(JLON,IKB) 
-    PSTRTV(JLON,JLEV)= ZSFV_(JLON)*ZRHODREFM__(JLON,IKB) 
+    YDMF_PHYS%OUT%STRTU(JLON,JLEV)= ZSFU_(JLON)*ZRHODREFM__(JLON,IKB) 
+    YDMF_PHYS%OUT%STRTV(JLON,JLEV)= ZSFV_(JLON)*ZRHODREFM__(JLON,IKB) 
   ENDDO
 ENDDO
 !Hail diagnostic
-PDIAGH(KIDIA:KFDIA)=0._JPRB
+YDMF_PHYS%OUT%DIAGH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB
 IF (LXXDIAGH) THEN
-  DO JLEV=1,KLEV
-    DO JLON=KIDIA,KFDIA
-      PDIAGH(JLON)=PDIAGH(JLON)+ZQGM(JLON,JLEV)*PDELPM(JLON,JLEV)*ZINVG
+  DO JLEV=1,YDCPG_OPTS%KFLEVG
+    DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      YDMF_PHYS%OUT%DIAGH(JLON)=YDMF_PHYS%OUT%DIAGH(JLON)+ZQGM(JLON,JLEV)*YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)*ZINVG
     ENDDO
   ENDDO
 ENDIF
 ! lightening density
 IF (LFLASH) THEN
-  IF (KSTEP==0) PFLASH=0._JPRB
+  IF (YDCPG_OPTS%KSTEP==0) YDMF_PHYS%OUT%FLASH=0._JPRB
 
-  CALL DIAGFLASH(YDCFU,KIDIA,KFDIA,KLON,KLEV,KSTEP,&
-    &ZQCM,ZQIM,ZQRM,ZQSM,ZQGM,ZQHM,&
-    &PDELPM,ZTM,PWM,PLSM,PFLASH)
+  CALL DIAGFLASH(YDCFU,YDMODEL%YRML_PHY_MF,YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA,YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KSTEP,&
+    &ZQCM,ZQIM,ZQRM,ZQSM,ZQGM,ZQHM,YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP,ZTM,YDMF_PHYS_BASE_STATE%YCPG_PHY%W,ZDUMMY,ZDUMMY,ZDUMMY,ZDUMMY,&
+    &YDMF_PHYS_SURF%GSD_VF%PLSM, YDMF_PHYS%OUT%FLASH)
 ENDIF
 !!! modif pour LMSE non activee
 IF (LLMSE) THEN
-  DO JLEV=1,KSGST+1
-    DO JLON = KIDIA,KFDIA
-      PFCS(JLON,JLEV)=-ZSFTH_(JLON)*ZRHODREFM__(JLON,IKB)*RCPD
-      PFCLL(JLON,JLEV) = PFCLL(JLON,JLEV)*ZRHODREFM__(JLON,IKB)
-      PFCLN(JLON,JLEV) = PFCLN(JLON,JLEV)*ZRHODREFM__(JLON,IKB)
-      PFEVL(JLON,JLEV) = PFEVL(JLON,JLEV)*ZRHODREFM__(JLON,IKB)
-      PFEVN(JLON,JLEV) = PFEVN(JLON,JLEV)*ZRHODREFM__(JLON,IKB)
+  DO JLEV=1,NTSSG+1
+    DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      YDMF_PHYS%OUT%FCS(JLON,JLEV)=-ZSFTH_(JLON)*ZRHODREFM__(JLON,IKB)*RCPD
+      YDMF_PHYS%OUT%FCLL(JLON,JLEV) = YDMF_PHYS%OUT%FCLL(JLON,JLEV)*ZRHODREFM__(JLON,IKB)
+      YDMF_PHYS%OUT%FCLN(JLON,JLEV) = YDMF_PHYS%OUT%FCLN(JLON,JLEV)*ZRHODREFM__(JLON,IKB)
+      YDMF_PHYS%OUT%FEVL(JLON,JLEV) = YDMF_PHYS%OUT%FEVL(JLON,JLEV)*ZRHODREFM__(JLON,IKB)
+      YDMF_PHYS%OUT%FEVN(JLON,JLEV) = YDMF_PHYS%OUT%FEVN(JLON,JLEV)*ZRHODREFM__(JLON,IKB)
     ENDDO
   ENDDO
 ENDIF
 IF (LSFORCS) THEN
-  DO JLEV=1,KSGST+1
-    DO JLON = KIDIA,KFDIA
-      PFCS(JLON,JLEV)=-ZSFTH_(JLON)*ZRHODREFM__(JLON,IKB)*RCPD
+  DO JLEV=1,NTSSG+1
+    DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      YDMF_PHYS%OUT%FCS(JLON,JLEV)=-ZSFTH_(JLON)*ZRHODREFM__(JLON,IKB)*RCPD
       ZDELTA=MAX(0.0_JPRB,SIGN(1.0_JPRB,RTT-ZTSURF(JLON)))
-      PFCLL(JLON,JLEV)=-ZSFRV_(JLON)*ZRHODREFM__(JLON,IKB)* FOLH (ZTSURF(JLON),0._JPRB)*(1.0_JPRB-ZDELTA)
-      PFCLN(JLON,JLEV)=-ZSFRV_(JLON)*ZRHODREFM__(JLON,IKB)* FOLH (ZTSURF(JLON),0._JPRB)*ZDELTA
+      YDMF_PHYS%OUT%FCLL(JLON,JLEV)=-ZSFRV_(JLON)*ZRHODREFM__(JLON,IKB)* FOLH (ZTSURF(JLON),0._JPRB)*(1.0_JPRB-ZDELTA)
+      YDMF_PHYS%OUT%FCLN(JLON,JLEV)=-ZSFRV_(JLON)*ZRHODREFM__(JLON,IKB)* FOLH (ZTSURF(JLON),0._JPRB)*ZDELTA
     ENDDO
   ENDDO
-ENDIF  
+ENDIF
 
-DO JSG  = 1, KSGST+1
-  DO JLEV = 0, KLEV
-    DO JLON = KIDIA, KFDIA
-      PFRTH(JLON,JLEV,JSG)=PFRTH(JLON,JLEV,JSG)+ZBUDTH_(JLON)
+DO JSG  = 1, NTSSG+1
+  DO JLEV = 0, YDCPG_OPTS%KFLEVG
+    DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
+      YDMF_PHYS%OUT%FRTH(JLON,JLEV,JSG)=YDMF_PHYS%OUT%FRTH(JLON,JLEV,JSG)+ZBUDTH_(JLON)
     ENDDO
   ENDDO
 ENDDO
 
+IF (LFLEXDIA) THEN
+      !   surface variables
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS_SURF%GSD_VF%PLSM,'SVLSM',YDDDH,CDTYPE='V')
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTSURF,'SVTS',YDDDH,CDTYPE='V')
+      !am: FIXME: issue of shape of PF_T1 (2D) when arg should be 1D
+      !CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS_SURF%GSP_SG%PF_T1,'SVWN',YDDDH,CDTYPE='V')
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%TCLS,'SVTCLS',YDDDH,CDTYPE='V')
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%QCLS,'SVQCLS',YDDDH,CDTYPE='V')
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%RHCLS,'SVHUCLS',YDDDH,CDTYPE='V')
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%UCLS,'SVUCLS',YDDDH,CDTYPE='V')
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%VCLS,'SVVCLS',YDDDH,CDTYPE='V')
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%CLPH,'SVPBLH',YDDDH,CDTYPE='V')
+      ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*ZWS2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SVWS',YDDDH,CDTYPE='V')
+      ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*ZWP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SVWP',YDDDH,CDTYPE='V')
+      ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*ZWSI2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SVWIS',YDDDH,CDTYPE='V')
+      ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*ZWPI2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SVWIP',YDDDH,CDTYPE='V')
+      ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*ZTP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SVTP',YDDDH,CDTYPE='V')
+      !am: FIXME: issue of shape of PF_T1 (2D) when arg should be 1D
+      !ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*YDMF_PHYS_SURF%GSP_SG%PF_T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDVARS%GEOMETRY%OROG%T0,'SVOROG',YDDDH,CDTYPE='V')
+      ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*YDMF_PHYS%OUT%FEVL(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SFEVAPLIQ',YDDDH,CDTYPE='F')
+      ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*YDMF_PHYS%OUT%FEVN(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SFEVAPNEG',YDDDH,CDTYPE='F')
+      ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*YDMF_PHYS%OUT%FCLL(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SFCHLATLI',YDDDH,CDTYPE='F')
+      ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*YDMF_PHYS%OUT%FCLN(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SFCHLATNE',YDDDH,CDTYPE='F')
+      ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*YDMF_PHYS%OUT%FCS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SFCHSENS',YDDDH,CDTYPE='F')
+      !set to 0._JPRB
+      ! ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB
+      !CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SFFONTESL',YDDDH,CDTYPE='F')
+      !CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SFLIQSNPL',YDDDH,CDTYPE='F')
+      !CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SFFONTESN',YDDDH,CDTYPE='F')
+
+      ! surface radiation
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%FRSO(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,1),'SFRAYSO',YDDDH,CDTYPE='F')
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%FRTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,1),'SFRAYTH',YDDDH,CDTYPE='F')
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%FRSODS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA),'SFRAYSODS',YDDDH,CDTYPE='F')
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%FRTHDS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA),'SFRAYTHDS',YDDDH,CDTYPE='F')
+      ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=1_JPRB-YDMF_PHYS%OUT%FRSO(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,1)/MAX(ZEPSNEB,YDMF_PHYS%OUT%FRSODS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA))
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SVALB',YDDDH,CDTYPE='V')
+      ! surface precipitations
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%FPLSL(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),'SFPRELIGE',YDDDH,CDTYPE='F')
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%FPLSN(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),'SFPRENEGE',YDDDH,CDTYPE='F')
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%FPLSG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),'SFPREGRPL',YDDDH,CDTYPE='F')
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%FPLSH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),'SFPREHAIL',YDDDH,CDTYPE='F')
+      ! surface wind stress
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%STRTU(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),'SFUUTUR',YDDDH,CDTYPE='F')
+      CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%STRTV(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),'SFVVTUR',YDDDH,CDTYPE='F')
+
+     ! WRITE(NULOUT,*) 'LFLEXDIA ARPEGE WITH NTOTSURF = ',NTOTSURF,&
+     !    & ' AND NTOTSVAR = ',NTOTSVAR, ' AND NTOTSVFS = ',NTOTSVFS
+     ! 3D Variables :
+      ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,0)=0._JPRB
+      DO JLEV=1,YDCPG_OPTS%KFLEVG
+        ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZPFPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,2)+ZPFPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,4)
+      ENDDO
+      !ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)=ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,2)+ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,3)
+      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP2(:,:),'FQTPRECISTL',YDDDH)
+      DO JLEV=1,YDCPG_OPTS%KFLEVG                                                                                                   
+        ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZPFPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,4)+ZPFPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,5)
+      ENDDO
+      !ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)=ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,4)+ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,5)
+      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP2(:,:),'FQTPRECISTN',YDDDH)
+
+ENDIF
+
+
 ! daand: radflex
 IF (LINTFLEX) THEN
   ! account for radiation separately
   LLRAD=.NOT.LRADFLEX
     
-  CALL APL_AROME2INTFLEX(YGFL,YDPARAR,YDPHY,KLON,KIDIA,KFDIA,KLEV, PDT,&
-   & PRDELPM, PUM, PVM, PTM, PGPAR(1,MVTS), PCPM,&
-   & ZFPR,&! precipitation fluxes
-   & LLRAD, PFRTH, PFRSO,&! radiative fluxes
-   & PTENDU, PTENDV, PTENDT,&! momentum and temperature tendencies
-   & PTENDR, PTENDTKE, PTENDEXT,&! total gfl tendencies
-   & YDPROCSET)
+  CALL APL_AROME2INTFLEX(YGFL, YDPARAR, YDPHY, YDCPG_OPTS%KLON, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, &
+  & YDCPG_OPTS%ZDTPHY, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%RDELP, YDMF_PHYS_BASE_STATE%U, YDMF_PHYS_BASE_STATE%V,                   &
+  & YDMF_PHYS_BASE_STATE%T, YDCPG_GPAR%VTS, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%CP, ZFPR, LLRAD, YDMF_PHYS%OUT%FRTH,     &
+  & YDMF_PHYS%OUT%FRSO, YDMF_PHYS%OUT%TENDU, YDMF_PHYS%OUT%TENDV, ZTENDT, ZTENDRA, ZTENDTKE,                           &
+  & ZTENDEXT, YLPROCSET)
 ENDIF
 
 
 ! Precipitation Type
 
 ! Compute wet-bulb temperature at 2 meters (suppose homogeneity of qv/ql/qi )
-!ZPCLS(KIDIA:KFDIA)=PAPRSM(KIDIA:KFDIA,KLEV)-2._JPRB/ZZZF(KIDIA:KFDIA,1,KLEV)*&
-!                 &(PAPRSM(KIDIA:KFDIA,KLEV)-PAPRSFM(KIDIA:KFDIA,KLEV))
+!ZPCLS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)-2._JPRB/ZZZF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1,YDCPG_OPTS%KFLEVG)*&
+!                 &(YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)-YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG))
 
-CALL PPWETPOINT(YDPHY,KIDIA,KFDIA,KLON,PAPRSM(:,KLEV),PTCLS,&
-  & PQCLS,ZQCM(:,KLEV),ZQIM(:,KLEV),PTPWCLS)
+CALL PPWETPOINT(YDCST, YDPHY, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(:, YDCPG_OPTS%KFLEVG), &
+& YDMF_PHYS%OUT%TCLS, YDMF_PHYS%OUT%QCLS, ZQCM(:, YDCPG_OPTS%KFLEVG), ZQIM(:, YDCPG_OPTS%KFLEVG), YDMF_PHYS%OUT%TPWCLS               &
+&                                                             )
 
 IF (LDPRECIPS.OR.LDPRECIPS2) THEN
 
   !initialisation de ZDZZ
-  DO JLON = KIDIA,KFDIA
+  DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
     ZDZZ(JLON,1)=ZAPHIM(JLON,0)*ZINVG-ZZZ_(JLON,1)
   ENDDO
-  DO JLEV = 2, KLEV
-    DO JLON = KIDIA,KFDIA
+  DO JLEV = 2, YDCPG_OPTS%KFLEVG
+    DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
       ZDZZ(JLON,JLEV)=ZZZ_(JLON,JLEV+IKL)-ZZZ_(JLON,JLEV)
     ENDDO
   ENDDO
 
 
   ! Compute wet-bulb temperature
-  DO JLEV=1,KLEV
-      CALL PPWETPOINT(YDPHY,KIDIA,KFDIA,KLON,PAPRSFM(:,JLEV),ZTM(:,JLEV),&
-       & ZQVM(:,JLEV),ZQCM(:,JLEV),ZQIM(:,JLEV),ZTPW(:,JLEV))
+  DO JLEV=1,YDCPG_OPTS%KFLEVG
+      CALL PPWETPOINT(YDCST, YDPHY, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(:, JLEV), &
+      & ZTM(:, JLEV), ZQVM(:, JLEV), ZQCM(:, JLEV), ZQIM(:, JLEV), ZTPW(:, JLEV))
   ENDDO
 
   IF (LDPRECIPS) THEN
    ! Defined precipitation type 
    !
-   NDTPRECCUR=INT(MOD(ZSTATI/TSTEP,REAL(NDTPREC)))+1_JPIM
-   !PDPRECIPS(:,NDTPRECCUR)=HUGE(1._JPRB)
-   PDPRECIPS(:,NDTPRECCUR)=0._JPRB
+   ZPRC_DPRECIPS(:,YDCPG_OPTS%NDTPRECCUR)=0._JPRB
 
-   !WRITE(NULOUT,*)'sous apl_arome NDTPRECCUR=',NDTPRECCUR,NDTPREC
-   CALL DPRECIPS(YDPRECIPS,KIDIA,KFDIA,KLON,KLEV,POROG,PTPWCLS,PDIAGH,PAPHIFM,&
-      & ZDZZ,ZTPW,ZQCM,PFPLSL(:,KLEV),PFPLSN(:,KLEV),PFPLSG(:,KLEV),PDPRECIPS(:,NDTPRECCUR))
+   CALL DPRECIPS(YDCST, YDPRECIPS, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDVARS%GEOMETRY%OROG%T0, &
+   & YDMF_PHYS%OUT%TPWCLS, YDMF_PHYS%OUT%DIAGH, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, ZDZZ, ZTPW, ZQCM,                                       &
+   & YDMF_PHYS%OUT%FPLSL(:, YDCPG_OPTS%KFLEVG), YDMF_PHYS%OUT%FPLSN(:, YDCPG_OPTS%KFLEVG), YDMF_PHYS%OUT%FPLSG(:, YDCPG_OPTS%KFLEVG),       &
+   & ZPRC_DPRECIPS(:, YDCPG_OPTS%NDTPRECCUR)                                                                                                &
+   &                                                                                             )
   ENDIF
 
   IF (LDPRECIPS2) THEN
 
    !Idem for an other time step and an other period
-   NDTPRECCUR2=INT(MOD(ZSTATI/TSTEP,REAL(NDTPREC2)))+1_JPIM
-   PDPRECIPS2(:,NDTPRECCUR2)=0._JPRB
+   ZPRC_DPRECIPS2(:,YDCPG_OPTS%NDTPRECCUR2)=0._JPRB
 
-   CALL DPRECIPS(YDPRECIPS,KIDIA,KFDIA,KLON,KLEV,POROG,PTPWCLS,PDIAGH,PAPHIFM,&
-      & ZDZZ,ZTPW,ZQCM,PFPLSL(:,KLEV),PFPLSN(:,KLEV),PFPLSG(:,KLEV),PDPRECIPS2(:,NDTPRECCUR2))
+   CALL DPRECIPS(YDCST, YDPRECIPS, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDVARS%GEOMETRY%OROG%T0,  &
+   & YDMF_PHYS%OUT%TPWCLS, YDMF_PHYS%OUT%DIAGH, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, ZDZZ, ZTPW, ZQCM,                                        &
+   & YDMF_PHYS%OUT%FPLSL(:, YDCPG_OPTS%KFLEVG), YDMF_PHYS%OUT%FPLSN(:, YDCPG_OPTS%KFLEVG), YDMF_PHYS%OUT%FPLSG(:, YDCPG_OPTS%KFLEVG),        &
+   & ZPRC_DPRECIPS2(:, YDCPG_OPTS%NDTPRECCUR2)                                                                                               &
+   &                                                                                 )
 
   ENDIF
 
 ENDIF
 
+!Save surface temperature
+IF (LMSE.OR.LSFORCS) THEN
+  IF (LLXFUMSE) THEN
+    DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      YDMF_PHYS_SURF%GSP_RR%PT_T0(JROF)=YDCPG_GPAR%VTS(JROF)
+    ENDDO
+  ELSE
+    DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      YDMF_PHYS_SURF%GSP_RR%PT_T1(JROF)=YDCPG_GPAR%VTS(JROF)
+    ENDDO
+  ENDIF 
+ENDIF  
+!      4.2  COMPUTE THE PHYS. TENDENCY FOR "T" AND "w"
+!           ------------------------------------------
+
+IF (LVERTFE.AND.LVFE_GWMPA) THEN
+  ! * case LVFE_GWMPA not yet coded.
+  !   (in this case ZGWT1 must be computed at full levels and
+  !   not at half levels)
+  CALL ABOR1(' APL_AROME: case LVFE_GWMPA not yet coded if LMPA=T!')
+ENDIF
 
+! * compute ZTT1:
+IF (LSLAG.AND.LTWOTL) THEN
+  DO JLEV=1,YDCPG_OPTS%KFLEVG
+    DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      ZTT1(JROF,JLEV)=YDVARS%T%T0(JROF,JLEV)+YDCPG_OPTS%ZDTPHY*ZTENDT(JROF,JLEV)
+    ENDDO
+  ENDDO
+ELSE
+  DO JLEV=1,YDCPG_OPTS%KFLEVG
+    DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      ZTT1(JROF,JLEV)=YDVARS%T%T9(JROF,JLEV)+YDCPG_OPTS%ZDTPHY*ZTENDT(JROF,JLEV)
+    ENDDO
+  ENDDO
+ENDIF
+
+! * compute ZGWT1 = tendency of gw:
+IF (LNHDYN) THEN
+  ! Valid for LVFE_GWMPA=F only; ZGWT1 assumed to be half level values.
+  DO JLEV=1,YDCPG_OPTS%KFLEVG-1
+    DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      ZGWT1(JROF,JLEV)=0.5_JPRB*RG*(ZTENDW(JROF,JLEV)+ZTENDW(JROF,JLEV+1))
+    ENDDO
+  ENDDO
+  DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+    ZGWT1(JROF,YDCPG_OPTS%KFLEVG)=0.0_JPRB
+    ZGWT1(JROF,0)=0.0_JPRB
+  ENDDO
+ENDIF
+
+! * convert gw tendency in d tendency:
+IF(LNHDYN) THEN
+
+  IF (LGWADV) THEN
+    ZTENDD(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=ZGWT1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
+  ELSE
+
+    ! * Provide the appropriate version of (RT) at t+dt for GNHGW2SVDAROME:
+    IF (L_RDRY_VD) THEN
+      ! Use Rd because "dver" is currently defined with Rd.
+      ZRTT1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=RD*ZTT1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)
+    ELSE
+      ! Use "moist R" because "dver" is defined with "moist R".
+      ! Unfortunately, R(t+dt) is not yet available there, use R(t) instead.
+      ! "Moist R" tendency is neglected in the below call to GNHGW2SVDAROME.
+      DO JLEV=1,YDCPG_OPTS%KFLEVG
+        DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+          ZRTT1(JROF,JLEV)=YDCPG_DYN0%RCP%R(JROF,JLEV)*ZTT1(JROF,JLEV)
+        ENDDO
+      ENDDO
+    ENDIF
+
+    ! * Do conversion:
+    IF (LSLAG.AND.LTWOTL) THEN
+      CALL GNHGW2SVDAROME(YDGEOMETRY, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_PHY0%PREHYDF, YDCPG_PHY0%XYB%LNPR, &
+      & ZRTT1, YDCPG_PHY0%PREF, ZGWT1, ZTENDD)  
+    ELSE
+      CALL GNHGW2SVDAROME(YDGEOMETRY, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_PHY9%PREHYDF, YDCPG_PHY9%XYB%LNPR, &
+      & ZRTT1, YDCPG_PHY9%PREF, ZGWT1, ZTENDD)  
+    ENDIF
+
+  ENDIF
+ELSE
+  ZTENDD=0.0_JPRB
+ENDIF
+
+!      4.3  PUT THE TENDENCIES IN PB1/GFLT1/GMVT1.
+!           --------------------------------------
+
+
+IF (LSLAG) CALL CP_PTRSLB1(YDMODEL%YRML_DYN%YRDYN, YDPTRSLB1, ISLB1U9, ISLB1V9, ISLB1T9, ISLB1VD9, &
+           & ISLB1GFL9)
+IF ( LINTFLEX ) THEN
+
+  ! Set GFL tendencies to 0
+  ZTENDGFL(:,:,:) = 0.0_JPRB
+
+  CALL CPTEND_FLEX( YDLDDH, YDMDDH, YGFL, YDPHY, YDCPG_OPTS%KLON, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA,                &
+  & YDCPG_OPTS%KFLEVG, YDVARS%GEOMETRY%GNORDL%T0, YDVARS%GEOMETRY%GNORDM%T0, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP, &
+  & YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%RDELP, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%CP, YDMF_PHYS_BASE_STATE%U,           &
+  & YDMF_PHYS_BASE_STATE%V, YDMF_PHYS_BASE_STATE%T, YDMF_PHYS_BASE_STATE%YGSP_RR%T, PGFL, YLPROCSET,                 &
+  & YDMF_PHYS%OUT%TENDU, YDMF_PHYS%OUT%TENDV, ZTENDH, ZTENDGFL, YDMF_PHYS%OUT%FHSCL, YDMF_PHYS%OUT%FHSCN,            &
+  & YDMF_PHYS%OUT%FHSSL, YDMF_PHYS%OUT%FHSSN, YDMF_PHYS%OUT%FHPCL, YDMF_PHYS%OUT%FHPCN, YDMF_PHYS%OUT%FHPSL,         &
+  & YDMF_PHYS%OUT%FHPSN, PFEPFP =YDMF_PHYS%OUT%FEPFP, PFCMPCQ=YDMF_PHYS%OUT%FCMPCQ, PFCMPSN=YDMF_PHYS%OUT%FCMPSN,    &
+  & PFCMPSL=YDMF_PHYS%OUT%FCMPSL, YDDDH=YDDDH )
+  
+  CALL CPUTQY(YDGEOMETRY%YRDIMV, YDGMV, YGFL, YDPTRSLB1, YDPHY, YDCPG_OPTS%KLON, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA,  &
+  & YDCPG_OPTS%KFLEVG, YDCPG_OPTS%ZDTPHY, IPGFL, ISLB1T9, ISLB1U9, ISLB1V9, ISLB1VD9, ISLB1GFL9, ZTENDH, ZTENDT,                 &
+  & YDMF_PHYS%OUT%TENDU, YDMF_PHYS%OUT%TENDV, ZTENDU, ZTENDV, ZTENDD, ZTENDGFL, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%CP, &
+  & YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP, YDMF_PHYS_BASE_STATE%T, YDMF_PHYS_BASE_STATE%U, YDMF_PHYS_BASE_STATE%V,   &
+  & YDCPG_SL1%ZVIEW, PGMVT1, PGFLT1, YDMF_PHYS%OUT%FDIS)    
+   
+ELSE
+
+  ! start ZTENDGFLR at 1 because it is dimensionned (:,:,0:n)
+  CALL CPUTQY_AROME_EXPL (YDMF_PHYS_NEXT_STATE, YDVARS, YDMODEL, YDGEOMETRY%YRDIMV, YDCPG_BNDS,  &
+  & YDCPG_OPTS, YDCPG_OPTS%ZDTPHY, ZTEND_Q, ZTEND_L, ZTEND_R, ZTEND_I, ZTEND_S, ZTEND_G, ZTEND_H, ZTENDTKE, &
+  & ZTENDT, YDMF_PHYS%OUT%TENDU, YDMF_PHYS%OUT%TENDV, ZTENDD)
+  CALL CPUTQY_AROME_LOOP (YDMODEL, YDGEOMETRY%YRDIMV, YDGMV, YDCPG_BNDS, YDCPG_OPTS, YDCPG_OPTS%ZDTPHY, IPGFL, &
+  & IPTR, ZTENDGFLR(:, :, 1:), YDCPG_SL1%ZVIEW, PGMVT1, PGFLT1)
+ENDIF
+  
+
+!     ------------------------------------------------------------------ 
+!*       5.    Final calculations.
+!              -------------------
+
+! * Restore the initial value of some pseudo-historical surface buffers
+!   if relevant.
+IF (LLDIAB) THEN
+  IF (LL_SAVE_PHSURF) THEN
+    CALL MF_PHYS_SAVE_PHSURF_PART2 (YDCPG_BNDS, YDCPG_OPTS, ZSAV_DDAL, ZSAV_DDOM, ZSAV_ENTCH,                           &
+    & ZSAV_FHPS, ZSAV_GZ0F, ZSAV_GZ0HF, ZSAV_HV, ZSAV_PBLH, ZSAV_QSH, ZSAV_UDAL, ZSAV_UDGRO,                            &
+    & ZSAV_UDOM, ZSAV_UNEBH, YDMF_PHYS_SURF%GSD_VF%PZ0F, YDMF_PHYS_SURF%GSD_VH%PPBLH, YDMF_PHYS_SURF%GSD_VH%PQSH,       &
+    & YDMF_PHYS_SURF%GSD_VH%PSPSH, YDMF_PHYS_SURF%GSD_VK%PUDGRO, YDMF_PHYS_SURF%GSD_VV%PHV, YDMF_PHYS_SURF%GSD_VV%PZ0H, &
+    & YDVARS%DAL%T0, YDVARS%DOM%T0, YDVARS%UAL%T0, YDVARS%UEN%T0, YDVARS%UNEBH%T0, YDVARS%UOM%T0,                       &
+    & YDMODEL)
+  ENDIF
+ENDIF
+
+!-------------------------------------------------
+! Extract Single Column Model profiles from 3D run or 
+! write LFA file for MUSC (1D model)
+!-------------------------------------------------
+IF(LGSCM.OR.LMUSCLFA) THEN
+  IF (LAROME) THEN
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
+      DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        YDCPG_MISC%NEB(JROF,JLEV)=YDVARS%A%T1(JROF,JLEV)
+      ENDDO
+    ENDDO
+  ENDIF
+  CALL WRITEPHYSIO(YDGEOMETRY, YDCPG_MISC, YDCPG_PHY0, YDMF_PHYS, YDCPG_DYN0, YDMF_PHYS_SURF, YDVARS,         &
+  & YDSURF, YDDPHY, YDRIP, YDMODEL%YRML_PHY_MF, YDCPG_BNDS%KFDIA, YDCPG_BNDS%KIDIA, YDCPG_OPTS%KGL1,          &
+  & YDCPG_OPTS%KGL2, YDCPG_BNDS%KSTGLO, YDCPG_OPTS%KSTEP, NTSSG, YSP_SBD%NLEVS, YDVARS%GEOMETRY%GELAM%T0,     &
+  & YDVARS%GEOMETRY%GEMU%T0, YDVARS%GEOMETRY%GM%T0, YDVARS%GEOMETRY%OROG%T0, YDVARS%GEOMETRY%RCORI%T0,        &
+  & YDVARS%GEOMETRY%RATATH%T0, YDVARS%GEOMETRY%RATATX%T0, YDVARS%GEOMETRY%GECLO%T0, YDVARS%GEOMETRY%GESLO%T0, &
+  & ZRDG_CVGQ, ZRDG_LCVQ, ZRDG_MU0               )
+ENDIF
+
+IF (LEDR) THEN
+  YDMF_PHYS_SURF%GSD_DI%PXEDR(:,:)=YDMF_PHYS%OUT%EDR(:,:)
+ENDIF
+
+CALL MF_PHYS_PRECIPS (YDCPG_BNDS, YDCPG_OPTS, ZPRC_DPRECIPS, ZPRC_DPRECIPS2, YDMF_PHYS_SURF%GSD_XP%PPRECIP, &
+& YDMF_PHYS_SURF%GSD_XP2%PPRECIP2, YDMODEL)
+
+!       6. destructor for procset
+IF (LINTFLEX) CALL CLEANINTPROCSET(YLPROCSET)
+
+! Clear SPP
+IF (YSPP_CONFIG%LSPP) CALL CLEAR_ALL_SPP(ZSPP_ALL)
+
+!     ------------------------------------------------------------------
 
-!     --------------------------------------------------------------------------
 END ASSOCIATE
 END ASSOCIATE
+
 IF (LHOOK) CALL DR_HOOK('APL_AROME',1,ZHOOK_HANDLE)
 
 CONTAINS
 
 SUBROUTINE SWAP_THS
 IF (LLSWAP_THS) THEN
-  ZTHSIN_ => ZTHSAVE__(:,1:KLEV)
+  ZTHSIN_ => ZTHSAVE__(:,1:YDCPG_OPTS%KFLEVG)
   ZTHS__ => ZTHSWAP__
 ELSE
-  ZTHSIN_ => ZTHSWAP__(:,1:KLEV)
+  ZTHSIN_ => ZTHSWAP__(:,1:YDCPG_OPTS%KFLEVG)
   ZTHS__ => ZTHSAVE__
 ENDIF
 LLSWAP_THS=.NOT.LLSWAP_THS
diff --git a/src/arome/ext/aro_adjust.F90 b/src/arome/ext/aro_adjust.F90
index 4554df8ba03f4e467703232f2cfe500bb20a7648..abae8e663baea159347e9be6b37b78c434f8b354 100644
--- a/src/arome/ext/aro_adjust.F90
+++ b/src/arome/ext/aro_adjust.F90
@@ -1,16 +1,16 @@
 !     ######spl
       SUBROUTINE  ARO_ADJUST(KKA,KKU,KKL,KLON,KLEV,  KRR,  &
-                                  NGFL_EZDIAG, &
                                   HFRAC_ICE, HCONDENS, HLAMBDA3, OSUBG_COND, &
-                                  OSIGMAS, CMICRO, OCND2, HSUBG_MF_PDF, &
+                                  OSIGMAS, CMICRO, OCND2, LHGT_QS, HSUBG_MF_PDF, &
                                   PTSTEP, PSIGQSAT, &
                                   PZZF, PRHODJ, PEXNREF, PRHODREF,&
                                   PPABSM, PTHT, PRT, PSIGS, &
                                   PMFCONV, PRC_MF, PRI_MF, PCF_MF, &
                                   PTHS, PRS,  PSRCS, PCLDFR,&
+                                  PICLDFR, PWCLDFR, PSSIO, PSSIU, PIFR, &
                                   PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF,&
-                                  PGP2DSPP,PEZDIAG, &
-                                  YDDDH,YDLDDH,YDMDDH)
+                                  YDDDH,YDLDDH,YDMDDH,&
+                                  YSPP_PSIGQSAT,YSPP_ICE_CLD_WGT)
       USE PARKIND1, ONLY : JPRB
       USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 !     ##########################################################################
@@ -76,6 +76,7 @@
 !!      S. Riette ice for EDKF
 !!      2012-02 Y. Seity,  add possibility to run with reversed vertical levels
 !!      2016-11 S. Riette: new ice_adjust interface, add OLD3/OLD4 schemes
+!!      2018-02 K.I Ivarsson : More outputs from OCND2 option
 !!      2020-12 U. Andrae : Introduce SPP for HARMONIE-AROME
 !!     R. El Khatib 24-Aug-2021 Optimizations
 !!
@@ -88,11 +89,11 @@ USE MODD_CONF
 USE MODD_CST
 USE MODD_PARAMETERS
 USE MODD_RAIN_ICE_DESCR
+USE MODD_RAIN_ICE_PARAM, ONLY: XFRMIN
 USE MODD_BUDGET, ONLY: TBUDGETDATA, NBUDGET_RI
-USE MODD_SPP_TYPE
+USE SPP_MOD_TYPE, ONLY : TSPP_CONFIG_TYPE, CLEAR_SPP_TYPE, APPLY_SPP
 !
 USE MODI_ICE_ADJUST
-USE SPP_MOD, ONLY : YSPP_CONFIG,YSPP
 !
 USE DDH_MIX , ONLY : TYP_DDH
 USE YOMLDDH , ONLY : TLDDH
@@ -111,7 +112,6 @@ INTEGER,                  INTENT(IN)   :: KKL    !vert. levels type 1=MNH -1=ARO
 INTEGER,                  INTENT(IN)   :: KLON     !NPROMA under CPG
 INTEGER,                  INTENT(IN)   :: KLEV     !Number of vertical levels
 INTEGER,                  INTENT(IN)   :: KRR      ! Number of moist variables
-INTEGER,                  INTENT(IN)   :: NGFL_EZDIAG  ! Diagnostic array dimension
 CHARACTER*1,              INTENT(IN)   :: HFRAC_ICE
 CHARACTER*80,             INTENT(IN)   :: HCONDENS
 CHARACTER*4,              INTENT(IN)   :: HLAMBDA3 ! formulation for lambda3 coeff
@@ -121,6 +121,7 @@ LOGICAL,                  INTENT(IN)   :: OSIGMAS  ! Switch for Sigma_s:
                                         ! or that from turbulence scheme
 CHARACTER (LEN=4),        INTENT(IN)   :: CMICRO  ! Microphysics scheme
 LOGICAL,                  INTENT(IN)   :: OCND2
+LOGICAL,                  INTENT(IN)   :: LHGT_QS
 CHARACTER*80,             INTENT(IN)   :: HSUBG_MF_PDF
 REAL,                     INTENT(IN)   :: PTSTEP   ! Time step
 REAL,                     INTENT(IN)   :: PSIGQSAT ! coeff applied to qsat variance contribution
@@ -148,19 +149,25 @@ REAL, DIMENSION(KLON,1,KLEV),   INTENT(OUT)   :: PSRCS ! Second-order flux
                                                  ! s'rc'/2Sigma_s2 at time t+1
                                                  ! multiplied by Lambda_3
 REAL, DIMENSION(KLON,1,KLEV), INTENT(INOUT)   :: PCLDFR! Cloud fraction
+REAL, DIMENSION(KLON,1,KLEV),   INTENT(OUT)   :: PICLDFR ! ice cloud fraction
+REAL, DIMENSION(KLON,1,KLEV),   INTENT(OUT)   :: PWCLDFR ! water or mixed-phase cloud fraction
+REAL, DIMENSION(KLON,1,KLEV),   INTENT(OUT)   :: PSSIO   ! Super-saturation with respect to ice in the 
+                                                         ! supersaturated fraction
+REAL, DIMENSION(KLON,1,KLEV),   INTENT(OUT)   :: PSSIU   ! Sub-saturation with respect to ice in the 
+                                                         ! subsaturated fraction 
+REAL, DIMENSION(KLON,1,KLEV),   INTENT(OUT)   :: PIFR    ! Ratio cloud ice moist part to dry part
 !
 REAL, DIMENSION(KLON,1,KLEV), INTENT(OUT)   :: PHLC_HRC
 REAL, DIMENSION(KLON,1,KLEV), INTENT(OUT)   :: PHLC_HCF
 REAL, DIMENSION(KLON,1,KLEV), INTENT(OUT)   :: PHLI_HRI
 REAL, DIMENSION(KLON,1,KLEV), INTENT(OUT)   :: PHLI_HCF
 !
-REAL, DIMENSION(KLON,YSPP%N2D), TARGET, INTENT(INOUT) :: PGP2DSPP
-REAL, DIMENSION(KLON,KLEV,NGFL_EZDIAG), INTENT(INOUT) :: PEZDIAG
-!
 TYPE(TYP_DDH), INTENT(INOUT), TARGET :: YDDDH
 TYPE(TLDDH), INTENT(IN), TARGET :: YDLDDH
 TYPE(TMDDH), INTENT(IN), TARGET :: YDMDDH
 !
+TYPE(TSPP_CONFIG_TYPE), INTENT(INOUT) :: YSPP_PSIGQSAT,YSPP_ICE_CLD_WGT
+!
 !*       0.2   Declarations of local variables :
 
 CHARACTER*4               :: HBUNAME  ! Name of the budget
@@ -178,12 +185,9 @@ REAL  :: ZMASSTOT                   ! total mass  for one water category
 REAL  :: ZMASSPOS                   ! total mass  for one water category
                                     ! after removing the negative values
 REAL  :: ZRATIO                     ! ZMASSTOT / ZMASSCOR
-REAL  :: ZCOR(KLON)                       ! for the correction of negative rv
+REAL  :: ZCOR(KLON)                 ! for the correction of negative rv
 !
-TYPE(TSPP_CONFIG_MPA) :: YSPP_PSIGQSAT,YSPP_ICE_CLD_WGT
-REAL  :: ZMU, ZVAL
 REAL, DIMENSION(KLON,1) :: ZSIGQSAT, ZICE_CLD_WGT
-INTEGER :: JI
 TYPE(TBUDGETDATA), DIMENSION(NBUDGET_RI) :: YLBUDGET !NBUDGET_RI is the one with the highest number
 !
 !
@@ -195,69 +199,20 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE
 !
 IF (LHOOK) CALL DR_HOOK('ARO_ADJUST',0,ZHOOK_HANDLE)
 
-! Copy SPP settings
-IF ( YSPP_CONFIG%LSPP ) THEN
-
-  IF ( YSPP_CONFIG%LPERT_PSIGQSAT ) &
-  CALL SET_SPP_TYPE(YSPP_PSIGQSAT, &
-   YSPP_CONFIG%LLNN_MEAN1, YSPP_CONFIG%LLNN_MEAN1_PSIGQSAT, &
-   YSPP_CONFIG%CMPERT_PSIGQSAT, YSPP_CONFIG%SDEV, &
-   YSPP_CONFIG%CLIP_PSIGQSAT, &
-   YSPP%MP_PSIGQSAT, &
-   KLON,KLEV,YSPP%N2D,NGFL_EZDIAG, &
-   YSPP_CONFIG%IEZDIAG_POS, &
-   PGP2DSPP,PSIGQSAT,PEZDIAG)
-                    
-  IF ( YSPP_CONFIG%LPERT_ICE_CLD_WGT ) &
-  CALL SET_SPP_TYPE(YSPP_ICE_CLD_WGT, &
-   YSPP_CONFIG%LLNN_MEAN1, YSPP_CONFIG%LLNN_MEAN1_ICE_CLD_WGT, &
-   YSPP_CONFIG%CMPERT_ICE_CLD_WGT, YSPP_CONFIG%SDEV, &
-   YSPP_CONFIG%CLIP_ICE_CLD_WGT, &
-   YSPP%MP_ICE_CLD_WGT, &
-   KLON,KLEV,YSPP%N2D,NGFL_EZDIAG, &
-   YSPP_CONFIG%IEZDIAG_POS, &
-   PGP2DSPP,1.0_JPRB,PEZDIAG)
-   ! Awaiting merge of HARMONIE-AROME physics 
-   !PGP2DSPP,XFRMIN(21),PEZDIAG)
-
-ENDIF 
+!
+! Apply SPP perturbations
+!
 
-! Compute perturbations 
-! Perturb PSIGQSAT
 IF (YSPP_PSIGQSAT%LPERT) THEN
-  IF (YSPP_PSIGQSAT%LLNN_MEAN1.OR.YSPP_PSIGQSAT%LLNN_MEAN1_SELF) THEN
-    ZMU = -0.5 * (YSPP_PSIGQSAT%CMPERT * YSPP_PSIGQSAT%SDEV)**2
-  ELSE
-    ZMU = 0.
-  ENDIF
-  DO JI=1,KLON
-    ZVAL = &
-      PSIGQSAT*EXP(ZMU+YSPP_PSIGQSAT%CMPERT*YSPP_PSIGQSAT%PGP2DSPP(JI)) 
-    ZSIGQSAT(JI,1) = MAX(YSPP_PSIGQSAT%CLIP(1),MIN(ZVAL,YSPP_PSIGQSAT%CLIP(2)))
-  ENDDO
+ CALL APPLY_SPP(YSPP_PSIGQSAT,KLON,1,KLON,PSIGQSAT,ZSIGQSAT)
 ELSE
-  ZSIGQSAT(:,1) = PSIGQSAT
+ ZSIGQSAT(:,:) = PSIGQSAT
 ENDIF
 
-! Perturb ICE_CLD_WGT
 IF (YSPP_ICE_CLD_WGT%LPERT) THEN
-  IF (YSPP_ICE_CLD_WGT%LLNN_MEAN1.OR.YSPP_ICE_CLD_WGT%LLNN_MEAN1_SELF) THEN
-    ZMU = -0.5 * (YSPP_ICE_CLD_WGT%CMPERT * YSPP_ICE_CLD_WGT%SDEV)**2
-  ELSE
-    ZMU = 0.
-  ENDIF
-  DO JI=1,KLON
-  ! Awaiting HARMONIE-AROME physics changes
-  !    ZVAL = &
-  !     XFRMIN(21)* EXP(ZMU+YSPP_ICE_CLD_WGT%CMPERT*YSPP_ICE_CLD_WGT%PGP2DSPP(JI)) 
-     ZVAL = &
-      1.5* EXP(ZMU+YSPP_ICE_CLD_WGT%CMPERT*YSPP_ICE_CLD_WGT%PGP2DSPP(JI)) 
-    ZICE_CLD_WGT(JI,1) = &
-    MAX(YSPP_ICE_CLD_WGT%CLIP(1),MIN(ZVAL,YSPP_ICE_CLD_WGT%CLIP(2)))
-  ENDDO
+ CALL APPLY_SPP(YSPP_ICE_CLD_WGT,KLON,1,KLON,XFRMIN(21),ZICE_CLD_WGT)
 ELSE
-!  ZICE_CLD_WGT(:) = XFRMIN(21)
-   ZICE_CLD_WGT(:,1) = 1.5
+ ZICE_CLD_WGT(:,:) = XFRMIN(21)
 ENDIF
 
 HBUNAME='DEPI'
@@ -435,11 +390,13 @@ IF (KRR==6) THEN
   CALL ICE_ADJUST ( KKA=KKA,KKU=KKU,KKL=KKL,KRR=KRR,&
     & HFRAC_ICE=HFRAC_ICE, HCONDENS=HCONDENS, HLAMBDA3=HLAMBDA3, HBUNAME=HBUNAME, &
     & OSUBG_COND=OSUBG_COND, OSIGMAS=OSIGMAS, &
-    & OCND2=OCND2, HSUBG_MF_PDF=HSUBG_MF_PDF, &
+    & OCND2=OCND2, LHGT_QS=LHGT_QS, HSUBG_MF_PDF=HSUBG_MF_PDF, &
     & PTSTEP=ZTWOTSTEP,PSIGQSAT=ZSIGQSAT, &
     & PRHODJ=PRHODJ ,PEXNREF=PEXNREF, PRHODREF=PRHODREF,   &
     & PSIGS=PSIGS, PMFCONV=PMFCONV, PPABST=PPABSM, PZZ=ZZZ,    &
     & PEXN=PEXNREF, PCF_MF=PCF_MF,PRC_MF=PRC_MF,PRI_MF=PRI_MF, &
+    & PICLDFR=PICLDFR, PWCLDFR=PWCLDFR, & 
+    & PSSIO=PSSIO, PSSIU=PSSIU, PIFR=PIFR, &
     & PRV=ZRS(:,:,:,1), PRC=ZRS(:,:,:,2),  &
     & PRVS=PRS(:,:,:,1), PRCS=PRS(:,:,:,2), &
     & PTH=ZRS(:,:,:,0), PTHS=PTHS,PSRCS=PSRCS, PCLDFR=PCLDFR, &
@@ -447,19 +404,21 @@ IF (KRR==6) THEN
     & PRI=ZRS(:,:,:,4), PRIS=PRS(:,:,:,4), &
     & PRS=ZRS(:,:,:,5), &
     & PRG=ZRS(:,:,:,6), &
-    & PHLC_HRC=PHLC_HRC(:,:,:), PHLC_HCF=PHLC_HCF(:,:,:), &
-    & PHLI_HRI=PHLI_HRI(:,:,:), PHLI_HCF=PHLI_HCF(:,:,:), &
+    & TBUDGETS=YLBUDGET, KBUDGETS=SIZE(YLBUDGET), &
     & PICE_CLD_WGT=ZICE_CLD_WGT(:,:), &
-    & TBUDGETS=YLBUDGET, KBUDGETS=SIZE(YLBUDGET))
+    & PHLC_HRC=PHLC_HRC(:,:,:), PHLC_HCF=PHLC_HCF(:,:,:), &
+    & PHLI_HRI=PHLI_HRI(:,:,:), PHLI_HCF=PHLI_HCF(:,:,:))
 ELSE
   CALL ICE_ADJUST ( KKA=KKA,KKU=KKU,KKL=KKL,KRR=KRR,&
     & HFRAC_ICE=HFRAC_ICE, HCONDENS=HCONDENS, HLAMBDA3=HLAMBDA3, HBUNAME=HBUNAME,    &
     & OSUBG_COND=OSUBG_COND, OSIGMAS=OSIGMAS, &
-    & OCND2=OCND2, HSUBG_MF_PDF=HSUBG_MF_PDF, &
+    & OCND2=OCND2, LHGT_QS=LHGT_QS, HSUBG_MF_PDF=HSUBG_MF_PDF, &
     & PTSTEP=ZTWOTSTEP,PSIGQSAT=ZSIGQSAT, &
     & PRHODJ=PRHODJ ,PEXNREF=PEXNREF, PRHODREF=PRHODREF,   &
     & PSIGS=PSIGS, PMFCONV=PMFCONV, PPABST=PPABSM, PZZ=ZZZ,    &
     & PEXN=PEXNREF, PCF_MF=PCF_MF,PRC_MF=PRC_MF,PRI_MF=PRI_MF, &
+    & PICLDFR=PICLDFR, PWCLDFR=PWCLDFR, & 
+    & PSSIO=PSSIO, PSSIU=PSSIU, PIFR=PIFR, &
     & PRV=ZRS(:,:,:,1), PRC=ZRS(:,:,:,2), &
     & PRVS=PRS(:,:,:,1), PRCS=PRS(:,:,:,2), &
     & PTH=ZRS(:,:,:,0), PTHS=PTHS,PSRCS=PSRCS, PCLDFR=PCLDFR, &
@@ -467,11 +426,11 @@ ELSE
     & PRI=ZRS(:,:,:,4), PRIS=PRS(:,:,:,4), &
     & PRS=ZRS(:,:,:,5), &
     & PRG=ZRS(:,:,:,6), &
+    & TBUDGETS=YLBUDGET, KBUDGETS=SIZE(YLBUDGET), &
+    & PICE_CLD_WGT=ZICE_CLD_WGT(:,:), &
     & PRH=ZRS(:,:,:,7), &
     & PHLC_HRC=PHLC_HRC(:,:,:), PHLC_HCF=PHLC_HCF(:,:,:), & 
-    & PHLI_HRI=PHLI_HRI(:,:,:), PHLI_HCF=PHLI_HCF(:,:,:), &
-    & PICE_CLD_WGT=ZICE_CLD_WGT(:,:), &
-    & TBUDGETS=YLBUDGET, KBUDGETS=SIZE(YLBUDGET))
+    & PHLI_HRI=PHLI_HRI(:,:,:), PHLI_HCF=PHLI_HCF(:,:,:))
 ENDIF
 
 CALL CLEAR_SPP_TYPE(YSPP_PSIGQSAT)
diff --git a/src/arome/ext/aro_adjust.h b/src/arome/ext/aro_adjust.h
index 6f2856602c59c9926eecc055be328e7e4efaea48..862153ceea5a759f69af5a8502378e11d08de6fb 100644
--- a/src/arome/ext/aro_adjust.h
+++ b/src/arome/ext/aro_adjust.h
@@ -1,17 +1,17 @@
 INTERFACE
  SUBROUTINE ARO_ADJUST(KKA,KKU,KKL,KLON,KLEV, KRR,&
- & NGFL_EZDIAG, &
  & HFRAC_ICE, HCONDENS, HLAMBDA3, OSUBG_COND, &
- & OSIGMAS, CMICRO, OCND2, HSUBG_MF_PDF,&
+ & OSIGMAS, CMICRO, OCND2, LHGT_QS, HSUBG_MF_PDF,&
  & PTSTEP, PSIGQSAT, PZZF, PRHODJ, PEXNREF, PRHODREF,&
  & PPABSM, PTHT, PRT, PSIGS,&
  & PMFCONV, PRC_MF, PRI_MF, PCF_MF,&
  & PTHS, PRS, PSRCS, PCLDFR, &
+ & PICLDFR, PWCLDFR, PSSIO, PSSIU, PIFR,&
  & PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF, &
- & PGP2DSPP,PEZDIAG, &
- & YDDDH,YDLDDH,YDMDDH)
+ & YDDDH,YDLDDH,YDMDDH,&
+ & YSPP_PSIGQSAT,YSPP_ICE_CLD_WGT)
 USE PARKIND1  ,ONLY : JPIM     ,JPRB
-USE SPP_MOD, ONLY : YSPP
+USE SPP_MOD_TYPE, ONLY : TSPP_CONFIG_TYPE
 USE DDH_MIX, ONLY : TYP_DDH
 USE YOMLDDH, ONLY : TLDDH
 USE YOMMDDH, ONLY : TMDDH
@@ -21,7 +21,6 @@ INTEGER(KIND=JPIM), INTENT(IN) :: KKL
 INTEGER(KIND=JPIM), INTENT(IN) :: KLON
 INTEGER(KIND=JPIM), INTENT(IN) :: KLEV
 INTEGER(KIND=JPIM), INTENT(IN) :: KRR
-INTEGER(KIND=JPIM), INTENT(IN) :: NGFL_EZDIAG
 CHARACTER*1, INTENT(IN) :: HFRAC_ICE
 CHARACTER(LEN=80), INTENT(IN) :: HCONDENS
 CHARACTER*4, INTENT(IN) :: HLAMBDA3
@@ -29,6 +28,7 @@ LOGICAL, INTENT(IN) :: OSUBG_COND
 LOGICAL, INTENT(IN) :: OSIGMAS
 CHARACTER(LEN=4), INTENT(IN) :: CMICRO
 LOGICAL, INTENT(IN) :: OCND2
+LOGICAL, INTENT(IN) :: LHGT_QS
 CHARACTER(LEN=80), INTENT(IN) :: HSUBG_MF_PDF
 REAL(KIND=JPRB), INTENT(IN) :: PTSTEP
 REAL(KIND=JPRB), INTENT(IN) :: PSIGQSAT
@@ -46,14 +46,18 @@ REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV), INTENT(INOUT) :: PTHS
 REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV,KRR), INTENT(INOUT) :: PRS
 REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV), INTENT(OUT) :: PSRCS
 REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV), INTENT(INOUT) :: PCLDFR
+REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV), INTENT(OUT)  :: PICLDFR 
+REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV), INTENT(OUT)  :: PWCLDFR
+REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV), INTENT(OUT)  :: PSSIO 
+REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV), INTENT(OUT)  :: PSSIU
+REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV), INTENT(OUT)  :: PIFR
 REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV), INTENT(OUT) :: PHLC_HRC
 REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV), INTENT(OUT) :: PHLC_HCF
 REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV), INTENT(OUT) :: PHLI_HRI
 REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV), INTENT(OUT) :: PHLI_HCF
-REAL(KIND=JPRB), DIMENSION(KLON,YSPP%N2D), INTENT(INOUT) :: PGP2DSPP
-REAL(KIND=JPRB), DIMENSION(KLON,KLEV,NGFL_EZDIAG), INTENT(INOUT) :: PEZDIAG
 TYPE(TYP_DDH)                          , INTENT(INOUT) :: YDDDH
 TYPE(TLDDH)                          , INTENT(IN) :: YDLDDH
 TYPE(TMDDH)                          , INTENT(IN) :: YDMDDH
+TYPE(TSPP_CONFIG_TYPE), INTENT(INOUT) :: YSPP_PSIGQSAT,YSPP_ICE_CLD_WGT
 END SUBROUTINE ARO_ADJUST
 END INTERFACE
diff --git a/src/arome/ext/aro_rain_ice.F90 b/src/arome/ext/aro_rain_ice.F90
index ccc9271418fa9b34d8f8349c8943d850e5fc0301..7e321c99507b4bb1cdc61791b21bb38d73f0d4a7 100644
--- a/src/arome/ext/aro_rain_ice.F90
+++ b/src/arome/ext/aro_rain_ice.F90
@@ -1,15 +1,15 @@
 !     ######spl
       SUBROUTINE  ARO_RAIN_ICE(KPROMA,KKA,KKU,KKL,KLON,KLEV,  KRR, KTCOUNT, KSPLITR,&
-                                  KEZDIAG, &
                                   OSUBG_COND, CSUBG_AUCV_RC, CSUBG_AUCV_RI,OSEDIC, CSEDIM, CMICRO, &
                                   PTSTEP, PDZZ, PRHODJ, PRHODREF, PEXNREF,&
                                   PPABSM, PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF, PTHT, PRT, PSIGS,PCLDFR, &
                                   PTHS, PRS, PEVAP,  &
                                   PCIT, OWARM, PSEA, PTOWN,   &
-                                  OCND2,LGRSN, &
+                                  PICLDFR, PWCLDFR, PSSIO, PSSIU, PIFR,  &
+                                  OCND2, LKOGAN, LMODICEDEP,&
                                   PINPRR,PINPRS,PINPRG,PINPRH,PFPR,     &
-                                  PGP2DSPP,PEZDIAG, &
-                                  YDDDH, YDLDDH, YDMDDH)
+                                  YDDDH, YDLDDH, YDMDDH, &
+                                  YSPP_ICENU,YSPP_KGN_ACON,YSPP_KGN_SBGR)
       USE PARKIND1, ONLY : JPRB
       USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 !     ##########################################################################
@@ -78,6 +78,7 @@
 !!      2014-11 S. Riette, ICE3/ICE4 modified, old versions under OLD3/OLD4
 !!      2014-11 S. Riette, ICE3/ICE4 modified, old versions under OLD3/OLD4
 !!      2020-12 U. Andrae : Introduce SPP for HARMONIE-AROME
+!!      2018-02 K.I: Ivarsson: More inputs to OCND2-option for saving computing time.
 !!     R. El Khatib 24-Aug-2021 Specific cache-blocking factor for microphysics
 !!
 !-------------------------------------------------------------------------------
@@ -89,7 +90,7 @@ USE MODD_CONF
 USE MODD_CST
 USE MODD_PARAMETERS
 USE MODD_RAIN_ICE_DESCR
-USE MODD_SPP_TYPE
+USE MODD_RAIN_ICE_PARAM, ONLY: XFRMIN
 !
 USE MODD_BUDGET, ONLY: LBUDGET_RV, LBUDGET_RC, LBUDGET_RR, LBUDGET_RI, LBUDGET_RS, &
                      & LBUDGET_RG, LBUDGET_RH, LBUDGET_TH, TBUDGETDATA, NBUDGET_RH
@@ -97,7 +98,7 @@ USE MODE_BUDGET, ONLY: BUDGET_DDH
 !
 USE MODI_RAIN_ICE
 !
-USE SPP_MOD, ONLY : YSPP_CONFIG,YSPP
+USE SPP_MOD_TYPE, ONLY : TSPP_CONFIG_TYPE, APPLY_SPP
 !
 USE MODI_RAIN_ICE_OLD
 !
@@ -121,7 +122,6 @@ INTEGER,                  INTENT(IN)   :: KLEV     !Number of vertical levels
 INTEGER,                  INTENT(IN)   :: KRR      ! Number of moist variables
 INTEGER,                  INTENT(IN)   :: KTCOUNT  ! Temporal loop counter
 INTEGER,                  INTENT(IN)   :: KSPLITR  ! Number of small time step
-INTEGER,                  INTENT(IN)   :: KEZDIAG  ! Size of diagnostics array
                                        ! integrations for  rain sedimendation
 LOGICAL,                  INTENT(IN)   :: OSUBG_COND ! Switch for Subgrid Cond.
 CHARACTER (LEN=4),        INTENT(IN)   :: CSUBG_AUCV_RC
@@ -150,6 +150,16 @@ REAL, DIMENSION(KLON,1,KLEV),   INTENT(IN)   :: PTHT    ! Theta at time t
 REAL, DIMENSION(KLON,1,KLEV,KRR), INTENT(INOUT):: PRT   ! Moist variables at time t
 REAL, DIMENSION(KLON,1,KLEV),   INTENT(IN)   :: PSIGS   ! Sigma_s at time t
 REAL, DIMENSION(KLON,1,KLEV),   INTENT(IN)   :: PCLDFR  ! Cloud fraction
+! input from aro_adjust / condensation with OCND2, dummy if OCND2 = F
+REAL, DIMENSION(KLON,1,KLEV),   INTENT(IN)   :: PICLDFR ! ice cloud fraction
+REAL, DIMENSION(KLON,1,KLEV),   INTENT(IN)   :: PWCLDFR ! water or mixed-phase cloud fraction
+REAL, DIMENSION(KLON,1,KLEV),   INTENT(IN)   :: PSSIO   ! Super-saturation with respect to ice in the  
+                                                        ! supersaturated fraction
+REAL, DIMENSION(KLON,1,KLEV),   INTENT(IN)   :: PSSIU   ! Sub-saturation with respect to ice in the  
+                                                        ! subsaturated fraction 
+REAL, DIMENSION(KLON,1,KLEV),   INTENT(INOUT):: PIFR    ! Ratio cloud ice moist part to dry part 
+!REAL, DIMENSION (KLON,1),       INTENT(IN)  :: PPBL    ! PBL top above ground (m)
+! input from aro_adjust / condensation with OCND2 END.
 !
 !
 REAL, DIMENSION(KLON,1,KLEV),   INTENT(INOUT) :: PTHS    ! Theta source
@@ -164,7 +174,8 @@ LOGICAL,                  INTENT(IN)    :: OWARM ! Control of the rain formation
                                                  !  by slow warm microphysical
                                                  !         processes
 LOGICAL,                  INTENT(IN)    :: OCND2 ! Logical switch to separate liquid and ice
-LOGICAL,                  INTENT(IN)    :: LGRSN ! Logical switch to turn graupel to snow for high supersaturation wrt ice 
+LOGICAL,                  INTENT(IN)    :: LKOGAN! Logical switch for using Kogan autoconversion of liquid
+LOGICAL,                  INTENT(IN)    :: LMODICEDEP ! Logical switch for alternative dep/evap of ice
 REAL, DIMENSION(KLON,1), INTENT(IN)        :: PSEA  ! Land sea mask
 REAL, DIMENSION(KLON,1), INTENT(IN)        :: PTOWN  ! Town mask
 REAL, DIMENSION(KLON,1), INTENT(OUT)       :: PINPRR! Rain instant precip
@@ -172,13 +183,13 @@ REAL, DIMENSION(KLON,1), INTENT(OUT)       :: PINPRS! Snow instant precip
 REAL, DIMENSION(KLON,1), INTENT(OUT)       :: PINPRG! Graupel instant precip
 REAL, DIMENSION(KLON,1), INTENT(OUT)       :: PINPRH! Hail instant precip
 REAL, DIMENSION(KLON,1,KLEV,KRR), INTENT(INOUT) :: PFPR ! upper-air precip
-REAL, DIMENSION(KLON,YSPP%N2D), TARGET, INTENT(INOUT) :: PGP2DSPP
-REAL, DIMENSION(KLON,KLEV,KEZDIAG), INTENT(INOUT) :: PEZDIAG
 !
 TYPE(TYP_DDH), INTENT(INOUT), TARGET :: YDDDH
 TYPE(TLDDH), INTENT(IN), TARGET :: YDLDDH
 TYPE(TMDDH), INTENT(IN), TARGET :: YDMDDH
 !
+TYPE(TSPP_CONFIG_TYPE), INTENT(INOUT) :: YSPP_ICENU,YSPP_KGN_ACON,YSPP_KGN_SBGR 
+!
 !
 !*       0.2   Declarations of local variables :
 INTEGER :: JRR           ! Loop index for the moist and scalar variables
@@ -189,6 +200,7 @@ REAL, DIMENSION(KLON,1,KLEV):: ZT,ZLV,ZLS,ZCPH
 REAL, DIMENSION(KLON,1,KLEV):: ZCOR
 REAL, DIMENSION(KLON,1):: ZINDEP     ! surf cloud deposition (already contained in sedimentation)
 REAL, DIMENSION(KLON,1,KLEV):: ZRAINFR
+REAL, DIMENSION(KLON,1) :: ZICENU, ZKGN_ACON, ZKGN_SBGR
 REAL, DIMENSION(KLON,1):: ZINPRC    ! surf cloud sedimentation
                                     ! for the correction of negative rv
 REAL  :: ZMASSTOT                   ! total mass  for one water category
@@ -197,8 +209,6 @@ REAL  :: ZMASSPOS                   ! total mass  for one water category
                                     ! after removing the negative values
 REAL  :: ZRATIO                     ! ZMASSTOT / ZMASSCOR
 
-TYPE(TSPP_CONFIG_MPA) :: YSPP_ICENU,YSPP_KGN_ACON,YSPP_KGN_SBGR
-
 LOGICAL, DIMENSION(KLON, 1, KLEV) :: LLMICRO !mask to limit computation
 
 TYPE(TBUDGETDATA), DIMENSION(NBUDGET_RH) :: YLBUDGET !NBUDGET_RH is the one with the highest number
@@ -217,43 +227,6 @@ IF (LHOOK) CALL DR_HOOK('ARO_RAIN_ICE',0,ZHOOK_HANDLE)
 ZINPRC=0.
 PINPRH=0.
 
-! Copy SPP settings
-IF ( YSPP_CONFIG%LSPP ) THEN
-
-  ! Awaiting HARMONIE-AROME physics changes
-
-  IF ( YSPP_CONFIG%LPERT_ICENU ) &
-  CALL SET_SPP_TYPE(YSPP_ICENU, &
-   YSPP_CONFIG%LLNN_MEAN1, YSPP_CONFIG%LLNN_MEAN1_ICENU, &
-   YSPP_CONFIG%CMPERT_ICENU, YSPP_CONFIG%SDEV, &
-   YSPP_CONFIG%CLIP_ICENU, &
-   YSPP%MP_ICENU, KLON,KLEV,YSPP%N2D,KEZDIAG, &
-   YSPP_CONFIG%IEZDIAG_POS, &
-   PGP2DSPP, 1.0_JPRB,PEZDIAG)
-   !PGP2DSPP, XFRMIN(9),PEZDIAG)
-
-  IF ( YSPP_CONFIG%LPERT_KGN_ACON ) &
-  CALL SET_SPP_TYPE(YSPP_KGN_ACON, &
-   YSPP_CONFIG%LLNN_MEAN1, YSPP_CONFIG%LLNN_MEAN1_KGN_ACON, &
-   YSPP_CONFIG%CMPERT_KGN_ACON, YSPP_CONFIG%SDEV, &
-   YSPP_CONFIG%CLIP_KGN_ACON, &
-   YSPP%MP_KGN_ACON, KLON,KLEV,YSPP%N2D,KEZDIAG, &
-   YSPP_CONFIG%IEZDIAG_POS, &
-   PGP2DSPP, 10._JPRB ,PEZDIAG)
-   !PGP2DSPP, XFRMIN(10),PEZDIAG)
-
-  IF ( YSPP_CONFIG%LPERT_KGN_SBGR ) &
-  CALL SET_SPP_TYPE(YSPP_KGN_SBGR, &
-   YSPP_CONFIG%LLNN_MEAN1, YSPP_CONFIG%LLNN_MEAN1_KGN_SBGR, &
-   YSPP_CONFIG%CMPERT_KGN_SBGR, YSPP_CONFIG%SDEV, &
-   YSPP_CONFIG%CLIP_KGN_SBGR, &
-   YSPP%MP_KGN_SBGR, KLON,KLEV,YSPP%N2D,KEZDIAG, &
-   YSPP_CONFIG%IEZDIAG_POS, &
-   PGP2DSPP, 1.0_JPRB,PEZDIAG)
-   !PGP2DSPP, XFRMIN(11),PEZDIAG)
-
-ENDIF
-
 !Mask to limit computation
 IF ( KRR == 7 ) THEN
   IF (CMICRO /= 'ICE4' .AND. CMICRO /= 'OLD4') THEN
@@ -462,11 +435,31 @@ ELSEIF (CMICRO=='ICE3') THEN
                  &  TBUDGETS=YLBUDGET, KBUDGETS=SIZE(YLBUDGET), &
                  &  PSEA=PSEA, PTOWN=PTOWN, PFPR=PFPR)
 ELSEIF (CMICRO=='OLD4') THEN
-    CALL RAIN_ICE_OLD( OSEDIC=OSEDIC, OCND2=OCND2, LGRSN=LGRSN, HSEDIM=CSEDIM, HSUBG_AUCV_RC=CSUBG_AUCV_RC,&
+    IF (YSPP_ICENU%LPERT) THEN
+     CALL APPLY_SPP(YSPP_ICENU,KLON,1,KLON,XFRMIN(9),ZICENU)
+    ELSE
+     ZICENU(:,:) = XFRMIN(9)
+    ENDIF
+   
+    IF (YSPP_KGN_ACON%LPERT) THEN
+     CALL APPLY_SPP(YSPP_KGN_ACON,KLON,1,KLON,XFRMIN(10),ZKGN_ACON)
+    ELSE
+     ZKGN_ACON(:,:) = XFRMIN(10)
+    ENDIF
+   
+    IF (YSPP_KGN_SBGR%LPERT) THEN
+     CALL APPLY_SPP(YSPP_KGN_SBGR,KLON,1,KLON,XFRMIN(11),ZKGN_SBGR)
+    ELSE
+     ZKGN_SBGR(:,:) = XFRMIN(11)
+    ENDIF
+    CALL RAIN_ICE_OLD( OSEDIC=OSEDIC, OCND2=OCND2, LKOGAN=LKOGAN, LMODICEDEP=LMODICEDEP, &
+                 &  HSEDIM=CSEDIM, HSUBG_AUCV_RC=CSUBG_AUCV_RC, &
                  &  OWARM=OWARM,KKA=KKA,KKU=KKU,KKL=KKL,KSPLITR=KSPLITR, &
                  &  PTSTEP=2*PTSTEP, KRR=KRR,                              &
                  &  PDZZ=PDZZ, PRHODJ=PRHODJ, PRHODREF=PRHODREF, PEXNREF=PEXNREF,&
                  &  PPABST=PPABSM, PCIT=PCIT, PCLDFR=PCLDFR,  &
+                 &  PICLDFR=PICLDFR, PWCLDFR=PWCLDFR, &
+                 &  PSSIO=PSSIO, PSSIU=PSSIU, PIFR=PIFR, &
                  &  PTHT=PTHT,PRVT= PRT(:,:,:,1),PRCT= PRT(:,:,:,2), &
                  &  PRRT=PRT(:,:,:,3), &
                  &  PRIT=PRT(:,:,:,4), PRST=PRT(:,:,:,5), &
@@ -476,15 +469,39 @@ ELSEIF (CMICRO=='OLD4') THEN
                  &  PRIS=PRS(:,:,:,4),PRSS= PRS(:,:,:,5),PRGS= PRS(:,:,:,6),&
                  &  PINPRC=ZINPRC,PINPRR=PINPRR,PEVAP3D=PEVAP,&
                  &  PINPRS=PINPRS, PINPRG=PINPRG, &
-                 &  PSIGS=PSIGS, PSEA=PSEA, PTOWN=PTOWN, PRHT=PRT(:,:,:,7),&
+                 &  PSIGS=PSIGS, PSEA=PSEA, PTOWN=PTOWN, &
+                 &  YDDDH=YDDDH,YDLDDH=YDLDDH,YDMDDH=YDMDDH, &
+                 &  PRHT=PRT(:,:,:,7),&
                  &  PRHS=PRS(:,:,:,7), PINPRH=PINPRH, PFPR=PFPR, &
-                 &  YDDDH=YDDDH,YDLDDH=YDLDDH,YDMDDH=YDMDDH )
+                 &  PICENU=ZICENU, &
+                 &  PKGN_ACON=ZKGN_ACON, &
+                 &  PKGN_SBGR=ZKGN_SBGR)
 ELSE
-      CALL RAIN_ICE_OLD ( OSEDIC=OSEDIC, OCND2=OCND2, LGRSN=LGRSN, HSEDIM=CSEDIM, HSUBG_AUCV_RC=CSUBG_AUCV_RC, &
+    IF (YSPP_ICENU%LPERT) THEN
+     CALL APPLY_SPP(YSPP_ICENU,KLON,1,KLON,XFRMIN(9),ZICENU)
+    ELSE
+     ZICENU(:,:) = XFRMIN(9)
+    ENDIF
+   
+    IF (YSPP_KGN_ACON%LPERT) THEN
+     CALL APPLY_SPP(YSPP_KGN_ACON,KLON,1,KLON,XFRMIN(10),ZKGN_ACON)
+    ELSE
+     ZKGN_ACON(:,:) = XFRMIN(10)
+    ENDIF
+   
+    IF (YSPP_KGN_SBGR%LPERT) THEN
+     CALL APPLY_SPP(YSPP_KGN_SBGR,KLON,1,KLON,XFRMIN(11),ZKGN_SBGR)
+    ELSE
+     ZKGN_SBGR(:,:) = XFRMIN(11)
+    ENDIF
+    CALL RAIN_ICE_OLD( OSEDIC=OSEDIC, OCND2=OCND2, LKOGAN=LKOGAN, LMODICEDEP=LMODICEDEP, &
+                 &  HSEDIM=CSEDIM, HSUBG_AUCV_RC=CSUBG_AUCV_RC, &
                  &  OWARM=OWARM,KKA=KKA,KKU=KKU,KKL=KKL,KSPLITR=KSPLITR, &
                  &  PTSTEP=2*PTSTEP, KRR=KRR,                              &
-                 &  PDZZ=PDZZ, PRHODJ=PRHODJ, PRHODREF=PRHODREF,PEXNREF=PEXNREF,&
+                 &  PDZZ=PDZZ, PRHODJ=PRHODJ, PRHODREF=PRHODREF, PEXNREF=PEXNREF,&
                  &  PPABST=PPABSM, PCIT=PCIT, PCLDFR=PCLDFR,  &
+                 &  PICLDFR=PICLDFR, PWCLDFR=PWCLDFR, &
+                 &  PSSIO=PSSIO, PSSIU=PSSIU, PIFR=PIFR, &
                  &  PTHT=PTHT,PRVT= PRT(:,:,:,1),PRCT= PRT(:,:,:,2), &
                  &  PRRT=PRT(:,:,:,3), &
                  &  PRIT=PRT(:,:,:,4), PRST=PRT(:,:,:,5), &
@@ -494,10 +511,12 @@ ELSE
                  &  PRIS=PRS(:,:,:,4),PRSS= PRS(:,:,:,5),PRGS= PRS(:,:,:,6),&
                  &  PINPRC=ZINPRC,PINPRR=PINPRR,PEVAP3D=PEVAP,&
                  &  PINPRS=PINPRS, PINPRG=PINPRG, &
-                 &  PSIGS=PSIGS, PSEA=PSEA, PTOWN=PTOWN, PFPR=PFPR, &          
+                 &  PSIGS=PSIGS, PSEA=PSEA, PTOWN=PTOWN, &
                  &  YDDDH=YDDDH,YDLDDH=YDLDDH,YDMDDH=YDMDDH, &
-                 &  YSPP_KGN_ACON=YSPP_KGN_ACON, &
-                 &  YSPP_KGN_SBGR=YSPP_KGN_SBGR)
+                 &  PFPR=PFPR, &
+                 &  PICENU=ZICENU, &
+                 &  PKGN_ACON=ZKGN_ACON, &
+                 &  PKGN_SBGR=ZKGN_SBGR)
 ENDIF
 !add ZINPRC in PINPRR
 PINPRR=PINPRR+ZINPRC
diff --git a/src/arome/ext/aro_rain_ice.h b/src/arome/ext/aro_rain_ice.h
index 825705af01df59841ec6b148606cc092b1d09303..6b506fe8998551137e5b7089b87ed3695d423197 100644
--- a/src/arome/ext/aro_rain_ice.h
+++ b/src/arome/ext/aro_rain_ice.h
@@ -1,19 +1,19 @@
 INTERFACE
  SUBROUTINE ARO_RAIN_ICE(KPROMA,KKA,KKU,KKL,KLON,KLEV, KRR, KTCOUNT, KSPLITR,&
- & KEZDIAG, &
  & OSUBG_COND, CSUBG_AUCV_RC, CSUBG_AUCV_RI, OSEDIC,CSEDIM,CMICRO,&
  & PTSTEP, PDZZ, PRHODJ, PRHODREF, PEXNREF,&
  & PPABSM, PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF, PTHT, PRT, PSIGS,PCLDFR,&
  & PTHS, PRS, PEVAP,&
  & PCIT, OWARM, PSEA, PTOWN, &
- & OCND2, LGRSN, &
+ & PICLDFR, PWCLDFR, PSSIO, PSSIU, PIFR,  &
+ & OCND2, LKOGAN, LMODICEDEP,&
  & PINPRR,PINPRS,&
  & PINPRG,PINPRH,PFPR,&
- & PGP2DSPP,PEZDIAG, &
- & YDDDH,YDLDDH,YDMDDH)
+ & YDDDH,YDLDDH,YDMDDH,&
+ & YSPP_ICENU,YSPP_KGN_ACON,YSPP_KGN_SBGR)
 USE PARKIND1  ,ONLY : JPIM     ,JPRB
 USE DDH_MIX, ONLY : TYP_DDH
-USE SPP_MOD, ONLY : YSPP
+USE SPP_MOD_TYPE, ONLY : TSPP_CONFIG_TYPE
 USE YOMLDDH, ONLY : TLDDH
 USE YOMMDDH, ONLY : TMDDH
 INTEGER,            INTENT(IN) :: KPROMA
@@ -25,7 +25,6 @@ INTEGER(KIND=JPIM), INTENT(IN) :: KLEV
 INTEGER(KIND=JPIM), INTENT(IN) :: KRR
 INTEGER(KIND=JPIM), INTENT(IN) :: KTCOUNT
 INTEGER(KIND=JPIM), INTENT(IN) :: KSPLITR
-INTEGER(KIND=JPIM), INTENT(IN) :: KEZDIAG
 LOGICAL, INTENT(IN) :: OSUBG_COND
 CHARACTER(LEN=4), INTENT(IN) :: CSUBG_AUCV_RC
 CHARACTER(LEN=80), INTENT(IN) :: CSUBG_AUCV_RI
@@ -53,17 +52,22 @@ REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV), INTENT(INOUT) :: PCIT
 LOGICAL, INTENT(IN) :: OWARM
 REAL(KIND=JPRB), DIMENSION(KLON,1), INTENT(IN)    :: PSEA
 REAL(KIND=JPRB), DIMENSION(KLON,1), INTENT(IN)    :: PTOWN
+REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV),   INTENT(IN)  :: PICLDFR 
+REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV),   INTENT(IN)  :: PWCLDFR 
+REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV),   INTENT(IN)  :: PSSIO   
+REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV),   INTENT(IN)  :: PSSIU   
+REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV),   INTENT(IN)  :: PIFR
 LOGICAL, INTENT(IN) :: OCND2
-LOGICAL, INTENT(IN) :: LGRSN
+LOGICAL, INTENT(IN) :: LKOGAN
+LOGICAL, INTENT(IN) :: LMODICEDEP
 REAL(KIND=JPRB), DIMENSION(KLON,1), INTENT(INOUT) :: PINPRR
 REAL(KIND=JPRB), DIMENSION(KLON,1), INTENT(INOUT) :: PINPRS
 REAL(KIND=JPRB), DIMENSION(KLON,1), INTENT(INOUT) :: PINPRG
 REAL(KIND=JPRB), DIMENSION(KLON,1), INTENT(INOUT) :: PINPRH
 REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV,KRR), INTENT(INOUT) :: PFPR
-REAL(KIND=JPRB), DIMENSION(KLON,YSPP%N2D), INTENT(INOUT) :: PGP2DSPP
-REAL(KIND=JPRB), DIMENSION(KLON,KLEV,1), INTENT(INOUT) :: PEZDIAG
 TYPE(TYP_DDH),                       INTENT(INOUT) :: YDDDH
 TYPE(TLDDH),                         INTENT(IN) :: YDLDDH
 TYPE(TMDDH),                         INTENT(IN) :: YDMDDH
+TYPE(TSPP_CONFIG_TYPE), INTENT(INOUT) :: YSPP_ICENU,YSPP_KGN_ACON,YSPP_KGN_SBGR
 END SUBROUTINE ARO_RAIN_ICE
 END INTERFACE
diff --git a/src/arome/ext/aro_turb_mnh.h b/src/arome/ext/aro_turb_mnh.h
index 87d261e866fd200d4e6b43fc953da7c76ac0b63b..bf20e5b9bdaaec12ecdce19101f7c1559dedc09b 100644
--- a/src/arome/ext/aro_turb_mnh.h
+++ b/src/arome/ext/aro_turb_mnh.h
@@ -69,7 +69,7 @@ REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV+2), INTENT(OUT) :: PDRTHLS_TURB
 REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV+2), INTENT(OUT) :: PDRRTS_TURB
 REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV,KSV), INTENT(OUT) :: PDRSVS_TURB
 REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV+2), INTENT(INOUT) :: PFLXZTHVMF
-LOGICAL , INTENT(INOUT) :: OSUBG_COND
+LOGICAL , INTENT(IN) :: OSUBG_COND
 REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV+2),  INTENT(OUT)   :: PDP
 REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV+2),  INTENT(OUT)   :: PTP
 REAL(KIND=JPRB), DIMENSION(KLON,1,KLEV+2),  INTENT(OUT)   :: PTPMF
diff --git a/src/arome/ext/aroini_micro.F90 b/src/arome/ext/aroini_micro.F90
new file mode 100644
index 0000000000000000000000000000000000000000..ddacff7d3a6b6e6555eb0dfb6a93d72b1b5076c6
--- /dev/null
+++ b/src/arome/ext/aroini_micro.F90
@@ -0,0 +1,198 @@
+!     ######spl
+SUBROUTINE AROINI_MICRO(KULOUT,PTSTEP,LDWARM,CMICRO,KSPLITR,CCSEDIM,LDCRIAUTI,&
+              PCRIAUTI,PT0CRIAUTI,PCRIAUTC,PTSTEP_TS, CCSNOWRIMING, PMRSTEP, KMAXITER, &
+              LDFEEDBACKT, LDEVLIMIT, LDNULLWETG, LDWETGPOST, LDNULLWETH, LDWETHPOST, &
+              PFRACM90, LDCONVHG, CCSUBG_RC_RR_ACCR, CCSUBG_RR_EVAP, CCSUBG_PR_PDF, &
+              LDCRFLIMIT, CCFRAC_ICE_ADJUST, PSPLIT_MAXCFL,&
+              CCFRAC_ICE_SHALLOW_MF, LDSEDIM_AFTER,LDDEPOSC,PVDEPOSC, PFRMIN,&
+              LDDEPSG,PRDEPSRED,PRDEPGRED)
+
+USE PARKIND1, ONLY : JPRB
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+!**** *INI_MICRO*   - Initialize common meso_NH MODD_ used in microphysics for AROME
+
+!     Purpose.
+!     --------
+!           Initialize 
+!           MODD_RAIN_ICE_DESCR, MODD_RAIN_ICE_PARAM and MODD_PARAM_ICE  
+!           parameters used in AROME microphysics 
+
+!**   Interface.
+!     ----------
+!        *CALL* *INI_MICRO (KULOUT,KSTEP,KSPLITR)
+
+!        Explicit arguments :
+!        --------------------
+!        KULOUT : Logical unit for the output
+!        PTSTEP  : Time step
+!        KSPLITR : Number of small time step interation for rain sedimentation 
+!        LDWARM : value assigned to LWARM       
+
+!        Implicit arguments :
+!        --------------------
+!        
+
+!     Method.
+!     -------
+!        See documentation
+
+!     Externals.
+!     ----------
+
+!     Reference.
+!     ----------
+!        Documentation AROME 
+
+!     Author.
+!     -------
+!        Y. Seity 
+
+!     Modifications.
+!     --------------
+!        Original : 03-12-12
+!        05-08-25 Kovacic  added LDWARM
+!        Jan 2015 S. Riette: LFEEDBACKT, LEVLIMIT, LNULLWETG, LWETGPOST, CSNOWRIMING,
+!                            XFRACM90, NMRSITER, XMRSTEP, LSIMULSG, XTSTEP_TS
+!                            LNULLWETH, LWETHPOST added
+!        Oct 2016 S. Riette: LDCRFLIMIT, CCFRAC_ICE_ADJUST
+!                            and CCFRAC_ICE_SHALLOW_MF added
+!        Dec 2020 Y. Seity : Add Fog deposition term
+!        Jan 2020 C.Wittmann: Add LDDEPSG,PRDEPSRED,PRDEPGRED
+!     ------------------------------------------------------------------
+
+USE MODD_RAIN_ICE_DESCR
+USE MODD_RAIN_ICE_PARAM
+USE MODD_PARAM_ICE
+USE MODD_PARAM_C1R3
+
+USE MODI_INI_RAIN_ICE
+USE MODI_INI_TIWMX
+
+IMPLICIT NONE
+! -----------------------------------------------------------------------
+!     DUMMY INTEGER SCALARS
+INTEGER, INTENT (IN) :: KULOUT
+REAL, INTENT (IN) :: PTSTEP
+LOGICAL, INTENT (IN) :: LDWARM
+CHARACTER(4), INTENT (IN) :: CMICRO 
+CHARACTER(4), INTENT (IN) :: CCSEDIM
+INTEGER, INTENT (OUT) :: KSPLITR
+LOGICAL, INTENT (IN) :: LDCRIAUTI
+REAL, INTENT (IN) :: PCRIAUTI
+REAL, INTENT (IN) :: PT0CRIAUTI
+REAL, INTENT (IN) :: PCRIAUTC
+REAL, INTENT (IN) :: PTSTEP_TS
+CHARACTER(4), INTENT (IN) :: CCSNOWRIMING
+REAL, INTENT (IN) :: PMRSTEP
+INTEGER, INTENT (IN) :: KMAXITER
+LOGICAL, INTENT (IN) :: LDFEEDBACKT
+LOGICAL, INTENT (IN) :: LDEVLIMIT
+LOGICAL, INTENT (IN) :: LDNULLWETG
+LOGICAL, INTENT (IN) :: LDWETGPOST
+LOGICAL, INTENT (IN) :: LDNULLWETH
+LOGICAL, INTENT (IN) :: LDWETHPOST
+REAL, INTENT (IN) :: PFRACM90
+LOGICAL, INTENT (IN) :: LDCONVHG
+CHARACTER(LEN=80), INTENT(IN) :: CCSUBG_RC_RR_ACCR
+CHARACTER(LEN=80), INTENT(IN) :: CCSUBG_RR_EVAP
+CHARACTER(LEN=80), INTENT(IN) :: CCSUBG_PR_PDF
+LOGICAL, INTENT (IN) :: LDCRFLIMIT
+CHARACTER(LEN=1), INTENT(IN) :: CCFRAC_ICE_ADJUST
+REAL, INTENT (IN) :: PSPLIT_MAXCFL
+CHARACTER(LEN=1), INTENT(IN) :: CCFRAC_ICE_SHALLOW_MF
+LOGICAL, INTENT (IN) :: LDSEDIM_AFTER
+LOGICAL, INTENT (IN) :: LDDEPOSC
+REAL, INTENT(IN):: PVDEPOSC
+REAL, OPTIONAL, INTENT (IN) :: PFRMIN(40)
+LOGICAL, INTENT (IN) :: LDDEPSG 
+REAL, INTENT (IN) :: PRDEPSRED, PRDEPGRED
+
+!-----------------------------------------------------------------------
+!    LOCAL VARIABLES
+REAL :: ZCRI0, ZTCRI0    
+! -----------------------------------------------------------------------
+!        1. Set implicit default values for MODD_PARAM_ICE
+
+REAL(KIND=JPRB) :: ZHOOK_HANDLE
+IF (LHOOK) CALL DR_HOOK('AROINI_MICRO',0,ZHOOK_HANDLE)
+LWARM=LDWARM
+CPRISTINE_ICE='PLAT'
+CPRISTINE_ICE_C1R3='PLAT'
+CHEVRIMED_ICE_C1R3='GRAU'
+CSEDIM=CCSEDIM
+CSUBG_RC_RR_ACCR=CCSUBG_RC_RR_ACCR
+CSUBG_RR_EVAP=CCSUBG_RR_EVAP
+CSUBG_PR_PDF=CCSUBG_PR_PDF
+LFEEDBACKT=LDFEEDBACKT ! When .TRUE. feed back on temperature is taken into account
+LEVLIMIT=LDEVLIMIT   ! When .TRUE. water vapour pressure is limited by saturation
+LNULLWETG=LDNULLWETG  ! When .TRUE. graupel wet growth is activated with null rate (to allow water shedding)
+LWETGPOST=LDWETGPOST  ! When .TRUE. graupel wet growth is activated with positive temperature (to allow water shedding)
+LNULLWETH=LDNULLWETH  ! Same as LNULLWETG but for hail
+LWETHPOST=LDWETHPOST  ! Same as LWETGPOST but for hail
+CSNOWRIMING=CCSNOWRIMING ! OLD or M90 for Murakami 1990 formulation
+XFRACM90=PFRACM90 ! Fraction used for the Murakami 1990 formulation
+NMAXITER=KMAXITER ! Maximum number of iterations for mixing ratio  or time splitting
+XMRSTEP=PMRSTEP ! maximum mixing ratio step for mixing ratio splitting
+LCONVHG=LDCONVHG ! TRUE to allow the conversion from hail to graupel
+LCRFLIMIT=LDCRFLIMIT !True to limit rain contact freezing to possible heat exchange
+CFRAC_ICE_ADJUST=CCFRAC_ICE_ADJUST !Choice of solid/liquid partition in adjustements
+CFRAC_ICE_SHALLOW_MF=CCFRAC_ICE_SHALLOW_MF !Choice of solid/liquid partition in shallow_mf
+XSPLIT_MAXCFL=PSPLIT_MAXCFL
+LSEDIM_AFTER=LDSEDIM_AFTER ! sedimentation done before or after microphysics
+!
+XTSTEP_TS=PTSTEP_TS ! Approximative time step for time-splitting (0 for no time-splitting)
+!
+!        2. Set implicit default values for MODD_RAIN_ICE_DESCR 
+!                     et MODD_RAIN_ICE_PARAM
+
+CALL INI_RAIN_ICE (KULOUT, PTSTEP, 20.,KSPLITR,CMICRO)
+CALL INI_TIWMX
+
+IF(PRESENT(PFRMIN))THEN
+   XFRMIN = PFRMIN
+   WRITE(UNIT=KULOUT,FMT='('' UPDATED VALUES OF XFRMIN FROM NAMPARAR :'')')
+   WRITE(UNIT=KULOUT,FMT='('' XFRMIN = '',40E10.3)') XFRMIN
+   IF(XFRMIN(16) > 0.) THEN
+      CALL INI_SNOW(KULOUT) ! Recalculate snow parameters :  XCCS = XFRMIN(16),XCXS = XFRMIN(17)
+   ENDIF
+ENDIF
+
+!update values from namparar
+LDEPOSC=LDDEPOSC
+XVDEPOSC=PVDEPOSC
+IF (LDCRIAUTI) THEN
+
+  XCRIAUTI=PCRIAUTI
+  XCRIAUTC=PCRIAUTC
+  XT0CRIAUTI=PT0CRIAUTI
+  !second point to determine 10**(aT+b) law
+  ZTCRI0=-40.0
+  ZCRI0=1.25E-6
+  
+  XBCRIAUTI=-( LOG10(XCRIAUTI) - LOG10(ZCRI0)*PT0CRIAUTI/ZTCRI0 )&
+                   *ZTCRI0/(XT0CRIAUTI-ZTCRI0)
+  XACRIAUTI=(LOG10(ZCRI0)-XBCRIAUTI)/ZTCRI0
+  
+  !        3. Write NSPLITR,updated CRIAUTI  
+      
+  WRITE(UNIT=KULOUT,FMT='('' NSPLITR = '',I8.4)')KSPLITR
+  WRITE(UNIT=KULOUT,FMT='('' UPDATED VALUES FROM NAMPARAR :'')')
+  WRITE(UNIT=KULOUT,FMT='('' LCRIAUTI = '',L5)')LDCRIAUTI
+  WRITE(UNIT=KULOUT,FMT='('' XCRIAUTI = '',E13.6)')XCRIAUTI
+  WRITE(UNIT=KULOUT,FMT='('' XACRIAUTI = '',E13.6)')XACRIAUTI
+  WRITE(UNIT=KULOUT,FMT='('' XBCRIAUTI = '',E13.6)')XBCRIAUTI
+  WRITE(UNIT=KULOUT,FMT='('' XT0CRIAUTI = '',E13.6)')XT0CRIAUTI
+  WRITE(UNIT=KULOUT,FMT='('' XCRIAUTC = '',E13.6)')XCRIAUTC
+  WRITE(UNIT=KULOUT,FMT='('' XVDEPOSC = '',E13.6)')XVDEPOSC
+  WRITE(UNIT=KULOUT,FMT='('' LDEPOSC = '',L5)')LDEPOSC
+ENDIF
+
+XRDEPSRED=PRDEPSRED
+XRDEPGRED=PRDEPGRED
+
+
+! -----------------------------------------------------------------------
+
+IF (LHOOK) CALL DR_HOOK('AROINI_MICRO',1,ZHOOK_HANDLE)
+RETURN
+END SUBROUTINE AROINI_MICRO
diff --git a/src/arome/ext/aroini_micro.h b/src/arome/ext/aroini_micro.h
new file mode 100644
index 0000000000000000000000000000000000000000..bf6d1d18b8bc0296f7cae80c60b93d4b85cb9ea3
--- /dev/null
+++ b/src/arome/ext/aroini_micro.h
@@ -0,0 +1,46 @@
+INTERFACE
+SUBROUTINE AROINI_MICRO(KULOUT,PTSTEP,LDWARM,CMICRO,KSPLITR,CCSEDIM,LDCRIAUTI,&
+ &         PCRIAUTI,PT0CRIAUTI,PCRIAUTC,PTSTEP_TS,CCSNOWRIMING, PMRSTEP,KMAXITER,&
+ &         LDFEEDBACKT, LDEVLIMIT, LDNULLWETG, LDWETGPOST, LDNULLWETH, LDWETHPOST, &
+ &         PFRACM90, LDCONVHG, CCSUBG_RC_RR_ACCR, CCSUBG_RR_EVAP, CCSUBG_PR_PDF, &
+ &         LDCRFLIMIT, CCFRAC_ICE_ADJUST, PSPLIT_MAXCFL,&
+ &         CCFRAC_ICE_SHALLOW_MF, LDSEDIC_AFTER,LDDEPOSC, PVDEPOSC, PFRMIN,&
+ &         LDDEPSG,PRDEPSRED,PRDEPGRED)
+USE PARKIND1  ,ONLY : JPIM     ,JPRB
+INTEGER(KIND=JPIM), INTENT (IN) :: KULOUT
+REAL(KIND=JPRB), INTENT (IN) :: PTSTEP
+LOGICAL, INTENT (IN) :: LDWARM
+CHARACTER (LEN=4), INTENT (IN) :: CMICRO
+CHARACTER(4), INTENT (IN) :: CCSEDIM
+INTEGER(KIND=JPIM), INTENT (OUT) :: KSPLITR
+LOGICAL, INTENT (IN) :: LDCRIAUTI
+REAL(KIND=JPRB), INTENT (IN) :: PCRIAUTI
+REAL(KIND=JPRB), INTENT (IN) :: PT0CRIAUTI
+REAL(KIND=JPRB), INTENT (IN) :: PCRIAUTC
+REAL(KIND=JPRB), INTENT (IN) :: PTSTEP_TS
+CHARACTER(4), INTENT (IN) :: CCSNOWRIMING
+REAL(KIND=JPRB), INTENT (IN) :: PMRSTEP
+INTEGER(KIND=JPIM), INTENT (IN) :: KMAXITER
+LOGICAL, INTENT (IN) :: LDFEEDBACKT
+LOGICAL, INTENT (IN) :: LDEVLIMIT
+LOGICAL, INTENT (IN) :: LDNULLWETG
+LOGICAL, INTENT (IN) :: LDWETGPOST
+LOGICAL, INTENT (IN) :: LDNULLWETH
+LOGICAL, INTENT (IN) :: LDWETHPOST
+REAL(KIND=JPRB), INTENT (IN) :: PFRACM90
+LOGICAL, INTENT (IN) :: LDCONVHG
+CHARACTER(LEN=80), INTENT(IN) :: CCSUBG_RC_RR_ACCR
+CHARACTER(LEN=80), INTENT(IN) :: CCSUBG_RR_EVAP
+CHARACTER(LEN=80), INTENT(IN) :: CCSUBG_PR_PDF
+LOGICAL, INTENT (IN) :: LDCRFLIMIT
+CHARACTER(LEN=1), INTENT(IN) :: CCFRAC_ICE_ADJUST
+REAL(KIND=JPRB), INTENT (IN) :: PSPLIT_MAXCFL
+CHARACTER(LEN=1), INTENT(IN) :: CCFRAC_ICE_SHALLOW_MF
+LOGICAL, INTENT (IN) :: LDSEDIC_AFTER
+LOGICAL, INTENT (IN) :: LDDEPOSC
+REAL(KIND=JPRB), INTENT (IN) :: PVDEPOSC
+REAL(KIND=JPRB), OPTIONAL, INTENT (IN) :: PFRMIN(40)
+LOGICAL, INTENT (IN) :: LDDEPSG
+REAL(KIND=JPRB), INTENT (IN) :: PRDEPSRED, PRDEPGRED
+END SUBROUTINE AROINI_MICRO
+END INTERFACE
diff --git a/src/arome/ext/aroini_turb.F90 b/src/arome/ext/aroini_turb.F90
index 6a9edd9d97e6a27dc15a17f06d2be8d18a759f3f..c1ab16006739d7ac4bcb4a2c8d5dd1937d2ab356 100644
--- a/src/arome/ext/aroini_turb.F90
+++ b/src/arome/ext/aroini_turb.F90
@@ -1,5 +1,5 @@
 !     ######spl
-SUBROUTINE AROINI_TURB(PLINI,OHARATU)
+SUBROUTINE AROINI_TURB(PLINI,OHARATU,OSTATNW)
 USE PARKIND1, ONLY : JPRB
 USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 !**** *INI_TURB*   - Initialize common meso_NH MODD_ used in Turbulence scheme
@@ -42,7 +42,7 @@ USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 !     ------------------------------------------------------------------
 
 USE MODD_LES,   ONLY : LLES, LLES_CALL
-USE MODD_CTURB, ONLY : XLINI, LHARAT
+USE MODD_CTURB, ONLY : XLINI, LHARAT,LSTATNW
 USE MODD_TURB_n, ONLY : CTURBLEN
 
 USE MODI_INI_CTURB
@@ -54,6 +54,7 @@ IMPLICIT NONE
 !
 REAL,   INTENT(IN) :: PLINI ! minimum bl89 mixing length
 LOGICAL,INTENT(IN) :: OHARATU ! switch HARATU
+LOGICAL,INTENT(IN) :: OSTATNW ! switch LSTATNW
 !
 !     ------------------------------------------------------------------
 
@@ -66,6 +67,7 @@ CALL INI_CTURB
 !         1bis. Modification of MODD_CTURB values
 XLINI=PLINI
 LHARAT=OHARATU
+LSTATNW=OSTATNW
 
 !         2. Set implicit default values for MODD_LES
 
diff --git a/src/arome/ext/aroini_turb.h b/src/arome/ext/aroini_turb.h
new file mode 100644
index 0000000000000000000000000000000000000000..eeb0a5ab3191974f4ce769e92768c6a5cbe97e63
--- /dev/null
+++ b/src/arome/ext/aroini_turb.h
@@ -0,0 +1,8 @@
+INTERFACE
+SUBROUTINE AROINI_TURB(PLINI,OHARATU,OSTATNW)
+USE PARKIND1  ,ONLY : JPRB
+REAL(KIND=JPRB),INTENT(IN)::PLINI
+LOGICAL, INTENT(IN) ::OHARATU
+LOGICAL, INTENT(IN) ::OSTATNW
+END SUBROUTINE AROINI_TURB
+END INTERFACE
diff --git a/src/arome/ext/dead_code/aro_icecld.F90 b/src/arome/ext/dead_code/aro_icecld.F90
deleted file mode 100644
index 95b508910b0fcdcd0e15280752a372b0295e12bd..0000000000000000000000000000000000000000
--- a/src/arome/ext/dead_code/aro_icecld.F90
+++ /dev/null
@@ -1,217 +0,0 @@
-SUBROUTINE ARO_ICECLD  &
-!   Input :
-     & ( PP,PZ,PDZ,PT,PR,PPBLH,PWCLD,XW2D, &
-!   Output :
-     &  SIFRC,SSIO,SSIU,W2D,RSI)
-
-
-  USE PARKIND1, ONLY : JPRB
-  USE YOMHOOK , ONLY : LHOOK, DR_HOOK
-  USE MODD_CST,ONLY : XCPD,XCPV,XLVTT,XLSTT,XG,XRD,XTT,XMD,XMV,XEPSILO
-  IMPLICIT NONE
-!-----------------------------------------------------------------------
-!
-! Purpose:
-! calculate subgridscale fraction of supersaturation with respect to ice.
-! Method:
-! Assume a linear distubution of relative humidity and let the variability 
-! of humidity be a function of model level thickness.
-! (Also a function of of humidity itself in the boundary layer)
-!     Interface:    subroutine ARO_ICECLD  is called
-!     ------------  from subroutine 'rain_ice'
-!
-!     variable        type         content
-!     ========        ====         =======
-!
-!     INPUT  arguments  (arguments d'entree)
-!----------------------------------------------
-!     PP        : pressure at model level (Pa)
-!     PZ        : model level height (m)
-!     PDZ       : model level thickness (m)
-!     PT        : temperature (K)
-!     PR        : model level humidity mixing ratio (kg/kg)
-!     PPBLH     : plantetary layer height (m) (negative value means unknown)
-!     PWCLD     : water and / mixed phase cloud cover (negative means unknown)
-!     XW2D      : quota between ice crystal concentration between dry and wet
-!                 part of a gridbox
-
-!     OUTPUT  arguments  (arguments d'sortie)
-!---------------------------------------------
-!     SIFRC     : subgridscale fraction with supersaturation with respect to ice.
-!     SSIO      : Super-saturation with respect to ice in the  
-!                 supersaturated fraction
-!     SSIU      : Sub-saturation with respect to ice in the sub-saturated 
-!                 fraction
-!     W2D       : Factor used to get consistncy between the mean value of 
-!                 the gridbox and parts of the gridbox 
-!     RSI       : Saturation mixing ratio over ice
-
-
-
-
-REAL,  INTENT(IN)  ::      PP
-REAL,  INTENT(IN)  ::      PZ
-REAL,  INTENT(IN)  ::      PDZ
-REAL,  INTENT(IN)  ::      PT
-REAL,  INTENT(IN)  ::      PR
-REAL,  INTENT(IN)  ::      PPBLH
-REAL,  INTENT(IN)  ::      PWCLD
-REAL,  INTENT(IN)  ::      XW2D
-
-!     OUTPUT  arguments  (arguments d'sortie)
-!---------------------------------------------
-REAL,  INTENT(OUT) ::      SIFRC
-REAL,  INTENT(OUT) ::      SSIO
-REAL,  INTENT(OUT) ::      SSIU
-REAL,  INTENT(OUT) ::      W2D
-REAL,  INTENT(OUT) ::      RSI
-!     Working variables:
-
- REAL  :: ZSIGMAX,ZSIGMAY,ZSIGMAZ,ZFICE,ZXDIST, ZYDIST,&
-      & ZRSW,ZRHW,ZRHIN,ZDRHDZ,ZZ,ZRHDIST ,ZRHLIM, &
-      & ZRHDIF,ZWCLD ,ZI2W,ZRHLIMICE,ZRHLIMINV,ZA,ZRHI
-
-!     ==================================================================
-!     1. Declarations.
-!     ==================================================================
-!     1.1 MODULES USED
-!-----------------------------------------------------------------------
- REAL AROQSATMX
-
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-IF (LHOOK) CALL DR_HOOK('ARO_ICECLD',0,ZHOOK_HANDLE)
-
-SIFRC = 0.
-ZFICE = 0.
-ZRSW= AROQSATMX(PP,PT,ZFICE)
-ZRHW= PR/ZRSW
-ZFICE=1.
-RSI= AROQSATMX(PP,PT,ZFICE)
-ZRHI= PR/RSI
-ZI2W = ZRSW/RSI
-SSIU=ZRHI
-SSIO=SSIU
-W2D  = 1.
-
-IF(PT>XTT.OR. PR<=0.)THEN
-   SSIU=SSIU-1
-   SSIO=SSIU
-   IF(PWCLD>=0.)SIFRC=PWCLD
-   IF (LHOOK) CALL DR_HOOK('ARO_ICECLD',1,ZHOOK_HANDLE)
-   RETURN
-ENDIF
-
-ZSIGMAX=3.E-4         ! assumed rh variation in x axis direction
-ZFICE=0.                    ! fraction of ice
-ZSIGMAY=ZSIGMAX            ! assumed rh variation in y axis direction
-ZSIGMAZ=1.6E-2 ! t5
-
-!ZXDIST=MAX(0.10,DTHETA)*110000.
-!ZXDIST=DTHETA*110000.
-ZXDIST=2500. 
-   ! gridsize in  x axis (m) Avoid too low
-   ! since the model has a tendency to become
-   ! drier at high horizontal resolution
-   ! due to stronger vertical velocities.
-ZYDIST=ZXDIST          ! gridsize in  y axis (m)
-
-
-
-
-ZRHIN = MAX(0.05, MIN(1.,PR/ZRSW))
-
-ZDRHDZ=ZRHIN*XG /(PT*XRD)*  &
-              &     ( XEPSILO*XLVTT/(XCPD*PT) -1.) ! correct
-!              &     ( XEPSILO*XLSTT/(XCPD*PT) -1.)  ! incorrect but currently used
-!          more exact
-!          assumed rh variation in the z axis (rh/m) in the pbl .
-!          Also possible to just use
-!         zdrhdz=4.2e-4_jprb ! rh/m !
-ZZ=0.
-
-
-IF(PPBLH < 0. )THEN ! Assume boundary layer height is not available 
-   ZZ= MIN(1.,MAX(0.,PZ*0.001))
-ELSE
-   IF(PZ > 35. .AND. PZ > PPBLH)ZZ= 1.
-ENDIF
-
-!        1.6e-2 rh/m means variations is of order 0.5 for a 1km dept.
-!        sigmaz=4e-2 ! EO 140 lev.
-
-
-!        Compute rh-variation is x,y,z direction as approxmately
-!        independent, exept for the z variation in the pbl, where rh is
-!        assumed to be fairly constantly increasing with height
-if(ZXDIST*ZSIGMAX**2 + ZYDIST*ZSIGMAY**2 +  &
-     &           (1.-ZZ)* (PDZ* ZDRHDZ)**2 + ZZ*PDZ* ZSIGMAZ**2 < 0.)then
-write(*,*)'in ARO_ICECLD: PDZ ZDRHDZ,expression=',PDZ, ZDRHDZ&
-& ,ZXDIST*ZSIGMAX**2 + ZYDIST*ZSIGMAY**2 +  &
-     &           (1.-ZZ)* (PDZ* ZDRHDZ)**2 + ZZ*PDZ* ZSIGMAZ**2 
-endif
-ZRHDIST = SQRT( ZXDIST*ZSIGMAX**2 + ZYDIST*ZSIGMAY**2 +  &
-     &           (1.-ZZ)* (PDZ* ZDRHDZ)**2 + ZZ*PDZ* ZSIGMAZ**2)
-!         z-variation of rh in the pbl    z-variation of rh outside the pbl
-!         Safety for very coarse vertical resolution:
-IF(ZZ > 0.1) ZRHDIST = ZRHDIST/(1.+ZRHDIST)
-
-!!!! Note ZRHDIST is with respect to water ! !!!!!!!!!!!!
-
-
-ZRHLIM = MAX(0.5, MIN(0.99,1. - 0.5*ZRHDIST))
-
-
-IF(PWCLD < 0.)THEN
-   !  Assume water/mixed-phase cloud cover from e.g. 
-   ! statistical cloud scheme is not avialabe
-   ZRHDIF = (1. - ZRHW)/(1.0-ZRHLIM)
-   ZRHDIF =  1. - SQRT(MAX(0.,ZRHDIF))
-   ZWCLD = MIN(1.,MAX(ZRHDIF,0.0))
-ELSE
-   ZWCLD = PWCLD
-! possible to backwards compute a critical relative humity consitent with 
-!  input cloudcover:
-!   IF(PWCLD < 0.99 .AND. PWCLD > 0.01) ZRHLIM= 1. - (1.-ZRHW)/(1.-PWCLD)**2
-ENDIF
-
-SIFRC = ZWCLD
-
-!              relation rhlim with respect to water to that of ice:
-!ZRHLIMICE = MAX(ZRHDMIN*ZI2W,1.+ ZI2W*( ZRHLIM - 1.))
-ZRHLIMICE = 1.+ ZI2W*( ZRHLIM - 1.)
-
-IF(ZRHLIM <= 0.999)THEN
-
-   !              compute a 1/(1-rhlim) constistant with  lstmp(i,k):
-   ZRHLIMINV = 1./(1. - ZRHLIMICE)
-   ZRHDIF = (ZRHI - ZRHLIMICE)*ZRHLIMINV
-
-   IF(ZWCLD==0.)THEN
-      SIFRC = MIN(1.,0.5*MAX(0.,ZRHDIF))
-   ELSE
-      ZA =1. -  1./ZI2W
-      SIFRC =MIN(1.,ZA*0.5/ (1. - ZRHLIM))
-      SIFRC = MIN(1.,ZWCLD + SIFRC)
-   ENDIF
-ENDIF
-
-
-
-IF(SIFRC > 0.01) THEN
-   SSIU = SIFRC + ZRHLIMICE*(1.-SIFRC)
-   SSIO = (ZRHI - (1.- SIFRC)*SSIU)/SIFRC
-ELSE
-   SIFRC=0.! to aviod mismatch with output variables
-   ZA = MIN(0.,ZRHI-ZRHLIMICE)
-   SSIU = MAX(0.,SIFRC + ZRHLIMICE*(1.-SIFRC) + 2*ZA )
-ENDIF
-
-
-! Transform from relative humidity to degree of saturation:
-SSIU = SSIU - 1.
-SSIO = SSIO - 1.
-
-IF (XW2D > 1.) W2D = 1./(1. - SIFRC + XW2D*SIFRC)
-
-IF (LHOOK) CALL DR_HOOK('ARO_ICECLD',1,ZHOOK_HANDLE)
-END SUBROUTINE ARO_ICECLD
diff --git a/src/arome/ext/dead_code/aro_tiwmx.F90 b/src/arome/ext/dead_code/aro_tiwmx.F90
deleted file mode 100644
index 55a335c8130d93134f2f22df6ade51195d9efd1d..0000000000000000000000000000000000000000
--- a/src/arome/ext/dead_code/aro_tiwmx.F90
+++ /dev/null
@@ -1,123 +0,0 @@
-FUNCTION ARO_TIWMX(P,T,QR,FICE,QRSN,RS,EPS)
-
-!     Purpose:  (*)
-!     The fuction arotiwmx returns the wet bulb temperature, but also the
-!     corresponding saturation specific humidity as an output parameter.
-!     -------------------------------------------------------------------
-!     Computation of wet bulb temperature.
-!     TIW is found iteratively. Note that Q is used instead of WV.
-!     Converges VERY quickly. EPS is the threshold value for
-!     TIW(n)-TIW(n-1) at wich the iteration is interupted. (n is
-!     iteration number).Modified in July 1988 by Stefan Gollvik
-!     Convereted to new fortran standard in Dec. 2006 by Karl-Ivar Ivarsson.
-!     Convereted to AROME in 2014 by Karl-Ivar Ivarsson.
-!     INTERFACE  :  the function is intended to be used everywhere.
-!     INPUT  arguments  (arguments d'entree)
-!     -----------------------------------------------------
-!     P        : pressure  (Pa)
-!     T        : temperature (K)
-!     QR       : mixing ratio humidity (kg/Kg)
-!     FICE     : fraction of ice (0 to 1)
-!     EPS      : The value determens the accuracy of the output value. 0.1
-!              : is suffient in most cases. Low value means high accuracy but
-!              : also high computational cost.
-
-!     OUTPUT  arguments  (arguments d'sortie)
-!     -----------------------------------------------------
-!     RS        : saturation mixing ratio (fice determines if it is over ice or water)
-!                
-!     QRSN     : saturation mixing ratio for the wet bulb temperature.
-!                (Kg/Kg)
-!     ( the function itself is the wet bulb temperature (K) )
-
-!     Work  variables  :
-!     -----------------------------------------------------
-!      f        : temporary variable , temperature (K)
-!      dfdt     : temporary variable   (K/K)
-!      t2       : temperature used in iteration (K)
-!      thigh    : temperature ( t2 + EPS K )
-!      tlow     : temperature ( t2 - EPS K )
-!      dt       : temperature residual (K)
-!      dqsdt    : approximative d(qsat)/d(T) in iteration (1/K)
-!      b        : (latent heat)/(heat capacity for dry air)  (K)
-!      iter     : iteration number
-
-!     1. Declarations.
-!     ==================================================================
-!     1.1 MODULES USED
-  USE MODD_CST,ONLY : XCPD,XCPV,XLVTT,XLSTT,XRD,XTT,XEPSILO, &
-       &    XALPW,XBETAW,XGAMW,XALPI,XBETAI,XGAMI
-  USE PARKIND1, ONLY : JPRB 
-  USE YOMHOOK , ONLY : LHOOK, DR_HOOK
-  IMPLICIT NONE
-
-!  Function name :
-  REAL                        :: ARO_TIWMX
-
-!  Input Arguments
-  REAL,  INTENT(IN)           ::  P,T,QR,FICE,EPS
-
-!  Output Arguments
-  REAL,  INTENT(OUT)          :: QRSN,RS
-
-!  Work variables :
-  REAL :: F,DFDT,T2,DT,QSN,DQSDT,B
-  REAL :: ZB,ZG,ZES,ZDESDT
-  INTEGER :: ITER
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
-  IF (LHOOK) CALL DR_HOOK('ARO_TIWMX',0,ZHOOK_HANDLE)
-
-  T2 = T
-!!  Q = QR !approximation
-
-  B = ( XLVTT*(1.-FICE) + FICE*XLSTT )/XCPD
-
-  ARO_TIWMX = T2
-  DO ITER=1,10
-     ZB = (XBETAI*FICE + XBETAW*(1.-FICE))/T2
-     ZG = XGAMI*FICE + XGAMW*(1.-FICE)
-     ZES = EXP(XALPI*FICE + XALPW*(1.-FICE) - ZB - ZG*ALOG(T2))
-     ZDESDT = ZES*(ZB - ZG)/T2
-     IF(ZES >= P)THEN
-        QSN = 1.
-        DQSDT = 0.
-     ELSE
-        QSN = XEPSILO*ZES/(P-ZES)
-        DQSDT = QSN*ZDESDT*( 1.0/ZES + 1.0/(P-ZES) )
-     ENDIF
-     IF ( ITER == 1 ) RS = QSN
-     F = T2 - T + B*(QSN - QR)
-     DFDT = 1. + B*DQSDT
-     DT = -F / DFDT
-     T2 = T2 + DT
-     IF(ABS(DT) <= EPS)THEN
-        ARO_TIWMX = T2
-        QSN = MIN(1.,QSN+DT*DQSDT)
-        QRSN = QSN ! approximation
-        IF (LHOOK) CALL DR_HOOK('ARO_TIWMX',1,ZHOOK_HANDLE)
-        RETURN
-     ENDIF
-  ENDDO
-  IF (LHOOK) CALL DR_HOOK('ARO_TIWMX',1,ZHOOK_HANDLE)
-END FUNCTION ARO_TIWMX
-!!!!!!!!!!!!
-FUNCTION AROQSATMX(P,T,FICE)
-  USE MODD_CST,ONLY : XALPW,XBETAW,XGAMW,XALPI,XBETAI,XGAMI,XTT,XEPSILO 
-  IMPLICIT NONE
-  REAL ZES,ZQS,P,T,FICE,&
-       &AROQSATMX
-
-  ZES = EXP(XALPI*FICE + XALPW*(1.-FICE) - &
-       & (XBETAI*FICE + XBETAW*(1.-FICE))/T -  &
-       & (XGAMI*FICE + XGAMW*(1.-FICE))*ALOG(T))
-
-  IF(ZES >= P)THEN ! temp > boiling point, condensation not possible.
-                   ! Then this function lacks physical meaning, 
-                   ! here set to one
-     ZQS=1.
-  ELSE
-!     ZQS=0.622*ZES/(P-0.378*ZES) !q
-     ZQS=XEPSILO*ZES/(P-ZES) !r
-  ENDIF
-  AROQSATMX=ZQS
-END FUNCTION AROQSATMX
diff --git a/src/arome/ext/dead_code/modi_aro_icecld.F90 b/src/arome/ext/dead_code/modi_aro_icecld.F90
deleted file mode 100644
index 10cf08aa03bfb9005e1f15c12e7b14a561c2637c..0000000000000000000000000000000000000000
--- a/src/arome/ext/dead_code/modi_aro_icecld.F90
+++ /dev/null
@@ -1,24 +0,0 @@
-!     ######spl
-       MODULE MODI_ARO_ICECLD
-!      ####################
-!
-INTERFACE
-SUBROUTINE ARO_ICECLD  &
-     & ( PP,PZ,PDZ,PT,PR,PPBLH,PWCLD,XW2D, &
-     &  SIFRC,SSIO,SSIU,W2D,RSI)
-REAL,  INTENT(IN)  ::      PP
-REAL,  INTENT(IN)  ::      PZ
-REAL,  INTENT(IN)  ::      PDZ
-REAL,  INTENT(IN)  ::      PT
-REAL,  INTENT(IN)  ::      PR
-REAL,  INTENT(IN)  ::      PPBLH
-REAL,  INTENT(IN)  ::      PWCLD
-REAL,  INTENT(IN)  ::      XW2D
-REAL,  INTENT(OUT) ::      SIFRC
-REAL,  INTENT(OUT) ::      SSIO
-REAL,  INTENT(OUT) ::      SSIU
-REAL,  INTENT(OUT) ::      W2D
-REAL,  INTENT(OUT) ::      RSI
-END SUBROUTINE ARO_ICECLD
-END INTERFACE
-END MODULE MODI_ARO_ICECLD
diff --git a/src/arome/ext/dead_code/modi_aro_tiwmx.F90 b/src/arome/ext/dead_code/modi_aro_tiwmx.F90
deleted file mode 100644
index 1f192046abd781192e7779a91094112ac26d0781..0000000000000000000000000000000000000000
--- a/src/arome/ext/dead_code/modi_aro_tiwmx.F90
+++ /dev/null
@@ -1,11 +0,0 @@
-!     ######spl
-       MODULE MODI_ARO_TIWMX
-!      ####################
-!
-INTERFACE
-FUNCTION ARO_TIWMX(P,T,QR,FICE,QRSN,RS,EPS)
-  REAL,  INTENT(IN)           ::  P,T,QR,FICE,EPS
-  REAL,  INTENT(OUT)          :: QRSN,RS
-END FUNCTION ARO_TIWMX
-END INTERFACE
-END MODULE MODI_ARO_TIWMX
diff --git a/src/arome/ext/namparar.nam.h b/src/arome/ext/namparar.nam.h
index 6f667ceae148f1b5de544b4d20f371dfae738a82..c3c90b342dc2fe3583071ce87a702fd86540e0af 100644
--- a/src/arome/ext/namparar.nam.h
+++ b/src/arome/ext/namparar.nam.h
@@ -1,9 +1,10 @@
 !    ------------------------------------------------------------------
 NAMELIST/NAMPARAR/LOSUBG_COND,CSUBG_AUCV_RC,CSUBG_AUCV_RI,LOSIGMAS,NSWB_MNH,NPRINTFR,LSQUALL,&
         &NREFROI1,NREFROI2,VSQUALL,NPTP,LDIAGWMAX,NDIAGWMAX,CMICRO,CSEDIM,&
-        &LAROBU_ENABLE,CMF_UPDRAFT,CMF_CLOUD,LMIXUV,LLCRIT,LTOTPREC,LOSEDIC,&
-        &VSIGQSAT,XLINI,LOLSMC,LOTOWNC,LOCND2,RADGR,RADSN,LHARATU,&
-        &LGRSN,NPROMICRO,&
+        &LAROBU_ENABLE,CMF_UPDRAFT,CMF_CLOUD,LMIXUV,LLCRIT,LTOTPREC,&
+        &LTOTPRECL,LHGT_QS,LOSEDIC,&
+        &VSIGQSAT,XLINI,LOLSMC,LOTOWNC,LOCND2,LKOGAN,LMODICEDEP,&
+        &LICERAD,RFRMIN,RADGR,RADSN,LSTATNW,LHARATU,NPROMICRO,&
         &XALP_PERT,XABUO,XBENTR,XBDETR,XCMF,XENTR_MF,XCRAD_MF,XENTR_DRY,&
         &XDETR_DRY,XDETR_LUP,XKCF_MF,XKRC_MF,XTAUSIGMF,XPRES_UV,XFRAC_UP_MAX,&
         &XALPHA_MF,XSIGMA_MF,XA1,XB,XC,XBETA1,LTHETAS,&
@@ -13,5 +14,6 @@ NAMELIST/NAMPARAR/LOSUBG_COND,CSUBG_AUCV_RC,CSUBG_AUCV_RI,LOSIGMAS,NSWB_MNH,NPRI
         &LFEEDBACKT,LEVLIMIT,LNULLWETG,LWETGPOST,LNULLWETH,LWETHPOST, &
         &XFRACM90, LCONVHG, LCRFLIMIT, &
         &CFRAC_ICE_ADJUST, XSPLIT_MAXCFL, CFRAC_ICE_SHALLOW_MF, LSEDIM_AFTER,&
-        &LDEPOSC, XVDEPOSC, CCONDENS, CLAMBDA3, CSUBG_MF_PDF
+        &LDEPOSC, XVDEPOSC, CCONDENS, CLAMBDA3, CSUBG_MF_PDF,&
+        &LDEPSG,RDEPSRED,RDEPGRED
 !       ------------------------------------------------------------------
diff --git a/src/arome/ext/spp_mod_type.F90 b/src/arome/ext/spp_mod_type.F90
new file mode 100644
index 0000000000000000000000000000000000000000..0758cb3d92373355cdb24825e74e5ac06249a10e
--- /dev/null
+++ b/src/arome/ext/spp_mod_type.F90
@@ -0,0 +1,122 @@
+MODULE SPP_MOD_TYPE
+
+ USE MODE_MSG,            ONLY: PRINT_MSG, NVERB_FATAL
+
+ TYPE TSPP_CONFIG_TYPE
+
+  INTEGER :: MP_SELF=-1
+
+  LOGICAL :: LPERT=.FALSE.                
+  LOGICAL :: LPRINT=.TRUE.                
+  LOGICAL :: LLNN_MEAN1=.FALSE.
+  LOGICAL :: LPERT_UNIFORM=.FALSE.
+
+  REAL :: CMPERT
+  REAL :: UNIFORM_OFFSET
+  REAL :: SDEV
+  REAL :: CLIP(2)
+  REAL, POINTER :: PGP2DSPP(:) => NULL(), &
+                   PTRNDIAG(:) => NULL()
+
+  CHARACTER(LEN=20) :: CTAG = '#'
+
+ END TYPE TSPP_CONFIG_TYPE
+
+ TYPE ALL_SPP_VARS
+
+  ! Gather all parameter holders for convenience
+
+  TYPE(TSPP_CONFIG_TYPE) :: YSPP_RADGR,YSPP_RADSN, &
+  YSPP_CLDDPTH,YSPP_CLDDPTHDP, &
+  YSPP_RFAC_TWOC,YSPP_RZC_H,YSPP_RZL_INF, &
+  YSPP_PSIGQSAT,YSPP_ICE_CLD_WGT, &
+  YSPP_RSWINHF,YSPP_RLWINHF, &
+  YSPP_ICENU,YSPP_KGN_ACON,YSPP_KGN_SBGR
+
+ END TYPE ALL_SPP_VARS
+
+ CONTAINS
+
+ !
+ !-----------------------------------------------------------------------
+ !
+
+ SUBROUTINE CLEAR_SPP_TYPE(TSPP)
+  IMPLICIT NONE
+  TYPE(TSPP_CONFIG_TYPE), INTENT(INOUT) :: TSPP
+ END SUBROUTINE CLEAR_SPP_TYPE
+
+ !
+ !-----------------------------------------------------------------------
+ !
+
+ SUBROUTINE SET_SPP_TYPE(TSPP,CTAG,LLNN_MEAN1_SELF, &
+                         LPERT_UNIFORM, &
+                         CMPERT,UNIFORM_OFFSET,SDEV,CLIP,MP_SELF, &
+                         KLON,KLEV,NEZDIAG, &
+                         KSTA,KEND, &
+                         PGP2DSPP,PEZDIAG)
+  IMPLICIT NONE
+  TYPE(TSPP_CONFIG_TYPE),  INTENT(INOUT) :: TSPP
+  CHARACTER(LEN=*),        INTENT(IN   ) :: CTAG
+  LOGICAL,                 INTENT(IN   ) :: LLNN_MEAN1_SELF,LPERT_UNIFORM
+  REAL           ,         INTENT(IN   ) :: CMPERT,UNIFORM_OFFSET,SDEV,CLIP(2)
+  INTEGER           ,      INTENT(IN   ) :: MP_SELF,KLON,KLEV,KSTA,KEND, &
+                                            NEZDIAG
+  REAL           , TARGET, INTENT(IN   ) :: PGP2DSPP(KLON,0)
+  REAL           , TARGET, INTENT(INOUT) :: PEZDIAG(KLON,KLEV,NEZDIAG)
+  CALL PRINT_MSG(NVERB_FATAL, 'GEN', 'SPP_MOD_TYPE', 'SET_SPP_TYPE is not implemented in PHYEX')
+ END SUBROUTINE SET_SPP_TYPE
+
+ !
+ !-----------------------------------------------------------------------
+ !
+
+ SUBROUTINE APPLY_SPP(TSPP, &
+                      KLON,KSTA,KEND, &
+                      PREFVAL,PFIELD)
+  IMPLICIT NONE
+  TYPE(TSPP_CONFIG_TYPE),    INTENT(INOUT) :: TSPP
+  INTEGER           ,        INTENT(IN   ) :: KLON,KSTA,KEND
+  REAL           ,           INTENT(IN   ) :: PREFVAL
+  REAL           ,           INTENT(INOUT) :: PFIELD(KLON)
+  CALL PRINT_MSG(NVERB_FATAL, 'GEN', 'SPP_MOD_TYPE', 'APPLY_SPP is not implemented in PHYEX')
+ END SUBROUTINE APPLY_SPP
+
+ !
+ !-----------------------------------------------------------------------
+ !
+
+ SUBROUTINE DIA_SPP(TSPP,KSTA,KEND)
+  IMPLICIT NONE
+  TYPE(TSPP_CONFIG_TYPE),    INTENT(IN) :: TSPP
+  INTEGER           ,        INTENT(IN) :: KSTA,KEND
+  CALL PRINT_MSG(NVERB_FATAL, 'GEN', 'SPP_MOD_TYPE', 'DIA_SPP is not implemented in PHYEX')
+ END SUBROUTINE DIA_SPP
+
+ !
+ !-----------------------------------------------------------------------
+ !
+ SUBROUTINE SET_ALL_SPP(KLON,KLEV,NGFL_EZDIAG, &
+  KIDIA,KFDIA,PGP2DSPP,PEZDIAG,YSPP_ALL)
+  IMPLICIT NONE
+  INTEGER           ,         INTENT(IN   ) :: KLON,KLEV,NGFL_EZDIAG,KIDIA,KFDIA
+  REAL           , TARGET,    INTENT(IN   ) :: PGP2DSPP(KLON,0)
+  REAL           ,            INTENT(INOUT) :: PEZDIAG(KLON,KLEV,NGFL_EZDIAG)
+  TYPE(ALL_SPP_VARS),         INTENT(INOUT) :: YSPP_ALL
+  CALL PRINT_MSG(NVERB_FATAL, 'GEN', 'SPP_MOD_TYPE', 'SET_ALL_SPP is not implemented in PHYEX')
+ END SUBROUTINE SET_ALL_SPP
+
+ !
+ !-----------------------------------------------------------------------
+ !
+
+ SUBROUTINE CLEAR_ALL_SPP(YSPP_ALL)
+  IMPLICIT NONE
+  TYPE(ALL_SPP_VARS),         INTENT(INOUT) :: YSPP_ALL
+  CALL PRINT_MSG(NVERB_FATAL, 'GEN', 'SPP_MOD_TYPE', 'CLEAR_ALL_SPP is not implemented in PHYEX')
+ END SUBROUTINE CLEAR_ALL_SPP
+
+END MODULE SPP_MOD_TYPE
+
+
diff --git a/src/arome/ext/suparar.F90 b/src/arome/ext/suparar.F90
index 286a2edca755160f19a3265b4244e68d07a770f4..08755f90e26f9e0d6b790c64a517940494521edc 100644
--- a/src/arome/ext/suparar.F90
+++ b/src/arome/ext/suparar.F90
@@ -1,14 +1,14 @@
 SUBROUTINE SUPARAR(YDGEOMETRY,YGFL,YDML_PHY_MF,KULOUT)
 
-!**** *SUPARAR*   - Initialize common parameters used in physics for AROME 
+!**** *SUPARAR*   - Initialize common parameters used in physics for AROME
 !                   and SURFEX
 
 !     Purpose.
 !     --------
 !           Initialize MODD_PARAMETERS, MODD_CST, MODD_CONF,
-!           MODD_RAIN_ICE_DESCR, MODD_RAIN_ICE_PARAM, MODD_BUDGET  
+!           MODD_RAIN_ICE_DESCR, MODD_RAIN_ICE_PARAM, MODD_BUDGET
 !           parameters used in meso_NH Physics and aladin/meso_NH physics
-!           interface 
+!           interface
 
 !**   Interface.
 !     ----------
@@ -31,7 +31,7 @@ SUBROUTINE SUPARAR(YDGEOMETRY,YGFL,YDML_PHY_MF,KULOUT)
 
 !     Reference.
 !     ----------
-!        Documentation AROME 
+!        Documentation AROME
 
 !     Author.
 !     -------
@@ -53,7 +53,7 @@ SUBROUTINE SUPARAR(YDGEOMETRY,YGFL,YDML_PHY_MF,KULOUT)
 !     2014-05-27: J.M. Piriou: default values of XCQVR and GQVPLIM.
 !     Nov. 2014: Y. Seity, add LFPREC3D for MOCAGE
 !     Nov 2016, S. Riette: New ICE3/ICE4 parameters
-!     R. El Khatib 24-Aug-2021 NPROMICRO specific cache-blocking factor for microphysics
+!     Jan 2021, C.Wittmann: add LDEPSG,RDEPSRED+RDEPGRED
 ! End Modifications
 !-------------------------------------------------------------------------------
 
@@ -100,7 +100,6 @@ REAL(KIND=JPRB) , POINTER ::  XDETR_DRY
 CHARACTER (LEN=4)  ::  CMF_UPDRAFT
 LOGICAL            , POINTER ::  LMIXUV
 LOGICAL            , POINTER ::  LLCRIT
-LOGICAL            , POINTER ::  LTOTPREC
 INTEGER(KIND=JPIM) , POINTER ::  NREFROI1
 REAL(KIND=JPRB) , POINTER ::  XTAUSIGMF
 LOGICAL , POINTER ::  LCRIAUTI
@@ -122,9 +121,16 @@ REAL(KIND=JPRB) , POINTER ::  XPRES_UV
 CHARACTER (LEN=4) ::  CSUBG_AUCV_RC
 CHARACTER (LEN=80) ::  CSUBG_AUCV_RI
 REAL(KIND=JPRB) , POINTER ::  XALP_PERT
-LOGICAL , POINTER ::  LOCND2
-LOGICAL , POINTER ::  LHARATU
-LOGICAL , POINTER :: LGRSN
+LOGICAL , POINTER :: LOCND2
+LOGICAL , POINTER :: LSTATNW
+LOGICAL , POINTER :: LHARATU
+LOGICAL , POINTER :: LKOGAN
+LOGICAL , POINTER :: LHGT_QS
+LOGICAL , POINTER :: LMODICEDEP
+LOGICAL , POINTER :: LICERAD
+LOGICAL , POINTER :: LTOTPREC
+LOGICAL , POINTER :: LTOTPRECL
+REAL(KIND=JPRB), DIMENSION(:), POINTER :: RFRMIN
 INTEGER(KIND=JPIM) , POINTER ::  NPRINTFR
 REAL(KIND=JPRB) , POINTER ::  XCQVR
 CHARACTER(LEN=4) ::  CMICRO
@@ -172,13 +178,16 @@ REAL(KIND=JPRB) , POINTER  :: XSPLIT_MAXCFL
 LOGICAL , POINTER  :: LDEPOSC
 REAL(KIND=JPRB) , POINTER  :: XVDEPOSC
 INTEGER(KIND=JPIM) , POINTER ::  NPROMICRO
+LOGICAL, POINTER :: LDEPSG
+REAL(KIND=JPRB), POINTER :: RDEPSRED
+REAL(KIND=JPRB), POINTER :: RDEPGRED
 
 #include "namparar.nam.h"
 #include "abor1.intfb.h"
 
 !     ------------------------------------------------------------------
 IF (LHOOK) CALL DR_HOOK('SUPARAR',0,ZHOOK_HANDLE)
-!Associate for variables not in the include namelists nor allocated in the routine 
+!Associate for variables not in the include namelists nor allocated in the routine
 ASSOCIATE(MACPRS=>YDML_PHY_MF%YRPARAR%MACPRS, MACPRR=>YDML_PHY_MF%YRPARAR%MACPRR, &
  & MINPRR=>YDML_PHY_MF%YRPARAR%MINPRR, MINPRS=>YDML_PHY_MF%YRPARAR%MINPRS, &
 
@@ -223,7 +232,13 @@ LQVTOP => YDPARAR%LQVTOP
 XBETA1 => YDPARAR%XBETA1
 NPTP => YDPARAR%NPTP
 LOCND2 => YDPARAR%LOCND2
-LGRSN => YDPARAR%LGRSN
+LKOGAN => YDPARAR%LKOGAN
+LHGT_QS => YDPARAR%LHGT_QS
+LMODICEDEP => YDPARAR%LMODICEDEP
+LICERAD => YDPARAR%LICERAD
+LTOTPREC => YDPARAR%LTOTPREC
+LTOTPRECL => YDPARAR%LTOTPRECL
+RFRMIN => YDPARAR%RFRMIN
 XCQVR => YDPARAR%XCQVR
 XFRAC_UP_MAX => YDPARAR%XFRAC_UP_MAX
 XB => YDPARAR%XB
@@ -245,7 +260,6 @@ LOSIGMAS => YDPARAR%LOSIGMAS
 GQVTOP => YDPARAR%GQVTOP
 LMIXUV => YDPARAR%LMIXUV
 LLCRIT => YDPARAR%LLCRIT
-LTOTPREC => YDPARAR%LTOTPREC
 XALPHA_MF => YDPARAR%XALPHA_MF
 XPRES_UV => YDPARAR%XPRES_UV
 LOLSMC => YDPARAR%LOLSMC
@@ -253,6 +267,7 @@ NDIAGWMAX => YDPARAR%NDIAGWMAX
 LOSUBG_COND => YDPARAR%LOSUBG_COND
 RADGR => YDPARAR%RADGR
 LFPREC3D => YDPARAR%LFPREC3D
+LSTATNW => YDPARAR%LSTATNW
 LHARATU => YDPARAR%LHARATU
 XTSTEP_TS => YDPARAR%XTSTEP_TS
 XMRSTEP => YDPARAR%XMRSTEP
@@ -271,6 +286,9 @@ XSPLIT_MAXCFL => YDPARAR%XSPLIT_MAXCFL
 LDEPOSC => YDPARAR%LDEPOSC
 XVDEPOSC => YDPARAR%XVDEPOSC
 NPROMICRO => YDPARAR%NPROMICRO
+LDEPSG => YDPARAR%LDEPSG
+RDEPSRED => YDPARAR%RDEPSRED
+RDEPGRED => YDPARAR%RDEPGRED
 
 !     ------------------------------------------------------------------
 
@@ -313,8 +331,8 @@ CLAMBDA3='CB'
 ! for squall line academic case
 LSQUALL=.FALSE.
 NREFROI1=1
-NREFROI2=1 
-VSQUALL=0._JPRB 
+NREFROI2=1
+VSQUALL=0._JPRB
 NPTP=1
 LDIAGWMAX=.FALSE.
 NDIAGWMAX=1
@@ -323,10 +341,31 @@ LOLSMC=.FALSE.
 LOTOWNC=.FALSE.
 
 LOCND2=.FALSE.
-LGRSN=.FALSE.
+LKOGAN=.FALSE.
+LHGT_QS=.FALSE.
+LMODICEDEP=.FALSE.
+LICERAD=.FALSE.
 RADGR=0._JPRB
 RADSN=0._JPRB
 
+! Tuning and modication of graupeln etc:
+RFRMIN(1:6)=0.
+RFRMIN(7:9)=1.
+RFRMIN(10) =10.
+RFRMIN(11) =1.
+RFRMIN(12) =0.
+RFRMIN(13) =1.0E-15
+RFRMIN(14) =120.
+RFRMIN(15) =1.0E-4
+RFRMIN(16:20)=0.
+RFRMIN(21:22)=1.
+RFRMIN(23)=0.5
+RFRMIN(24)=1.5
+RFRMIN(25)=30.
+RFRMIN(26:38)=0.
+RFRMIN(39)=0.25
+RFRMIN(40)=0.15
+
 ! default option for Mass Flux Scheme (Pergaud et al)
 CMF_UPDRAFT = 'EDKF'
 ! DIRE ou STAT
@@ -336,25 +375,26 @@ LMIXUV= .TRUE.
 !default option in EDMFm mass-flux scheme:
 LLCRIT=.FALSE.
 LTOTPREC=.FALSE.
+LTOTPRECL=.FALSE.
 
 !  Default for Mass Flux Scheme tuning variables
 
 XALP_PERT   = 0.3_JPRB  ! coefficient for the perturbation of
-                   ! theta_l and r_t at the first level of 
+                   ! theta_l and r_t at the first level of
                    ! the updraft
-XABUO       = 1._JPRB   ! coefficient of the buoyancy term in the w_up equation  
+XABUO       = 1._JPRB   ! coefficient of the buoyancy term in the w_up equation
 XBENTR      = 1._JPRB   ! coefficient of the entrainment term in the w_up equation
 XBDETR      = 0._JPRB   ! coefficient of the detrainment term in the w_up equation
-XCMF        = 0.065_JPRB! coefficient for the mass flux at the first level 
-                                ! of the updraft (closure) 
+XCMF        = 0.065_JPRB! coefficient for the mass flux at the first level
+                                ! of the updraft (closure)
 XENTR_MF    = 0.035_JPRB! entrainment constant (m/Pa) = 0.2 (m)
 XCRAD_MF    = 50._JPRB  ! cloud radius in cloudy part
-XENTR_DRY   = 0.55_JPRB ! coefficient for entrainment in dry part 
+XENTR_DRY   = 0.55_JPRB ! coefficient for entrainment in dry part
 XDETR_DRY   = 10._JPRB  ! coefficient for detrainment in dry part
 XDETR_LUP   = 1._JPRB   !  coefficient for detrainment in dry part
 XKCF_MF     = 2.75_JPRB ! coefficient for cloud fraction
 XKRC_MF     = 1._JPRB   ! coefficient for convective rc
-XTAUSIGMF   = 600._JPRB  
+XTAUSIGMF   = 600._JPRB
 XPRES_UV    = 0.5_JPRB  ! coefficient for pressure term in wind mixing
 XFRAC_UP_MAX= 0.33_JPRB ! maximum Updraft fraction
 XALPHA_MF = 2._JPRB     ! coefficient for updraft fraction in STA2 cloud scheme
@@ -405,8 +445,14 @@ LSEDIM_AFTER=.FALSE. ! Sedimentation done after microphysics
 XSPLIT_MAXCFL=0.8
 LDEPOSC=.FALSE.  ! water deposition on vegetation
 XVDEPOSC=0.02    ! deposition speed (2 cm.s-1)
+LDEPSG=.FALSE.   ! activate tuning of deposition of snow/graupel (RDEPSRED,RDEPGRED)
+RDEPSRED=1.0     
+RDEPGRED=1.0
 
 !
+! set up cloud scheme
+LSTATNW=.FALSE.
+
 ! for turbulence scheme
 XLINI=0._JPRB ! 0.1 in Meso-NH
 LHARATU=.FALSE.
@@ -425,6 +471,12 @@ IF (.NOT.LOCND2) THEN
    RADGR=0._JPRB
    RADSN=0._JPRB
 ENDIF
+IF (LHARATU .AND. CMF_UPDRAFT == 'EDKF') THEN
+  CALL ABOR1('Combination LHARATU and EDKF not valid!')
+ENDIF
+IF (.NOT. LHARATU .AND. LSTATNW ) THEN
+  CALL ABOR1('LSTATNW only tested in combination with HARATU and EDMFm!')
+ENDIF
 
 ! Work-around for PGI compiler bug
 YDPARAR%CMF_UPDRAFT=CMF_UPDRAFT
@@ -452,7 +504,7 @@ ENDIF
 IF ( CMICRO /= 'ICE3' .AND. CMICRO /= 'ICE4' .AND. &
    & CMICRO /= 'LIMA' .AND. CMICRO /= 'OLD3' .AND. CMICRO /= 'OLD4') THEN
   CALL ABOR1("AROME Microphysics must be ICE3, ICE4, LIMA, OLD3 or OLD4")
-ENDIF 
+ENDIF
 IF ( (CMICRO == 'ICE4' .OR. CMICRO == 'OLD4') .AND. .NOT.YH%LACTIVE ) THEN
   CALL ABOR1("ICE4 and OLD4 microphysics requires activation of YH in NAMGFL")
 ENDIF
@@ -512,6 +564,9 @@ ENDIF
 IF (LFPREC3D.AND.YGFL%NGFL_EZDIAG < 4) THEN
   CALL ABOR1 ("With LFPREC3D NGFL_EZDIAG should be >= 4 !")
 ENDIF
+IF (LOCND2 .AND. LDEPSG) THEN
+  CALL ABOR1 ("LDEPSG must not be activated together with LOCND2")
+ENDIF 
 
 !       3.Initialisation du buffer contenant les variables pseudo-historiques
 
@@ -562,7 +617,7 @@ IF (LMPA) THEN
   ENDIF
 ELSE
   IF (LMSE) THEN
-    NGPAR=8
+    NGPAR=9
     MRAIN=1
     MSNOW=2
     MVTS=3
@@ -583,7 +638,7 @@ ELSE
   ENDIF
 ENDIF
 
-! allocation du buffer 
+! allocation du buffer
 IF (NGPAR /= 0) THEN
   ALLOCATE (GPARBUF (YDGEOMETRY%YRDIM%NPROMA, NGPAR, YDGEOMETRY%YRDIM%NGPBLKS))
 ENDIF
@@ -600,11 +655,12 @@ WRITE(UNIT=KULOUT,FMT='('' CSUBG_RC_RR_ACCR = '',A80,&
 WRITE(UNIT=KULOUT,FMT='('' CLAMBDA3 = '',A80)')&
 & CLAMBDA3
 WRITE(UNIT=KULOUT,FMT='('' NREFROI1 = '',I3,&
- & '' NREFROI2 = '',I3,'' VSQUALL = '',E13.6)')NREFROI1, NREFROI2,VSQUALL  
+ & '' NREFROI2 = '',I3,'' VSQUALL = '',E13.6)')NREFROI1, NREFROI2,VSQUALL
 WRITE(UNIT=KULOUT,FMT='('' NGPAR = '',I3,&
  & '' MINPRR = '',I3,'' MACPRR = '',I3,'' MINPRS = '',I3,&
  & '' MACPRS = '',I3,'' MINPRG = '',I3,'' MACPRG = '',I3)')&
  & NGPAR,MINPRR,MACPRR,MINPRS,MACPRS,MINPRG,MACPRG
+WRITE(UNIT=KULOUT,FMT='('' MCD = '',I3,'' MRAIN = '',I3,'' MSNOW = '',I3)') MCD, MRAIN, MSNOW
 WRITE(UNIT=KULOUT,FMT='('' MSWDIR = '',I3,&
  & '' MSWDIF = '',I3)')MSWDIR,MSWDIF
 WRITE(UNIT=KULOUT,FMT='('' MALBDIR = '',I3,&
@@ -615,7 +671,7 @@ WRITE(UNIT=KULOUT,FMT='('' NPRINTFR = '',I3, '' NPTP = '',I3)')&
  & NPRINTFR,NPTP
 WRITE(UNIT=KULOUT,FMT='('' LDIAGWMAX = '',L5,&
  & '' NDIAGWMAX = '',I3,'' NDTCHEM = '',I3)')&
- & LDIAGWMAX, NDIAGWMAX,NDTCHEM  
+ & LDIAGWMAX, NDIAGWMAX,NDTCHEM
 WRITE(UNIT=KULOUT,FMT='('' NRR = '',I3,&
  & '' NRRL = '',I3,'' NRRI = '',I3)')&
  & NRR, NRRL, NRRI
@@ -628,7 +684,7 @@ WRITE(UNIT=KULOUT,FMT='(&
 WRITE(UNIT=KULOUT,FMT='('' CMF_UPDRAFT = '',A4,&
  & '' CMF_CLOUD  = '',A4)')&
  & CMF_UPDRAFT,CMF_CLOUD
- 
+
 WRITE(UNIT=KULOUT,FMT='(''Mass Flux Scheme tuning variables :'')')
 WRITE(UNIT=KULOUT,FMT='(''XALP_PERT = '',F6.3,'' XABUO = '',F6.3,'' XBENTR = '',F6.3,&
 &'' XBDETR = '',F6.3,'' XCMF = '',F6.3,'' XENTR_MF = '',F6.3,'' XCRAD_MF = '',F6.3,&
@@ -658,13 +714,23 @@ WRITE(UNIT=KULOUT,FMT='('' CFRAC_ICE_ADJUST = '',A1,&
 WRITE(UNIT=KULOUT,FMT='('' XSPLIT_MAXCFL = '',E13.6)') XSPLIT_MAXCFL
 WRITE(UNIT=KULOUT,FMT='('' LSEDIM_AFTER = '',L5)') LSEDIM_AFTER
 WRITE(UNIT=KULOUT,FMT=*) 'XCQVR=',XCQVR,' GQVPLIM=',GQVPLIM,' GQVTOP=',GQVTOP,' LQVTOP=',LQVTOP
+WRITE(UNIT=KULOUT,FMT='('' LLCRIT = '',L5)') LLCRIT
+WRITE(UNIT=KULOUT,FMT='('' LTOTPREC = '',L5)') LTOTPREC
+WRITE(UNIT=KULOUT,FMT='('' LTOTPRECL = '',L5)') LTOTPRECL
 WRITE(UNIT=KULOUT,FMT='('' LOCND2 = '',L5)') LOCND2
-WRITE(UNIT=KULOUT,FMT='('' LGRSN = '',L5)') LGRSN
-WRITE(UNIT=KULOUT,FMT='('' RADSN = '',E13.6)') RADSN
-WRITE(UNIT=KULOUT,FMT='('' RADGR = '',E13.6)') RADGR
+WRITE(UNIT=KULOUT,FMT='('' LKOGAN = '',L5)') LKOGAN
+WRITE(UNIT=KULOUT,FMT='('' LHGT_QS = '',L5)') LHGT_QS
+WRITE(UNIT=KULOUT,FMT='('' LSTATNW = '',L5)') LSTATNW
+WRITE(UNIT=KULOUT,FMT='('' LMODICEDEP = '',L5)') LMODICEDEP
+WRITE(UNIT=KULOUT,FMT='('' RADSN = '',f6.2)') RADSN
+WRITE(UNIT=KULOUT,FMT='('' RADGR = '',f6.2)') RADGR
+WRITE(UNIT=KULOUT,FMT='('' RFRMIN = '',40E10.3)') RFRMIN
 WRITE(UNIT=KULOUT,FMT='('' LHARATU = '',L2)') LHARATU
+WRITE(UNIT=KULOUT,FMT='('' LICERAD = '',L5)') LICERAD
 WRITE(UNIT=KULOUT,FMT='('' LDEPOSC = '',L5)') LDEPOSC
 WRITE(UNIT=KULOUT,FMT='('' XVDEPOSC = '',E13.6)') XVDEPOSC
+WRITE(UNIT=KULOUT,FMT='('' LDEPSG = '',L2,'' RDEPSRED = '',F6.2,'' RDEPGRED = '',F6.2&
+&)') LDEPSG,RDEPSRED,RDEPGRED
 
 WRITE(UNIT=KULOUT,FMT='('' NPROMICRO = '',I4)') NPROMICRO
 
@@ -672,3 +738,4 @@ WRITE(UNIT=KULOUT,FMT='('' NPROMICRO = '',I4)') NPROMICRO
 END ASSOCIATE
 IF (LHOOK) CALL DR_HOOK('SUPARAR',1,ZHOOK_HANDLE)
 END SUBROUTINE SUPARAR
+
diff --git a/src/arome/ext/suphmpa.F90 b/src/arome/ext/suphmpa.F90
index c5ce5a44ed1c82a1a307712563733980545a4ea9..33f631f7fe6d6abf8fd2d03998f74affedd04be0 100644
--- a/src/arome/ext/suphmpa.F90
+++ b/src/arome/ext/suphmpa.F90
@@ -105,12 +105,13 @@ ASSOCIATE(XDETR_LUP=>YDPARAR%XDETR_LUP, XCMF=>YDPARAR%XCMF, &
  & XKRC_MF=>YDPARAR%XKRC_MF, XALPHA_MF=>YDPARAR%XALPHA_MF, &
  & XPRES_UV=>YDPARAR%XPRES_UV, NRR=>YDPARAR%NRR, XCRAD_MF=>YDPARAR%XCRAD_MF, &
  & CMF_UPDRAFT=>YDPARAR%CMF_UPDRAFT, LHARATU=>YDPARAR%LHARATU, &
+ & LSTATNW=>YDPARAR%LSTATNW, &
  & LMPA=>YDARPHY%LMPA, LKFBCONV=>YDARPHY%LKFBCONV, LMFSHAL=>YDARPHY%LMFSHAL, &
  & LGRADHPHY=>YDARPHY%LGRADHPHY, &
  & NPROMA=>YDDIM%NPROMA, &
  & LEDKF=>YDPHY%LEDKF, LCVPPKF=>YDPHY%LCVPPKF, &
  & NFLEVG=>YDDIMV%NFLEVG, &
- & LSDDH=>YDLDDH%LSDDH, TSTEP=>YDRIP%TSTEP, &
+ & LSDDH=>YDLDDH%LSDDH, TSTEP=>YDRIP%TSTEP, RFRMIN=>YDPARAR%RFRMIN, &
  & XTSTEP_TS=>YDPARAR%XTSTEP_TS, CSNOWRIMING=>YDPARAR%CSNOWRIMING, XMRSTEP=>YDPARAR%XMRSTEP,&
  & NMAXITER_MICRO=>YDPARAR%NMAXITER_MICRO, LFEEDBACKT=>YDPARAR%LFEEDBACKT, LEVLIMIT=>YDPARAR%LEVLIMIT, &
  & LNULLWETG=>YDPARAR%LNULLWETG, LWETGPOST=>YDPARAR%LWETGPOST, LNULLWETH=>YDPARAR%LNULLWETH,&
@@ -119,7 +120,8 @@ ASSOCIATE(XDETR_LUP=>YDPARAR%XDETR_LUP, XCMF=>YDPARAR%XCMF, &
  & CSUBG_PR_PDF=>YDPARAR%CSUBG_PR_PDF, LCRFLIMIT=>YDPARAR%LCRFLIMIT, &
  & CFRAC_ICE_ADJUST=>YDPARAR%CFRAC_ICE_ADJUST, XSPLIT_MAXCFL=>YDPARAR%XSPLIT_MAXCFL,&
  & CFRAC_ICE_SHALLOW_MF=>YDPARAR%CFRAC_ICE_SHALLOW_MF, LSEDIM_AFTER=>YDPARAR%LSEDIM_AFTER,&
- & LDEPOSC=>YDPARAR%LDEPOSC, XVDEPOSC=>YDPARAR%XVDEPOSC)
+ & LDEPOSC=>YDPARAR%LDEPOSC, XVDEPOSC=>YDPARAR%XVDEPOSC,&
+ & LDEPSG=>YDPARAR%LDEPSG,RDEPSRED=>YDPARAR%RDEPSRED,RDEPGRED=>YDPARAR%RDEPGRED)
 !     ------------------------------------------------------------------
 !     ------------------------------------------------------------------
 !       1. Initialisation of MesoNH constantes
@@ -140,16 +142,18 @@ IF (CMICRO == 'LIMA') THEN
  &                    NMAXITER_MICRO, LFEEDBACKT, LEVLIMIT, LNULLWETG, LWETGPOST, LNULLWETH,&
  &                    LWETHPOST, XFRACM90, LCONVHG, CSUBG_RC_RR_ACCR, CSUBG_RR_EVAP, CSUBG_PR_PDF,&
  &                    LCRFLIMIT, CFRAC_ICE_ADJUST, XSPLIT_MAXCFL,&
- &                    CFRAC_ICE_SHALLOW_MF, LSEDIM_AFTER, LDEPOSC, XVDEPOSC)
+ &                    CFRAC_ICE_SHALLOW_MF, LSEDIM_AFTER, LDEPOSC, XVDEPOSC, RFRMIN,&
+ &                    LDEPSG,RDEPSRED,RDEPGRED)
    CALL AROINI_MICRO_LIMA (KULOUT,4,ZTSTEP,LOWARM,CMICRO,NSPLITR,NSPLITG,CSEDIM,LCRIAUTI,&
         &                 RCRIAUTI,RT0CRIAUTI,RCRIAUTC)
 ELSE
 CALL AROINI_MICRO (KULOUT,ZTSTEP,LOWARM,CMICRO,NSPLITR,CSEDIM,LCRIAUTI,&
- &                 RCRIAUTI,RT0CRIAUTI,RCRIAUTC,XTSTEP_TS, CSNOWRIMING, XMRSTEP,&
+ &                 RCRIAUTI,RT0CRIAUTI,RCRIAUTC, XTSTEP_TS, CSNOWRIMING, XMRSTEP,&
  &                 NMAXITER_MICRO, LFEEDBACKT, LEVLIMIT, LNULLWETG, LWETGPOST, LNULLWETH,&
  &                 LWETHPOST, XFRACM90, LCONVHG, CSUBG_RC_RR_ACCR, CSUBG_RR_EVAP, CSUBG_PR_PDF,&
  &                 LCRFLIMIT, CFRAC_ICE_ADJUST, XSPLIT_MAXCFL,&
- &                 CFRAC_ICE_SHALLOW_MF, LSEDIM_AFTER, LDEPOSC, XVDEPOSC)
+ &                 CFRAC_ICE_SHALLOW_MF, LSEDIM_AFTER, LDEPOSC, XVDEPOSC, RFRMIN,&
+ &                 LDEPSG,RDEPSRED,RDEPGRED)
  ENDIF
 
 !       3. Initialisation of Budget
@@ -160,7 +164,7 @@ CALL AROINI_BUDGET(LAROBU_ENABLE)
 
 !       4. Initialisation of Turbulence scheme
 
-CALL AROINI_TURB(XLINI,LHARATU)
+CALL AROINI_TURB(XLINI,LHARATU,LSTATNW)
 
 !       5. Initialisation of Mass Flux Shallow convection scheme
 
diff --git a/src/arome/ext/vdfhghtnhl.F90 b/src/arome/ext/vdfhghtnhl.F90
new file mode 100644
index 0000000000000000000000000000000000000000..169b233f5a1709606bd327726123b2b85fc2fae4
--- /dev/null
+++ b/src/arome/ext/vdfhghtnhl.F90
@@ -0,0 +1,1377 @@
+!OPTIONS XOPT(HSFUN)
+SUBROUTINE VDFHGHTNHL (YDVDF,YDEPHLI,YDECUMF,YDEPHY,YDPARAR,KIDIA   , KFDIA   , KLON    , KLEV   , KDRAFT, PTMST, KSTEP, &
+                   & PUM1    , PVM1    , PTM1    , PQM1    , PLM1    , PIM1   , PAM1,&
+                   & PAPHM1  , PAPM1   , PGEOM1  , PGEOH  , &
+                   & PKMFL   , PKHFL   , PKQFL   , PMFLX  , PEXNF , PEXNH, &
+! DIAGNOSTIC OUTPUT
+
+                   & PUUH    , PVUH    , PSLGUH  , PQTUH  , PTHTVUH, PFRACB, &
+                   & PZPTOP  , KPTOP   , PZPLCL  , KPLCL  , KPLZB   , &
+                   &  PRICUI  , &
+                   & PFPLVL  , PFPLVN  , PCLFR, &
+                   & PBIR    , LDNODECP, LDRUNDRY, KPBLTYPE, &
+                   & YSPP_CLDDPTH,YSPP_CLDDPTHDP, &
+                   & YSPP_RFAC_TWOC,YSPP_RZC_H,YSPP_RZL_INF, &
+                   & ZLENGTH_M, ZLENGTH_H,  PTKE)
+
+!     ------------------------------------------------------------------
+
+!**   * VDFHGHTNHL* - DETERMINES THE PBL-HEIGHT AND STRONG UPDRAFT FIELDS
+!                  USING A ENTRAINING PARCEL ASCENT METHOD.
+
+!     A.P. SIEBESMA                30/06/1999  Original (dry)
+!     M. Ko"hler                    3/12/2004  Moist Version
+!     Roel Neggers                 12/04/2005  Multiple updraft extension
+!     Wim de Rooy/Geert Lenderink  13/06/2008 and 21/09/2010 Updates to combine TKE turbulence
+!                                              with dual updraft EDMF. Lateral mixing according
+!                                              to de Rooy & Siebesma MWR 2008 and QJRMS 2010
+!     Wim de Rooy                  July /2015  Implementation LHARATU in Harmonie
+!     Lisa Bengtsson               Feb /2017   Introduce LTOTPREC option
+!     Karl-Ivar Ivarsson           Feb /2018   Code optimation
+!     R. El Khatib 30-Apr-2019                 bugfix
+!     Wim de Rooy                  June / 2019 Modifications among which energy
+!                                              energy cascade term
+!     R. El Khatib 27-Aug-2019                 Cleaning
+!     Karl-Ivar Ivarsson           April /2020 Introduce LTOTPRECL option
+!     U. Andrae Dec 2020                       Introduce SPP for HARMONIE-AROME
+!      R. El Khatib 08-Jul-2022 Contribution to the encapsulation of YOMCST and YOETHF
+
+
+!     PURPOSE
+!     -------
+
+!     DETERMINE PBL HEIGHT AND UPDRAFT FIELDS
+
+!     INTERFACE
+!     ---------
+
+!     * VDFHGHTNHL* IS CALLED BY *VDFHGHTHL*
+
+!     PARAMETER     DESCRIPTION                                   UNITS
+!     ---------     -----------                                   -----
+!     INPUT PARAMETERS (INTEGER):
+
+!     *KIDIA*        START POINT
+!     *KFDIA*        END POINT
+!     *KLEV*         NUMBER OF LEVELS
+!     *KLON*         NUMBER OF GRID POINTS PER PACKET
+!     *KDRAFT*       NUMBER OF EXPLICITLY MODELED DRAFTS - CURRENTLY 3:
+!                    1: test parcel
+!                    2: rising dry thermals which stop at cloud base or inversion
+!                    3: rising dry thermals which become cloudy
+!                    (4: downdrafts .. to be done?)
+
+!     INPUT PARAMETERS (REAL):
+
+!     *PTMST*        DOUBLE TIME STEP (SINGLE AT 1TH STEP)        S
+!     *PUM1*         X-VELOCITY COMPONENT AT T-1                  M/S
+!     *PVM1*         Y-VELOCITY COMPONENT AT T-1                  M/S
+!     *PTM1*         TEMPERATURE AT T-1                           K
+!     *PQM1*         SPECIFIC HUMUDITY AT T-1                     KG/KG
+!     *PLM1*         SPECIFIC CLOUD LIQUID WATER AT T-1           KG/KG
+!     *PIM1*         SPECIFIC CLOUD ICE AT T-1                    KG/KG
+!     *PAM1*         CLOUD FRACTION AT T-1                        KG/KG
+!     *PAPHM1*       PRESSURE AT HALF LEVEL AT T-1                PA
+!     *PAPM1*        PRESSURE AT FULL LEVEL AT T-1                PA
+!     *PGEOM1*       GEOPOTENTIAL AT T-1                          M2/S2
+!     *PGEOH*        GEOPOTENTIAL AT HALF LEVEL                   M2/S2
+!     *PKMFL*        SURFACE KINEMATIC MOMENTUM FLUX              M2/S2
+!     *PKHFL*        SURFACE KINEMATIC HEAT FLUX                  K*M/S
+!     *PKQFL*        SURFACE KINEMATIC MOISTURE FLUX              M/S
+!     *PBIR*         BUOYANCY-FLUX INTEGRAL RATIO (-N/P)
+!                    USED FOR DECOUPLING CRITERIA
+!     *PEXNF*        ENXNER FUNCTION FOR FULL PRESSURE LEVELS (FOR OPTIMATION OF CODE)
+!     *PEXNH*        ENXNER FUNCTION FOR HALF PRESSURE LEVELS (FOR OPTIMATION OF CODE),
+!                    =  (P / PREF) ** R/CP
+
+!     INPUT PARAMETERS (LOGICAL):
+
+!     *LDNODECP*     TRUE:  NEVER DECOUPLE
+!                    FALSE: MAYBE DECOUPLE
+!     *LDRUNDRY*     TRUE:  RUN PARCEL WITHOUT CONDENSATION
+!                    FALSE: RUN PARCEL WITH CONDENSATION
+
+!     OUTPUT PARAMETERS (REAL):
+
+!     *PFPLVL*       PBL PRECIPITATION FLUX AS RAIN                KG/(M**2*S)
+!     *PFPLVN*       PBL PRECIPITATION FLUX AS SNOW                KG/(M**2*S)
+
+!     *PUUH*         UPDRAFT X-MOMENTUM
+!     *PVUH*         UPDRAFT Y-MOMENTUM
+!     *PSLGUH*       UPDRAFT GENERALIZED LIQUID STATIC ENERGY (SLG)
+!                    AT HALF LEVEL                                M2/S2
+!     *PQTUH*        UPDRAFT SPECIFIC TOTAL WATER AT HALF LEVEL   KG/KG
+!     *PTHTVUH*      UPDRAFT virt potential temp at HALF LEVEL (for TKE)  K
+!     *PMFLX*        PBL MASS FLUX                                M/S
+!     *PZPLCL*       HEIGHT OF LIFTING CONDENSATION LEVEL OF UPDRAFT          M
+!     *PZPTOP*       HEIGHT OF LEVEL OF ZERO KINETIC ENERGY (W=0) OF UPDRAFT  M
+!cstep/GL
+!     *PBUOY_COR*    STABILITY CORRECTION PARAMETER TO BE USED FOR TKE SCHEME
+!
+!     *PWU*          VERTICAL VELOCITY OF SECOND UPDRAFT
+!cstep/GL
+!
+!     OUTPUT PARAMETERS (INTEGER):
+
+!     *KPLCL*         FIRST HALF LEVEL ABOVE REAL HEIGHT OF UPRAFT LCL
+!     *KPTOP*         HIGHEST HALF LEVEL BELOW PZTOP, AND
+!                       UPDRAFT TOP FULL LEVEL (PZTOP IS WITHIN THAT LAYER)
+!     *KPLZB*         LEVEL OF UPRAFT ZERO BUOYANCY (LAST FULL LEVEL THAT IS POS. BUOYANT)
+!     *KPBLTYPE*    -1: not defined yet
+!                    0: stable PBL
+!                    1: dry convective PBL (no cloud below parcel top)
+!                    2: stratocumulus
+!                    3: shallow cumulus
+!                    4: deep cumulus
+
+!     METHOD
+!     ------
+
+!     SEE DOCUMENTATION
+
+!     ------------------------------------------------------------------
+
+USE YOEPHLI  , ONLY : TEPHLI
+USE PARKIND1  ,ONLY : JPIM     ,JPRB
+
+USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
+
+USE YOMCST   , ONLY : YDCST=>YRCST ! allows use of included functions. REK.
+USE YOETHF   , ONLY : YDTHF=>YRTHF ! allows use of included functions. REK.
+USE PARPHY   , ONLY : RKAP
+USE YOECUMF  , ONLY : TECUMF
+USE YOMPARAR , ONLY : TPARAR
+USE YOEPHY   , ONLY : TEPHY
+USE YOEVDF   , ONLY : TVDF
+
+!for optimation
+USE MODD_CST
+USE MODD_RAIN_ICE_DESCR
+USE MODD_RAIN_ICE_PARAM
+USE MODE_TIWMX_TAB
+USE MODE_TIWMX
+
+USE SPP_MOD_TYPE, ONLY : TSPP_CONFIG_TYPE, APPLY_SPP 
+
+IMPLICIT NONE
+
+
+!*         0.1    GLOBAL VARIABLES
+
+TYPE(TVDF)        ,INTENT(IN)    :: YDVDF
+TYPE(TECUMF)      ,INTENT(IN)    :: YDECUMF
+TYPE(TEPHLI)      ,INTENT(IN)    :: YDEPHLI
+TYPE(TEPHY)       ,INTENT(IN)    :: YDEPHY
+TYPE(TPARAR)      ,INTENT(IN)    :: YDPARAR
+INTEGER(KIND=JPIM),INTENT(IN)    :: KLON
+INTEGER(KIND=JPIM),INTENT(IN)    :: KLEV
+INTEGER(KIND=JPIM),INTENT(IN)    :: KDRAFT
+INTEGER(KIND=JPIM),INTENT(IN)    :: KIDIA
+INTEGER(KIND=JPIM),INTENT(IN)    :: KFDIA
+INTEGER(KIND=JPIM),INTENT(IN)    :: KSTEP
+INTEGER(KIND=JPIM),INTENT(INOUT) :: KPLCL(KLON,KDRAFT)
+INTEGER(KIND=JPIM),INTENT(INOUT) :: KPTOP(KLON,KDRAFT)
+INTEGER(KIND=JPIM),INTENT(INOUT) :: KPLZB(KLON,KDRAFT)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PTMST
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PUM1(KLON,KLEV)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PVM1(KLON,KLEV)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PTM1(KLON,KLEV)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PQM1(KLON,KLEV)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PLM1(KLON,KLEV)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PIM1(KLON,KLEV)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PAM1(KLON,KLEV)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PAPHM1(KLON,0:KLEV)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PAPM1(KLON,KLEV)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PGEOM1(KLON,KLEV)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PGEOH(KLON,0:KLEV)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PKMFL(KLON)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PKHFL(KLON)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PKQFL(KLON)
+REAL(KIND=JPRB)   ,INTENT(INOUT) :: PMFLX(KLON,0:KLEV,KDRAFT)
+REAL(KIND=JPRB)   ,INTENT(OUT)   :: PUUH(KLON,0:KLEV,KDRAFT)
+REAL(KIND=JPRB)   ,INTENT(OUT)   :: PVUH(KLON,0:KLEV,KDRAFT)
+REAL(KIND=JPRB)   ,INTENT(INOUT) :: PSLGUH(KLON,0:KLEV,KDRAFT)
+REAL(KIND=JPRB)   ,INTENT(INOUT) :: PQTUH(KLON,0:KLEV,KDRAFT)
+REAL(KIND=JPRB)   ,INTENT(INOUT) :: PTHTVUH(KLON,0:KLEV,KDRAFT)
+REAL(KIND=JPRB)   ,INTENT(OUT)   :: PFRACB(KLON,KDRAFT)
+REAL(KIND=JPRB)   ,INTENT(INOUT) :: PZPLCL(KLON,KDRAFT)
+REAL(KIND=JPRB)   ,INTENT(INOUT) :: PZPTOP(KLON,KDRAFT)
+REAL(KIND=JPRB)   ,INTENT(INOUT) :: PFPLVL(KLON,0:KLEV)
+REAL(KIND=JPRB)   ,INTENT(INOUT) :: PFPLVN(KLON,0:KLEV)
+REAL(KIND=JPRB)   ,INTENT(OUT)   :: PCLFR(KLON)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PBIR(KLON)
+REAL(KIND=JPRB)   ,INTENT(OUT)   :: PRICUI(KLON)
+TYPE(TSPP_CONFIG_TYPE),INTENT(INOUT) :: YSPP_CLDDPTH,  YSPP_CLDDPTHDP, &
+                                      & YSPP_RFAC_TWOC,YSPP_RZC_H,YSPP_RZL_INF
+! variables RACMO turbulence scheme
+REAL(KIND=JPRB)   ,INTENT(OUT) :: ZLENGTH_M(KLON,KLEV)
+REAL(KIND=JPRB)   ,INTENT(OUT) :: ZLENGTH_H(KLON,KLEV)
+REAL(KIND=JPRB)   ,INTENT(INOUT) :: PTKE(KLON,KLEV)
+
+! variables for optimation of code
+REAL(KIND=JPRB)   ,INTENT(IN) :: PEXNF(KLON,KLEV)
+REAL(KIND=JPRB)   ,INTENT(IN) :: PEXNH(KLON,0:KLEV)
+
+LOGICAL           ,INTENT(IN)    :: LDNODECP(KLON)
+!ldrundry not used now
+LOGICAL           ,INTENT(IN)    :: LDRUNDRY(KLON)
+INTEGER(KIND=JPIM),INTENT(INOUT) :: KPBLTYPE(KLON)
+REAL(KIND=JPRB)    :: ZENCASC(KLON,0:KLEV)
+
+! --- variables associated with Lgeert
+REAL(KIND=JPRB)    ::  PBUOY_COR (KLON,0:KLEV)
+REAL(KIND=JPRB)    :: ZQCUH(KLON,0:KLEV,KDRAFT)
+REAL(KIND=JPRB)    :: ZWU2H(KLON,0:KLEV,KDRAFT)
+
+REAL(KIND=JPRB)    ::  PWU       (KLON,0:KLEV)
+REAL(KIND=JPRB)    :: ZQSVAR(KLON,KLEV)
+REAL(KIND=JPRB)    :: ZDQSDTEMP(KLON,KLEV)
+REAL(KIND=JPRB)    :: ZFACW,ZFACI,ZESDP,ZCOR,ZLAT2CP,&
+                      & ZESW,ZESI,ZES,ZQSAT,ZEL2R,ZEI2R,ZE2R
+!cstep/GL ---------------------------------------------
+
+
+
+!*         0.2    LOCAL VARIABLES
+
+!--- mean & environmental properties ---
+REAL(KIND=JPRB) ::    ZUSTAR (KLON)      , ZWSTAR(KLON)       , ZKHVFL(KLON)       , &
+                    & ZWSIGMA(KLON)      , &
+                    & ZSLGENH(KLON,0:KLEV),ZQLENH(KLON,0:KLEV), ZQIENH(KLON,0:KLEV), &
+                    & ZQTENH(KLON,0:KLEV), ZUENH(KLON,0:KLEV) , ZVENH(KLON,0:KLEV) , &
+                    & ZTVEN(KLON,KLEV),    ZQTM1 (KLON,KLEV)  , &
+                    & ZSLGM1(KLON,KLEV)  ,&
+                    & ZTENH(KLON,0:KLEV) , ZRHOH (KLON,0:KLEV), ZTHVEN(KLON,KLEV)
+
+REAL(KIND=JPRB) ::    ZSTAR(KLON), ZCHICRIT(KLON,0:KLEV),ZMEANCHICRIT(KLON)   , &
+                    & ZDETRSHALLOW(KLON), ZVARQ(KLON,0:KLEV), &
+                    & ZFRACMB(KLON) , ZMINIMUM(KLON) ,  &
+                    & ZQVENH(KLON,0:KLEV), &
+                    & ZTHTVENH(KLON,0:KLEV), ZTHTLUH(KLON,0:KLEV), &
+                    & ZTHTENH(KLON,0:KLEV), &
+                    & ZTHTVUH(KLON,0:KLEV), ZTHTLEH(KLON,0:KLEV),&
+                    & ZDQSDTU(KLON,0:KLEV),ZGAMMA(KLON,0:KLEV),ZDUMFUNC(KLON,0:KLEV), &
+                    & ZPRES_0, ZKAPPA,ZQSATU(KLON,0:KLEV)
+
+
+!--- updraft parameters ---
+REAL(KIND=JPRB) ::    ZWUH,DZH, &
+                    & ZQUH  (KLON,0:KLEV,KDRAFT), &
+    & ZTUH  (KLON,0:KLEV,KDRAFT), ZEPS  (KLON,0:KLEV,KDRAFT), &
+    & ZDETR (KLON,0:KLEV,KDRAFT), ZFRAC (KLON,0:KLEV,KDRAFT), &
+    & ZBUOF (KLON,KLEV,KDRAFT)  , &
+                    & ZDELTAMINEPS(KLON,0:KLEV), ZCAPE1(KLON)
+
+REAL(KIND=JPRB) ::    ZQSATM, ZSATDEF, &
+                    & ZUPFLXL(KLON,0:KLEV,KDRAFT), ZUPFLXN(KLON,0:KLEV,KDRAFT), &
+                    & ZUPGENL(KLON,KLEV,KDRAFT), ZUPGENN(KLON,KLEV,KDRAFT), &
+                    & ZDZRHO, ZPFLXTOT, ZPEVAPUP, ZFAC, ZUPMELT, ZUPMELTTEND
+
+REAL(KIND=JPRB) ::    ZFRACB(KLON,KDRAFT), ZMFLXB(KLON,KDRAFT), ZTVEXCSURF(KLON,KDRAFT)
+
+
+REAL(KIND=JPRB) ::    ZFRACMAX , ZFACMAXEXC , ZFRACTEST , ZFACTESTEXC , &
+                    & ZFACEXC(KLON,KDRAFT), ZDUMFRAC, ZDUMR, TVEXCSURF, ZWT, ZWL, ZEL, ZET, &
+                    & ZFACCASC(KLON,0:KLEV)
+
+LOGICAL ::            LLDONE(KLON,KDRAFT)
+
+
+INTEGER(KIND=JPIM) :: IS, JK, JL, JD, JKM
+
+INTEGER(KIND=JPIM) :: IKSTAR(KLON)
+
+REAL(KIND=JPRB) ::    ZQEXC   , ZTEXC   , ZDZ     , &
+                    & ZCONS10 , ZTVMEAN     , &
+                    & ZRG     , ZMFMAX  , ZMFS(KLON,KDRAFT)
+
+!          REMAINING MODEL PARAMETERS
+
+REAL(KIND=JPRB) ::    ZTAUEPS(KLON) , ZCLDDEPTH  , &
+                    & ZW2THRESH         , ZSTABTHRESH       , ZBIRTHRESH , &
+                    & ZCLDDEPTHDP       , ZDZCLOUD(KLON), &
+                    & ZREPUST, ZGHM1
+    
+REAL(KIND=JPRB) ::    ZZI(KLON),ZB1(KLON),ZCOUNT(KLON), &
+                    & ZFRMIN(KLON,2),ZMU,ZVAL
+INTEGER(KIND=JPIM) :: ITOP, IBASE, JKO,JKE
+
+!cstep 30082007: introduce two parcel time scales, one for the test parcel (ZTAUEPS_TEST) and one
+!              : for the actual parcels (ZTAUEPS)
+REAL(KIND=JPRB) :: ZTAUEPS_TEST
+
+INTEGER(KIND=JPIM) :: IZI(KLON,KDRAFT)
+
+
+REAL(KIND=JPRB) ::    ZHOOK_HANDLE
+
+
+#include "surf_inq.h"
+
+#include "vdfparcelhl.intfb.h"
+#include "vdfpdftablehl.intfb.h"
+#include "vdfexcuhl.intfb.h"
+#include "fcttre.func.h"
+
+
+
+!     ------------------------------------------------------------------
+
+!*         1.     INITIALIZATION
+!                 --------------
+
+IF (LHOOK) CALL DR_HOOK('VDFHGHTNHL',0,ZHOOK_HANDLE)
+ASSOCIATE(RTAUMEL=>YDECUMF%RTAUMEL, &
+ & RG=>YDCST%RG, RCPD=>YDCST%RCPD, RETV=>YDCST%RETV, RLVTT=>YDCST%RLVTT, RLSTT=>YDCST%RLSTT, &
+ & RATM=>YDCST%RATM, RTT=>YDCST%RTT, RLMLT=>YDCST%RLMLT, RD=>YDCST%RD, &
+ & R2ES=>YDTHF%R2ES, R3LES=>YDTHF%R3LES, R3IES=>YDTHF%R3IES, R4LES=>YDTHF%R4LES, &
+ & R4IES=>YDTHF%R4IES, R5LES=>YDTHF%R5LES, R5IES=>YDTHF%R5IES, R5ALVCP=>YDTHF%R5ALVCP, &
+ & R5ALSCP=>YDTHF%R5ALSCP, RALVDCP=>YDTHF%RALVDCP, RALSDCP=>YDTHF%RALSDCP, &
+ & RTWAT=>YDTHF%RTWAT, RTICE=>YDTHF%RTICE, RTICECU=>YDTHF%RTICECU, RTWAT_RTICE_R=>YDTHF%RTWAT_RTICE_R, &
+ & RTWAT_RTICECU_R=>YDTHF%RTWAT_RTICECU_R, &
+ & YSURF=>YDEPHY%YSURF,LHARATU=>YDPARAR%LHARATU, &
+ & LTOTPREC=>YDPARAR%LTOTPREC,LTOTPRECL=>YDPARAR%LTOTPRECL)
+
+ZWL= 200._JPRB
+ZWT= 400._JPRB
+! typical entrainment values at LCL (L) and TOP (T)
+ZEL= 0.002_JPRB
+ZET= 0.002_JPRB
+ZPRES_0 = 100000._JPRB     ! standard pressure consistent with vdfexcu
+ZKAPPA = RD / RCPD         ! consistent with vdfexcu
+
+ZFRACTEST   = 0.002_JPRB   ! top % of the PDF associated with the test parcel
+CALL VDFPDFTABLEHL (ZFRACTEST, ZFACTESTEXC, ZDUMR, ZDUMR, 0) ! associated PDF scaling factor
+
+
+ZFRACMAX    = 0.1_JPRB     ! total convective area fraction that is done with mass flux
+
+CALL VDFPDFTABLEHL (ZFRACMAX, ZFACMAXEXC, ZDUMR, ZDUMR, 0) ! associated PDF scaling factor
+
+! eddy turnover time scale used in parcel entrainment [s]  (Neggers, Siebesma & Jonker, JAS 2002)
+ZTAUEPS_TEST = 400._JPRB   ! Roel's original ZTAUEPS value
+
+
+!ZW2THRESH  = -1._JPRB     ! threshold parcel vertical velocity squared [m2/s2]
+!CGL
+ZW2THRESH   = 0.0_JPRB
+
+ZCLDDEPTH   = 2000._JPRB   ! threshold cloud thickness for stcu/cu transition [m]
+
+ZCLDDEPTHDP = 4000._JPRB ! threshold cloud thickness used in shallow/deep decision [m]
+
+TVEXCSURF = 0.0_JPRB ! initialisation
+
+IF(XFRMIN(19)>0.)ZCLDDEPTH = XFRMIN(19)
+IF(XFRMIN(20)>0.)ZCLDDEPTHDP = XFRMIN(20)
+
+
+ZSTABTHRESH = 20._JPRB     ! threshold stability (Klein & Hartmann criteria) [K]
+ZBIRTHRESH  = 0.1_JPRB     ! threshold BIR (TKE decoupling criteria) [1]
+
+CALL SURF_INQ(YSURF,PREPUST=ZREPUST)
+
+! optimization
+ZRG         = 1.0_JPRB/RG
+ZLAT2CP     = RLVTT/RCPD
+ZEL2R       = 0.62198_JPRB*RLVTT/RD
+ZEI2R       = 0.62198_JPRB*RLSTT/RD
+
+DO JL=KIDIA,KFDIA
+   KPBLTYPE(JL)     = -1           ! -1 means: yet unknown
+
+   ZZI(JL)          = 0._JPRB      ! mixed layer scalings
+   ZWSTAR(JL)       = 0._JPRB
+
+   PRICUI(JL)       = 1._JPRB      ! 1 / cumulus inversion Richardson number
+   ZCAPE1(JL)       = 0._JPRB
+
+ENDDO
+
+DO JD=1,KDRAFT
+   DO JL=KIDIA,KFDIA
+      PZPLCL(JL,JD)  = -100._JPRB  ! default value: -100 (no LCL)
+      PZPTOP(JL,JD)  = 0._JPRB
+      KPLCL(JL,JD)   = 0           ! default value: 0 (no PBL cloud)
+      KPTOP(JL,JD)   = 0
+      KPLZB(JL,JD)   = 0
+      LLDONE(JL,JD)  = .TRUE.      ! default: TRUE (don't launch the parcel)
+      ZFRACB(JL,JD)  = 0._JPRB
+      PFRACB(JL,JD)  = 0._JPRB
+      ZFACEXC(JL,JD) = 0._JPRB
+      ZMFLXB(JL,JD)  = 0._JPRB
+      ZTVEXCSURF(JL,JD) = 0._JPRB
+   ENDDO
+ENDDO
+
+DO JK=0,KLEV
+   DO JL=KIDIA,KFDIA
+      ZCHICRIT(JL,JK) = 0._JPRB
+   ENDDO
+ENDDO
+
+!--- parcel half level parameters ---
+DO JD=1,KDRAFT
+   DO JK=0,KLEV
+      DO JL=KIDIA,KFDIA
+         PUUH(JL,JK,JD)    = 0.0_JPRB
+         PVUH(JL,JK,JD)    = 0.0_JPRB
+         PSLGUH(JL,JK,JD)  = 0.0_JPRB
+         PQTUH(JL,JK,JD)   = 0.0_JPRB
+         PTHTVUH(JL,JK,JD) = 0.0_JPRB
+         PMFLX(JL,JK,JD)   = 0.0_JPRB
+         ZTUH(JL,JK,JD)    = 0.0_JPRB
+         ZQUH(JL,JK,JD)    = 0.0_JPRB
+         ZQCUH(JL,JK,JD)   = 0.0_JPRB
+         ZEPS(JL,JK,JD)    = 0.0_JPRB
+         ZDETR(JL,JK,JD)   = 0.0_JPRB
+         ZWU2H(JL,JK,JD)   = 0.0_JPRB
+         ZFRAC(JL,JK,JD)   = 0.0_JPRB
+         ZUPFLXL(JL,JK,JD) = 0.0_JPRB
+         ZUPFLXN(JL,JK,JD) = 0.0_JPRB
+         ZVARQ(JL,JK)       = 0.0_JPRB
+         ZENCASC(JL,JK) =0.0_JPRB
+      ENDDO
+   ENDDO
+ENDDO
+
+!--- parcel full level parameters ---
+DO JD=1,KDRAFT
+   DO JK=1,KLEV
+      DO JL=KIDIA,KFDIA
+         ZBUOF(JL,JK,JD)    = 0.0_JPRB
+         ZUPGENL(JL,JK,JD)  = 0.0_JPRB
+         ZUPGENN(JL,JK,JD)  = 0.0_JPRB
+      ENDDO
+   ENDDO
+ENDDO
+
+! Setup SPP patterns 
+IF (YSPP_CLDDPTH%LPERT) THEN
+  CALL APPLY_SPP(YSPP_CLDDPTH, &
+               & KLON,KIDIA,KFDIA, &
+               & ZCLDDEPTH,ZFRMIN(:,1))
+ELSE
+  DO JL=KIDIA,KFDIA
+    ZFRMIN(JL,1) = ZCLDDEPTH
+  ENDDO
+ENDIF
+
+IF (YSPP_CLDDPTHDP%LPERT) THEN
+  CALL APPLY_SPP(YSPP_CLDDPTHDP, &
+               & KLON,KIDIA,KFDIA, &
+               & ZCLDDEPTHDP,ZFRMIN(:,2))
+ELSE
+  DO JL=KIDIA,KFDIA
+    ZFRMIN(JL,2) = ZCLDDEPTHDP
+  ENDDO
+ENDIF
+
+
+
+!     -----------------------------------------------------------------
+
+!*         2.     PREPARE FIELDS ON HALF LEVELS BY LINEAR INTERPOLATION
+!*                OF CONSERVED VARIABLES
+!                 -----------------------------------------------------
+
+!*         2.1  full level cpm, slg, qt and Tv
+!*
+
+DO JK=1,KLEV
+   DO JL=KIDIA,KFDIA
+      ZSLGM1(JL,JK) = RCPD * PTM1(JL,JK) + PGEOM1(JL,JK)&
+           & - RLVTT * PLM1(JL,JK) - RLSTT * PIM1(JL,JK)
+      ZQTM1 (JL,JK) = PQM1(JL,JK) + PLM1(JL,JK) + PIM1(JL,JK)
+
+      !          parcel goes through cloud portion of environment
+      !          (added ql loading; ql,cld=ql,mean/fc; qv = qsat)
+      !          safety: fc>0.1; linear interpolation between overcast
+      !                  and cloudy portion for 0<fc<0.1
+      !                  guaranteed to be < tv from mean conditions
+
+      !          grid box mean virtual effect
+      ZTVMEAN       = PTM1(JL,JK) * ( 1.0_JPRB + RETV * PQM1(JL,JK)&
+           & - PLM1(JL,JK) - PIM1(JL,JK) )       !qli loading
+      ZTVEN(JL,JK) = ZTVMEAN
+      ZTHVEN(JL,JK) = ZTVEN(JL,JK) / PEXNF(JL,JK) !( PAPM1(JL,JK)/RATM )**(-RD/RCPD) * ZTVEN(JL,JK)
+   ENDDO
+ENDDO
+
+
+!*         2.2  half-level environment interpolation (qt, ql, qi, slg)
+!*              attention:  not good to interpolate everything independently
+!*              better:     interpolate conserved variables and derive rest!!!
+!*
+
+DO JK=1,KLEV-1
+   DO JL=KIDIA,KFDIA
+
+      IF (JK==1) THEN
+         ZGHM1 = PGEOH(JL,JK) + 50000._JPRB*RG   !avoid using top half level (=inf)
+      ELSE
+         ZGHM1 = PGEOH(JL,JK-1)
+      ENDIF
+
+      ZQTENH(JL,JK) = ( ZQTM1(JL,JK+1) *(ZGHM1-PGEOH(JL,JK  )) &
+                  & +   ZQTM1(JL,JK)   *(PGEOH(JL,JK  )-PGEOH(JL,JK+1)) &
+                  &   )                /(ZGHM1-PGEOH(JL,JK+1))
+      ZQLENH(JL,JK) = ( PLM1(JL,JK+1)  *(ZGHM1-PGEOH(JL,JK  )) &
+                  & +   PLM1(JL,JK)    *(PGEOH(JL,JK  )-PGEOH(JL,JK+1)) &
+                  &   )                /(ZGHM1-PGEOH(JL,JK+1))
+      ZQIENH(JL,JK) = ( PIM1(JL,JK+1)  *(ZGHM1-PGEOH(JL,JK  )) &
+                  & +   PIM1(JL,JK)    *(PGEOH(JL,JK  )-PGEOH(JL,JK+1)) &
+                  &   )                /(ZGHM1-PGEOH(JL,JK+1))
+
+      ZQVENH(JL,JK) = ZQTENH(JL,JK) - ZQLENH(JL,JK) - ZQIENH(JL,JK)
+
+      ZSLGENH(JL,JK)= ( ZSLGM1(JL,JK+1)*(ZGHM1-PGEOH(JL,JK  )) &
+                  & +   ZSLGM1(JL,JK)  *(PGEOH(JL,JK  )-PGEOH(JL,JK+1)) &
+                  &   )                /(ZGHM1-PGEOH(JL,JK+1))
+      ZUENH(JL,JK)  = ( PUM1(JL,JK+1)  *(ZGHM1-PGEOH(JL,JK  )) &
+                  & +   PUM1(JL,JK)    *(PGEOH(JL,JK  )-PGEOH(JL,JK+1)) &
+                  &   )                /(ZGHM1-PGEOH(JL,JK+1))
+      ZVENH(JL,JK)  = ( PVM1(JL,JK+1)  *(ZGHM1-PGEOH(JL,JK  )) &
+                  & +   PVM1(JL,JK)    *(PGEOH(JL,JK  )-PGEOH(JL,JK+1)) &
+                  &   )                /(ZGHM1-PGEOH(JL,JK+1))
+
+
+      !  Calculate T at half levels from sl, for later use in density calculations
+      ZTENH(JL,JK)  =  ( PTM1(JL,JK+1)  *(ZGHM1-PGEOH(JL,JK  )) &
+                   & +   PTM1(JL,JK)    *(PGEOH(JL,JK  )-PGEOH(JL,JK+1)) &
+                   &   )                /(ZGHM1-PGEOH(JL,JK+1))
+
+      !  Determine thetav environment
+      ZTHTENH(JL,JK) = (ZTENH(JL,JK)/PEXNH(JL,JK))
+      ZTHTVENH(JL,JK) = (ZTENH(JL,JK)/PEXNH(JL,JK)) &
+           &     * (1._JPRB + RETV * ZQVENH(JL,JK) &
+                                ! add qice correction
+           &      - ZQLENH(JL,JK) )
+
+      ! initialize updraft thetav for dry and moist updraft with environment values
+      PTHTVUH(JL,JK,1)=ZTHTVENH(JL,JK)
+      PTHTVUH(JL,JK,2)=ZTHTVENH(JL,JK)
+      PTHTVUH(JL,JK,3)=ZTHTVENH(JL,JK)
+      PQTUH(JL,JK,1)=ZQTENH(JL,JK)
+      PQTUH(JL,JK,2)=ZQTENH(JL,JK)
+      PQTUH(JL,JK,3)=ZQTENH(JL,JK)
+      PUUH(JL,JK,1)=ZUENH(JL,JK)
+      PUUH(JL,JK,2)=ZUENH(JL,JK)
+      PUUH(JL,JK,3)=ZUENH(JL,JK)
+      PVUH(JL,JK,1)=ZVENH(JL,JK)
+      PVUH(JL,JK,2)=ZVENH(JL,JK)
+      PVUH(JL,JK,3)=ZVENH(JL,JK)
+      PSLGUH(JL,JK,1)=ZSLGENH(JL,JK)
+      PSLGUH(JL,JK,2)=ZSLGENH(JL,JK)
+      PSLGUH(JL,JK,3)=ZSLGENH(JL,JK)
+
+
+      ZRHOH(JL,JK) = PAPHM1(JL,JK)/(RD*ZTENH(JL,JK))
+
+   ENDDO
+ENDDO
+
+!
+!  Initialization lowest updraft level with environment like values
+!
+DO JD=1,KDRAFT
+   DO JL=KIDIA,KFDIA
+      PUUH(JL,KLEV,JD)  = PUUH(JL,KLEV-1,JD)
+      PVUH(JL,KLEV,JD)  =  PVUH(JL,KLEV-1,JD)
+      PSLGUH(JL,KLEV,JD)= PSLGUH(JL,KLEV-1,JD)
+      PQTUH(JL,KLEV,JD) = PQTUH(JL,KLEV-1,JD)
+      PTHTVUH(JL,KLEV,JD) =  PTHTVUH(JL,KLEV-1,JD)
+   ENDDO
+ENDDO
+
+
+
+!     -----------------------------------------------------------------
+!*         3.     RELEASE THE FIRST (TEST) UPDRAFT TO GET PBL HEIGHTS
+
+
+!* set updraft index to 1
+JD = 1
+
+DO JL=KIDIA,KFDIA
+
+   ZFRACB(JL,JD) = ZFRACMAX  !CGL replaced ZFRACB(JL,JD) = ZFRACTEST
+
+   !* 3.1    Determine stability of BL using the surface buoyancy flux
+
+   ZKHVFL(JL)  = ( 1.0_JPRB + RETV *  ZQTM1(JL,KLEV) ) * PKHFL(JL) +&
+        & ( RETV * ZSLGM1(JL,KLEV) / RCPD )     * PKQFL(JL)
+
+   IF ( ZKHVFL(JL) >= 0.0_JPRB ) THEN
+
+      ! stable BL (no updrafts expected/needed)
+      KPBLTYPE(JL)  = 0
+
+   ELSE
+
+      LLDONE(JL,JD) = .FALSE.  !confirm launch
+
+      !* 3.2    Sigma-w-L60 (ignore 1-z/zi term)
+
+      ZUSTAR  (JL)  = MAX( SQRT(PKMFL(JL)), ZREPUST )      ! u* (repust=10e-4
+
+      ZWSIGMA(JL)      = 1.2_JPRB&
+           & * ( ZUSTAR(JL)**3&
+           & - 1.5_JPRB * RKAP * ZKHVFL(JL) * (PGEOH(JL,KLEV-1)-PGEOH(JL,KLEV))&
+           &  / PTM1(JL,KLEV-1)&
+           & ) ** ( 1.0_JPRB/3._JPRB )                         ! Kolmogorov 1/3-power
+
+
+
+      !* 3.3    Initialize updraft
+
+      !get the constant associated with the top ZFRACTEST % of the PDF
+      ZFACEXC(JL,1) = ZFACTESTEXC
+      !calculate the initial excess values
+      ZWU2H(JL,KLEV-1,JD) = ( ZFACEXC(JL,1) * ZWSIGMA(JL) )**2
+      ZTEXC               = - ZFACEXC(JL,1) * PKHFL(JL) / ZWSIGMA(JL)
+      ZQEXC               = - ZFACEXC(JL,1) * PKQFL(JL) / ZWSIGMA(JL)
+      ZTEXC            = MAX(ZTEXC, 0.0_JPRB)
+      ZQEXC            = MAX(ZQEXC, 0.0_JPRB)
+      PQTUH(JL,KLEV-1,JD) = ZQTENH(JL,KLEV-1) + ZQEXC
+      ZQCUH(JL,KLEV-1,JD) = ZQLENH(JL,KLEV-1) + ZQIENH(JL,KLEV-1)
+      ZQUH (JL,KLEV-1,JD) = PQTUH(JL,KLEV-1,JD)  - ZQCUH(JL,KLEV-1,JD)
+      PSLGUH(JL,KLEV-1,JD)= ZSLGENH(JL,KLEV-1) + RCPD * ZTEXC
+      ZTUH (JL,KLEV-1,JD) = ( PSLGUH (JL,KLEV-1,JD) - PGEOH(JL,KLEV-1)&
+           & + RLVTT*ZQLENH(JL,KLEV-1) + RLSTT*ZQIENH(JL,KLEV-1)&
+           & ) / RCPD
+      PUUH(JL,KLEV-1,JD)= ZUENH(JL,KLEV-1)
+      PVUH(JL,KLEV-1,JD)= ZVENH(JL,KLEV-1)
+
+   ENDIF
+ENDDO !JL
+
+
+!* 3.4   Release the test updraft #1
+!*          - Mainly used to get a first guess of the heights of cloud base & inversion,
+!*            and to determine PBL type accordingly.
+
+ZTAUEPS(:) = 400._JPRB
+
+!
+CALL VDFPARCELHL(YDEPHLI,YDPARAR,KIDIA,KFDIA,KLON,KLEV,KDRAFT,PGEOH,PGEOM1,PAPHM1,PUM1,PVM1,ZQTM1,ZSLGM1,ZTVEN,PUUH,PVUH,&
+ & PSLGUH,PQTUH,ZWU2H,ZQCUH,ZBUOF,ZQUH,ZTUH,ZEPS,PZPLCL,KPLCL,PZPTOP,KPTOP,KPLZB,JD,ZUPGENL,ZUPGENN,ZTAUEPS,ZW2THRESH,LLDONE,KPBLTYPE)
+
+
+
+!     -----------------------------------------------------------------
+!*         4.     CLASSIFICATION OF THE CONVECTIVE PBL
+!                 ------------------------------------
+
+
+!* 4.1    Classify the convective PBL
+!*
+
+
+DO JL=KIDIA,KFDIA
+   IF ( KPBLTYPE(JL)/=0 ) THEN
+
+      !CGL loose criterium by 100 m
+      IF ( PZPLCL(JL,1) > (PZPTOP(JL,1)+100._JPRB) .OR. KPLCL(JL,1) == 0 ) THEN
+
+         !dry convective PBL
+         KPBLTYPE(JL)  = 1                   !dry convective PBL
+         ZDZCLOUD(JL)  = 0.0_JPRB            !cloud thickness
+
+      ELSE
+
+         !moist convective PBL
+         ZDZCLOUD(JL)  = PZPTOP(JL,1) - PZPLCL(JL,1) !cloud thickness
+         IF (ZDZCLOUD(JL)>ZFRMIN(JL,2)) THEN
+
+            !deep convection
+            KPBLTYPE(JL) = 4
+         ELSE
+
+!wc no special stratocumulus regime anymore
+!           KPBLTYPE(JL) = 2   !set the type to stratocumulus for the moment
+            KPBLTYPE(JL) = 3   !set the type to stratocumulus for the moment
+
+         ENDIF
+
+      ENDIF
+
+   ENDIF !KPBLTYPE /=0
+ENDDO !JL
+
+
+
+!wc no special stratocumulus regime anymore
+!* 4.2    Check the stratocumulus/shallow cumulus criterion (trigger function)
+!*        If shallow cumulus is diagnosed, KPBLTYPE will be set to 3
+!*
+!CALL VDFSTCUCRITHL ( KIDIA , KFDIA  , KLON  , KLEV , KDRAFT ,&
+!     &    PTM1  , ZSLGM1 , ZQTM1 , PAPM1 ,&
+!     &    ZSTABTHRESH, ZCLDDEPTH, ZBIRTHRESH, ZDZCLOUD,&
+!     &    KPTOP , KPBLTYPE, LDNODECP)
+
+
+!     -----------------------------------------------------------------
+
+!*         5.     CLOSURE FOR ORGANIZED UPDRAFTS (JD=2,3)
+!                 ---------------------------------------
+
+
+!* 5.1    Determine some mixed layer scalings
+!*
+
+DO JL=KIDIA,KFDIA
+
+   IF ( KPBLTYPE(JL)/=0 ) THEN    !don't do this for stable PBL
+
+      SELECT CASE (KPBLTYPE(JL))
+
+      CASE(1)
+         !Dry convective PBL - Inversion height
+         ZZI(JL)   = PZPTOP(JL,1)
+
+      CASE(2)
+         !Stratocumulus - Inversion height
+         !CAUTION: During decoupling in the intermediate regime (e.g. ASTEX/ATEX) the
+         !   relevant ML scaling height changes from PBL inversion to level of minimum
+         !   buoyancy flux. In the current setup this is not modelled yet!
+         ZZI(JL)   = PZPTOP(JL,1)
+
+      CASE(3)
+         !Shallow cumulus - Level of minimum buoyancy flux
+         !Assume that the moist updraft LCL is very close to this level
+         ZZI(JL)   = PZPLCL(JL,1)
+
+      CASE(4)
+         !Deep cumulus - Only do a dry parcel up to cloud base
+         ZZI(JL)   = PZPLCL(JL,1)
+
+      END SELECT
+
+      !--- Mixed layer convective velocity scale ---
+      ZWSTAR(JL) = ( -ZKHVFL(JL) * RG * ZZI(JL) / ZTHVEN(JL,KLEV)  ) ** (1._JPRB/3._JPRB)
+      ! CGL for the moment revert back to old constant time scale
+      ZTAUEPS(JL) = 400._JPRB
+
+
+   ENDIF
+
+ENDDO
+
+
+!* 5.3    Closure of updraft area fractions (JD=2,3)
+!*
+
+DO JL=KIDIA,KFDIA
+
+   IF ( KPBLTYPE(JL)/=0 ) THEN    !don't do this for stable PBL
+
+      SELECT CASE (KPBLTYPE(JL))
+
+        CASE(1)
+          !Dry convective PBL
+          ZFRACB(JL,3) = 0._JPRB
+          ZFRACB(JL,2) = ZFRACMAX - ZFRACB(JL,3)
+          !          ZFRACB(JL,2) = ZFRACB(JL,2)*(1.-EXP(-ZZI(JL)/400._JPRB))
+        CASE(2)
+          !Stratocumulus
+          ZFRACB(JL,3) = 0.1_JPRB
+          ZFRACB(JL,2) = ZFRACMAX - ZFRACB(JL,3)
+        CASE(3)
+          !Shallow cumulus
+          ZFRACB(JL,3)  = 0.03_JPRB
+          ZFRACB(JL,2) = ZFRACMAX - ZFRACB(JL,3)
+          !          ZFRACB(JL,2) = ZFRACB(JL,2)*(1.-EXP(-ZZI(JL)/400._JPRB) )
+
+        CASE(4)
+          !Deep cumulus
+          ZFRACB(JL,3) = 0._JPRB
+          ZFRACB(JL,2) = ZFRACMAX - ZFRACB(JL,3)
+
+      END SELECT !KPBLTYPE
+
+
+   ENDIF !KPBLTYPE /=0
+
+ENDDO !JL
+
+
+
+!     -----------------------------------------------------------------
+
+!*         6.     CALCULATE VERTICAL PROFILES OF ALL UPDRAFTS (JD=2,3)
+!                 ----------------------------------------------------
+
+
+!*       6.1    Calculate the scaling factors of the updraft excess with the surface joint PDFs
+!*
+DO JD = 2,KDRAFT
+   DO JL=KIDIA,KFDIA
+
+      IF ( KPBLTYPE(JL)/=0 .AND. ZFRACB(JL,JD)>0._JPRB ) THEN
+
+         !-- Get the PDF scaling factor --
+         SELECT CASE (JD)
+
+         CASE(2)
+            !lower part of top ZFRACMAX %
+            ZDUMFRAC = ZFRACMAX - ZFRACB(JL,2)
+            CALL VDFPDFTABLEHL(ZDUMFRAC , ZFACEXC(JL,2), ZDUMR, ZDUMR, 0)
+            ZFACEXC(JL,2) = ( ZFRACMAX * ZFACMAXEXC - ZDUMFRAC * ZFACEXC(JL,2) ) / ZFRACB(JL,2)
+         CASE(3)
+            !upper part of top ZFRACMAX %
+            ZDUMFRAC = ZFRACB(JL,JD)
+            CALL VDFPDFTABLEHL(ZDUMFRAC , ZFACEXC(JL,3), ZDUMR, ZDUMR, 0)
+
+         END SELECT
+
+      ENDIF !KPBLTYPE & ZFRACB
+
+   ENDDO !JL
+ENDDO !JD
+
+
+!*       6.2    Vertical integration of dry & moist updraft budgets (JD=2,3)
+!*
+DO JD = 2,KDRAFT
+
+   !-- Initialize updraft --
+   DO JL=KIDIA,KFDIA
+
+      IF ( KPBLTYPE(JL)/=0 .AND. ZFRACB(JL,JD)>0._JPRB ) THEN
+
+         LLDONE(JL,JD) = .FALSE. !confirm launch
+
+         ZTEXC            = - ZFACEXC(JL,JD) * PKHFL(JL) / ZWSIGMA(JL)
+         ZQEXC            = - ZFACEXC(JL,JD) * PKQFL(JL) / ZWSIGMA(JL)
+
+         ZWU2H(JL,KLEV-1,JD) = (ZWSIGMA(JL))**2
+
+         ZTEXC            = MAX(ZTEXC, 0.0_JPRB)
+         ZQEXC            = MAX(ZQEXC, 0.0_JPRB)
+
+         ! cgl thv excess surface ; used to correct buoyancy flux
+         ZTVEXCSURF(JL,JD) = ZTEXC + RETV*(ZQEXC*PTM1(JL,KLEV-1) + ZQTENH(JL,KLEV-1)*ZTEXC)
+
+         PQTUH(JL,KLEV-1,JD) = ZQTENH(JL,KLEV-1) + ZQEXC
+         ZQCUH(JL,KLEV-1,JD) = ZQLENH(JL,KLEV-1) + ZQIENH(JL,KLEV-1)
+         ZQUH (JL,KLEV-1,JD) = PQTUH(JL,KLEV-1,JD)  - ZQCUH(JL,KLEV-1,JD)
+         PSLGUH(JL,KLEV-1,JD)= ZSLGENH(JL,KLEV-1) + RCPD * ZTEXC
+         ZTUH (JL,KLEV-1,JD) = ( PSLGUH (JL,KLEV-1,JD) - PGEOH(JL,KLEV-1) &
+              & + RLVTT*ZQLENH(JL,KLEV-1) + RLSTT*ZQIENH(JL,KLEV-1) &
+              & ) / RCPD
+         PUUH(JL,KLEV-1,JD)= ZUENH(JL,KLEV-1)
+         PVUH(JL,KLEV-1,JD)= ZVENH(JL,KLEV-1)
+
+      ENDIF !KPBLTYPE & ZFRACB
+
+   ENDDO !JL
+
+
+   !-- Release the updraft --
+
+   CALL VDFPARCELHL(YDEPHLI,YDPARAR,KIDIA,KFDIA,KLON,KLEV,KDRAFT,PGEOH,PGEOM1,PAPHM1,PUM1,PVM1,ZQTM1,ZSLGM1,ZTVEN,PUUH, &
+     & PVUH,PSLGUH,PQTUH,ZWU2H,ZQCUH,ZBUOF,ZQUH,ZTUH,ZEPS,PZPLCL,KPLCL,PZPTOP,KPTOP,KPLZB,JD,ZUPGENL,ZUPGENN,ZTAUEPS,ZW2THRESH, &
+     & LLDONE,KPBLTYPE)
+
+
+ENDDO !JD
+
+
+!*        6.3. In case no lcl is found in final updraft calculation, do some resque
+!*
+!*
+! CGL      made an adjustment in vdfparcel to initialize pzplcl = -100
+
+DO JL=KIDIA,KFDIA
+
+   IF ( KPBLTYPE(JL)==2 .OR. KPBLTYPE(JL)==3) THEN
+
+      IF (  PZPLCL(JL,3) < 0._JPRB .OR. KPLCL(JL,3)<KPTOP(JL,3) &
+      &.OR. KPLCL(JL,3)==0  .OR. KPTOP(JL,3)==0 ) THEN
+         KPBLTYPE(JL) = 1
+         ZFRACB(JL,2) = ZFRACMAX
+         ZFRACB(JL,3) = 0._JPRB
+         KPLCL(JL,3) = 0
+      ENDIF
+
+   ENDIF
+
+ENDDO !JL
+
+!*        6.5  Updraft precipitation fluxes (rain and snow)
+!*
+DO JD = 3,KDRAFT  !moist updrafts only
+
+   DO JK=2,KLEV
+      DO JL=KIDIA,KFDIA
+
+         ZDZRHO = ZRG * ( PAPHM1(JL,JK)-PAPHM1(JL,JK-1) )
+
+         !-- Add precip generation to flux [kg /m2 /s: tendency * layer depth * air density] --
+         ZUPFLXL(JL,JK,JD) = ZUPFLXL(JL,JK-1,JD) + ZUPGENL(JL,JK,JD) * ZDZRHO
+         ZUPFLXN(JL,JK,JD) = ZUPFLXN(JL,JK-1,JD) + ZUPGENN(JL,JK,JD) * ZDZRHO
+
+         !-- Do some melting at freezing level (snow->rain) --
+         IF (ZUPFLXN(JL,JK,JD)>0._JPRB .AND. PTM1(JL,JK) > RTT) THEN
+!wc
+!   No melting and evaporation in the convection scheme in case LTOTPREC=TRUE
+!   because this will be done inside microphysics
+          IF (LTOTPREC) THEN
+            ZUPMELT = 0._JPRB
+          ELSE
+            ZUPMELT = (1.0_JPRB+0.5_JPRB*(PTM1(JL,JK)-RTT)) * &
+                 & (PTM1(JL,JK)-RTT) * RCPD/(RLMLT*RTAUMEL) * ZDZRHO
+            ZUPMELT = MIN(ZUPFLXN(JL,JK,JD),ZUPMELT)
+          ENDIF
+            ZUPFLXL(JL,JK,JD) = ZUPFLXL(JL,JK,JD) + ZUPMELT
+            ZUPFLXN(JL,JK,JD) = ZUPFLXN(JL,JK,JD) - ZUPMELT
+         ENDIF
+
+         ZPFLXTOT = ZUPFLXL(JL,JK,JD) + ZUPFLXN(JL,JK,JD)
+
+         IF (ZPFLXTOT>0._JPRB) THEN
+
+            !-- Saturation deficit of mean state T -
+            ZESW=ESATW(PTM1(JL,JK))
+            ZESI=ESATI(PTM1(JL,JK))
+            ZFAC = ZUPFLXL(JL,JK,JD) / ZPFLXTOT
+            ZES = ZESW*ZFAC + ZESI*(1._JPRB-ZFAC) ! Weigting according to precititation type
+            ZQSAT = 0.62198_JPRB*ZES/(MAX(ZES,PAPM1(JL,JK))-0.37802_JPRB*ZES)
+          ! Above boiling point for PAPHM1(JL,JK) < ZES --> no condensation. May happen in stratosphere, ZQSATU becomes 1.
+            ZSATDEF=ZQSAT-PQM1(JL,JK) ! Also allow deposition = negative values
+
+            !-- Precip evaporation tendency [kg/kg /s] (Kessler 1969, Tiedtke 1993) --
+!wc
+!   No melting and evaporation in the convection scheme in case LTOTPREC=TRUE
+!   because this will be done inside microphysics
+            IF (LTOTPREC) THEN
+               ZPEVAPUP = 0._JPRB
+            ELSE
+               ZPEVAPUP = 0.001_JPRB * ZSATDEF * ( &             !cy32r1
+                    & ( ZPFLXTOT / 0.00509_JPRB ) * &
+                    & ( PAPM1(JL,JK)/PAPHM1(JL,KLEV) )**0.5_JPRB &
+                    & )**0.5777_JPRB
+
+            ENDIF
+            !-- Back-partition evaporation and substract from fluxes --
+            ZUPFLXL(JL,JK,JD) = ZUPFLXL(JL,JK,JD) - ZPEVAPUP * ZDZRHO * ZFAC
+            ZUPFLXN(JL,JK,JD) = ZUPFLXN(JL,JK,JD) - ZPEVAPUP * ZDZRHO * (1._JPRB - ZFAC)
+            ZUPFLXL(JL,JK,JD) = MAX(0._JPRB,ZUPFLXL(JL,JK,JD))
+            ZUPFLXN(JL,JK,JD) = MAX(0._JPRB,ZUPFLXN(JL,JK,JD))
+         ENDIF
+
+      ENDDO
+   ENDDO
+
+   !Add contribution to total flux - weight by updraft area fraction
+   !(or weighted by the mean cloud fraction in the cloud layer
+   ! in case of LTOTPREC = TRUE.)
+
+   IF (LTOTPREC .AND. (.NOT.LTOTPRECL)) THEN
+
+      !compute mean cloud-fraction in the convective cloud layer:
+
+      DO JL=KIDIA,KFDIA
+         PCLFR(JL)=0._JPRB
+      ENDDO
+
+      DO JL=KIDIA,KFDIA
+         ZB1(JL)=0.0_JPRB
+         ZCOUNT(JL)=0.0_JPRB
+         ITOP=KPTOP(JL,3)
+         IBASE=KPLCL(JL,3)
+         IF (ITOP > 0 .AND. IBASE > 0) THEN
+            DO JK=ITOP,IBASE
+               ZB1(JL)=ZB1(JL)+PAM1(JL,JK)
+               ZCOUNT(JL)=ZCOUNT(JL)+1._JPRB
+            ENDDO
+         ENDIF
+      ENDDO
+
+      DO JL=KIDIA,KFDIA
+         IF (ZB1(JL) > 0.0_JPRB .AND. ZCOUNT(JL) > 0.0_JPRB) THEN
+            PCLFR(JL)=ZB1(JL)/ZCOUNT(JL)
+         ENDIF
+      ENDDO
+
+      DO JK=0,KLEV
+         DO JL=KIDIA,KFDIA
+            PFPLVL(JL,JK) = PFPLVL(JL,JK) + PCLFR(JL) * ZUPFLXL(JL,JK,JD)
+            PFPLVN(JL,JK) = PFPLVN(JL,JK) + PCLFR(JL) * ZUPFLXN(JL,JK,JD)
+         ENDDO
+      ENDDO
+
+   ELSE
+      DO JK=0,KLEV
+         DO JL=KIDIA,KFDIA
+            PFPLVL(JL,JK) = PFPLVL(JL,JK) + ZFRACB(JL,JD) * ZUPFLXL(JL,JK,JD)
+            PFPLVN(JL,JK) = PFPLVN(JL,JK) + ZFRACB(JL,JD) * ZUPFLXN(JL,JK,JD)
+         ENDDO
+      ENDDO
+   ENDIF
+
+ENDDO !JD
+
+
+
+!     -----------------------------------------------------------------
+
+!*         7.     CONSTRUCT MASS FLUX PROFILES (JD=2,3)
+!                 -------------------------------------
+
+
+!*         7.1  Determine the mixed layer scaling height for JD=2,3
+!*
+
+
+!*         7.2  Construct subcloud / mixed layer mass fluxes
+!*               - use constant area fraction, and multiply by parcel w
+!*
+DO JD = 2,KDRAFT
+
+   DO JK=KLEV-1,1,-1
+
+      DO JL=KIDIA,KFDIA
+
+         IF ( KPBLTYPE(JL)/=0 .AND. ZFRACB(JL,JD)>0._JPRB) THEN
+
+            ZWUH = ZWU2H(JL,JK,JD)**0.5_JPRB
+
+            PMFLX(JL,JK,JD)  = ZFRACB(JL,JD) * ZWUH * ZRHOH(JL,JK)
+
+            IF (JD == 3 .AND. JK >= KPLCL(JL,3) ) THEN
+               ! do only below LCL !!
+
+               PMFLX(JL,JK,JD)  = 0.35_JPRB * 0.1_JPRB * ZWSTAR(JL) *  &
+                    &         ZRHOH(JL,JK)*(PGEOH(JL,JK)-PGEOH(JL,KLEV))/ &
+                    &        (PGEOH(JL,KPLCL(JL,3))-PGEOH(JL,KLEV))
+
+               !CGL cloud depth correction, if cloud thin then limit
+               ZDZCLOUD(JL) = MAX(PGEOH(JL,KPTOP(JL,3))*ZRG-PGEOH(JL,KPLCL(JL,3))*ZRG,0._JPRB)
+               IF( ZDZCLOUD(JL)<400._JPRB ) THEN
+                  PMFLX(JL,JK,JD) = PMFLX(JL,JK,JD) * ZDZCLOUD(JL) / 400._JPRB
+               ENDIF
+
+            ENDIF
+
+            IF (ZWU2H(JL,JK,JD)>0._JPRB) THEN
+               ZFRAC(JL,JK,JD) = ZFRACB(JL,JD)
+            ELSE
+               ZFRAC(JL,JK,JD) = 0._JPRB
+            ENDIF
+
+         ENDIF
+
+      ENDDO !JL
+
+   ENDDO !JK
+
+ENDDO !JD
+
+
+! Do computation for Chi critical dpendency
+!First, determine chicritmean in lower half of the
+!                 cloud layer. chicritmean is used to determine
+!                 the fractional detrainment coefficient according
+!                 to De Rooy & Siebesma MWR 2008. In the upper
+!                 half of the cloud layer a linear decreasing
+!                 mass flux to 0 at cloud layer top is prescribed.
+
+DO JL=KIDIA,KFDIA
+
+   ! In between; determine thetavup of dry updraft (2)
+   ! This can be used for the thetav flux contribution to TKE
+
+   DO JK=KLEV-1,1,-1
+      IF (KPTOP(JL,2) <= JK .AND. KPBLTYPE(JL) > 0) THEN
+         PTHTVUH(JL,JK,2) = (ZTUH(JL,JK,2) / PEXNH(JL,JK))&
+              &  * (1._JPRB + RETV * ZQUH(JL,JK,2) )
+      ENDIF
+   ENDDO
+
+   IF (KPBLTYPE(JL) == 3   .OR. KPBLTYPE(JL) == 2 ) THEN
+
+      ZSTAR(JL) = ((PGEOH(JL,KPTOP(JL,3))-PGEOH(JL,KLEV))*ZRG+&
+      &            (PGEOH(JL,KPLCL(JL,3))-PGEOH(JL,KLEV))*ZRG)/2._JPRB
+      ZMINIMUM(JL) = 10000._JPRB
+      ZMEANCHICRIT(JL) = 0._JPRB
+
+      ! Find level half way the cloud layer
+
+      !CGL added security
+      IKSTAR(JL) = KPTOP(JL,3)
+
+      DO JK=KPLCL(JL,3),KPTOP(JL,3),-1
+
+
+         IF (ABS((PGEOH(JL,JK)-PGEOH(JL,KLEV))*ZRG - ZSTAR(JL)) < ZMINIMUM(JL)) THEN
+            ZMINIMUM(JL) = ABS((PGEOH(JL,JK)-PGEOH(JL,KLEV))*ZRG - ZSTAR(JL))
+            IKSTAR(JL) = JK
+         ENDIF
+
+
+         ! determine chicrit in cloud layer
+
+         ZTHTVENH(JL,JK) = (ZTENH(JL,JK) / PEXNH(JL,JK))&
+              &   * (1._JPRB + RETV * ZQVENH(JL,JK)&
+              ! add qice correction
+              &    - ZQLENH(JL,JK) -ZQIENH(JL,JK) )
+         ZTHTLUH(JL,JK) = (ZTUH(JL,JK,3) / PEXNH(JL,JK)) -&
+              & (ZLAT2CP/PEXNH(JL,JK)*ZQCUH(JL,JK,3))
+         !  N.B. ZQCUH is initialized with ql and qi from the environment!?!
+
+         ZTHTVUH(JL,JK) = (ZTUH(JL,JK,3)/ PEXNH(JL,JK))&
+              &  * (1._JPRB + RETV * ZQUH(JL,JK,3)&
+              &    - ZQCUH(JL,JK,3))
+         PTHTVUH(JL,JK,3)=ZTHTVUH(JL,JK)
+         ZTHTLEH(JL,JK) = (ZTENH(JL,JK) / PEXNH(JL,JK)) -&
+              & ZLAT2CP/ PEXNH(JL,JK)*&
+              & ZQLENH(JL,JK)
+         ZESW=ESATW(ZTUH(JL,JK,3))
+         ZESI=ESATI(ZTUH(JL,JK,3))
+         ZFAC = ZQIENH(JL,JK) / (ZQLENH(JL,JK) +ZQIENH(JL,JK) + 1.0E-20_JPRB) ! Weighting according to cloud condensate
+         ZES = ZESI*ZFAC + ZESW*(1._JPRB-ZFAC)
+         ZQSATU(JL,JK) = 0.62198_JPRB*ZES/(MAX(ZES,PAPHM1(JL,JK))-0.37802_JPRB*ZES)
+        ! Above boiling point for PAPHM1(JL,JK) < ZES --> no condensation. May happen in stratosphere, ZQSATU becomes 1.
+         ZDQSDTU(JL,JK) = ZEL2R * ZQSATU(JL,JK)/(ZTUH(JL,JK,3) * ZTUH(JL,JK,3))
+         ZGAMMA(JL,JK) = ZLAT2CP*ZDQSDTU(JL,JK)
+         ZDUMFUNC(JL,JK) = (1._JPRB/(1._JPRB+ZGAMMA(JL,JK)))*&
+              & ((ZQTENH(JL,JK)-PQTUH(JL,JK,3)) -&
+              &  PEXNH(JL,JK) * ZDQSDTU(JL,JK) *&
+              &  (ZTHTLEH(JL,JK) - ZTHTLUH(JL,JK)))
+         ZCHICRIT(JL,JK) = (ZTHTVENH(JL,JK)-ZTHTVUH(JL,JK))/&
+              & (ZTHTLUH(JL,JK)*(RETV*(ZQTENH(JL,JK) -&
+              & PQTUH(JL,JK,3)) -  (1._JPRB +RETV)*&
+              & ZDUMFUNC(JL,JK)) + (ZTHTLEH(JL,JK) -&
+              & ZTHTLUH(JL,JK)) * (1._JPRB + RETV*&
+              & PQTUH(JL,JK,3) - (1._JPRB + RETV)*&
+              & ZQCUH(JL,JK,3)) + ZLAT2CP/PEXNH(JL,JK)*&
+              &  ZDUMFUNC(JL,JK))
+
+         !CGL ; do some safety
+
+         ZCHICRIT(JL,JK) =  MIN(ZCHICRIT(JL,JK),1._JPRB)
+
+      ENDDO !JK
+
+      !   Calculate weighted mean chicrit over lower half cloud layer
+      !   Exclude cloud base level (see de Rooy & Siebesma MWR 2008)
+
+      IF (KPLCL(JL,3)-IKSTAR(JL) > 1) THEN
+         DO JK= KPLCL(JL,3)-1,IKSTAR(JL),-1
+            ZMEANCHICRIT(JL)=ZMEANCHICRIT(JL)+ZCHICRIT(JL,JK)*&
+                 & (PGEOM1(JL,JK)*ZRG-PGEOM1(JL,JK+1)*ZRG)
+         ENDDO
+         ZMEANCHICRIT(JL)=ZMEANCHICRIT(JL)/(PGEOM1(JL,IKSTAR(JL))*ZRG-&
+              &                             PGEOM1(JL,KPLCL(JL,3))*ZRG)
+
+         !   Fraction of mass flux that is left half way the cloud layer (ZFRACMB)
+         !   is determined using LES based relation between mean chicrit and ZFRACMB
+         !   Small adjustment to somewhat more active Mass flux profiles
+         !   Note that the parameterization counteracts changes in the relation, therefore
+         !   the ultimate differences are small
+
+         ZFRACMB(JL)=MAX(0.05_JPRB,5.24_JPRB*ZMEANCHICRIT(JL)-0.39_JPRB)
+         ZFRACMB(JL)=MIN(1.0_JPRB,ZFRACMB(JL))     !safety CGL
+
+
+         ! Determine (constant) detrainment coefficient
+         ! with new eps, detr should be adapted
+         ! However we can also use original detr formulation as long as we also
+         ! use eps=1/z in the mass flux calculation (the new eps is then only used
+         ! for the updraft dilution)
+         ZDETRSHALLOW(JL)=LOG(((PGEOH(JL,IKSTAR(JL))-PGEOH(JL,KLEV))*ZRG)/&
+              &  ((PGEOH(JL,KPLCL(JL,3))-PGEOH(JL,KLEV))*ZRG&
+              &   *ZFRACMB(JL)))/((PGEOH(JL,IKSTAR(JL))-PGEOH(JL,KLEV))*ZRG-&
+              &  (PGEOH(JL,KPLCL(JL,3))-PGEOH(JL,KLEV))*ZRG)
+      ELSE
+         !  only for very shallow (less that 2 layers) cloud layers
+         ZDETRSHALLOW(JL)=0.00275_JPRB
+         ! the lower assignement only has a meaning if used in combination with
+         ! extremely thin clouds
+         ZFRACMB(JL)=0.3_JPRB
+      ENDIF
+
+   ENDIF ! KPBLTYPE=3
+
+ENDDO !JL
+
+
+! end computation by for chicritical
+
+
+!*         7.3  Construct cloudy mass flux profile (JD=3 only)
+!*
+
+
+DO JK=KLEV-2,1,-1
+
+   DO JL=KIDIA,KFDIA
+
+      IF ( KPBLTYPE(JL)/=0 .AND. KPBLTYPE(JL)/=4 .AND. ZFRACB(JL,3)> 0._JPRB ) THEN
+
+         IF (JK>=KPTOP(JL,3) .AND. JK<KPLCL(JL,3)) THEN
+
+            ZWUH = ZWU2H(JL,JK,3)**0.5_JPRB
+
+            !  Cloud layer vertical structure
+
+            ! ZDELTAMINEPS should be named ZEPSMINDELTA
+
+            IF (JK+1 >= IKSTAR(JL)) THEN !lower half cloud layer
+
+               ! With changed eps formulation change zdeltamineps also
+
+               ZDELTAMINEPS(JL,JK+1) = RG/(PGEOH(JL,JK+1)-PGEOH(JL,KLEV))-ZDETRSHALLOW(JL)
+
+            ELSE !upper half cloud layer
+               ZDELTAMINEPS(JL,JK+1) = -1._JPRB/(PGEOH(JL,KPTOP(JL,3))*ZRG -&
+                    &  PGEOH(JL,JK+1)*ZRG)
+            ENDIF
+
+            ZDZ          = (PGEOH(JL,JK) - PGEOH(JL,JK+1))*ZRG
+
+            PMFLX(JL,JK,3) = PMFLX(JL,JK+1,3) * EXP( ZDZ * ( ZDELTAMINEPS(JL,JK+1) ) ) !exact
+
+            ! make a guess at area fraction;
+
+            ZWUH = ZWU2H(JL,JK,3)**0.5_JPRB
+            ZFRAC(JL,JK,3) = PMFLX(JL,JK,3) / ( ZWUH * ZRHOH(JL,JK) )
+
+         ENDIF
+
+      ENDIF
+
+   ENDDO !JL
+
+ENDDO !JK
+
+
+
+!*        7.4  Compute some fluxes used in the qt-variance budget in VDFMAIN.
+!*
+
+!*        7.5  Mass flux limit according to CFL criterion
+!*              (reduce M profiles uniformly by maximum excess)
+!*
+ZCONS10 = 1.0_JPRB/(RG*PTMST)
+DO JD = 2,KDRAFT
+   DO JL=KIDIA,KFDIA
+      ZMFS(JL,JD) = 1.0_JPRB  ! mass flux scaling value (reduction)
+   ENDDO
+ENDDO
+
+DO JD = 2,KDRAFT
+   DO JK=1,KLEV-1
+      DO JL=KIDIA,KFDIA
+         IF ( JK >= KPTOP(JL,JD) .AND. KPTOP(JL,JD)>0) THEN
+            ZMFMAX = (PAPM1(JL,JK+1)-PAPM1(JL,JK)) * ZCONS10
+            IF ( PMFLX(JL,JK,JD) > ZMFMAX ) THEN
+               ZMFS(JL,JD) = MIN(ZMFS(JL,JD),ZMFMAX/PMFLX(JL,JK,JD))
+            ENDIF
+         ENDIF
+      ENDDO
+   ENDDO
+ENDDO
+
+DO JD = 2,KDRAFT
+   DO JK=1,KLEV
+      DO JL=KIDIA,KFDIA
+         PMFLX(JL,JK,JD) = PMFLX(JL,JK,JD)*ZMFS(JL,JD)
+      ENDDO
+   ENDDO
+ENDDO
+
+
+
+
+!     -----------------------------------------------------------------
+
+!*         8.     W-SCALE USED IN CLOUD VARIANCE DISSIPATION (VDFMAIN)
+!                 ----------------------------------------------------
+
+
+!CGL fill this array at the end
+PFRACB = ZFRACB
+
+
+! ----------------------------------------------------
+!
+!       9. OUTPUT TO BE USED IN VDFEXCU now called from this routine
+!          to calculate length scale according to Geert Lenderink
+!   if LHARATU=true
+!   Call vdfexcuhl to calculate length scales and TKE for use in Harmonie
+
+IF (LHARATU) THEN
+
+   PBUOY_COR (:,:) = 0.0_JPRB
+   PWU       (:,:) = 0.0_JPRB
+   DO JL=KIDIA,KFDIA
+
+      DO JK=1,KLEV-1
+         PWU (JL,JK) = (MAX( ZWU2H(JL,JK,2),0._JPRB ))**0.5_JPRB
+         IF (ZWSTAR(JL)*PZPTOP(JL,2).GT.0._JPRB) THEN
+            ! PBUOY_COR (JL,JK) =  ZFRAC(JL,JK,2)* ZWU2H(JL,JK,2)**(1._JPRB/2._JPRB) / ZWSTAR(JL) / PZPTOP(JL,2)
+            TVEXCSURF = MAX(ZTVEXCSURF(JL,2),0.0_JPRB)
+            PBUOY_COR (JL,JK) = TVEXCSURF*PWU(JL,JK)&
+            &/ ZWSTAR(JL) / PZPTOP(JL,2) * RG / PTM1(JL,KLEV)
+         ENDIF
+      ENDDO
+   ENDDO
+
+   DO JK=1,KLEV
+      JKM=MIN(JK,KLEV-1)
+      DO JL=KIDIA,KFDIA
+         !          dqsat/dT correction factor (1+L/cp*dqsat/dT) & alfa
+         ZESW = ESATW(PTM1(JL,JK))
+         ZESI = ESATI(PTM1(JL,JK))
+         ZFAC = ZQIENH(JL,JKM) / (ZQLENH(JL,JKM) +ZQIENH(JL,JKM) + 1.0E-20_JPRB) ! Weighting according to cloudcondensate
+         ZES = ZESI*ZFAC + ZESW*(1._JPRB-ZFAC)
+         ZE2R = ZEI2R*ZFAC + ZEL2R*(1._JPRB-ZFAC)
+         ZQSVAR(JL,JK) = 0.62198_JPRB*ZES/(MAX(ZES,PAPM1(JL,JK))-0.37802_JPRB*ZES)
+         ! Above boiling point for PAPHM1(JL,JK) < ZES --> no condensation. May happen in stratosphere, ZQSATU becomes 1.
+         ZDQSDTEMP(JL,JK) = ZE2R*ZQSVAR(JL,JK)/PTM1(JL,JK)/PTM1(JL,JK) !dqsat/dT
+         !      write (913,'(i5,10f14.5)') jk, ZFAC,  ZCOR, ZDQSDTEMP(JL,JK),  ZDQSDTEMP(JL,JK)/ZQSVAR(JL,JK)
+      ENDDO
+   ENDDO
+   DO JL=KIDIA,KFDIA
+      DO JK=1,KLEV-1
+
+!wc
+!   energy cascade:   Two contributions: 1) subplume turbulence: related to eps
+!                                        2) environmental turbulence: related to decrease M (detr)
+!
+
+         IF (KPBLTYPE(JL) == 3  .AND. (KPLCL(JL,3)-KPTOP(JL,3)) > 2) THEN
+            ZFACCASC(JL,JK) = ZEL*(((PGEOH(JL,JK)-PGEOH(JL,KLEV))*ZRG)/((PGEOH(JL,KPLCL(JL,3))-PGEOH(JL,KLEV))*ZRG))* &
+             & (1._JPRB/(1._JPRB+(((PGEOH(JL,JK)-PGEOH(JL,KPLCL(JL,3)))*ZRG)/ZWL)**2._JPRB))+ &
+             & ZET*(1._JPRB/(1._JPRB+(((PGEOH(JL,JK)-PGEOH(JL,KPTOP(JL,3)))*ZRG)/ZWT)**2._JPRB))
+            ZFACCASC(JL,JK) = MAX(0._JPRB,(MIN(ZFACCASC(JL,JK),0.01_JPRB)))
+         ELSE
+            ZFACCASC(JL,JK) = 0.002_JPRB
+         ENDIF
+
+         ZENCASC(JL,JK) = 0.5_JPRB*ZEPS(JL,JK,2)*ZWU2H(JL,JK,2)*PMFLX(JL,JK,2) + &
+          & ZFACCASC(JL,JK)*ZWU2H(JL,JK,3)*PMFLX(JL,JK,3)
+
+      ENDDO
+   ENDDO
+   !
+   !   if LHARATU=true
+   !   Call vdfexcuhl to calculate length scales and TKE for use in Harmonie
+   !
+   !
+   !*           EXCHANGE COEFFICIENTS ABOVE THE SURFACE LAYER
+
+   CALL VDFEXCUHL(YDVDF,YDEPHY,KIDIA,KFDIA,KLON,KLEV,PTMST,PUM1,PVM1,PTM1,PQM1,PLM1,PIM1,ZSLGM1,ZQTM1,PKMFL,PKHFL,PKQFL,PAPHM1,&
+   & PAPM1,PGEOM1,PGEOH,PEXNF,ZZI,KPBLTYPE,KDRAFT,ZQSVAR,ZDQSDTEMP,PBUOY_COR,ZENCASC,PWU,&
+   & YSPP_RFAC_TWOC,YSPP_RZC_H,YSPP_RZL_INF, & 
+   & PTKE,PMFLX,ZLENGTH_M,ZLENGTH_H)
+
+ENDIF ! LHARATU
+
+END ASSOCIATE
+IF (LHOOK) CALL DR_HOOK('VDFHGHTNHL',1,ZHOOK_HANDLE)
+
+END SUBROUTINE VDFHGHTNHL
diff --git a/src/arome/ext/yomparar.F90 b/src/arome/ext/yomparar.F90
index 8c07934b948e9d72b4861a978f0925b6619fe707..808083cd3ba6fd2c3f191e7afe02aaf3f5de40ba 100644
--- a/src/arome/ext/yomparar.F90
+++ b/src/arome/ext/yomparar.F90
@@ -26,7 +26,7 @@ INTEGER(KIND=JPIM) :: NSWB_MNH    !number of SW bands for surface
                                   ! (must be equal to NSW !!)
 INTEGER(KIND=JPIM) :: NGPAR       !number of fields in the buffer containing
                                   ! the 2D pseudo-historical variables.
-INTEGER(KIND=JPIM) :: MINPRR      !pointer on INPRR 
+INTEGER(KIND=JPIM) :: MINPRR      !pointer on INPRR
 INTEGER(KIND=JPIM) :: MINPRS      !pointer on INPRS
 INTEGER(KIND=JPIM) :: MINPRG      !pointer on INPRG
 INTEGER(KIND=JPIM) :: MACPRR      !pointer on ACPRR 
@@ -36,10 +36,10 @@ INTEGER(KIND=JPIM) :: MALBDIR     !pointer on ALBDIR
 INTEGER(KIND=JPIM) :: MALBSCA     !pointer on ALBSCA
 INTEGER(KIND=JPIM) :: MRAIN       !pointer on surface rain
 INTEGER(KIND=JPIM) :: MSNOW       !pointer on surface snow
-INTEGER(KIND=JPIM) :: MGZ0        !pointer on GZ0 
-INTEGER(KIND=JPIM) :: MGZ0H       !pointer on GZ0H 
+INTEGER(KIND=JPIM) :: MGZ0        !pointer on GZ0
+INTEGER(KIND=JPIM) :: MGZ0H       !pointer on GZ0H
 INTEGER(KIND=JPIM) :: MVQS        !pointer on surface moisture
-INTEGER(KIND=JPIM) :: MVTS        !pointer on surface temperature 
+INTEGER(KIND=JPIM) :: MVTS        !pointer on surface temperature
 INTEGER(KIND=JPIM) :: MVEMIS      !pointer on surface emissivity
 INTEGER(KIND=JPIM) :: MSWDIR      !pointer on SW direct surface flux
 INTEGER(KIND=JPIM) :: MSWDIF      !pointer on SW surface diffuse flux
@@ -53,19 +53,28 @@ LOGICAL :: LOSEDIC     ! activate cloud sedimentation
 LOGICAL :: LOWARM      ! see OWARM in mesoNH
 LOGICAL :: LOSIGMAS    ! activate calculation of variance of departure to 
                        ! saturation in turb scheme (to be used in subgrid condensation)
-LOGICAL :: LOLSMC      ! Land/sea mask for cloud droplet number conc. 
+LOGICAL :: LOLSMC      ! Land/sea mask for cloud droplet number conc.
 LOGICAL :: LOTOWNC     ! Town mask for cloud droplet number conc.
 
 LOGICAL :: LOCND2      ! Separate solid and liquid phase
-LOGICAL :: LGRSN       ! Turn graupel to snow for high supersaturation wrt ice 
+LOGICAL :: LKOGAN      ! Use Kogan autocoversion of liquid
+LOGICAL :: LMODICEDEP  ! Logical switch for alternative dep/evap of ice
+LOGICAL :: LICERAD     ! Assume higher fraction of condensate for 
+                       ! ice/snow/graupel than the actual cloud cover in
+                       ! radiation
 REAL(KIND=JPRB) :: RADGR  ! Tuning of ice for radiation, TO BE REMOVED
 REAL(KIND=JPRB) :: RADSN  ! Tuning of ice for radiation, TO BE REMOVED
 
 REAL(KIND=JPRB) :: VSIGQSAT ! coeff applied to qsat variance contribution
                             ! for subgrid condensation
 
+! Constants / tuning parameters for possible modifying some processes related to
+! graupeln in RFRMIN(1:8),  IN - concentration in RFRMIN(9) and Kogan
+! autoconversion in RFRMIN(10:11).
+REAL(KIND=JPRB) :: RFRMIN(40)
+
 ! switches for MF scheme (Pergaud et al)
-CHARACTER (LEN=4)  :: CMF_UPDRAFT  ! Type of Mass Flux Scheme 
+CHARACTER (LEN=4)  :: CMF_UPDRAFT  ! Type of Mass Flux Scheme
                                      ! 'NONE','DUAL', 'EDKF', 'RHCJ' or 'RAHA' 
 CHARACTER (LEN=4)  :: CMF_CLOUD  ! type of cloud scheme associated with MF Scheme
                                      ! 'NONE', 'DIRE' or 'STAT'
@@ -76,20 +85,22 @@ LOGICAL            :: LLCRIT    ! True if temperature dependent
 LOGICAL            :: LTOTPREC  ! True if precipitation tendencies
                                 ! from the sub-grid scheme are
                                 ! added to the total precip tendencies.
+LOGICAL            :: LTOTPRECL ! As LTOTPREC but updraft fraction untouched
+LOGICAL            :: LHGT_QS   ! Switch for height dependent VQSIGSAT
 
 ! Tuning variables for MF scheme 
 
 REAL(KIND=JPRB) :: XALP_PERT    ! coefficient for the perturbation of
-                                ! theta_l and r_t at the first level of 
+                                ! theta_l and r_t at the first level of
                                 ! the updraft
-REAL(KIND=JPRB) :: XABUO        ! coefficient of the buoyancy term in the w_up equation  
+REAL(KIND=JPRB) :: XABUO        ! coefficient of the buoyancy term in the w_up equation
 REAL(KIND=JPRB) :: XBENTR       ! coefficient of the entrainment term in the w_up equation
 REAL(KIND=JPRB) :: XBDETR       ! coefficient of the detrainment term in the w_up equation
-REAL(KIND=JPRB) :: XCMF         ! coefficient for the mass flux at the first level 
-                                ! of the updraft (closure) 
+REAL(KIND=JPRB) :: XCMF         ! coefficient for the mass flux at the first level
+                                ! of the updraft (closure)
 REAL(KIND=JPRB) :: XENTR_MF     ! entrainment constant (m/Pa) = 0.2 (m)
 REAL(KIND=JPRB) :: XCRAD_MF     ! cloud radius in cloudy part
-REAL(KIND=JPRB) :: XENTR_DRY    ! coefficient for entrainment in dry part 
+REAL(KIND=JPRB) :: XENTR_DRY    ! coefficient for entrainment in dry part
 REAL(KIND=JPRB) :: XDETR_DRY    ! coefficient for detrainment in dry part
 REAL(KIND=JPRB) :: XDETR_LUP    ! coefficient for detrainment in dry part
 REAL(KIND=JPRB) :: XKCF_MF      ! coefficient for cloud fraction
@@ -127,7 +138,7 @@ INTEGER(KIND=JPIM) :: NPTP ! index in NPROMA paquet where the print will be done
 INTEGER(KIND=JPIM) :: NPRINTFR !frequency of physical prints in apl_arome
 
 !* for other diagnostics
-!  wmax per vertical level 
+!  wmax per vertical level
 LOGICAL :: LDIAGWMAX !activate print of WMAX in apl_arome
 INTEGER(KIND=JPIM) :: NDIAGWMAX ! frequency of preceding prints (in time step)
 
@@ -138,6 +149,8 @@ INTEGER(KIND=JPIM) :: NDTCHEM ! time step factor for chemical scheme
 LOGICAL :: LAROBU_ENABLE ! for MNH budget anlysis
 !* for turbulence scheme
 REAL(KIND=JPRB) :: XLINI ! minimum bl89 mixing length
+LOGICAL :: LSTATNW !  updated full statistical cloud scheme
+                   !  (yet only to be used in combination with EDMFm convection (DUAL))
 LOGICAL :: LHARATU !  if true RACMO turbulence is used
                    !  (yet only to be used in combination with EDMFm convection (DUAL))
 !* Subgrid precipitation scheme
@@ -185,6 +198,11 @@ LOGICAL :: LSEDIM_AFTER !Sedimentation done after microphysics (.TRUE.) or befor
 REAL(KIND=JPRB) :: XSPLIT_MAXCFL ! Maximum CFL number allowed for SPLIT sedimentation scheme
 REAL(KIND=JPRB) :: XVDEPOSC ! Water deposition speed on vegetation (LDEPOSC) (DEPO_ICE3)
 !
+! for negative deposition (=sublimation) of qs,qg
+ LOGICAL :: LDEPSG   ! activate namelist read of sublimation factors
+REAL(KIND=JPRB) :: RDEPSRED  ! tuning factor of sublimation of snow
+REAL(KIND=JPRB) :: RDEPGRED  ! tuning factor of sublimation of graupel
+!
 !* For total cumulative 3D prec flux for MOCAGE
 LOGICAL :: LFPREC3D ! Switch on total cumulative 3D prec flux output (for MOCAGE use)
 !* For radiation :
diff --git a/src/arome/micro/ini_rain_ice.F90 b/src/arome/micro/ini_rain_ice.F90
index 4068a1ab9e3d1c6f609b98deee59934a30abfbb2..6e2f1077d6fbc9c0db18b9d922b6c1bfe563bebd 100644
--- a/src/arome/micro/ini_rain_ice.F90
+++ b/src/arome/micro/ini_rain_ice.F90
@@ -399,7 +399,7 @@ XLBDAS_MAX = 100000.0
 XLBDAG_MAX = 100000.0
 !
 ZCONC_MAX  = 1.E6 ! Maximal concentration for falling particules set to 1 per cc
-XLBDAS_MAX = ( ZCONC_MAX/XCCS )**(1./XCXS)
+IF(XCCS>0. .AND. XCXS>0. )XLBDAS_MAX = ( ZCONC_MAX/XCCS )**(1./XCXS)
 !
 IF (HCLOUD == 'ICE4' .OR. HCLOUD == 'OLD4') THEN
   ALLOCATE( XRTMIN(7) )
@@ -545,16 +545,26 @@ X0DEPS = (4.0*XPI)*XCCS*XC1S*XF0S*MOMG(XALPHAS,XNUS,1.)
 X1DEPS = (4.0*XPI)*XCCS*XC1S*XF1S*SQRT(XCS)*MOMG(XALPHAS,XNUS,0.5*XDS+1.5)
 XEX0DEPS = XCXS-1.0
 XEX1DEPS = XCXS-0.5*(XDS+3.0)
+XRDEPSRED = 1.0
 !
 X0DEPG = (4.0*XPI)*XCCG*XC1G*XF0G*MOMG(XALPHAG,XNUG,1.)
 X1DEPG = (4.0*XPI)*XCCG*XC1G*XF1G*SQRT(XCG)*MOMG(XALPHAG,XNUG,0.5*XDG+1.5)
 XEX0DEPG = XCXG-1.0
 XEX1DEPG = XCXG-0.5*(XDG+3.0)
+XRDEPGRED = 1.0
 !
 X0DEPH = (4.0*XPI)*XCCH*XC1H*XF0H*MOMG(XALPHAH,XNUH,1.)
 X1DEPH = (4.0*XPI)*XCCH*XC1H*XF1H*SQRT(XCH)*MOMG(XALPHAH,XNUH,0.5*XDH+1.5)
 XEX0DEPH = XCXH-1.0
 XEX1DEPH = XCXH-0.5*(XDH+3.0)
+
+GFLAG = .TRUE.
+IF (GFLAG) THEN
+  WRITE(UNIT=KLUOUT,FMT='("      factors sublimation snow/groupel")')
+  WRITE(UNIT=KLUOUT,FMT='(" mod sublim snow =",E13.6)') XRDEPSRED
+  WRITE(UNIT=KLUOUT,FMT='(" mod sublim graupel =",E13.6)') XRDEPGRED
+END IF
+
 !
 !*       5.3    Constants for pristine ice autoconversion
 !
@@ -1047,6 +1057,26 @@ IF( (KDRYLBDAG/=NDRYLBDAG) .OR. (KDRYLBDAR/=NDRYLBDAR) .OR. (KND/=IND) .OR. &
                      PFDINFTY,XKER_RDRYG                                      )
   WRITE(UNIT=KLUOUT,FMT='(" Read XKER_RDRYG")')
 END IF
+         
+!          8.2.6 Constants for possible modifying some processes related to 
+!                graupeln in XFRMIN(1:8),  IN - concentration in XFRMIN(9) and Kogan 
+!                autoconversion in XFRMIN(10:11). May be used for e.g. ensemble spread
+  XFRMIN(1:6)=0.
+  XFRMIN(7:9)=1.
+  XFRMIN(10) =10.
+  XFRMIN(11) =1.
+  XFRMIN(12) =100. !0 in suparar
+  XFRMIN(13) =1.0E-15
+  XFRMIN(14) =120.
+  XFRMIN(15) =1.0E-4
+  XFRMIN(16:20)=0.
+  XFRMIN(21:22)=1.
+  XFRMIN(23)=0.5
+  XFRMIN(24)=1.5
+  XFRMIN(25)=30.
+  XFRMIN(26:38)=0.
+  XFRMIN(39)=0.25
+  XFRMIN(40)=0.15
 !
 !
 !-------------------------------------------------------------------------------
diff --git a/src/arome/micro/modi_rain_ice_old.F90 b/src/arome/micro/modi_rain_ice_old.F90
index 2d09cf14c7b33764be058a18d44b478df3bf8779..81c0c368cdaf3ad7d927d7deaa3bc5a13c0fe701 100644
--- a/src/arome/micro/modi_rain_ice_old.F90
+++ b/src/arome/micro/modi_rain_ice_old.F90
@@ -3,26 +3,27 @@
 !      ####################
 !
 INTERFACE
-      SUBROUTINE RAIN_ICE_OLD ( OSEDIC, OCND2, LGRSN, HSEDIM, HSUBG_AUCV_RC, OWARM,    &
+      SUBROUTINE RAIN_ICE_OLD ( OSEDIC, OCND2, LKOGAN, LMODICEDEP, HSEDIM, HSUBG_AUCV_RC, OWARM,    &
                             KKA, KKU, KKL,                                        &
                             KSPLITR, PTSTEP, KRR,                            &
                             PDZZ, PRHODJ, PRHODREF, PEXNREF, PPABST, PCIT, PCLDFR,&
+                            PICLDFR, PWCLDFR, PSSIO, PSSIU, PIFR,                 &
                             PTHT, PRVT, PRCT, PRRT, PRIT, PRST, &
                             PRGT, PTHS, PRVS, PRCS, PRRS, PRIS, PRSS, PRGS, &
                             PINPRC, PINPRR, PEVAP3D,                    &
                             PINPRS, PINPRG, PSIGS, PSEA, PTOWN,                   &
-                            PRHT, PRHS, PINPRH, PFPR, &
                             YDDDH, YDLDDH, YDMDDH, &
-                            YSPP_ICENU,YSPP_KGN_ACON,YSPP_KGN_SBGR)
+                            PICENU, PKGN_ACON, PKGN_SBGR, &
+                            PRHT, PRHS, PINPRH, PFPR)
 !
 USE DDH_MIX, ONLY : TYP_DDH
 USE YOMLDDH, ONLY : TLDDH
 USE YOMMDDH, ONLY : TMDDH
-USE MODD_SPP_TYPE, ONLY : TSPP_CONFIG_MPA
 !
 LOGICAL,                  INTENT(IN)    :: OSEDIC ! Switch for droplet sedim.
 LOGICAL,                  INTENT(IN)    :: OCND2  ! Logical switch to separate liquid and ice
-LOGICAL,                  INTENT(IN)    :: LGRSN
+LOGICAL,                  INTENT(IN)    :: LKOGAN ! Logical switch for using Kogan autoconversion of liquid.
+LOGICAL,                  INTENT(IN)    :: LMODICEDEP ! Logical switch for alternative dep/evap of ice
 CHARACTER(LEN=4),         INTENT(IN)    :: HSEDIM ! Sedimentation scheme
 CHARACTER(LEN=4),         INTENT(IN)    :: HSUBG_AUCV_RC ! Switch for rc->rr Subgrid autoconversion
                                         ! Kind of Subgrid autoconversion method
@@ -39,7 +40,7 @@ REAL,                     INTENT(IN)    :: PTSTEP  ! Double Time step
                                                    ! (single if cold start)
 INTEGER,                  INTENT(IN)    :: KRR     ! Number of moist variable
 !
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PDZZ     ! Layer thikness (m)
+REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PDZZ    ! Layer thickness (m)
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRHODJ  ! Dry density * Jacobian
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRHODREF! Reference density
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PEXNREF ! Reference Exner function
@@ -55,8 +56,16 @@ REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRRT    ! Rain water m.r. at t
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRIT    ! Pristine ice m.r. at t
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRST    ! Snow/aggregate m.r. at t
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRGT    ! Graupel/hail m.r. at t
-!
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PSIGS   ! Sigma_s at t
+! input from aro_adjust / condensation with OCND2, dummy if OCND2 = F
+REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PICLDFR ! ice cloud fraction
+REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PWCLDFR ! water or mixed-phase cloud fraction
+REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PSSIO   ! Super-saturation with respect to ice in the  
+                                                   ! supersaturated fraction
+REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PSSIU   ! Sub-saturation with respect to ice in the  
+                                                   ! subsaturated fraction 
+REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PIFR    ! Ratio cloud ice moist part to dry part 
+! input from aro_adjust / condensation with OCND2 END.
 !
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PTHS    ! Theta source
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRVS    ! Water vapor m.r. source
@@ -65,7 +74,6 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRRS    ! Rain water m.r. source
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRIS    ! Pristine ice m.r. source
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRSS    ! Snow/aggregate m.r. source
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRGS    ! Graupel m.r. source
-
 !
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRC! Cloud instant precip
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRR! Rain instant precip
@@ -74,16 +82,14 @@ REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRS! Snow instant precip
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRG! Graupel instant precip
 REAL, DIMENSION(:,:), INTENT(IN)        :: PSEA ! Sea Mask
 REAL, DIMENSION(:,:), INTENT(IN)        :: PTOWN! Fraction that is town
-
-REAL, DIMENSION(:,:,:), OPTIONAL,  INTENT(IN)    :: PRHT    ! Hail m.r. at t
-REAL, DIMENSION(:,:,:), OPTIONAL,  INTENT(INOUT) :: PRHS    ! Hail m.r. source
-REAL, DIMENSION(:,:), OPTIONAL, INTENT(INOUT)     :: PINPRH! Hail instant precip
-REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT)   :: PFPR ! upper-air precipitation fluxes
-TYPE(TYP_DDH),                      INTENT(INOUT) :: YDDDH
-TYPE(TLDDH),                      INTENT(IN) :: YDLDDH
-TYPE(TMDDH),                      INTENT(IN) :: YDMDDH
-
-TYPE(TSPP_CONFIG_MPA), OPTIONAL, INTENT(IN)       :: YSPP_ICENU,YSPP_KGN_ACON,YSPP_KGN_SBGR
+TYPE(TYP_DDH),        INTENT(INOUT)     :: YDDDH
+TYPE(TLDDH),          INTENT(IN)        :: YDLDDH
+TYPE(TMDDH),          INTENT(IN)        :: YDMDDH
+REAL, DIMENSION(:,:), INTENT(IN)        :: PICENU, PKGN_ACON, PKGN_SBGR
+REAL, DIMENSION(:,:,:),   OPTIONAL, INTENT(IN)    :: PRHT    ! Hail m.r. at t
+REAL, DIMENSION(:,:,:),   OPTIONAL, INTENT(INOUT) :: PRHS    ! Hail m.r. source
+REAL, DIMENSION(:,:),     OPTIONAL, INTENT(INOUT) :: PINPRH  ! Hail instant precip
+REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT)   :: PFPR    ! upper-air precipitation fluxes
 !
 END SUBROUTINE RAIN_ICE_OLD
 END INTERFACE
diff --git a/src/arome/micro/rain_ice_old.F90 b/src/arome/micro/rain_ice_old.F90
index c1ac467d1833cbb0ac48973016fd45e58e0e6b9f..e7b5994e23cda700e473725afa0ac7ea66e9fbcc 100644
--- a/src/arome/micro/rain_ice_old.F90
+++ b/src/arome/micro/rain_ice_old.F90
@@ -1,15 +1,16 @@
 !     ######spl
-      SUBROUTINE RAIN_ICE_OLD ( OSEDIC, OCND2, LGRSN, HSEDIM, HSUBG_AUCV, OWARM,      &
+      SUBROUTINE RAIN_ICE_OLD ( OSEDIC, OCND2, LKOGAN, LMODICEDEP, HSEDIM, HSUBG_AUCV_RC, OWARM,      &
                             KKA,KKU,KKL,                                          &
                             KSPLITR, PTSTEP, KRR,                            &
                             PDZZ, PRHODJ, PRHODREF, PEXNREF, PPABST, PCIT, PCLDFR,&
+                            PICLDFR, PWCLDFR, PSSIO, PSSIU, PIFR,                 &
                             PTHT, PRVT, PRCT, PRRT, PRIT, PRST, &
                             PRGT, PTHS, PRVS, PRCS, PRRS, PRIS, PRSS, PRGS, &
                             PINPRC, PINPRR, PEVAP3D,                    &
                             PINPRS, PINPRG, PSIGS, PSEA, PTOWN,                   &
-                            PRHT, PRHS, PINPRH, PFPR, &
                             YDDDH, YDLDDH, YDMDDH, &
-                            YSPP_ICENU,YSPP_KGN_ACON,YSPP_KGN_SBGR)
+                            PICENU, PKGN_ACON, PKGN_SBGR, &
+                            PRHT, PRHS, PINPRH, PFPR)
 
       USE PARKIND1, ONLY : JPRB
       USE YOMHOOK , ONLY : LHOOK, DR_HOOK
@@ -154,7 +155,11 @@
 !!      (C. Abiven, Y. Léauté, V. Seigner, S. Riette) Phasing of Turner rain subgrid param
 !!      (K.I Ivarsson 2014) OCND2-option, possible to use derived cloud dropelt conc for cloudphysics,
 !!                      replace XMV/XMD with XEPSILO
+!!      (K.I Ivarsson 2016) LKOGAN-option, possible to use Kogan autoconversion of liquid regardless of OCND2 option.
+!!      (K.I Ivarsson 2018-02 New varibles for input/ output mainly for optimation. Some updates of OCND2 option. 
+!!                          Sedimented ice should be preciptation
 !!      (U. Andrae Dec 2020) Introduce SPP for HARMONIE-AROME
+!!      (C. Wittmann Jan 2021) Introduce sublimation factor tuning 
 !
 !
 !*       0.    DECLARATIONS
@@ -167,7 +172,6 @@ USE MODD_RAIN_ICE_DESCR
 USE MODD_RAIN_ICE_PARAM
 USE MODD_PARAM_ICE
 USE MODD_BUDGET
-USE MODD_SPP_TYPE
 USE MODD_LES
 USE MODE_BUDGET, ONLY: BUDGET_DDH
 USE MODI_GAMMA
@@ -177,6 +181,7 @@ USE MODE_TIWMX_TAB, ONLY : TIWMX_TAB
 USE DDH_MIX, ONLY  : TYP_DDH
 USE YOMLDDH, ONLY  : TLDDH
 USE YOMMDDH, ONLY  : TMDDH
+
 !
 IMPLICIT NONE
 !
@@ -186,9 +191,10 @@ IMPLICIT NONE
 !
 LOGICAL,                  INTENT(IN)    :: OSEDIC ! Switch for droplet sedim.
 LOGICAL,                  INTENT(IN)    :: OCND2  ! Logical switch to separate liquid and ice
-LOGICAL,                  INTENT(IN)    :: LGRSN
+LOGICAL,                  INTENT(IN)    :: LKOGAN ! Logical switch for using Kogan autoconversion of liquid.
+LOGICAL,                  INTENT(IN)    :: LMODICEDEP ! Logical switch for alternative dep/evap of ice
 CHARACTER(LEN=4),         INTENT(IN)    :: HSEDIM ! Sedimentation scheme
-CHARACTER(LEN=4),         INTENT(IN)    :: HSUBG_AUCV
+CHARACTER(LEN=4),         INTENT(IN)    :: HSUBG_AUCV_RC ! Switch for rc->rr Subgrid autoconversion
                                         ! Kind of Subgrid autoconversion method
 LOGICAL,                  INTENT(IN)    :: OWARM   ! .TRUE. allows raindrops to
                                                    !   form by warm processes
@@ -203,14 +209,14 @@ REAL,                     INTENT(IN)    :: PTSTEP  ! Double Time step
                                                    ! (single if cold start)
 INTEGER,                  INTENT(IN)    :: KRR     ! Number of moist variable
 !
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PDZZ    ! Layer thikness (m)
+REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PDZZ    ! Layer thickness (m)
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRHODJ  ! Dry density * Jacobian
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRHODREF! Reference density
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PEXNREF ! Reference Exner function
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PPABST  ! absolute pressure at t
 !
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PCIT    ! Pristine ice n.c. at t
-REAL, DIMENSION(:,:,:),     INTENT(IN)  :: PCLDFR! Convective Mass Flux Cloud fraction
+REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PCLDFR  ! Cloud fraction
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PTHT    ! Theta at time t
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRVT    ! Water vapor m.r. at t
@@ -220,6 +226,15 @@ REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRIT    ! Pristine ice m.r. at t
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRST    ! Snow/aggregate m.r. at t
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRGT    ! Graupel/hail m.r. at t
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PSIGS   ! Sigma_s at t
+! input from aro_adjust / condensation with OCND2, dummy if OCND2 = F
+REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PICLDFR ! ice cloud fraction
+REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PWCLDFR ! water or mixed-phase cloud fraction
+REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PSSIO   ! Super-saturation with respect to ice in the  
+                                                   ! supersaturated fraction
+REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PSSIU   ! Sub-saturation with respect to ice in the  
+                                                   ! subsaturated fraction 
+REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PIFR    ! Ratio cloud ice moist part to dry part 
+! input from aro_adjust / condensation with OCND2 END.
 !
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PTHS    ! Theta source
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRVS    ! Water vapor m.r. source
@@ -236,15 +251,14 @@ REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRS! Snow instant precip
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRG! Graupel instant precip
 REAL, DIMENSION(:,:), INTENT(IN)        :: PSEA ! Sea Mask
 REAL, DIMENSION(:,:), INTENT(IN)        :: PTOWN! Fraction that is town
-REAL, DIMENSION(:,:,:), OPTIONAL,  INTENT(IN)    :: PRHT    ! Hail m.r. at t
-REAL, DIMENSION(:,:,:), OPTIONAL,  INTENT(INOUT) :: PRHS    ! Hail m.r. source
-REAL, DIMENSION(:,:), OPTIONAL, INTENT(INOUT)     :: PINPRH! Hail instant precip
-REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT)   :: PFPR ! upper-air precipitation fluxes
-TYPE(TYP_DDH), INTENT(INOUT) :: YDDDH
-TYPE(TLDDH), INTENT(IN) :: YDLDDH
-TYPE(TMDDH), INTENT(IN) :: YDMDDH
-
-TYPE(TSPP_CONFIG_MPA), OPTIONAL, INTENT(IN)       :: YSPP_ICENU,YSPP_KGN_ACON,YSPP_KGN_SBGR
+TYPE(TYP_DDH),        INTENT(INOUT)     :: YDDDH
+TYPE(TLDDH),          INTENT(IN)        :: YDLDDH
+TYPE(TMDDH),          INTENT(IN)        :: YDMDDH
+REAL, DIMENSION(:,:), INTENT(IN)        :: PICENU, PKGN_ACON, PKGN_SBGR
+REAL, DIMENSION(:,:,:),   OPTIONAL, INTENT(IN)    :: PRHT    ! Hail m.r. at t
+REAL, DIMENSION(:,:,:),   OPTIONAL, INTENT(INOUT) :: PRHS    ! Hail m.r. source
+REAL, DIMENSION(:,:),     OPTIONAL, INTENT(INOUT) :: PINPRH  ! Hail instant precip
+REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(OUT)   :: PFPR    ! upper-air precipitation fluxes
 
 !
 !*       0.2   Declarations of local variables :
@@ -393,6 +407,8 @@ REAL, DIMENSION(:), ALLOCATABLE &
                   ZSSIU,    & ! Sub-saturation with respect to ice in the 
                               ! sub-saturated fraction  of gridbox 
                   ZW2D,     & ! Factor for subgridscale calculations
+                  ZXW2D,    & ! Ratio cloud ice moist part to dry part 
+                  ZXW2D13,  & ! ZXW2D**0.333 or other expression for LMODICEDEP=T
                   ZCRYSHA,  & ! Ice crystal habit factor 
                   ZCI2S,    & ! factor to turn cloud ice with few lagre crystals into snow
                   ZCOLF,    & ! collision factor cloud liquid to snow / graupel
@@ -406,6 +422,7 @@ REAL, DIMENSION(:), ALLOCATABLE &
                   ZBB3W,    & ! as ZBB3 but for liquid
                   ZAM3,     & ! Meyers IN concentration function
                   ZREDIN,   & ! Reduction of IN concentration between 0 and -25 C
+                  ZTIW,     & ! Wet bulb temperature
                   ZARTMP,   & ! temporary work array
 !                          *******  end logical switch OCND2 *******
                   ZCC,      & ! terminal velocity
@@ -422,19 +439,23 @@ REAL            :: ZINVTSTEP
 REAL            :: ZRVSOLD,ZTSP,&
      &ZRSP,ZRISOLD,ZRSSOLD,ZRGSOLD,& ! Function,old ice 
      &ZRISFRC,ZRSSFRC,ZRGSFRC,ZRFRAC,ZRSA,ZRSTS,ZRSB,ZRSDIF,ZR20,  &
-     &ZRSI,ZXW2D,ZXW2D13,ZTC,ZHU,ZTMP,ZQIMAX,ZDICRIT,ZCITRED23,ZCITRED,ZRCW,ZVT,ZST, &
+     &ZRSI,ZRSW,ZTC,ZHU,ZTMP,ZQIMAX,ZDICRIT,ZCITRED23,ZCITRED,ZRCW,ZVT,ZST, &
      &ZREDGR,ZREDSN, &    ! Possible reduction of the rate of graupel,snow growth
            ZRSPO, &! Mixing ratio for saturation point for
                    ! supersaturated part of gridbox
-           ZRSPU   ! Mixing ratio for saturation point for
-                   ! subsaturated part of gridbox
+           ZRSPU, &! Mixing ratio for saturation point for
+                   ! subsaturated part of gridbox 
+            ZKVO, &! factor used for caluclate maximum mass in the ice
+                   ! distubution. 
+         ZTIMESC   ! Timescale for conversion lagre ice crystals to snow.
+                   ! distubution.
 !    *******  end logical switch OCND2 *******
 
 ! SPP arrays
 REAL, DIMENSION(:), ALLOCATABLE :: ZZICENU,ZZKGN_ACON,ZZKGN_SBGR
-REAL,    DIMENSION(SIZE(PEXNREF,1)) :: ZICENU,ZKGN_ACON,ZKGN_SBGR
-
 
+!  Tuning of sublimation (neg. sublimation)
+REAL            :: ZRDEPSRED, ZRDEPGRED            
 
      !internal fractions etc, finally saturation ratio over ice 'source' value
 
@@ -448,6 +469,8 @@ CHARACTER (LEN=100) :: YCOMMENT   ! Comment string in LFIFM file
 CHARACTER (LEN=16)  :: YRECFM     ! Name of the desired field in LFIFM file
 REAL :: ZCOEFFRCM,ZMU
 LOGICAL LTEST ! Only for test !
+LOGICAL LCHECKNOISE ! Noise check on/off
+LOGICAL LTIW   ! Use TIW for graupel melting ( set by XFRMIN(18) ~ 1)
 !
 !-------------------------------------------------------------------------------
 !
@@ -457,6 +480,7 @@ LOGICAL LTEST ! Only for test !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('RAIN_ICE_OLD',0,ZHOOK_HANDLE)
 LTEST=.FALSE.
+LCHECKNOISE=.TRUE.
 IIB=1+JPHEXT
 IIE=SIZE(PDZZ,1) - JPHEXT
 IJB=1+JPHEXT
@@ -467,113 +491,86 @@ IKT=SIZE(PDZZ,3)
 IKTB=1+JPVEXT
 IKTE=IKT-JPVEXT
 
-
-!ZICENU(:)    = XFRMIN( 9)
-!ZKGN_ACON(:) = XFRMIN(10)
-!ZKGN_SBGR(:) = XFRMIN(11)
-
-IF (PRESENT(YSPP_ICENU)) THEN
- !
- ! Perturb ICENU
- !
- IF (YSPP_ICENU%LPERT) THEN
-  IF (YSPP_ICENU%LLNN_MEAN1.OR.YSPP_ICENU%LLNN_MEAN1_SELF) THEN
-    ZMU = -0.5 * (YSPP_ICENU%CMPERT * YSPP_ICENU%SDEV)**2
-  ELSE
-    ZMU = 0.0
-  ENDIF
-! ZICENU(:) = &
-!   XFRMIN(9)*EXP(ZMU+YSPP_ICENU%CMPERT*YSPP_ICENU%PGP2DSPP(:))
-  WHERE (ZICENU(:) < YSPP_ICENU%CLIP(1) ) ZICENU(:) = YSPP_ICENU%CLIP(1)
-  WHERE (ZICENU(:) > YSPP_ICENU%CLIP(2) ) ZICENU(:) = YSPP_ICENU%CLIP(2)
- ENDIF
-ENDIF
-
-IF (PRESENT(YSPP_KGN_ACON)) THEN
- !
- ! Perturb KGN_ACON
- !
- IF (YSPP_KGN_ACON%LPERT) THEN
-  IF (YSPP_KGN_ACON%LLNN_MEAN1.OR.YSPP_KGN_ACON%LLNN_MEAN1_SELF) THEN
-    ZMU = -0.5 * (YSPP_KGN_ACON%CMPERT * YSPP_KGN_ACON%SDEV)**2
-  ELSE
-    ZMU = 0.0
-  ENDIF
-! ZKGN_ACON(:) = &
-!   XFRMIN(10)*EXP(ZMU+YSPP_KGN_ACON%CMPERT*YSPP_KGN_ACON%PGP2DSPP(:))
-  WHERE (ZKGN_ACON(:) < YSPP_KGN_ACON%CLIP(1) ) ZKGN_ACON(:) = YSPP_KGN_ACON%CLIP(1)
-  WHERE (ZKGN_ACON(:) > YSPP_KGN_ACON%CLIP(2) ) ZKGN_ACON(:) = YSPP_KGN_ACON%CLIP(2)
- ENDIF
-ENDIF
-
-IF (PRESENT(YSPP_KGN_SBGR)) THEN
- !
- ! Perturb KGN_SBGR
- !
- IF (YSPP_KGN_SBGR%LPERT) THEN
-  IF (YSPP_KGN_SBGR%LLNN_MEAN1.OR.YSPP_KGN_SBGR%LLNN_MEAN1_SELF) THEN
-    ZMU = -0.5 * (YSPP_KGN_SBGR%CMPERT * YSPP_KGN_SBGR%SDEV)**2
-  ELSE
-    ZMU = 0.0
-  ENDIF
-! ZKGN_SBGR(:) = &
-!   XFRMIN(11)*EXP(ZMU+YSPP_KGN_SBGR%CMPERT*YSPP_KGN_SBGR%PGP2DSPP(:))
-  WHERE (ZKGN_SBGR(:) < YSPP_KGN_SBGR%CLIP(1) ) ZKGN_SBGR(:) = YSPP_KGN_SBGR%CLIP(1)
-  WHERE (ZKGN_SBGR(:) > YSPP_KGN_SBGR%CLIP(2) ) ZKGN_SBGR(:) = YSPP_KGN_SBGR%CLIP(2)
- ENDIF
-ENDIF
-
 !
 !*       1.2     COMPUTE SOME CONSTANT PARAMETERS 
 !
 ZINVTSTEP=1./PTSTEP
 
-ZXW2D = 10.       ! ratio of cloud ice water mixing ratio wet to dry
-                  ! part of a gridbox
-ZXW2D13 = ZXW2D**0.333
  
 ZCITRED = 0.1     ! ratio of ice crystal concentration wet to dry
                   ! part of a gridbox
+ZDICRIT = XFRMIN(15)  ! Critical diameter of ice crystal to define what 
+                      ! is cloud ice and what is snow (m)
+
 ZCITRED23 = ZCITRED**0.667 
+IF (LMODICEDEP) THEN
+  ZCITRED = 1.
+  ZTIMESC = XFRMIN(14)
+  ZDICRIT = (700.*XPI/XAI/6.)**(1./XBI)*ZDICRIT**(3./XBI) ! from spherical diameter to maximum diameter
+  ZCITRED23 = ZCITRED**(1.+ XLBEXI)
+  ZKVO      = ((XALPHAI*XNUI + XBI -1.)/XALPHAI)**(1./XALPHAI)
+  ZKVO =  ZKVO/ZDICRIT/ZTIMESC
+  PIFR = 1.
+ENDIF
 
-ZDICRIT = 0.0001  ! Critical diameter of ice crystal to define what 
-                  ! is cloud ice and what is snow (m)
 ZREDGR  = 1.      ! Tuning of the deposition of graupel, 1. is ref. value 
 
-ZREDSN  = 1.      ! Tuning of the deposition of graupel, 1. is ref. value
+ZREDSN  = 1.      ! Tuning of the deposition of snow, 1. is ref. value
 
 IF(OCND2) THEN
-   ZREDGR  = 0.25 ! Tuning factor, may be /= 1. 
-   ZREDSN  = 0.1  ! Tuning factor, may be /= 1.
+   IF (.NOT. LMODICEDEP) THEN 
+      ZREDGR  = XFRMIN(39)  ! Tuning factor, may be /= 1.
+      ZREDSN  = XFRMIN(40)  ! Tuning factor, may be /= 1.
+   ENDIF
 ENDIF
 
+LTIW=.FALSE.
+IF (NINT(XFRMIN(18)) == 1) LTIW=.TRUE.
+
+ZRDEPSRED = XRDEPSRED
+ZRDEPGRED = XRDEPGRED
+
+
 !
 !*       1.3    COMPUTE THE DROPLET NUMBER CONCENTRATION 
 !   	        ----------------------------------------
-!         (Do it alreay here, since also used with OCND2=T )
+!         (Do it already here, since also used with OCND2=T )
 
 IF (OSEDIC.OR.OCND2) THEN
    ZRAY(:,:,:)   = 0.
    ZZZZ(:,:,IKTE)   = PDZZ(:,:,IKTE)*0.5
    ZZZT(:,:,IKTE)   = PDZZ(:,:,IKTE)
-   ZCONC_TMP(:,:)=PSEA(:,:)*XCONC_SEA+(1.-PSEA(:,:))*XCONC_LAND
-
-   DO JK=IKTB,IKTE
-      ZLBC(:,:,JK)   = PSEA(:,:)*XLBC(2)+(1.-PSEA(:,:))*XLBC(1)
-      ZFSEDC(:,:,JK) = (PSEA(:,:)*XFSEDC(2)+(1.-PSEA(:,:))*XFSEDC(1))
-      ZFSEDC(:,:,JK) = MAX(MIN(XFSEDC(1),XFSEDC(2)),ZFSEDC(:,:,JK))
-      ZCONC3D(:,:,JK)= (1.-PTOWN(:,:))*ZCONC_TMP(:,:)+PTOWN(:,:)*XCONC_URBAN
-      ZRAY(:,:,JK)   = 0.5*((1.-PSEA(:,:))*GAMMA(XNUC+1.0/XALPHAC)/(GAMMA(XNUC)) + &
+   IF (XFRMIN(26)>0.001) THEN ! Use alternative concentration given by (XFRMIN(26)
+      ZCONC_TMP(:,:) = XFRMIN(26)
+      DO JK=IKTB,IKTE
+         ZLBC(:,:,JK)   = 0.5* (XLBC(2)+XLBC(1)) ! Assume "average" distr. func for simplicity
+         ZFSEDC(:,:,JK) = 0.5* (XFSEDC(2)+XFSEDC(1))
+         ZFSEDC(:,:,JK) = MAX(MIN(XFSEDC(1),XFSEDC(2)),ZFSEDC(:,:,JK))
+         ZCONC3D(:,:,JK)= ZCONC_TMP(:,:)*PPABST(:,:,JK)/XP00 ! Let it be diluted with decreasing pressure
+         ZRAY(:,:,JK)   = 0.5*( 0.5*GAMMA(XNUC+1.0/XALPHAC)/(GAMMA(XNUC)) + &
+           0.5*GAMMA(XNUC2+1.0/XALPHAC2)/(GAMMA(XNUC2)))
+      ENDDO
+   ELSE
+     ZCONC_TMP(:,:)=PSEA(:,:)*XCONC_SEA+(1.-PSEA(:,:))*XCONC_LAND
+
+     DO JK=IKTB,IKTE
+        ZLBC(:,:,JK)   = PSEA(:,:)*XLBC(2)+(1.-PSEA(:,:))*XLBC(1)
+        ZFSEDC(:,:,JK) = (PSEA(:,:)*XFSEDC(2)+(1.-PSEA(:,:))*XFSEDC(1))
+        ZFSEDC(:,:,JK) = MAX(MIN(XFSEDC(1),XFSEDC(2)),ZFSEDC(:,:,JK))
+        ZCONC3D(:,:,JK)= (1.-PTOWN(:,:))*ZCONC_TMP(:,:)+PTOWN(:,:)*XCONC_URBAN
+        ZRAY(:,:,JK)   = 0.5*((1.-PSEA(:,:))*GAMMA(XNUC+1.0/XALPHAC)/(GAMMA(XNUC)) + &
            PSEA(:,:)*GAMMA(XNUC2+1.0/XALPHAC2)/(GAMMA(XNUC2)))
-   END DO
+     ENDDO
+   ENDIF
 
+   ZCONC3D(:,:,IKTE)= ZCONC3D(:,:,IKTE)*MAX(0.001,XFRMIN(22))
    ZRAY(:,:,:)      = MAX(1.,ZRAY(:,:,:))
-   ZLBC(:,:,:)      = MAX(MIN(XLBC(1),XLBC(2)),ZLBC(:,:,:)) 
+   ZLBC(:,:,:)      = MAX(MIN(XLBC(1),XLBC(2)),ZLBC(:,:,:))
 
    DO JK=IKTE-1,IKTB,-1
      ZZZT(:,:,JK) = ZZZT(:,:,JK+1) + PDZZ(:,:,JK) 
      ZZZZ(:,:,JK) = ZZZT(:,:,JK) - 0.5*PDZZ(:,:,JK)
-   END DO
+   ENDDO
 ENDIF
 
 CALL RAIN_ICE_NUCLEATION
@@ -584,25 +581,45 @@ CALL RAIN_ICE_NUCLEATION
 !
 GMICRO(:,:,:) = .FALSE.
 
- IF ( KRR == 7 ) THEN
-  GMICRO(IIB:IIE,IJB:IJE,IKTB:IKTE) =                          &
+IF (OCND2) THEN
+  IF ( KRR == 7 ) THEN
+    GMICRO(IIB:IIE,IJB:IJE,IKTB:IKTE) =                           &
+                PSSIO(IIB:IIE,IJB:IJE,IKTB:IKTE)>XFRMIN(12)  .OR. &
+                PRCT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XFRMIN(13)   .OR. &
+                PRRT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XFRMIN(13)   .OR. &
+                PRIT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XFRMIN(13)   .OR. &
+                PRST(IIB:IIE,IJB:IJE,IKTB:IKTE)>XFRMIN(13)   .OR. &
+                PRGT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XFRMIN(13)   .OR. &
+                PRHT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XFRMIN(13)
+  ELSEIF ( KRR == 6 ) THEN
+    GMICRO(IIB:IIE,IJB:IJE,IKTB:IKTE) =                           &
+                PSSIO(IIB:IIE,IJB:IJE,IKTB:IKTE)>XFRMIN(12)  .OR. &
+                PRCT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XFRMIN(13)   .OR. &
+                PRRT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XFRMIN(13)   .OR. &
+                PRIT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XFRMIN(13)   .OR. &
+                PRST(IIB:IIE,IJB:IJE,IKTB:IKTE)>XFRMIN(13)   .OR. &
+                PRGT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XFRMIN(13)
+  ENDIF
+ELSE
+  IF ( KRR == 7 ) THEN
+    GMICRO(IIB:IIE,IJB:IJE,IKTB:IKTE) =                        &
                 PRCT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(2) .OR. &
                 PRRT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(3) .OR. &
                 PRIT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(4) .OR. &
                 PRST(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(5) .OR. &
                 PRGT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(6) .OR. &
                 PRHT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(7)
- ELSE IF( KRR == 6 ) THEN
-  GMICRO(IIB:IIE,IJB:IJE,IKTB:IKTE) =                          &
+  ELSEIF ( KRR == 6 ) THEN
+    GMICRO(IIB:IIE,IJB:IJE,IKTB:IKTE) =                        &
                 PRCT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(2) .OR. &
                 PRRT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(3) .OR. &
                 PRIT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(4) .OR. &
                 PRST(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(5) .OR. &
                 PRGT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(6)
- END IF
-
+  ENDIF
+ENDIF
 IMICRO = COUNTJV( GMICRO(:,:,:),I1(:),I2(:),I3(:))
-IF( IMICRO >= 0 ) THEN
+IF ( IMICRO >= 0 ) THEN
   ALLOCATE(ZRVT(IMICRO))
   ALLOCATE(ZRCT(IMICRO))
   ALLOCATE(ZRRT(IMICRO))
@@ -639,23 +656,39 @@ IF( IMICRO >= 0 ) THEN
   ALLOCATE(ZCOLF(IMICRO))
   ALLOCATE(ZACRF(IMICRO))
   ALLOCATE(ZCONCM(IMICRO))
+  ALLOCATE(ZZKGN_ACON(IMICRO))
+  ALLOCATE(ZZKGN_SBGR(IMICRO))
+  IF (LTIW) ALLOCATE(ZTIW(IMICRO))
   IF (OCND2) THEN
-     ALLOCATE(ZZZ(IMICRO))
-     ALLOCATE(ZDZ(IMICRO))
+     ALLOCATE(ZESI(IMICRO))
+     ALLOCATE(ZESW(IMICRO))
      ALLOCATE(ZSIFRC(IMICRO))
      ALLOCATE(ZSSIO(IMICRO))
      ALLOCATE(ZSSIU(IMICRO))
      ALLOCATE(ZZWC(IMICRO))
      ALLOCATE(ZW2D(IMICRO))
+     ALLOCATE(ZXW2D(IMICRO))
+     ALLOCATE(ZXW2D13(IMICRO))
      ALLOCATE(ZCRYSHA(IMICRO))
      ALLOCATE(ZCI2S(IMICRO))
-     ALLOCATE(ZARTMP(IMICRO))
+     IF (LTEST) ALLOCATE(ZARTMP(IMICRO))
      ALLOCATE(ZAA2(IMICRO))
      ALLOCATE(ZBB3(IMICRO))
      ALLOCATE(ZAA2W(IMICRO))
      ALLOCATE(ZBB3W(IMICRO))
-     ALLOCATE(ZESI(IMICRO))
-     ALLOCATE(ZESW(IMICRO))
+  ENDIF
+  IF (OCND2) THEN
+     IF (LMODICEDEP) THEN
+        DO JL=1,IMICRO
+           ZXW2D(JL) = PIFR(I1(JL),I2(JL),I3(JL))
+           ZXW2D13(JL)=ZXW2D(JL)**(-XLBEXI)
+        ENDDO
+     ELSE
+        DO JL=1,IMICRO
+           ZXW2D(JL) = PIFR(I1(JL),I2(JL),I3(JL))
+           ZXW2D13(JL)=ZXW2D(JL)**0.333
+        ENDDO
+     ENDIF
   ENDIF
 
   DO JL=1,IMICRO
@@ -668,7 +701,7 @@ IF( IMICRO >= 0 ) THEN
     IF ( KRR == 7 ) ZRHT(JL) = PRHT(I1(JL),I2(JL),I3(JL))
     ZCIT(JL) = PCIT(I1(JL),I2(JL),I3(JL))
     ZCF(JL) = PCLDFR(I1(JL),I2(JL),I3(JL))
-    IF ( HSUBG_AUCV == 'PDF ' .AND. CSUBG_PR_PDF == 'SIGM' ) THEN
+    IF ( HSUBG_AUCV_RC == 'PDF ' .AND. CSUBG_PR_PDF == 'SIGM' ) THEN
       ZSIGMA_RC(JL) = PSIGS(I1(JL),I2(JL),I3(JL)) * 2.
     END IF
     ZRVS(JL) = PRVS(I1(JL),I2(JL),I3(JL))
@@ -689,6 +722,9 @@ IF( IMICRO >= 0 ) THEN
     ZCOLF(JL)=1. ! No change from orignal when  OCND2 = .FALSE.
     ZACRF(JL)=1. !    "      "       "            "       "
     ZCONCM(JL)=ZCONC3D(I1(JL),I2(JL),I3(JL))*0.000001 ! From m-3 to cm-3
+    IF (LTIW) ZTIW(JL)=TIWMX_TAB(ZPRES(JL),ZZT(JL), ZRVS(JL)*PTSTEP,0._JPRB,ZRSP,ZRSW,0.1_JPRB)
+    ZZKGN_ACON(JL)=PKGN_ACON(I1(JL),I2(JL))
+    ZZKGN_SBGR(JL)=PKGN_SBGR(I1(JL),I2(JL))
     IF (OCND2) THEN
        ZESI(JL) = ESATI(ZZT(JL))
        ZESW(JL) = ESATW(ZZT(JL))
@@ -696,8 +732,10 @@ IF( IMICRO >= 0 ) THEN
        ZBB3(JL) = BB3(ZZT(JL))
        ZAA2W(JL)= AA2W(ZZT(JL))
        ZBB3W(JL)= BB3W(ZZT(JL))
-       ZZZ(JL) = ZZZZ(I1(JL),I2(JL),I3(JL))       
-       ZDZ(JL) = PDZZ(I1(JL),I2(JL),I3(JL))
+       ZSIFRC(JL) = PICLDFR(I1(JL),I2(JL),I3(JL))
+       ZSSIO(JL) = PSSIO(I1(JL),I2(JL),I3(JL))
+       ZSSIU(JL) = PSSIU(I1(JL),I2(JL),I3(JL))
+       ZW2D(JL) = 1./(ZXW2D(JL)*ZSIFRC(JL) + 1. -ZSIFRC(JL))
        ZCOLF(JL)=0.00001
        ZACRF(JL)=0.00001
        IF(ZRCT(JL)>1.0E-10)THEN
@@ -768,7 +806,7 @@ IF( IMICRO >= 0 ) THEN
   !Cloud water split between high and low content part is done here
   !according to autoconversion option
   ZRCRAUTC(:)   = XCRIAUTC/ZRHODREF(:) ! Autoconversion rc threshold
-  IF (HSUBG_AUCV == 'NONE') THEN
+  IF (HSUBG_AUCV_RC == 'NONE') THEN
     !Cloud water is entirely in low or high part
     WHERE (ZRCT(:) > ZRCRAUTC(:))
       ZHLC_HCF(:) = 1.
@@ -790,7 +828,7 @@ IF( IMICRO >= 0 ) THEN
       ZRF(:)      = 0.
     END WHERE
 
-  ELSEIF (HSUBG_AUCV == 'CLFR') THEN
+  ELSEIF (HSUBG_AUCV_RC == 'CLFR') THEN
     !Cloud water is only in the cloudy part and entirely in low or high part
     WHERE (ZCF(:) > 0. )
       WHERE (ZRCT(:)/ZCF(:) > ZRCRAUTC(:))
@@ -820,7 +858,7 @@ IF( IMICRO >= 0 ) THEN
       ZRF(:)      = 0.
     END WHERE
 
-  ELSEIF (HSUBG_AUCV == 'PDF ') THEN
+  ELSEIF (HSUBG_AUCV_RC == 'PDF ') THEN
     !Cloud water is split between high and low part according to a PDF
     !    'HLCRECTPDF'    : rectangular PDF form
     !    'HLCTRIANGPDF'  : triangular PDF form
@@ -948,9 +986,9 @@ IF( IMICRO >= 0 ) THEN
       STOP 'wrong CSUBG_PR_PDF case'
     ENDIF
   ELSE
-    !wrong HSUBG_AUCV case
+    !wrong HSUBG_AUCV_RC case
     CALL ABORT
-    STOP 'wrong HSUBG_AUCV case'
+    STOP 'wrong HSUBG_AUCV_RC case'
   ENDIF
 
   !Diagnostic of precipitation fraction
@@ -1022,7 +1060,7 @@ IF( IMICRO >= 0 ) THEN
 !
   CALL RAIN_ICE_FAST_RI
 
-  IF(OCND2)THEN
+  IF (OCND2.AND.LCHECKNOISE) THEN
 !*       8     This check is mainly for noise reduction:
 !              ----------------------------------------
 ! Do not override saturation point over ice for temperatures below freezing. 
@@ -1174,23 +1212,25 @@ IF( IMICRO >= 0 ) THEN
   DEALLOCATE(ZCOLF)
   DEALLOCATE(ZACRF)
   DEALLOCATE(ZCONCM)
+  DEALLOCATE(ZZKGN_ACON,ZZKGN_SBGR)
+  IF (LTIW) DEALLOCATE(ZTIW)
   IF (OCND2) THEN
-     DEALLOCATE(ZARTMP)
-     DEALLOCATE(ZZZ)
-     DEALLOCATE(ZDZ)
+     DEALLOCATE(ZESI)
+     DEALLOCATE(ZESW)
      DEALLOCATE(ZSIFRC)
      DEALLOCATE(ZSSIO)
      DEALLOCATE(ZSSIU)
      DEALLOCATE(ZZWC)
      DEALLOCATE(ZW2D)
+     DEALLOCATE(ZXW2D)
+     DEALLOCATE(ZXW2D13)
      DEALLOCATE(ZCRYSHA)
-     DEALLOCATE(ZCI2S) 
+     DEALLOCATE(ZCI2S)
      DEALLOCATE(ZAA2)
      DEALLOCATE(ZBB3)
      DEALLOCATE(ZAA2W)
      DEALLOCATE(ZBB3W)
-     DEALLOCATE(ZESI)
-     DEALLOCATE(ZESW)
+     IF (LTEST) DEALLOCATE(ZARTMP)
   ENDIF
 
 !
@@ -2030,6 +2070,8 @@ END DO
    PRIS(:,:,:) = PRIS(:,:,:) * ZINVTSTEP
 
 
+   PINPRS(:,:) = ZWSED(:,:,IKB)/XRHOLW
+
 !
 !*       2.4   for aggregates/snow
 !
@@ -2085,7 +2127,7 @@ END DO
      ENDDO
    ENDIF
 
-   PINPRS(:,:) = ZWSED(:,:,IKB)/XRHOLW                        ! in m/s
+   PINPRS(:,:) = ZWSED(:,:,IKB)/XRHOLW    +  PINPRS(:,:)    ! in m/s (add ice fall)
 
    PRSS(:,:,:) = PRSS(:,:,:) * ZINVTSTEP
 
@@ -2262,16 +2304,11 @@ IF( INEGT >= 1 ) THEN
   ALLOCATE(ZCIT(INEGT)) ;
   ALLOCATE(ZZT(INEGT))  ;
   ALLOCATE(ZPRES(INEGT));
+  ALLOCATE(ZZICENU(INEGT));
   IF (OCND2) THEN
      ALLOCATE(ZZZ(INEGT))
-     ALLOCATE(ZDZ(INEGT))
      ALLOCATE(ZSIFRC(INEGT))
-     ALLOCATE(ZSSIO(INEGT))
-     ALLOCATE(ZSSIU(INEGT))
-     ALLOCATE(ZW2D(INEGT))
-     ALLOCATE(ZRVS(INEGT))
      ALLOCATE(ZAM3(INEGT)) 
-     ALLOCATE(ZARTMP(INEGT))
      ALLOCATE(ZREDIN(INEGT))
      ALLOCATE(ZESI(INEGT)) 
      ALLOCATE(ZESW(INEGT))
@@ -2281,14 +2318,14 @@ IF( INEGT >= 1 ) THEN
     ZCIT(JL) = PCIT(I1(JL),I2(JL),I3(JL))
     ZZT(JL) = ZT(I1(JL),I2(JL),I3(JL))
     ZPRES(JL) = PPABST(I1(JL),I2(JL),I3(JL))
+    ZZICENU(JL) = PICENU(I1(JL),I2(JL))
     IF (OCND2) THEN
-       ZRVS(JL)= PRVS(I1(JL),I2(JL),I3(JL))
        ZZZ(JL) = ZZZZ(I1(JL),I2(JL),I3(JL))
-       ZDZ(JL) = PDZZ(I1(JL),I2(JL),I3(JL))
        ZESI(JL) = ESATI(ZZT(JL))
        ZESW(JL) = ESATW(ZZT(JL))
-       ZAM3(JL) = AM3(ZZT(JL))
+       ZAM3(JL) = AM3(MAX(XFRMIN(27),ZZT(JL))) ! Avoid too high IN for very low temp.
        ZREDIN(JL) = REDIN(ZZT(JL))
+       ZSIFRC(JL) = PICLDFR(I1(JL),I2(JL),I3(JL))
     ENDIF
   ENDDO
   ALLOCATE(ZZW(INEGT))
@@ -2320,12 +2357,13 @@ IF( INEGT >= 1 ) THEN
   ZZW(:) = 0.0
   ZSSI(:) = MIN( ZSSI(:), ZUSW(:) ) ! limitation of SSi according to SSw=0
   IF(OCND2)THEN
-     ZARTMP(:) = -1.
-     CALL ICECLOUD(INEGT,ZPRES,ZZZ,ZDZ,ZZT,ZRVS,PTSTEP,-1.,ZARTMP, &
-          &        ZXW2D,ZSIFRC,ZSSIO,ZSSIU,ZW2D,ZZW)  !note: ZZW is dummy here, not used
-
-     ZZW(:) = ZREDIN(:)* MAX(0.1,((20000.- MIN(20000.,ZZZ(:)))/20000.)**4) &
+     IF (LMODICEDEP) THEN
+       ZZW(:) = 5.*EXP(0.304*(XTT-ZZT(:)))
+       ZZW(:) = MIN(1.,MAX(ZSSI(:)*10.,0.01))*ZZW(:)
+     ELSE
+       ZZW(:) = ZREDIN(:)* MAX(0.1,((20000.- MIN(20000.,ZZZ(:)))/20000.)**4) &
           &   *ZAM3(:)*(0.0001 + 0.9999*ZSIFRC(:))
+     ENDIF
   ELSE
      WHERE( (ZZT(:)<XTT-5.0) .AND. (ZSSI(:)>0.0) )
         ZZW(:) = XNU20 * EXP( XALPHA2*ZSSI(:)-XBETA2 )
@@ -2336,8 +2374,7 @@ IF( INEGT >= 1 ) THEN
              ( ZSSI(:)/ZUSW(:) )**XALPHA1 )
      END WHERE
   ENDIF
-
-  ZZW(:) = ZZW(:) - ZCIT(:)
+  ZZW(:) = ZZW(:)*ZZICENU(:) - ZCIT(:)
   IF( MAXVAL(ZZW(:)) > 0.0 ) THEN
 !
 !*       3.1.2   update the r_i and r_v mixing ratios
@@ -2371,17 +2408,12 @@ IF( INEGT >= 1 ) THEN
   DEALLOCATE(ZZT)
   DEALLOCATE(ZCIT)
   DEALLOCATE(ZRVT)
+  DEALLOCATE(ZZICENU)
   IF (OCND2) THEN
      DEALLOCATE(ZZZ)
-     DEALLOCATE(ZDZ)
      DEALLOCATE(ZSIFRC)
-     DEALLOCATE(ZSSIO)
-     DEALLOCATE(ZSSIU)
-     DEALLOCATE(ZW2D)
-     DEALLOCATE(ZRVS)
      DEALLOCATE(ZAM3)
      DEALLOCATE(ZREDIN)     
-     DEALLOCATE(ZARTMP)
      DEALLOCATE(ZESI)
      DEALLOCATE(ZESW)
   ENDIF
@@ -2395,6 +2427,80 @@ IF (LBUDGET_RI) CALL BUDGET_DDH (PRIS(:,:,:)*PRHODJ(:,:,:),9,'HENU_BU_RRI',YDDDH
 !
   IF (LHOOK) CALL DR_HOOK('RAIN_ICE_OLD:RAIN_ICE_NUCLEATION',1,ZHOOK_HANDLE)
   END SUBROUTINE RAIN_ICE_NUCLEATION
+      REAL FUNCTION ICENUMBER2 (Q_ICE, T3D)
+
+      IMPLICIT NONE
+      REAL, PARAMETER:: ICE_DENSITY = 890.0
+      REAL, PARAMETER:: PI = 3.1415926536
+      INTEGER IDX_REI
+      REAL CORR, REICE, DEICE, Q_ICE, T3D
+      DOUBLE PRECISION LAMBDA
+
+!+---+-----------------------------------------------------------------+
+!..Table of lookup values of radiative effective radius of ice crystals
+!.. as a function of Temperature from -94C to 0C.  Taken from WRF RRTMG
+!.. radiation code where it is attributed to Jon Egill Kristjansson
+!.. and coauthors.
+!+---+-----------------------------------------------------------------+
+
+      REAL RETAB(95)
+      DATA RETAB /                                                      &
+         5.92779, 6.26422, 6.61973, 6.99539, 7.39234,                   &
+         7.81177, 8.25496, 8.72323, 9.21800, 9.74075, 10.2930,          &
+         10.8765, 11.4929, 12.1440, 12.8317, 13.5581, 14.2319,          &
+         15.0351, 15.8799, 16.7674, 17.6986, 18.6744, 19.6955,          &
+         20.7623, 21.8757, 23.0364, 24.2452, 25.5034, 26.8125,          &
+         27.7895, 28.6450, 29.4167, 30.1088, 30.7306, 31.2943,          &
+         31.8151, 32.3077, 32.7870, 33.2657, 33.7540, 34.2601,          &
+         34.7892, 35.3442, 35.9255, 36.5316, 37.1602, 37.8078,          &
+         38.4720, 39.1508, 39.8442, 40.5552, 41.2912, 42.0635,          &
+         42.8876, 43.7863, 44.7853, 45.9170, 47.2165, 48.7221,          &
+         50.4710, 52.4980, 54.8315, 57.4898, 60.4785, 63.7898,          &
+         65.5604, 71.2885, 75.4113, 79.7368, 84.2351, 88.8833,          &
+         93.6658, 98.5739, 103.603, 108.752, 114.025, 119.424,          &
+         124.954, 130.630, 136.457, 142.446, 148.608, 154.956,          &
+         161.503, 168.262, 175.248, 182.473, 189.952, 197.699,          &
+         205.728, 214.055, 222.694, 231.661, 240.971, 250.639/
+
+!+---+-----------------------------------------------------------------+
+!..From the model 3D temperature field, subtract 179K for which
+!.. index value of retab as a start.  Value of corr is for
+!.. interpolating between neighboring values in the table.
+!+---+-----------------------------------------------------------------+
+
+      IDX_REI = INT(T3D-179.)
+      IDX_REI = MIN(MAX(IDX_REI,1),95)
+      CORR = T3D - INT(T3D)
+      REICE = RETAB(IDX_REI)*(1.-CORR) + RETAB(MIN(95,IDX_REI+1))*CORR
+      DEICE = 2.*REICE * 1.E-6
+
+!+---+-----------------------------------------------------------------+
+!..Now we have the final radiative effective size of ice (as function
+!.. of temperature only).  This size represents 3rd moment divided by
+!.. second moment of the ice size distribution, so we can compute a
+!.. number concentration from the mean size and mass mixing ratio.
+!.. The mean (radiative effective) diameter is 3./Slope for an inverse
+!.. exponential size distribution.  So, starting with slope, work
+!.. backwords to get number concentration.
+!+---+-----------------------------------------------------------------+
+
+      LAMBDA = 3.0 / DEICE
+      ICENUMBER2 = Q_ICE * LAMBDA*LAMBDA*LAMBDA / (PI*ICE_DENSITY)
+ 
+!+---+-----------------------------------------------------------------+
+!..Example1: Common ice size coming from Thompson scheme is about 30 microns.
+!.. An example ice mixing ratio could be 0.001 g/kg for a temperature of -50C.
+!.. Remember to convert both into MKS units.  This gives N_ice=357652 per kg.
+!..Example2: Lower in atmosphere at T=-10C matching ~162 microns in retab,
+!.. and assuming we have 0.1 g/kg mixing ratio, then N_ice=28122 per kg,
+!.. which is 28 crystals per liter of air if the air density is 1.0.
+!+---+-----------------------------------------------------------------+
+
+      RETURN
+      END
+
+!
+!
 !
 !-------------------------------------------------------------------------------
 !
@@ -2504,6 +2610,9 @@ IMPLICIT NONE
              ( X0DEPS*ZLBDAS(:)**XEX0DEPS + X1DEPS*ZCJ(:)*ZLBDAS(:)**XEX1DEPS )
         ZZW(:) =         MIN( ZRVS(:),ZZW(:)      )*(0.5+SIGN(0.5,ZZW(:))) &
              - MIN( ZRSS(:),ABS(ZZW(:)) )*(0.5-SIGN(0.5,ZZW(:)))
+        WHERE (ZZW(:) < 0.0 )
+          ZZW(:) = ZZW(:) * ZRDEPSRED 
+        END WHERE  
         ZRSS(:) = ZRSS(:) + ZZW(:)
         ZRVS(:) = ZRVS(:) - ZZW(:)
         ZTHS(:) = ZTHS(:) + ZZW(:)*ZLSFACT(:)
@@ -2551,14 +2660,11 @@ IMPLICIT NONE
     ZRIS(:)  = ZRIS(:)  - ZZW(:)
   END WHERE
 
-  IF(OCND2)THEN ! 3.4.5 B: 
+  IF (OCND2 .AND. .NOT. LMODICEDEP) THEN ! 3.4.5 B: 
                 ! Turn ice crystals lagrer than a precribed size into snow:
                 ! (For the moment sperical ice crystals are assumed)
      ALLOCATE(ZBFT(IMICRO))
 
-     ZZW(:)=0._JPRB
-     ZZW(:) = MIN(ZPRES(:)/2._JPRB, ZESI(:))             ! es_i, safety limitation
-
      WHERE (  (ZRIS(:)>0.0_JPRB) .AND.(ZSSI(:)>0.001_JPRB) )
         ZBFT(:) =   0.5_JPRB*87.5_JPRB*(ZDICRIT)**2*ZAI(:)/ ZSSI(:)
         ZBFT(:) =   PTSTEP/ MAX(PTSTEP,ZBFT(:)*2._JPRB)
@@ -2569,6 +2675,33 @@ IMPLICIT NONE
      DEALLOCATE(ZBFT)
   ENDIF
 
+  IF (OCND2 .AND. LMODICEDEP) THEN ! 3.4.5 B: 
+                ! Turn ice to snow if ice crystal distrubution is such that
+                ! the ice crystal diameter for the (mass x N_i) maximum 
+                ! is lagrer than a precribed size. 
+                ! (ZDICRIT) The general gamma function is assumed
+     ALLOCATE(ZBFT(IMICRO))
+     DO JL=1,IMICRO
+        ZZW2(JL) = &
+        MAX(ZCIT(JL),ICENUMBER2(ZRIS(JL)*PTSTEP,ZZT(JL))*ZRHODREF(JL))
+     ENDDO
+
+     WHERE (  ZRIS(:)>XFRMIN(13) .AND.ZCIT(:) > 0. )
+           ZZW2(:) = MIN(1.E8,XLBI*( ZRHODREF(:)*ZRIS(:)* PTSTEP/ZZW2(:) )**XLBEXI) ! LAMBDA for ICE
+           ZBFT(:) = 1. - 0.5**( ZKVO /ZZW2(:))
+           ZBFT(:) = MIN(0.9*ZRIS(:)*PTSTEP, ZBFT(:)*ZRIS(:)*PTSTEP)
+           ZRSS(:) =   ZRSS(:)  + ZBFT(:)
+           ZRIS(:) =   ZRIS(:)  - ZBFT(:)
+     END WHERE
+!     DO JL=1,IMICRO
+
+!       IF(ZRIS(JL)>XFRMIN(13) .AND.ZCIT(JL) > 0. ) THEN
+!        print*,'345JL', ZZW2(JL),ZRIS(JL),ZBFT(JL),ZZT(JL)-XTT
+!       ENDIF
+!    ENDDO
+     DEALLOCATE(ZBFT)
+  ENDIF
+
   DEALLOCATE(ZCRIAUTI)
   IF (LBUDGET_RI) CALL BUDGET_DDH (                                                 &
                      UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0),    &
@@ -2580,40 +2713,33 @@ IMPLICIT NONE
 !*       3.4.6  compute the deposition on r_g: RVDEPG
 !
 !
-
   ZZW2(:) = 0.0
-  IF(LGRSN) ZZW2(:) = MAX(0., MIN(1., (1.0E-7 - ZRGS(:))/1.0E-7))* &
-        &       MAX(0.,MIN(1.,ZSSI(:)/0.15))
-  
+  IF (XFRMIN(5)> 1.0E-12 .AND. XFRMIN(6) > 0.01) &
+        &        ZZW2(:) = MAX(0., MIN(1., (XFRMIN(5) - ZRGS(:))/XFRMIN(5)))* &
+        &	MAX(0.,MIN(1.,ZSSI(:)/XFRMIN(6)))
+
+
   WHERE ( ZRGT(:)>0.0 )
     ZLBDAG(:)  = XLBG*( ZRHODREF(:)*MAX( ZRGT(:),XRTMIN(6) ) )**XLBEXG
   END WHERE
   ZZW(:) = 0.0
-  
-  IF(LGRSN)THEN
-   WHERE ( (ZRGT(:)>XRTMIN(6)) .AND. (ZRGS(:)>0.0) )
+  WHERE ( (ZRGT(:)>XRTMIN(6)) .AND. (ZRGS(:)>0.0) )
     ZZW(:) = ( ZSSI(:)/(ZRHODREF(:)*ZAI(:)) ) *                               &
              ( X0DEPG*ZLBDAG(:)**XEX0DEPG + X1DEPG*ZCJ(:)*ZLBDAG(:)**XEX1DEPG )
     ZZW(:) =         MIN( ZRVS(:),ZZW(:)      )*(0.5+SIGN(0.5,ZZW(:))) &
                    - MIN( ZRGS(:),ABS(ZZW(:)) )*(0.5-SIGN(0.5,ZZW(:)))
     ZZW(:)  = ZZW(:)*ZREDGR
+    WHERE (ZZW(:) < 0.0 )
+      ZZW(:)  = ZZW(:) * ZRDEPGRED
+    END WHERE
     ZRSS(:) = (ZZW(:) + ZRGS(:))* ZZW2(:) + ZRSS(:)
     ZRGS(:) = (ZZW(:) + ZRGS(:))*(1. - ZZW2(:))
     ZRVS(:) = ZRVS(:) - ZZW(:)
     ZTHS(:) = ZTHS(:) + ZZW(:)*ZLSFACT(:)
-   END WHERE
-  ELSE
-   WHERE ( (ZRGT(:)>XRTMIN(6)) .AND. (ZRGS(:)>0.0) )
-    ZZW(:) = ( ZSSI(:)/(ZRHODREF(:)*ZAI(:)) ) *                               &
-             ( X0DEPG*ZLBDAG(:)**XEX0DEPG + X1DEPG*ZCJ(:)*ZLBDAG(:)**XEX1DEPG )
-    ZZW(:) =         MIN( ZRVS(:),ZZW(:)      )*(0.5+SIGN(0.5,ZZW(:))) &
-                   - MIN( ZRGS(:),ABS(ZZW(:)) )*(0.5-SIGN(0.5,ZZW(:)))
-    ZZW(:)  = ZZW(:)*ZREDGR
-    ZRGS(:) = ZRGS(:) + ZZW(:)                                                                                                                                                                                    
-    ZRVS(:) = ZRVS(:) - ZZW(:)
-    ZTHS(:) = ZTHS(:) + ZZW(:)*ZLSFACT(:)
-   END WHERE
-  END IF
+  END WHERE
+  WHERE (ZZW(:) < 0.0 )
+    ZZW(:)  = ZZW(:) * ZRDEPGRED
+  END WHERE
  
 
   IF (LBUDGET_TH) CALL BUDGET_DDH (                                                 &
@@ -2644,15 +2770,14 @@ IMPLICIT NONE
 !
 !*       4.2    compute the autoconversion of r_c for r_r production: RCAUTR
 !
-    REAL :: ZINHOMFACT 
     REAL(KIND=JPRB) :: ZHOOK_HANDLE
     IF (LHOOK) CALL DR_HOOK('RAIN_ICE_OLD:RAIN_ICE_WARM',0,ZHOOK_HANDLE)
 
-    ZINHOMFACT=10.
-
-    IF(OCND2)THEN
+    IF (LKOGAN) THEN
        WHERE( ZRCT(:) >  1.0E-8) ! Closely following Kogan autoconversion
-          ZZW(:) = 1350.0*ZINHOMFACT* ZCONCM(:)**(-1.79) * ZRCT(:)**2.47
+          ZZW(:) = 1350.0*ZZKGN_ACON(:)* ZCONCM(:)**(-1.79) * &
+         &  (ZRCT(:)/(MAX(ZZKGN_SBGR(:),ZCF(:))))**2.47
+          ZZW(:) = ZZW(:)*MAX(ZZKGN_SBGR(:),ZCF(:))
           ZZW(:) = MIN( ZRCS(:),ZZW(:))
           ZRCS(:) = ZRCS(:) - ZZW(:)
           ZRRS(:) = ZRRS(:) + ZZW(:)
@@ -2664,7 +2789,7 @@ IMPLICIT NONE
           ZRCS(:) = ZRCS(:) - ZZW(:)
           ZRRS(:) = ZRRS(:) + ZZW(:)
        END WHERE
-    ENDIF 
+    ENDIF
 !
       IF (LBUDGET_RC) CALL BUDGET_DDH (                                               &
                        UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0),    &
@@ -2678,7 +2803,7 @@ IMPLICIT NONE
     IF (CSUBG_RC_RR_ACCR=='NONE') THEN
       !CLoud water and rain are diluted over the grid box
       WHERE( ZRCT(:)>XRTMIN(2) .AND. ZRRT(:)>XRTMIN(3) .AND. ZRCS(:)>0.0 )
-        ZZW(:) = MIN( ZRCS(:), XFCACCR * ZRCT(:)                &
+        ZZW(:) = MIN( ZRCS(:), XFCACCR * ZRCT(:)*ZACRF(:)                &
                  * ZLBDAR(:)**XEXCACCR    &
                  * ZRHODREF(:)**(-XCEXVT) )
         ZRCS(:) = ZRCS(:) - ZZW(:)
@@ -2906,27 +3031,15 @@ IMPLICIT NONE
 !
 !        5.1.4  riming of the small sized aggregates
 !
-    IF(OCND2)THEN
-      WHERE ( GRIM(:) )
-        ZZW1(:,1) = MIN( ZRCS(:),                                &
+    WHERE ( GRIM(:) )
+      ZZW1(:,1) = MIN( ZRCS(:),                                &
                      XCRIMSS * ZZW(:) * ZRCT(:)*ZCOLF(:)       & ! RCRIMSS
                                       *   ZLBDAS(:)**XEXCRIMSS &
                                       * ZRHODREF(:)**(-XCEXVT) )
-        ZRCS(:) = ZRCS(:) - ZZW1(:,1)
-        ZRSS(:) = ZRSS(:) + ZZW1(:,1)
-        ZTHS(:) = ZTHS(:) + ZZW1(:,1)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(RCRIMSS))
-        END WHERE 
-    ELSE
-      WHERE ( GRIM(:) )
-        ZZW1(:,1) = MIN( ZRCS(:),                                &
-                     XCRIMSS * ZZW(:) * ZRCT(:)                  & ! RCRIMSS
-                                      *   ZLBDAS(:)**XEXCRIMSS &
-                                      * ZRHODREF(:)**(-XCEXVT) )
-        ZRCS(:) = ZRCS(:) - ZZW1(:,1)
-        ZRSS(:) = ZRSS(:) + ZZW1(:,1)
-        ZTHS(:) = ZTHS(:) + ZZW1(:,1)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(RCRIMSS))
-      END WHERE
-    ENDIF
+      ZRCS(:) = ZRCS(:) - ZZW1(:,1)
+      ZRSS(:) = ZRSS(:) + ZZW1(:,1)
+      ZTHS(:) = ZTHS(:) + ZZW1(:,1)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(RCRIMSS))
+    END WHERE
 !
 !        5.1.5  perform the linear interpolation of the normalized
 !               "XBS"-moment of the incomplete gamma function
@@ -2938,37 +3051,20 @@ IMPLICIT NONE
 !        5.1.6  riming-conversion of the large sized aggregates into graupeln
 !
 !
-    IF(OCND2)THEN
-      WHERE ( GRIM(:) .AND. (ZRSS(:)>0.0) )
-        ZZW1(:,2) = MIN( ZRCS(:),                     &
+    WHERE ( GRIM(:) .AND. (ZRSS(:)>0.0) )
+      ZZW1(:,2) = MIN( ZRCS(:),                     &
                    XCRIMSG * ZRCT(:)*ZCOLF(:)       & ! RCRIMSG
                            *  ZLBDAS(:)**XEXCRIMSG  &
                            * ZRHODREF(:)**(-XCEXVT) &
                            - ZZW1(:,1)              )
-        ZZW1(:,3) = MIN( ZRSS(:),                         &
-                       XSRIMCG * ZLBDAS(:)**XEXSRIMCG   & ! RSRIMCG
-                               * (1.0 - ZZW(:) )/(PTSTEP*ZRHODREF(:)) )
-        ZRCS(:) = ZRCS(:) - ZZW1(:,2)
-        ZRSS(:) = ZRSS(:) - ZZW1(:,3)
-        ZRGS(:) = ZRGS(:) + ZZW1(:,2)+ZZW1(:,3)
-        ZTHS(:) = ZTHS(:) + ZZW1(:,2)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(RCRIMSG))
-      END WHERE
-    ELSE
-      WHERE ( GRIM(:) .AND. (ZRSS(:)>0.0) )
-        ZZW1(:,2) = MIN( ZRCS(:),                     &
-                   XCRIMSG * ZRCT(:)                  & ! RCRIMSG
-                           *  ZLBDAS(:)**XEXCRIMSG  &
-                           * ZRHODREF(:)**(-XCEXVT) &
-                           - ZZW1(:,1)              )
-        ZZW1(:,3) = MIN( ZRSS(:),                         &
+      ZZW1(:,3) = MIN( ZRSS(:),                         &
                        XSRIMCG * ZLBDAS(:)**XEXSRIMCG   & ! RSRIMCG
                                * (1.0 - ZZW(:) )/(PTSTEP*ZRHODREF(:)) )
-        ZRCS(:) = ZRCS(:) - ZZW1(:,2)
-        ZRSS(:) = ZRSS(:) - ZZW1(:,3)
-        ZRGS(:) = ZRGS(:) + ZZW1(:,2)+ZZW1(:,3)
-       ZTHS(:) = ZTHS(:) + ZZW1(:,2)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(RCRIMSG))
-      END WHERE
-    ENDIF
+      ZRCS(:) = ZRCS(:) - ZZW1(:,2)
+      ZRSS(:) = ZRSS(:) - ZZW1(:,3)
+      ZRGS(:) = ZRGS(:) + ZZW1(:,2)+ZZW1(:,3)
+      ZTHS(:) = ZTHS(:) + ZZW1(:,2)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(RCRIMSG))
+    END WHERE
     DEALLOCATE(IVEC2)
     DEALLOCATE(IVEC1)
     DEALLOCATE(ZVEC2)
@@ -3047,9 +3143,9 @@ IMPLICIT NONE
             XLBRACCS2/( ZLBDAS(:)    * ZLBDAR(:)    ) +                  &
             XLBRACCS3/(               (ZLBDAR(:)**2)) )/ZLBDAR(:)**4
       ZZW1(:,4) = MIN( ZRRS(:),ZZW1(:,2)*ZZW(:) )           ! RRACCSS
-      ZRRS(:) = ZRRS(:) - ZZW1(:,4)
-      ZRSS(:) = ZRSS(:) + ZZW1(:,4)
-      ZTHS(:) = ZTHS(:) + ZZW1(:,4)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(RRACCSS))
+      ZRRS(:) = ZRRS(:) - ZZW1(:,4)*XFRMIN(7)
+      ZRSS(:) = ZRSS(:) + ZZW1(:,4)*XFRMIN(7)
+      ZTHS(:) = ZTHS(:) + ZZW1(:,4)*(ZLSFACT(:)-ZLVFACT(:))*XFRMIN(7) ! f(L_f*(RRACCSS))
     END WHERE
 !
 !        5.2.4b perform the bilinear interpolation of the normalized
@@ -3084,7 +3180,7 @@ IMPLICIT NONE
     WHERE ( GACC(:) .AND. (ZRSS(:)>0.0) )
       ZZW1(:,2) = MAX( MIN( ZRRS(:),ZZW1(:,2)-ZZW1(:,4) ),0.0 )       ! RRACCSG
     END WHERE
-    WHERE ( GACC(:) .AND. (ZRSS(:)>0.0) .AND. ZZW1(:,2)>0.0 )
+    WHERE ( GACC(:) .AND. (ZRSS(:)>0.0) .AND. ZZW1(:,2)>0.0 .AND. ZRSS(:)>XFRMIN(1)/PTSTEP )
       ZZW1(:,3) = MIN( ZRSS(:),XFSACCRG*ZZW(:)*                     & ! RSACCRG
             ( ZLBDAS(:)**(XCXS-XBS) )*( ZRHODREF(:)**(-XCEXVT-1.) ) &
            *( XLBSACCR1/((ZLBDAR(:)**2)               ) +           &
@@ -3167,7 +3263,7 @@ IMPLICIT NONE
   REAL(KIND=JPRB) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('RAIN_ICE_OLD:RAIN_ICE_FAST_RG',0,ZHOOK_HANDLE)
   ZZW1(:,3:4) = 0.0
-  WHERE( (ZRIT(:)>XRTMIN(4)) .AND. (ZRRT(:)>XRTMIN(3)) .AND.  &
+  WHERE( (ZRIT(:)>XRTMIN(4) .AND. ZRIT(:)>XFRMIN(2)) .AND. (ZRRT(:)>XRTMIN(3)) .AND.  &
                              (ZRIS(:)>0.0) .AND. (ZRRS(:)>0.0) )
     ZZW1(:,3) = MIN( ZRIS(:),XICFRR * ZRIT(:)                & ! RICFRRG
                                     * ZLBDAR(:)**XEXICFRR    &
@@ -3254,15 +3350,19 @@ IMPLICIT NONE
     END DO
     ZZW(:) = UNPACK( VECTOR=ZVEC3(:),MASK=GDRY,FIELD=0.0 )
 !
-    WHERE( GDRY(:) )
-      ZZW1(:,3) = MIN( ZRSS(:),XFSDRYG*ZZW(:)                         & ! RSDRYG
-                                      * EXP( XCOLEXSG*(ZZT(:)-XTT) )  &
-                    *( ZLBDAS(:)**(XCXS-XBS) )*( ZLBDAG(:)**XCXG )    &
-                    *( ZRHODREF(:)**(-XCEXVT-1.) )                    &
-                         *( XLBSDRYG1/( ZLBDAG(:)**2              ) + &
-                            XLBSDRYG2/( ZLBDAG(:)   * ZLBDAS(:)   ) + &
-                            XLBSDRYG3/(               ZLBDAS(:)**2) ) )
-    END WHERE
+    IF (OCND2) THEN
+      ZZW1(:,3) = 0.
+    ELSE
+      WHERE( GDRY(:) )
+        ZZW1(:,3) = MIN( ZRSS(:),XFSDRYG*ZZW(:)                         & ! RSDRYG
+                                        * EXP( XCOLEXSG*(ZZT(:)-XTT) )  &
+                      *( ZLBDAS(:)**(XCXS-XBS) )*( ZLBDAG(:)**XCXG )    &
+                      *( ZRHODREF(:)**(-XCEXVT-1.) )                    &
+                           *( XLBSDRYG1/( ZLBDAG(:)**2              ) + &
+                              XLBSDRYG2/( ZLBDAG(:)   * ZLBDAS(:)   ) + &
+                              XLBSDRYG3/(               ZLBDAS(:)**2) ) )
+      END WHERE
+    ENDIF
     DEALLOCATE(IVEC2)
     DEALLOCATE(IVEC1)
     DEALLOCATE(ZVEC3)
@@ -3393,7 +3493,8 @@ IMPLICIT NONE
                                                  ! f(L_f*(RCWETG+RRWETG))
    END WHERE
    ELSE IF( KRR == 6 ) THEN
-     WHERE( ZRGT(:)>XRTMIN(6) .AND. ZZT(:)<XTT                            &
+     WHERE( ZRGT(:)>XRTMIN(6) .AND. ZRGT(:)>XFRMIN(3) .AND.            &
+            ZRIS(:)*PTSTEP>XFRMIN(3) .AND. ZZT(:)<XTT                  &
                                         .AND.                          & ! Wet
                               ZRDRYG(:)>=ZRWETG(:) .AND. ZRWETG(:)>0.0 ) ! case
     ZZW(:)  = ZRWETG(:)
@@ -3432,7 +3533,8 @@ IMPLICIT NONE
   END IF
 
 !
-  WHERE( ZRGT(:)>XRTMIN(6) .AND. ZZT(:)<XTT                            &
+  WHERE( ZRGT(:)>XRTMIN(6) .AND. ZRGT(:)>XFRMIN(4) .AND.               &
+         ZRIS(:)*PTSTEP>XFRMIN(4) .AND. ZZT(:)<XTT                     &
                                         .AND.                          &
                                ZRDRYG(:)<ZRWETG(:) .AND. ZRDRYG(:)>0.0 ) ! Dry
     ZRCS(:) = ZRCS(:) - ZZW1(:,1)
@@ -3470,24 +3572,50 @@ IMPLICIT NONE
 !*       6.5    Melting of the graupeln
 !
   ZZW(:) = 0.0
-   WHERE( (ZRGT(:)>XRTMIN(6)) .AND. (ZRGS(:)>0.0) .AND. (ZZT(:)>XTT) )
-    ZZW(:) = ZRVT(:)*ZPRES(:)/(XEPSILO+ZRVT(:)) ! Vapor pressure
-    ZZW(:) =  ZKA(:)*(XTT-ZZT(:)) +                                 &
-               ( ZDV(:)*(XLVTT + ( XCPV - XCL ) * ( ZZT(:) - XTT )) &
-                           *(XESTT-ZZW(:))/(XRV*ZZT(:))             )
+  IF (LTIW) THEN
+
+    WHERE( (ZRGT(:)>XRTMIN(6)) .AND. (ZRGS(:)>0.0) .AND. (ZTIW(:)>XTT) )
+      ZZW(:) = ZRVT(:)*ZPRES(:)/(XEPSILO+ZRVT(:)) ! Vapor pressure
+      ZZW(:) =  ZKA(:)*(XTT-ZTIW(:)) +                                 &
+                 ( ZDV(:)*(XLVTT + ( XCPV - XCL ) * ( ZTIW(:) - XTT )) &
+                             *(XESTT-ZZW(:))/(XRV*ZTIW(:))             )
 !
 ! compute RGMLTR
 !
-    ZZW(:)  = MIN( ZRGS(:), MAX( 0.0,( -ZZW(:) *                     &
-                           ( X0DEPG*       ZLBDAG(:)**XEX0DEPG +     &
-                             X1DEPG*ZCJ(:)*ZLBDAG(:)**XEX1DEPG ) -   &
-                                     ( ZZW1(:,1)+ZZW1(:,4) ) *       &
-                              ( ZRHODREF(:)*XCL*(XTT-ZZT(:))) ) /    &
-                                             ( ZRHODREF(:)*XLMTT ) ) )
-    ZRRS(:) = ZRRS(:) + ZZW(:)
-    ZRGS(:) = ZRGS(:) - ZZW(:)
-    ZTHS(:) = ZTHS(:) - ZZW(:)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(-RGMLTR))
-  END WHERE
+      ZZW(:)  = XFRMIN(8)*MIN( ZRGS(:), MAX( 0.0,( -ZZW(:) *           &
+                             ( X0DEPG*       ZLBDAG(:)**XEX0DEPG +     &
+                               X1DEPG*ZCJ(:)*ZLBDAG(:)**XEX1DEPG ) -   &
+                                       ( ZZW1(:,1)+ZZW1(:,4) ) *       &
+                                ( ZRHODREF(:)*XCL*(XTT-ZTIW(:))) ) /   &
+                                               ( ZRHODREF(:)*XLMTT ) ) )
+
+
+      ZRRS(:) = ZRRS(:) + ZZW(:)
+      ZRGS(:) = ZRGS(:) - ZZW(:)
+      ZTHS(:) = ZTHS(:) - ZZW(:)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(-RGMLTR))
+    END WHERE
+  ELSE
+
+    WHERE( (ZRGT(:)>XRTMIN(6)) .AND. (ZRGS(:)>0.0) .AND. (ZZT(:)>XTT) )
+      ZZW(:) = ZRVT(:)*ZPRES(:)/(XEPSILO+ZRVT(:)) ! Vapor pressure
+      ZZW(:) =  ZKA(:)*(XTT-ZZT(:)) +                                 &
+                 ( ZDV(:)*(XLVTT + ( XCPV - XCL ) * ( ZZT(:) - XTT )) &
+                             *(XESTT-ZZW(:))/(XRV*ZZT(:))             )
+!
+! compute RGMLTR
+!
+      ZZW(:)  = XFRMIN(8)*MIN( ZRGS(:), MAX( 0.0,( -ZZW(:) *           &
+                             ( X0DEPG*       ZLBDAG(:)**XEX0DEPG +     &
+                               X1DEPG*ZCJ(:)*ZLBDAG(:)**XEX1DEPG ) -   &
+                                       ( ZZW1(:,1)+ZZW1(:,4) ) *       &
+                                ( ZRHODREF(:)*XCL*(XTT-ZZT(:))) ) /    &
+                                               ( ZRHODREF(:)*XLMTT ) ) )
+      ZRRS(:) = ZRRS(:) + ZZW(:)
+      ZRGS(:) = ZRGS(:) - ZZW(:)
+      ZTHS(:) = ZTHS(:) - ZZW(:)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(-RGMLTR))
+    END WHERE
+  ENDIF
+
     IF (LBUDGET_TH) CALL BUDGET_DDH (                                                 &
                    UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),   &
                                                                 4,'GMLT_BU_RTH',YDDDH, YDLDDH, YDMDDH)
@@ -3834,10 +3962,26 @@ IMPLICIT NONE
      ! Sub gridscale decomposition into a supersaturation part of the gridbox, 
      ! ZSIFRC with a superaturation ZSSIO and a subsaturated part (1.- ZSIFRC)
      ! with a (negative) superaturation of ZSSIU
-     ZARTMP(:) = -1.
-     CALL ICECLOUD(IMICRO,ZPRES,ZZZ,ZDZ,ZZT,ZRVS,PTSTEP,-1.,ZARTMP, &
-          & ZXW2D,ZSIFRC,ZSSIO,ZSSIU,ZW2D,ZCI2S)  !note: ZCI2S is dummy here, not used
-     DO JK=1,IMICRO
+
+
+     IF (LMODICEDEP) THEN
+       DO JL=1,IMICRO
+         ZZW2(JL) = MAX(ZCIT(JL),ICENUMBER2(ZRIS(JL)*PTSTEP,ZZT(JL))* &
+         ZRHODREF(JL))
+       ENDDO
+       WHERE( ZZW2(:)>0.0 .AND. ZESI(:) < ZPRES(:)*0.5)
+          ZZW(:)= X0DEPI/(XLBI*ZAI(:)) *(ZZW2(:)/ZRHODREF(:))**(1.+XLBEXI) * &
+             & (PTSTEP*MAX(XRTMIN(4)/PTSTEP,ZRIS(:))*ZW2D(:) )**(-XLBEXI)
+          ZZW(:)=  MAX(-ZRIS(:)*ZW2D(:)*(1.-ZSIFRC(:))+ZZW(:)*ZSSIO(:)* ZSIFRC(:)* ZXW2D13(:), &
+        &  ZZW(:)* ( ZSSIO(:)* ZSIFRC(:)* ZXW2D13(:)  + ZCITRED23*ZSSIU(:)* (1.-ZSIFRC(:)) )) 
+
+          ZRIS(:) = ZRIS(:) + ZZW(:)
+          ZRVS(:) = ZRVS(:) - ZZW(:)  ! Budget here: ! cloud ice + vapor = const
+          ZTHS(:) = ZTHS(:) + ZZW(:)*ZLSFACT(:) ! f(L_f*(RCBERI))
+
+       END WHERE
+     ELSE
+      DO JK=1,IMICRO
 
         ZTC =  MAX(-18.,MIN(-1.,ZZT(JK)-XTT))
         ZHU =  MIN(0.15,MAX(0.,ZSSI(JK)))
@@ -3847,7 +3991,7 @@ IMPLICIT NONE
         ZCI2S(JK) = 0.
         IF(ZRIS(JK)*PTSTEP > 1.0e-12)THEN
             ZCI2S(JK)  =  ZRIS(JK)*(1. - MIN(1., 0.5*ZQIMAX /ZRIS(JK)/PTSTEP))* &
-                &  (1.-ZSIFRC(JK))/(  ZXW2D*ZSIFRC(JK) +  1.-ZSIFRC(JK))
+                &  (1.-ZSIFRC(JK))*ZW2D(JK)
 !                0.5*ZQIMAX /ZRIS(JK)/PTSTEP reduce ice wich a factot of 0.5 when 
 !                ZQIMAX = cloud ice content. 
 !                (1.-ZSIFRC(JK))/(  ZXW2D*ZSIFRC(JK) +  1.-ZSIFRC(JK)) is the ratio for cloudice 
@@ -3855,13 +3999,13 @@ IMPLICIT NONE
         ENDIF
 
 
-     ENDDO
-     WHERE( ZRIT(:)>XRTMIN(4) .AND. ZCIT(:)>0.0 .AND. ZESI(:) < ZPRES(:)*0.5  )
+      ENDDO
+      WHERE( ZCIT(:)>0.0 .AND. ZESI(:) < ZPRES(:)*0.5)
         ZZWC(:)=ZCRYSHA(:)*0.878/ZAI(:)*(ZCIT(:)/ZRHODREF(:))**0.667 &
-             &*(ZRIS(:)*PTSTEP*ZW2D(:))**0.333
+             &*(MAX(XRTMIN(4)/PTSTEP,ZRIS(:))*PTSTEP*ZW2D(:))**0.333
 !     Ice supersaturated part of grid box:
         WHERE( ZSSIO(:)>0. .AND. ZSIFRC(:) > 0.02_JPRB )
-           ZZW(:)  = ZZWC(:)*ZXW2D13*ZSSIO(:)
+           ZZW(:)  = ZZWC(:)*ZXW2D13(:)*ZSSIO(:)
            ZRIS(:) = ZRIS(:) + ZZW(:)*ZSIFRC(:)
            ZRVS(:) = ZRVS(:) - ZZW(:)*ZSIFRC(:)  ! Budget here: ! cloud ice + vapor = const
            ZTHS(:) = ZTHS(:) + ZZW(:)*ZLSFACT(:)*ZSIFRC(:) ! f(L_f*(RCBERI)) 
@@ -3876,7 +4020,8 @@ IMPLICIT NONE
            ZRVS(:) = ZRVS(:) - ZZW(:)*(1.-ZSIFRC(:))  
            ZTHS(:) = ZTHS(:) + ZZW(:)*ZLSFACT(:)*(1.-ZSIFRC(:))
         END WHERE
-     END WHERE
+      END WHERE
+     ENDIF
   ELSE ! End OCND2
   WHERE( (ZRCS(:)>0.0) .AND. (ZSSI(:)>0.0) .AND. &
          (ZRIT(:)>XRTMIN(4)) .AND. (ZCIT(:)>0.0)       )
diff --git a/src/arome/turb/ini_cturb.F90 b/src/arome/turb/ini_cturb.F90
index 1847d0fdaa16277c181230c08f4b43093856b0a7..8880cce0bdda185c5af3f11e65656d457a1cb2a0 100644
--- a/src/arome/turb/ini_cturb.F90
+++ b/src/arome/turb/ini_cturb.F90
@@ -65,7 +65,6 @@ IF (LHOOK) CALL DR_HOOK('INI_CTURB',0,ZHOOK_HANDLE)
 !         1.1 Constant for dissipation of Tke
 !
 !
-LHARAT=.FALSE.
 !
 !XCED  = 0.70
 XCED  = 0.85
@@ -118,7 +117,12 @@ XCTD  = 1.2
 !
 !         1.7 Constant for temperature and vapor pressure-correlations
 !
-XCTP  = 4.65
+!wc in STATNW consistent use of Redelsperger-Sommeria for (co)variances 
+IF (LSTATNW) THEN
+    XCTP  = 4.0
+  ELSE
+    XCTP  = 4.65
+ENDIF
 !       Redelsperger-Sommeria (1981) = 4.
 !       Schmidt-Schumann      (1989) = 3.25
 !       Cheng-Canuto-Howard   (2002) = 4.65
diff --git a/src/common/micro/condensation.F90 b/src/common/micro/condensation.F90
index c1e03b3b9691e5f6c2e2a5a40c6acfc241591871..e950151e34b44dda03b895a6bb8c4f5177b82b37 100644
--- a/src/common/micro/condensation.F90
+++ b/src/common/micro/condensation.F90
@@ -4,14 +4,15 @@
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
 !     ######spl
-    SUBROUTINE CONDENSATION( KIU, KJU, KKU, KIB, KIE, KJB, KJE, KKB, KKE, KKL,         &
-       HFRAC_ICE, HCONDENS, HLAMBDA3,                                                  &
-       PPABS, PZZ, PRHODREF, PT, PRV_IN, PRV_OUT, PRC_IN, PRC_OUT, PRI_IN, PRI_OUT,    &
-       PRR, PRS, PRG, PSIGS, PMFCONV, PCLDFR, PSIGRC, OUSERI,                          &
-       OSIGMAS, OCND2, PSIGQSAT,                                                       &
-       PLV, PLS, PCPH,                                                                 &
-       PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF,                                         &
-       PICE_CLD_WGT)
+       SUBROUTINE CONDENSATION( KIU, KJU, KKU, KIB, KIE, KJB, KJE, KKB, KKE, KKL,&
+          HFRAC_ICE, HCONDENS, HLAMBDA3, &
+          PPABS, PZZ, PRHODREF, PT, PRV_IN, PRV_OUT, PRC_IN, PRC_OUT, PRI_IN, PRI_OUT, &
+          PRR, PRS, PRG, PSIGS, PMFCONV, PCLDFR, &
+          PSIGRC, OUSERI, OSIGMAS, OCND2, LHGT_QS, &
+          PICLDFR, PWCLDFR, PSSIO, PSSIU, PIFR, PSIGQSAT, &
+          PLV, PLS, PCPH, &
+          PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF, &
+          PICE_CLD_WGT)
 !   ################################################################################
 !
 !!
@@ -74,6 +75,9 @@
 !!      2014-11 K.I Ivarsson add possibility to run with OCND2 option
 !!      2016   S.Riette Change INQ1
 !!      2016-11 S. Riette: use HFRAC_ICE, output adjusted state
+!!      2018-02 K.I Ivarsson: Some modificatons of OCND2 option, mainly for optimation - new outputs
+!!      2019-06 W.C. de Rooy: Mods for new set up statistical cloud scheme
+!!      2019-07 K.I.Ivarsson: Switch for height dependent VQSIGSAT: LHGT_QS
 !!      2020-12 U. Andrae : Introduce SPP for HARMONIE-AROME
 !!     R. El Khatib 24-Aug-2021 Optimizations
 !!      2021-01: SPP computations moved in aro_adjust (AROME/HARMONIE)
@@ -86,9 +90,10 @@ USE PARKIND1, ONLY : JPRB
 USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 USE MODD_CST
 USE MODD_PARAMETERS
-USE MODD_RAIN_ICE_PARAM, ONLY : XCRIAUTC, XCRIAUTI, XACRIAUTI, XBCRIAUTI
+USE MODD_RAIN_ICE_PARAM, ONLY : XCRIAUTC, XCRIAUTI, XACRIAUTI, XBCRIAUTI, XFRMIN
 USE MODE_TIWMX, ONLY : ESATW, ESATI
 USE MODE_ICECLOUD, ONLY : ICECLOUD
+USE MODD_CTURB, ONLY : LSTATNW
 !
 IMPLICIT NONE
 !
@@ -118,22 +123,31 @@ REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN)    :: PRC_IN ! grid scale r_c mixing ra
 REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PRC_OUT! grid scale r_c mixing ratio (kg/kg) in output
 REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN)    :: PRI_IN ! grid scale r_i (kg/kg) in input
 REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PRI_OUT! grid scale r_i (kg/kg) in output
+REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN)    :: PRR    ! grid scale mixing ration of rain (kg/kg)
+REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN)    :: PRS    ! grid scale mixing ration of snow (kg/kg)
+REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN)    :: PRG    ! grid scale mixing ration of graupel (kg/kg)
+REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN)    :: PSIGS  ! Sigma_s from turbulence scheme
+REAL, DIMENSION(:,:,:),       INTENT(IN)    :: PMFCONV! convective mass flux (kg /s m^2)
+REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PCLDFR ! cloud fraction
+REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PSIGRC ! s r_c / sig_s^2
+
 LOGICAL, INTENT(IN)                         :: OUSERI ! logical switch to compute both
                                                       ! liquid and solid condensate (OUSERI=.TRUE.)
                                                       ! or only solid condensate (OUSERI=.FALSE.)
 LOGICAL, INTENT(IN)                         :: OSIGMAS! use present global Sigma_s values
                                                       ! or that from turbulence scheme
 LOGICAL, INTENT(IN)                         :: OCND2  ! logical switch to sparate liquid and ice
-                                                      ! more rigid (DEFALT value : .FALSE.)
+                                                      ! more rigid (DEFAULT value : .FALSE.)
+LOGICAL, INTENT(IN)                         :: LHGT_QS! logical switch for height dependent VQSIGSAT
+REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PICLDFR! ice cloud fraction
+REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PWCLDFR! water or mixed-phase cloud fraction
+REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PSSIO  ! Super-saturation with respect to ice in the  
+                                                      ! supersaturated fraction
+REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PSSIU  ! Sub-saturation with respect to ice in the  
+                                                      ! subsaturated fraction
+REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PIFR   ! Ratio cloud ice moist part
 REAL, DIMENSION(KIU,KJU),     INTENT(IN)    :: PSIGQSAT ! use an extra "qsat" variance contribution (OSIGMAS case)
                                                         ! multiplied by PSIGQSAT
-REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN)    :: PRR    ! grid scale mixing ration of rain (kg/kg)
-REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN)    :: PRS    ! grid scale mixing ration of snow (kg/kg)
-REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN)    :: PRG    ! grid scale mixing ration of graupel (kg/kg)
-REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN)    :: PSIGS  ! Sigma_s from turbulence scheme
-REAL, DIMENSION(:,:,:),       INTENT(IN)    :: PMFCONV! convective mass flux (kg /s m^2)
-REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PCLDFR ! cloud fraction
-REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PSIGRC ! s r_c / sig_s^2
 
 REAL, DIMENSION(KIU,KJU,KKU), OPTIONAL, INTENT(IN)    :: PLV    ! Latent heat L_v
 REAL, DIMENSION(KIU,KJU,KKU), OPTIONAL, INTENT(IN)    :: PLS    ! Latent heat L_s
@@ -142,7 +156,7 @@ REAL, DIMENSION(KIU,KJU,KKU), OPTIONAL, INTENT(OUT)   :: PHLC_HRC
 REAL, DIMENSION(KIU,KJU,KKU), OPTIONAL, INTENT(OUT)   :: PHLC_HCF ! cloud fraction
 REAL, DIMENSION(KIU,KJU,KKU), OPTIONAL, INTENT(OUT)   :: PHLI_HRI
 REAL, DIMENSION(KIU,KJU,KKU), OPTIONAL, INTENT(OUT)   :: PHLI_HCF
-REAL, DIMENSION(KIU,KJU),   OPTIONAL, INTENT(IN)   :: PICE_CLD_WGT
+REAL, DIMENSION(KIU,KJU),     OPTIONAL, INTENT(IN)    :: PICE_CLD_WGT
 !
 !
 !*       0.2   Declarations of local variables :
@@ -150,14 +164,14 @@ REAL, DIMENSION(KIU,KJU),   OPTIONAL, INTENT(IN)   :: PICE_CLD_WGT
 INTEGER  :: JI, JJ, JK, JKP, JKM, IKTB, IKTE    ! loop index
 REAL, DIMENSION(KIU,KJU,KKU) :: ZTLK, ZRT       ! work arrays for T_l and total water mixing ratio
 REAL, DIMENSION(KIU,KJU,KKU) :: ZL              ! length scale
-INTEGER, DIMENSION(KIU,KJU)  :: ITPL            ! top levels of troposphere 
+INTEGER, DIMENSION(KIU,KJU)  :: ITPL            ! top levels of troposphere
 REAL,    DIMENSION(KIU,KJU)  :: ZTMIN           ! minimum Temp. related to ITPL
 !
 REAL, DIMENSION(KIU,KJU,KKU) :: ZLV, ZLS, ZCPD
 REAL :: ZGCOND, ZAUTC, ZAUTI, ZGAUV, ZGAUC, ZGAUI, ZGAUTC, ZGAUTI, ZCRIAUTI   ! Used for Gaussian PDF integration
 REAL :: ZLVS                                      ! thermodynamics
 REAL, DIMENSION(KIU) :: ZPV, ZPIV, ZQSL, ZQSI ! thermodynamics
-REAL :: ZLL, DZZ, ZZZ                           ! used for length scales 
+REAL :: ZLL, DZZ, ZZZ                           ! used for length scales
 REAL :: ZAH, ZDRW, ZDTL, ZSIG_CONV                     ! related to computation of Sig_s
 REAL, DIMENSION(KIU) :: ZA, ZB, ZSBAR, ZSIGMA, ZQ1 ! related to computation of Sig_s
 REAL, DIMENSION(KIU) :: ZCOND
@@ -168,10 +182,14 @@ REAL :: ZINC
 REAL :: ZRSP,  ZRSW, ZRFRAC, ZRSDIF, ZRCOLD
 ! related to OCND2  ice cloud calulation :
 REAL, DIMENSION(KIU) :: ESATW_T
-REAL :: ZDUM1,ZDUM2,ZDUM3,ZDUM4,ZPRIFACT
-REAL, DIMENSION(KIU,KJU,KKU) :: TCLD
-REAL :: ZDZ(KIU), ZARDUM(KIU),ZCLDUM(KIU)
+REAL :: ZDUM1,ZDUM2,ZDUM3,ZDUM4,ZPRIFACT,ZLWINC
+REAL :: ZDZ(KIU), ZARDUM(KIU),ZARDUM2(KIE-KIB+1),ZCLDINI(KIB:KIE)
 ! end OCND2
+
+! LHGT_QS:
+REAL :: ZDZFACT,ZDZREF
+! LHGT_QS END
+
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 INTEGER, DIMENSION(KIU) :: IERR
 !
@@ -206,12 +224,20 @@ IKTE=KKU-JPVEXT
 PCLDFR(:,:,:) = 0. ! Initialize values
 PSIGRC(:,:,:) = 0. ! Initialize values
 ZPRIFACT = 1.      ! Initialize value
-ZCLDUM=-1.         ! Initialize value
+ZARDUM2 = 0.  ! Initialize values
+ZCLDINI = -1. ! Dummy Initialized cloud input to icecloud routine
+PIFR = 10. ! ratio of cloud ice water mixing ratio wet to dry
+           ! part of a gridbox
+ZDZREF = XFRMIN(25) ! Thickness for unchanged vqsigsat (only used for LHGT_QS)
 ! Init of the HALO (should be on HALO points only)
 #ifdef REPRO55
 PRC_OUT = PRC_IN
 PRV_OUT = PRV_IN
 PRI_OUT = PRI_IN
+PHLC_HRC = 0.
+PHLC_HCF = 0.
+PHLI_HRI = 0.
+PHLI_HCF = 0.
 #endif
 IF(OCND2)ZPRIFACT = 0.
 !
@@ -317,8 +343,8 @@ DO JK=IKTB,IKTE
        ZDZ(KIB:KIE) = PZZ(KIB:KIE,JJ,JKP) - PZZ(KIB:KIE,JJ,JKP-KKL)
        CALL ICECLOUD(KIE-KIB+1,PPABS(KIB,JJ,JK),PZZ(KIB,JJ,JK),ZDZ(KIB), &
             & PT(KIB,JJ,JK),PRV_IN(KIB,JJ,JK),1.,-1., &
-            & ZCLDUM(KIB:KIE),1.,TCLD(KIB,JJ,JK), &
-            & ZARDUM(KIB:KIE),ZARDUM(KIB:KIE),ZARDUM(KIB:KIE),ZARDUM(KIB:KIE))
+            & ZCLDINI,PIFR(KIB,JJ,JK),PICLDFR(KIB,JJ,JK), &
+            & PSSIO(KIB,JJ,JK),PSSIU(KIB,JJ,JK),ZARDUM2,ZARDUM)
        ! latent heats
        ! saturated water vapor mixing ratio over liquid water and ice
        DO JI=KIB,KIE
@@ -365,9 +391,23 @@ DO JK=IKTB,IKTE
     IF ( OSIGMAS ) THEN
       DO JI=KIB,KIE
         IF (PSIGQSAT(JI,JJ)/=0.) THEN
-          ZSIGMA(JI) = SQRT((2*PSIGS(JI,JJ,JK))**2 + (PSIGQSAT(JI,JJ)*ZQSL(JI)*ZA(JI))**2)
+          ZDZFACT = 1.
+          IF(LHGT_QS .AND. JK+1 <= IKTE)THEN
+             ZDZFACT= MAX(XFRMIN(23),MIN(XFRMIN(24),(PZZ(JI,JJ,JK) - PZZ(JI,JJ,JK+1))/ZDZREF))
+          ELSEIF(LHGT_QS)THEN
+             ZDZFACT= MAX(XFRMIN(23),MIN(XFRMIN(24),((PZZ(JI,JJ,JK-1) - PZZ(JI,JJ,JK)))*0.8/ZDZREF))
+          ENDIF
+          IF (LSTATNW) THEN
+            ZSIGMA(JI) = SQRT((PSIGS(JI,JJ,JK))**2 + (PSIGQSAT(JI,JJ)*ZDZFACT*ZQSL(JI)*ZA(JI))**2)
+          ELSE
+            ZSIGMA(JI) = SQRT((2*PSIGS(JI,JJ,JK))**2 + (PSIGQSAT(JI,JJ)*ZQSL(JI)*ZA(JI))**2)
+          ENDIF
         ELSE
-          ZSIGMA(JI) = 2*PSIGS(JI,JJ,JK)
+          IF (LSTATNW) THEN
+            ZSIGMA(JI) = PSIGS(JI,JJ,JK)
+          ELSE
+            ZSIGMA(JI) = 2*PSIGS(JI,JJ,JK)
+          ENDIF
         END IF
       END DO
     ELSE
@@ -497,34 +537,33 @@ DO JK=IKTB,IKTE
     ELSE
       DO JI=KIB,KIE
         PRC_OUT(JI,JJ,JK) = (1.-ZFRAC(JI)) * ZCOND(JI) ! liquid condensate
+        ZLWINC = PRC_OUT(JI,JJ,JK) - PRC_IN(JI,JJ,JK)
         !
 !       This check is mainly for noise reduction :
 !       -------------------------
-        IF(ABS(PRC_IN(JI,JJ,JK)-PRC_OUT(JI,JJ,JK))>1.0E-12 .AND. ESATW_T(JI) < PPABS(JI,JJ,JK)*0.5)THEN
+        IF(ABS(ZLWINC)>1.0E-12  .AND.  ESATW(PT(JI,JJ,JK)) < PPABS(JI,JJ,JK)*0.5 )THEN
            ZRCOLD = PRC_OUT(JI,JJ,JK)
-           ZRFRAC = PRV_IN(JI,JJ,JK) - ZCOND(JI) + PRC_OUT(JI,JJ,JK)
+           ZRFRAC = PRV_IN(JI,JJ,JK) - ZLWINC
            IF( PRV_IN(JI,JJ,JK) < ZRSW )THEN ! sub - saturation over water:
               ! Avoid drying of cloudwater leading to supersaturation with
               ! respect to water
               ZRSDIF= MIN(0.,ZRSP-ZRFRAC)
            ELSE  ! super - saturation over water:
-              ! Avoid depostition of water leading to sub-saturation with
+              ! Avoid deposition of water leading to sub-saturation with
               ! respect to water
               !            ZRSDIF= MAX(0.,ZRSP-ZRFRAC)
-              ZRSDIF= MAX(0.,ZRSP*PCLDFR(JI,JJ,JK) - ZRFRAC) 
+              ZRSDIF= 0. ! t7
            ENDIF
            PRC_OUT(JI,JJ,JK) = ZCOND(JI)  - ZRSDIF
         ELSE
           ZRCOLD = PRC_IN(JI,JJ,JK)
         ENDIF
- !      end check 
+ !      end check
 
  !      compute separate ice cloud:
-        ZDUM1 = MIN(1.0,20.* PRC_OUT(JI,JJ,JK)*SQRT(ZDZ(JI))/ZQSL(JI)) ! clould liquid water 
-                                                       ! factor 
-
-        ZDUM3 = MAX(0.,TCLD(JI,JJ,JK)-PCLDFR(JI,JJ,JK)) ! pure ice cloud part
-
+        PWCLDFR(JI,JJ,JK) = PCLDFR(JI,JJ,JK)
+        ZDUM1 = MIN(1.0,20.* PRC_OUT(JI,JJ,JK)*SQRT(ZDZ(JI))/ZQSL(JI)) ! cloud liquid water factor
+        ZDUM3 = MAX(0.,PICLDFR(JI,JJ,JK)-PWCLDFR(JI,JJ,JK)) ! pure ice cloud part 
         IF (JK==IKTB) THEN
           ZDUM4 = PRI_IN(JI,JJ,JK)
         ELSE
@@ -537,7 +576,7 @@ DO JK=IKTB,IKTE
         ZDUM2 = (0.8*PCLDFR(JI,JJ,JK)+0.2)*MIN(1.,ZDUM1 + ZDUM4*PCLDFR(JI,JJ,JK))
         ! water cloud, use 'statistical' cloud, but reduce it in case of low liquid content
 
-        PCLDFR(JI,JJ,JK) = MIN(1., ZDUM2 + (0.9*ZDUM3+0.1)*ZDUM4) ! Rad cloud
+        PCLDFR(JI,JJ,JK) = MIN(1., ZDUM2 + (0.5*ZDUM3+0.5)*ZDUM4) ! Rad cloud
              ! Reduce ice cloud part in case of low ice water content
         PRI_OUT(JI,JJ,JK) = PRI_IN(JI,JJ,JK)
         PT(JI,JJ,JK) = PT(JI,JJ,JK) + ((PRC_OUT(JI,JJ,JK)-ZRCOLD)*ZLV(JI,JJ,JK) + &
diff --git a/src/common/micro/ice_adjust.F90 b/src/common/micro/ice_adjust.F90
index d395b149324783c53aeb8d88f8f1a0d0ed3c9b7f..1fcf3de24c90e3a92d424bd81e364c9c1e0527a4 100644
--- a/src/common/micro/ice_adjust.F90
+++ b/src/common/micro/ice_adjust.F90
@@ -5,16 +5,18 @@
 !-----------------------------------------------------------------
 !     ##########################################################################
       SUBROUTINE ICE_ADJUST (KKA, KKU, KKL, KRR, HFRAC_ICE, HCONDENS, HLAMBDA3,&
-                             HBUNAME, OSUBG_COND, OSIGMAS, OCND2, HSUBG_MF_PDF,&
-                             PTSTEP, PSIGQSAT,                                 &
+                             HBUNAME, OSUBG_COND, OSIGMAS, OCND2, LHGT_QS,     &
+                             HSUBG_MF_PDF, PTSTEP, PSIGQSAT,                   &
                              PRHODJ, PEXNREF, PRHODREF, PSIGS, PMFCONV,        &
                              PPABST, PZZ,                                      &
                              PEXN, PCF_MF, PRC_MF, PRI_MF,                     &
+                             PICLDFR, PWCLDFR, PSSIO, PSSIU, PIFR,             &
                              PRV, PRC, PRVS, PRCS, PTH, PTHS, PSRCS, PCLDFR,   &
-                             PRR, PRI, PRIS, PRS, PRG, TBUDGETS, KBUDGETS, PRH,&
+                             PRR, PRI, PRIS, PRS, PRG, TBUDGETS, KBUDGETS,     &
+                             PICE_CLD_WGT,                                     &
+                             PRH,                                              &
                              POUT_RV, POUT_RC, POUT_RI, POUT_TH,               &
-                             PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF,           &
-                             PICE_CLD_WGT)
+                             PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF)
 !     #########################################################################
 !
 !!****  *ICE_ADJUST* -  compute the ajustment of water vapor in mixed-phase 
@@ -95,6 +97,7 @@
 !!                         or to call it on S variables
 !!      2016-11 S. Riette: all-or-nothing adjustment now uses condensation
 !  P. Wautelet 05/2016-04/2018: new data structures and calls for I/O
+!!      2018-02 K.I.Ivarsson : More outputs for OCND2 option
 !  P. Wautelet    02/2020: use the new data structures and subroutines for budgets
 !!      2020-12 U. Andrae : Introduce SPP for HARMONIE-AROME
 !!     R. El Khatib 24-Aug-2021 Optimizations
@@ -124,23 +127,24 @@ IMPLICIT NONE
 !*       0.1   Declarations of dummy arguments :
 !
 !
-INTEGER,                  INTENT(IN)    :: KKA  !near ground array index  
-INTEGER,                  INTENT(IN)    :: KKU  !uppest atmosphere array index
-INTEGER,                  INTENT(IN)    :: KKL  !vert. levels type 1=MNH -1=ARO
+INTEGER,                  INTENT(IN)    :: KKA      !near ground array index
+INTEGER,                  INTENT(IN)    :: KKU      !uppest atmosphere array index
+INTEGER,                  INTENT(IN)    :: KKL      !vert. levels type 1=MNH -1=ARO
 INTEGER,                  INTENT(IN)    :: KRR      ! Number of moist variables
 CHARACTER(LEN=1),         INTENT(IN)    :: HFRAC_ICE
 CHARACTER(LEN=80),        INTENT(IN)    :: HCONDENS
 CHARACTER(LEN=4),         INTENT(IN)    :: HLAMBDA3 ! formulation for lambda3 coeff
 CHARACTER(LEN=4),         INTENT(IN)    :: HBUNAME  ! Name of the budget
-LOGICAL,                  INTENT(IN)    :: OSUBG_COND ! Switch for Subgrid 
+LOGICAL,                  INTENT(IN)    :: OSUBG_COND ! Switch for Subgrid
                                                     ! Condensation
-LOGICAL                                 :: OSIGMAS  ! Switch for Sigma_s: 
+LOGICAL,                  INTENT(IN)    :: OSIGMAS  ! Switch for Sigma_s:
                                                     ! use values computed in CONDENSATION
                                                     ! or that from turbulence scheme
-LOGICAL                                 :: OCND2    ! logical switch to sparate liquid 
+LOGICAL,                  INTENT(IN)    :: OCND2    ! logical switch to separate liquid
                                                     ! and ice
-                                                    ! more rigid (DEFALT value : .FALSE.)
-CHARACTER(LEN=80),        INTENT(IN)    :: HSUBG_MF_PDF
+                                                    ! more rigid (DEFAULT value : .FALSE.)
+LOGICAL,                  INTENT(IN)   :: LHGT_QS   ! logical switch for height dependent VQSIGSAT
+CHARACTER(LEN=80),        INTENT(IN)   :: HSUBG_MF_PDF
 REAL,                     INTENT(IN)   :: PTSTEP    ! Double Time step
                                                     ! (single if cold start)
 REAL, DIMENSION(:,:),     INTENT(IN)   :: PSIGQSAT  ! coeff applied to qsat variance contribution
@@ -151,16 +155,16 @@ REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)   ::  PRHODREF
 !
 REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)   ::  PSIGS   ! Sigma_s at time t
 REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)   ::  PMFCONV ! convective mass flux
-REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)   ::  PPABST  ! Absolute Pressure at t        
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)   ::  PPABST  ! Absolute Pressure at t
 REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)   ::  PZZ     ! height of model layer
 REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)   ::  PEXN    ! Exner function
 !
-REAL, DIMENSION(:,:,:), CONTIGUOUS,     INTENT(IN)    :: PCF_MF! Convective Mass Flux Cloud fraction 
-REAL, DIMENSION(:,:,:), CONTIGUOUS,     INTENT(IN)    :: PRC_MF! Convective Mass Flux liquid mixing ratio
-REAL, DIMENSION(:,:,:), CONTIGUOUS,     INTENT(IN)    :: PRI_MF! Convective Mass Flux ice mixing ratio
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)    :: PCF_MF  ! Convective Mass Flux Cloud fraction
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)    :: PRC_MF  ! Convective Mass Flux liquid mixing ratio
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)    :: PRI_MF  ! Convective Mass Flux ice mixing ratio
 !
-REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)   ::  PRV     ! Water vapor m.r. to adjust
-REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)   ::  PRC     ! Cloud water m.r. to adjust
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)    :: PRV     ! Water vapor m.r. to adjust
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)    :: PRC     ! Cloud water m.r. to adjust
 REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(INOUT) :: PRVS    ! Water vapor m.r. source
 REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(INOUT) :: PRCS    ! Cloud water m.r. source
 REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)    :: PTH     ! Theta to adjust
@@ -168,13 +172,23 @@ REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(INOUT) :: PTHS    ! Theta source
 REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(OUT)   :: PSRCS   ! Second-order flux
                                                    ! s'rc'/2Sigma_s2 at time t+1
                                                    ! multiplied by Lambda_3
-REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(OUT)   :: PCLDFR  ! Cloud fraction          
-!
-REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(INOUT)::  PRIS ! Cloud ice  m.r. at t+1
-REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(IN)   ::  PRR  ! Rain water m.r. to adjust
-REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(IN)   ::  PRI  ! Cloud ice  m.r. to adjust
-REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(IN)   ::  PRS  ! Aggregate  m.r. to adjust
-REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(IN)   ::  PRG  ! Graupel    m.r. to adjust
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(OUT)   :: PCLDFR  ! Cloud fraction
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(OUT)   :: PICLDFR ! ice cloud fraction
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(OUT)   :: PWCLDFR ! water or mixed-phase cloud fraction
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(OUT)   :: PSSIO   ! Super-saturation with respect to ice in the  
+                                                              ! supersaturated fraction
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(OUT)   :: PSSIU   ! Sub-saturation with respect to ice in the  
+                                                              ! subsaturated fraction 
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(OUT)   :: PIFR    ! Ratio cloud ice moist part to dry part
+!
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(INOUT) :: PRIS    ! Cloud ice  m.r. at t+1
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(IN)    :: PRR     ! Rain water m.r. to adjust
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(IN)    :: PRI     ! Cloud ice  m.r. to adjust
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(IN)    :: PRS     ! Aggregate  m.r. to adjust
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(IN)    :: PRG     ! Graupel    m.r. to adjust
+TYPE(TBUDGETDATA), DIMENSION(KBUDGETS), INTENT(INOUT) :: TBUDGETS
+INTEGER,                             INTENT(IN)    :: KBUDGETS
+REAL, DIMENSION(:,:),   CONTIGUOUS, OPTIONAL, INTENT(IN)   ::  PICE_CLD_WGT
 REAL, DIMENSION(:,:,:), CONTIGUOUS, OPTIONAL, INTENT(IN)   ::  PRH  ! Hail       m.r. to adjust
 REAL, DIMENSION(:,:,:), CONTIGUOUS, OPTIONAL, INTENT(OUT)  ::  POUT_RV ! Adjusted value
 REAL, DIMENSION(:,:,:), CONTIGUOUS, OPTIONAL, INTENT(OUT)  ::  POUT_RC ! Adjusted value
@@ -184,9 +198,6 @@ REAL, DIMENSION(:,:,:), CONTIGUOUS, OPTIONAL, INTENT(OUT)  ::  PHLC_HRC
 REAL, DIMENSION(:,:,:), CONTIGUOUS, OPTIONAL, INTENT(OUT)  ::  PHLC_HCF
 REAL, DIMENSION(:,:,:), CONTIGUOUS, OPTIONAL, INTENT(OUT)  ::  PHLI_HRI
 REAL, DIMENSION(:,:,:), CONTIGUOUS, OPTIONAL, INTENT(OUT)  ::  PHLI_HCF
-TYPE(TBUDGETDATA), DIMENSION(KBUDGETS), INTENT(INOUT) :: TBUDGETS
-INTEGER, INTENT(IN) :: KBUDGETS
-REAL, DIMENSION(:,:), CONTIGUOUS,   OPTIONAL, INTENT(IN)   :: PICE_CLD_WGT
 !
 !*       0.2   Declarations of local variables :
 !
@@ -471,8 +482,8 @@ IF ( OSUBG_COND ) THEN
        HFRAC_ICE, HCONDENS, HLAMBDA3,                                    &
        PPABST, PZZ, PRHODREF, ZT, PRV_IN, PRV_OUT, PRC_IN, PRC_OUT, PRI_IN, PRI_OUT, &
        PRR, PRS, PRG, PSIGS, PMFCONV, PCLDFR, &
-       PSRCS, .TRUE., OSIGMAS,                                           &
-       OCND2, PSIGQSAT,                                                  &
+       PSRCS, .TRUE., OSIGMAS, OCND2, LHGT_QS,                           &
+       PICLDFR, PWCLDFR, PSSIO, PSSIU, PIFR, PSIGQSAT,                   &
        PLV=ZLV, PLS=ZLS, PCPH=ZCPH,                                      &
        PHLC_HRC=PHLC_HRC, PHLC_HCF=PHLC_HCF, PHLI_HRI=PHLI_HRI, PHLI_HCF=PHLI_HCF,&
        PICE_CLD_WGT=PICE_CLD_WGT)
@@ -489,9 +500,9 @@ ELSE
   CALL CONDENSATION(IIU, IJU, IKU, IIB, IIE, IJB, IJE, IKB, IKE, KKL,    &
        HFRAC_ICE, HCONDENS, HLAMBDA3,                                    &
        PPABST, PZZ, PRHODREF, ZT, PRV_IN, PRV_OUT, PRC_IN, PRC_OUT, PRI_IN, PRI_OUT, &
-       PRR, PRS, PRG, ZSIGS, PMFCONV, PCLDFR, &
-       ZSRCS, .TRUE., OSIGMAS=.TRUE.,                                    &
-       OCND2=OCND2, PSIGQSAT=ZSIGQSAT,                                   &
+       PRR, PRS, PRG, ZSIGS, PMFCONV, PCLDFR,                            &
+       ZSRCS, .TRUE., .TRUE., OCND2, LHGT_QS,                            &
+       PICLDFR, PWCLDFR, PSSIO, PSSIU, PIFR, ZSIGQSAT,                   &
        PLV=ZLV, PLS=ZLS, PCPH=ZCPH,                                      &
        PHLC_HRC=PHLC_HRC, PHLC_HCF=PHLC_HCF, PHLI_HRI=PHLI_HRI, PHLI_HCF=PHLI_HCF,&
        PICE_CLD_WGT=PICE_CLD_WGT)
diff --git a/src/common/micro/ini_rain_ice.F90 b/src/common/micro/ini_rain_ice.F90
index 85eb2f09357327c31fa63dca37d906c739fe8db9..4929d778addcf8112fb7ea6937412f941546ab5d 100644
--- a/src/common/micro/ini_rain_ice.F90
+++ b/src/common/micro/ini_rain_ice.F90
@@ -368,7 +368,7 @@ XLBDAS_MAX = 100000.0
 XLBDAG_MAX = 100000.0
 !
 ZCONC_MAX  = 1.E6 ! Maximal concentration for falling particules set to 1 per cc
-XLBDAS_MAX = ( ZCONC_MAX/XCCS )**(1./XCXS)
+IF(XCCS>0. .AND. XCXS>0. )XLBDAS_MAX = ( ZCONC_MAX/XCCS )**(1./XCXS)
 !
 IF (HCLOUD == 'ICE4') THEN
   ALLOCATE( XRTMIN(7) )
@@ -514,16 +514,26 @@ X0DEPS = (4.0*XPI)*XCCS*XC1S*XF0S*MOMG(XALPHAS,XNUS,1.)
 X1DEPS = (4.0*XPI)*XCCS*XC1S*XF1S*SQRT(XCS)*MOMG(XALPHAS,XNUS,0.5*XDS+1.5)
 XEX0DEPS = XCXS-1.0
 XEX1DEPS = XCXS-0.5*(XDS+3.0)
+XRDEPSRED = 1.0
 !
 X0DEPG = (4.0*XPI)*XCCG*XC1G*XF0G*MOMG(XALPHAG,XNUG,1.)
 X1DEPG = (4.0*XPI)*XCCG*XC1G*XF1G*SQRT(XCG)*MOMG(XALPHAG,XNUG,0.5*XDG+1.5)
 XEX0DEPG = XCXG-1.0
 XEX1DEPG = XCXG-0.5*(XDG+3.0)
+XRDEPGRED = 1.0
 !
 X0DEPH = (4.0*XPI)*XCCH*XC1H*XF0H*MOMG(XALPHAH,XNUH,1.)
 X1DEPH = (4.0*XPI)*XCCH*XC1H*XF1H*SQRT(XCH)*MOMG(XALPHAH,XNUH,0.5*XDH+1.5)
 XEX0DEPH = XCXH-1.0
 XEX1DEPH = XCXH-0.5*(XDH+3.0)
+
+GFLAG = .TRUE.
+IF (GFLAG) THEN
+  WRITE(UNIT=KLUOUT,FMT='("      factors sublimation snow/groupel")')
+  WRITE(UNIT=KLUOUT,FMT='(" mod sublim snow =",E13.6)') XRDEPSRED
+  WRITE(UNIT=KLUOUT,FMT='(" mod sublim graupel =",E13.6)') XRDEPGRED
+END IF
+
 !
 !*       5.3    Constants for pristine ice autoconversion
 !
@@ -1016,6 +1026,20 @@ IF( (KDRYLBDAG/=NDRYLBDAG) .OR. (KDRYLBDAR/=NDRYLBDAR) .OR. (KND/=IND) .OR. &
                      PFDINFTY,XKER_RDRYG                                      )
   WRITE(UNIT=KLUOUT,FMT='(" Read XKER_RDRYG")')
 END IF
+         
+!          8.2.6 Constants for possible modifying some processes related to 
+!                graupeln in XFRMIN(1:8),  IN - concentration in XFRMIN(9) and Kogan 
+!                autoconversion in XFRMIN(10:11). May be used for e.g. ensemble spread
+  XFRMIN(1:6)=0.
+  XFRMIN(7:9)=1.
+  XFRMIN(10) =10.
+  XFRMIN(11) =1.
+  XFRMIN(12) =100.
+  XFRMIN(13) =1.0E-15
+  XFRMIN(14) =120.
+  XFRMIN(15) =1.0E-4
+  XFRMIN(16:20)=0.
+  XFRMIN(21)=1.
 !
 !
 !-------------------------------------------------------------------------------
diff --git a/src/common/micro/ini_snow.F90 b/src/common/micro/ini_snow.F90
new file mode 100644
index 0000000000000000000000000000000000000000..b1d284f630aa6d1ae402895f8a0c3a4071ba4ba2
--- /dev/null
+++ b/src/common/micro/ini_snow.F90
@@ -0,0 +1,170 @@
+!     ######spl
+      SUBROUTINE INI_SNOW ( KLUOUT )
+      USE PARKIND1, ONLY : JPRB
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+!     ###########################################################
+!
+!!****  *INI_SNOW * - re-initialize the constants based on snow-size distubutio
+!!                        cold microphysical schemes.
+!!
+!!    PURPOSE
+!!    -------
+!!      The purpose of this routine is to reinitialize the constants for snow used to
+!!    resolve the mixed phase microphysical scheme.
+!!    EXTERNAL
+!!    --------
+!!      GAMMA    :  gamma function
+!!
+!!
+!!    IMPLICIT ARGUMENTS
+!!    ------------------
+!!      Module MODD_CST
+!!        XPI                  !
+!!        XP00                 ! Reference pressure
+!!        XRD                  ! Gaz constant for dry air
+!!        XRHOLW               ! Liquid water density
+!!      Module MODD_REF
+!!        XTHVREFZ             ! Reference virtual pot.temp. without orography
+!!      Module MODD_PARAMETERS
+!!        JPVEXT               !
+!!      Module MODD_RAIN_ICE_DESCR
+!!      Module MODD_RAIN_ICE_PARAM
+!!
+!!    REFERENCE
+!!    ---------
+!!      Book2 of documentation ( routine INI_RAIN_ICE )
+!!
+!!    ORIGINAL AUTHOR (from ini_rain_ice)
+!!    --------------
+!!      J.-P. Pinty      * Laboratoire d'Aerologie*
+!!
+!!    MODIFICATIONS
+!!    -------------
+!!      2018-02
+!!      Karl-Ivar Ivarsson
+!*       0.    DECLARATIONS
+!              ------------
+!
+USE MODD_CST
+USE MODD_LUNIT
+USE MODD_PARAMETERS
+USE MODD_PARAM_ICE
+USE MODD_RAIN_ICE_DESCR
+USE MODD_RAIN_ICE_PARAM
+USE MODD_REF
+!
+USE MODI_GAMMA
+USE MODI_GAMMA_INC
+USE MODE_RRCOLSS
+USE MODE_RZCOLX
+USE MODE_RSCOLRG
+USE MODE_READ_XKER_RACCS
+USE MODE_READ_XKER_SDRYG
+USE MODE_READ_XKER_RDRYG
+USE MODE_READ_XKER_SWETH
+USE MODE_READ_XKER_GWETH
+
+
+IMPLICIT NONE
+!
+!*       0.1   Declarations of dummy arguments :
+!
+!
+INTEGER,                 INTENT(IN) :: KLUOUT   ! Logical unit number for prints
+
+!*       0.2   Declarations of local variables :
+!
+INTEGER :: IKB                ! Coordinates of the first physical
+                              ! points along z
+
+REAL :: ZRHO00                ! Surface reference air density
+
+REAL :: ZCONC_MAX ! Maximal concentration for snow
+
+
+REAL(KIND=JPRB) :: ZHOOK_HANDLE
+IF (LHOOK) CALL DR_HOOK('INI_RAIN_ICE',0,ZHOOK_HANDLE)
+
+
+XCCS = XFRMIN(16)
+XCXS = XFRMIN(17)
+IKB = 1 + JPVEXT
+ZRHO00 = XP00/(XRD*XTHVREFZ(IKB))
+!     recalculate ini_rain_ice stuff:
+
+!     3.4    Constants for shape parameter
+XLBEXS = 1.0/(XCXS-XBS)
+XLBS   = ( XAS*XCCS*MOMG(XALPHAS,XNUS,XBS) )**(-XLBEXS)
+ZCONC_MAX  = 1.E6 ! Maximal concentration for falling particules set to 1 per cc
+IF(XCCS>0. .AND. XCXS>0. )XLBDAS_MAX = ( ZCONC_MAX/XCCS )**(1./XCXS)
+
+!     4.2    Constants for sedimentation
+XEXSEDS = (XBS+XDS-XCXS)/(XBS-XCXS)
+
+XFSEDS  = XCS*XAS*XCCS*MOMG(XALPHAS,XNUS,XBS+XDS)*                         &
+     (XAS*XCCS*MOMG(XALPHAS,XNUS,XBS))**(-XEXSEDS)*(ZRHO00)**XCEXVT
+
+!     5.2    Constants for vapor deposition on ice
+X0DEPS = (4.0*XPI)*XCCS*XC1S*XF0S*MOMG(XALPHAS,XNUS,1.)
+X1DEPS = (4.0*XPI)*XCCS*XC1S*XF1S*SQRT(XCS)*MOMG(XALPHAS,XNUS,0.5*XDS+1.5)
+XEX0DEPS = XCXS-1.0
+XEX1DEPS = XCXS-0.5*(XDS+3.0)
+
+!     5.4    Constants for snow aggregation
+XFIAGGS  = (XPI/4.0)*XCOLIS*XCCS*XCS*(ZRHO00**XCEXVT)*MOMG(XALPHAS,XNUS,XDS+2.0)
+XEXIAGGS = XCXS-XDS-2.0
+
+!     7.1    Constants for the riming of the aggregates
+XEXCRIMSS= XCXS-XDS-2.0
+XCRIMSS  = (XPI/4.0)*XCOLCS*XCCS*XCS*(ZRHO00**XCEXVT)*MOMG(XALPHAS,XNUS,XDS+2.0)
+XEXCRIMSG= XEXCRIMSS
+XCRIMSG  = XCRIMSS
+XSRIMCG  = XCCS*XAS*MOMG(XALPHAS,XNUS,XBS)
+XEXSRIMCG= XCXS-XBS
+
+!     7.2    Constants for the accretion of raindrops onto aggregates
+
+XFRACCSS = ((XPI**2)/24.0)*XCCS*XCCR*XRHOLW*(ZRHO00**XCEXVT)
+
+XFSACCRG = (XPI/4.0)*XAS*XCCS*XCCR*(ZRHO00**XCEXVT)
+
+!     8.2.3  Constants for the aggregate collection by the graupeln
+XFSDRYG = (XPI/4.0)*XCOLSG*XCCG*XCCS*XAS*(ZRHO00**XCEXVT)
+
+!     9.2.2  Constants for the aggregate collection by the hailstones
+XFSWETH = (XPI/4.0)*XCCH*XCCS*XAS*(ZRHO00**XCEXVT)
+
+WRITE(UNIT=KLUOUT,FMT='("  updated snow concentration:C=",E13.6," x=",E13.6)') &
+                                                      XCCS,XCXS
+
+IF (LHOOK) CALL DR_HOOK('INI_SNOW',1,ZHOOK_HANDLE)
+
+CONTAINS
+!
+!------------------------------------------------------------------------------
+!
+  FUNCTION MOMG(PALPHA,PNU,PP) RESULT (PMOMG)
+!
+! auxiliary routine used to compute the Pth moment order of the generalized
+! gamma law
+!
+  USE MODI_GAMMA
+!
+  IMPLICIT NONE
+!
+  REAL     :: PALPHA ! first shape parameter of the dimensionnal distribution
+  REAL     :: PNU    ! second shape parameter of the dimensionnal distribution
+  REAL     :: PP     ! order of the moment
+  REAL     :: PMOMG  ! result: moment of order ZP
+!
+!------------------------------------------------------------------------------
+!
+!
+  PMOMG = GAMMA(PNU+PP/PALPHA)/GAMMA(PNU)
+!
+  END FUNCTION MOMG
+!
+!-------------------------------------------------------------------------------
+!
+!
+END SUBROUTINE INI_SNOW
diff --git a/src/common/micro/ini_tiwmx.F90 b/src/common/micro/ini_tiwmx.F90
new file mode 100644
index 0000000000000000000000000000000000000000..2e3209a38d5bd88f21ac0fa68d98172da3692d99
--- /dev/null
+++ b/src/common/micro/ini_tiwmx.F90
@@ -0,0 +1,55 @@
+SUBROUTINE INI_TIWMX
+  USE PARKIND1, ONLY  : JPRB
+  USE MODD_CST, ONLY  :  XALPW,XBETAW,XGAMW,XALPI,XBETAI,XGAMI,  &
+       &  XTT,XRV,XLVTT,XLSTT
+! Include function definitions
+  USE MODE_TIWMX_FUN, ONLY : ESATW,DESDTW,ESATI,DESDTI,AA2,AA2W,AM3,AF3,BB3,BB3W,REDIN
+! Only the tables, _NOT_ the functions!
+  USE MODE_TIWMX, ONLY : XNDEGR,NSTART,NSTOP,ESTABW,DESTABW,ESTABI,DESTABI, &
+       & A2TAB,BB3TAB,AM3TAB,AF3TAB,A2WTAB,BB3WTAB,REDINTAB
+  USE YOMHOOK, ONLY : LHOOK, DR_HOOK
+  IMPLICIT NONE
+
+  INTEGER :: JK
+  REAL :: ZTEMP
+
+  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+
+  IF (LHOOK) CALL DR_HOOK('INI_TIWMX',0,ZHOOK_HANDLE)
+
+  DO JK=NSTART,NSTOP
+     ZTEMP = REAL(JK)/XNDEGR
+
+     ESTABW(JK) = ESATW(ZTEMP)
+     DESTABW(JK) = DESDTW(ZTEMP)
+
+     ESTABI(JK) = ESATI(ZTEMP)
+     DESTABI(JK) = DESDTI(ZTEMP)
+
+!    Functions for ice crystals or water droplets:
+     A2TAB(JK) = AA2(ZTEMP)
+     A2WTAB(JK) = AA2W(ZTEMP)
+     AM3TAB(JK) = AM3(ZTEMP)
+     AF3TAB(JK) = AF3(ZTEMP)
+     BB3TAB(JK) = BB3(ZTEMP)
+     BB3WTAB(JK) = BB3W(ZTEMP)
+     REDINTAB(JK) = REDIN(ZTEMP)
+
+     IF (ZTEMP.GT.273.15) THEN
+!       Avoid ice calculation above freezing level:
+        ESTABI(JK) = ESATW(ZTEMP)
+        DESTABI(JK) = DESDTW(ZTEMP)
+
+!       Functions for ice crystal growth:  
+        A2TAB(JK) = AA2(ZTEMP)
+        A2WTAB(JK) = AA2W(ZTEMP)
+        AM3TAB(JK) = 0.
+        AF3TAB(JK) = 0.
+        BB3TAB(JK) = BB3(ZTEMP)
+        BB3WTAB(JK) = BB3W(ZTEMP)
+     ENDIF
+  END DO
+
+  IF (LHOOK) CALL DR_HOOK('INI_TIWMX',1,ZHOOK_HANDLE)
+
+END SUBROUTINE INI_TIWMX
diff --git a/src/common/micro/modd_rain_ice_param.F90 b/src/common/micro/modd_rain_ice_param.F90
index 7568e2a68efc91b9081f88ca55d426724038c3fc..8fdcd71e8159369a4a9097d0c29eca7ba5169123 100644
--- a/src/common/micro/modd_rain_ice_param.F90
+++ b/src/common/micro/modd_rain_ice_param.F90
@@ -57,7 +57,9 @@ REAL,SAVE :: XSCFAC,                           & ! Constants for raindrop
              X0EVAR,X1EVAR,XEX0EVAR,XEX1EVAR,  & ! evaporation: EVA and for
              X0DEPI,X2DEPI,                    & ! deposition : DEP on I,
              X0DEPS,X1DEPS,XEX0DEPS,XEX1DEPS,  & !                  on S and
-             X0DEPG,X1DEPG,XEX0DEPG,XEX1DEPG     !                  on G
+             XRDEPSRED,&
+             X0DEPG,X1DEPG,XEX0DEPG,XEX1DEPG,  & !                  on G
+             XRDEPGRED
 !
 REAL,SAVE :: XTIMAUTI,XTEXAUTI,XCRIAUTI,       & ! Constants for pristine ice
              XT0CRIAUTI,XACRIAUTI,XBCRIAUTI      ! autoconversion : AUT
@@ -181,5 +183,6 @@ REAL,DIMENSION(:,:), SAVE, ALLOCATABLE         &
                          :: XKER_SWETH,        & ! Normalized kernel for SWETH
                             XKER_GWETH,        & ! Normalized kernel for GWETH
                             XKER_RWETH           ! Normalized kernel for RWETH
+REAL,SAVE :: XFRMIN(40)                          ! Parmeters to modify melt and growth of graupels etc.
 !
 END MODULE MODD_RAIN_ICE_PARAM
diff --git a/src/common/micro/mode_ice4_slow.F90 b/src/common/micro/mode_ice4_slow.F90
index 8487ef858eeeecf520aca51905ef4f64f1dd3903..64ae21ff71ac7b6da32e3ea65b93160884355f70 100644
--- a/src/common/micro/mode_ice4_slow.F90
+++ b/src/common/micro/mode_ice4_slow.F90
@@ -100,13 +100,8 @@ IF(LDSOFT) THEN
 ELSE
   PRCHONI(:) = 0.
   WHERE(ZMASK(:)==1.)
-#ifdef REPRO48
-    PRCHONI(:) = XHON*PRHODREF(:)*PRCT(:)       &
-                                 *EXP( XALPHA3*(PT(:)-XTT)-XBETA3 )
-#else
     PRCHONI(:) = MIN(1000.,XHON*PRHODREF(:)*PRCT(:)       &
                                  *EXP( XALPHA3*(PT(:)-XTT)-XBETA3 ))
-#endif
   ENDWHERE
 ENDIF
 !
diff --git a/src/common/micro/mode_icecloud.F90 b/src/common/micro/mode_icecloud.F90
index 774dd688734a27d00b2fa1caaebe32d83ad07011..e53841902b6281c4328ade465488ee0ce736e188 100644
--- a/src/common/micro/mode_icecloud.F90
+++ b/src/common/micro/mode_icecloud.F90
@@ -11,8 +11,7 @@ SUBROUTINE ICECLOUD  &
   USE YOMHOOK , ONLY : LHOOK, DR_HOOK
   USE MODD_CST,ONLY : XCPD,XCPV,XLVTT,XLSTT,XG,XRD,XEPSILO
   USE MODE_TIWMX, ONLY: ESATW, ESATI
-  USE MODE_QSATMX_TAB
-!  USE MODI_TIWMX
+  USE MODE_QSATMX_TAB, ONLY: QSATMX_TAB
   IMPLICIT NONE
 !-----------------------------------------------------------------------
 !
@@ -77,15 +76,12 @@ REAL :: ZSIGMAX,ZSIGMAY,ZSIGMAZ,ZXDIST,ZYDIST,&
      & ZRHDIF,ZWCLD,ZI2W,ZRHLIMICE,ZRHLIMINV,ZA,ZRHI,ZR
 INTEGER :: JK
 
-!     External function
-!REAL :: QSATMX_TAB
-
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('ICECLOUD',0,ZHOOK_HANDLE)
 
 ZSIGMAX=3.E-4         ! assumed rh variation in x axis direction
 ZSIGMAY=ZSIGMAX            ! assumed rh variation in y axis direction
-ZSIGMAZ=1.6E-2 ! t5
+ZSIGMAZ=1.E-2
 
 !ZXDIST=DTHETA*110000.
 ZXDIST=2500.
diff --git a/src/common/micro/mode_tiwmx_fun.F90 b/src/common/micro/mode_tiwmx_fun.F90
new file mode 100644
index 0000000000000000000000000000000000000000..7a708b85990e271b4aad7bf0296383ff2073623d
--- /dev/null
+++ b/src/common/micro/mode_tiwmx_fun.F90
@@ -0,0 +1,108 @@
+!@no_insert_drhook
+!     ######spl
+      MODULE MODE_TIWMX_FUN
+!     ###############
+!
+!!****  *MODD_TIWMX_FUN* - 
+!!
+!!    PURPOSE
+!!    -------
+!       The purpose of this  ...
+!
+!!
+!!    REFERENCE
+!!    ---------
+!!      Book2 of documentation of Meso-NH (ha ha)
+!!          
+!!    AUTHOR
+!!    ------
+!!      K. I. Ivarsson   *SMHI*
+!!
+!!    MODIFICATIONS
+!!    -------------
+!!      Original    20/11/14  
+!-------------------------------------------------------------------------------
+!
+!*       0.   DECLARATIONS
+!             ------------
+!
+USE MODD_CST, ONLY : XALPW,XBETAW,XGAMW,XTT,XALPI,XBETAI,XGAMI,XLSTT,XRV,XLVTT,&
+     &XLSTT,XP00,XCPV,XCI,XCL
+
+IMPLICIT NONE
+
+CONTAINS
+!
+  REAL FUNCTION ESATW(TT)
+    REAL,INTENT(IN) :: TT
+    ESATW = EXP( XALPW - XBETAW/TT - XGAMW*ALOG(TT) )
+  END FUNCTION ESATW
+!      
+!     pure saturation pressure over ice for tt <0 C,
+!     esatw otherwise.
+!
+  REAL FUNCTION ESATI(TT)
+    REAL,INTENT(IN) :: TT
+    ESATI = ( 0.5 + SIGN(0.5,TT-XTT) )*EXP( XALPW - XBETAW/TT - XGAMW*ALOG(TT) ) - &
+         &   ( SIGN(0.5,TT-XTT) - 0.5)*EXP( XALPI - XBETAI/TT - XGAMI*ALOG(TT) )
+  END FUNCTION ESATI
+!
+!     pure saturation pressure over water
+  REAL FUNCTION DESDTW(TT)
+    REAL,INTENT(IN) :: TT
+    DESDTW = ESATW(TT)*(XBETAW/TT - XGAMW)/TT
+  END FUNCTION DESDTW
+
+  REAL FUNCTION DESDTI(TT)
+    REAL,INTENT(IN) :: TT
+    DESDTI = ( 0.5 + SIGN(0.5,TT-XTT) )*DESDTW(TT) - &
+         & ( SIGN(0.5,TT-XTT) - 0.5)*ESATI(TT)*(XBETAI/TT - XGAMI)/TT
+  END FUNCTION DESDTI
+
+!     Ice crystal function:
+  REAL FUNCTION AA2(TT)
+    REAL,INTENT(IN) :: TT
+    AA2 =  ( XLSTT + (XCPV-XCI)*(TT-XTT) )**2 / &
+     & (2.38E-2 + 0.0071E-2 *(TT - XTT))/(TT**2*XRV)
+  END FUNCTION AA2
+
+!     Water droplet function:
+  REAL FUNCTION AA2W(TT)
+    REAL,INTENT(IN) :: TT
+    AA2W = ( (XLVTT+ (XCPV-XCL)*(TT-XTT))**2)/ &
+     &  (2.38E-2 + 0.0071E-2 *(TT - XTT))/(TT**2*XRV)
+  END FUNCTION AA2W
+
+!     Ice crystal function:
+  REAL FUNCTION BB3(TT)
+    REAL,INTENT(IN) :: TT
+    BB3 = XRV/(0.211E-4 * (TT/XTT)**1.94 * XP00)*TT/ESATI(TT)
+  END FUNCTION BB3
+
+!     Water droplet function:
+  REAL FUNCTION BB3W(TT)
+    REAL,INTENT(IN) :: TT
+    BB3W =  XRV/(0.211E-4 * (TT/XTT)**1.94 * XP00)*TT/ESATW(TT)
+  END FUNCTION BB3W
+
+! Meyers IN concentration function:
+  REAL FUNCTION AM3(TT)
+    REAL,INTENT(IN) :: TT
+    AM3 = 1000.*EXP(12.96*(ESATW(TT)/ESATI(TT) -1.) -0.639)
+  END FUNCTION AM3
+
+! Fletchers IN concentration function:
+  REAL FUNCTION AF3(TT)
+    REAL,INTENT(IN) :: TT
+    AF3 = 0.01*EXP(0.6*(XTT-TT))
+  END FUNCTION AF3
+
+! Function for IN concentration reduction between 0 and -20 C:
+  REAL FUNCTION REDIN(TT)
+    REAL,INTENT(IN) :: TT
+    REAL ZZT
+    ZZT = MAX(0., MIN(1.,(XTT - TT)/20.))
+    REDIN = 1.- (1.-ZZT)/(ZZT**3 + (1.-ZZT)**3)**.333    
+  END FUNCTION REDIN
+
+END MODULE MODE_TIWMX_FUN
diff --git a/src/common/micro/modi_condensation.F90 b/src/common/micro/modi_condensation.F90
index 32d53731b9a1a45bc0fbfb9ff62808beb7fb6771..790f62fe50504ae7b86baf499679aecc9e266ee2 100644
--- a/src/common/micro/modi_condensation.F90
+++ b/src/common/micro/modi_condensation.F90
@@ -7,10 +7,12 @@ INTERFACE
        SUBROUTINE CONDENSATION( KIU, KJU, KKU, KIB, KIE, KJB, KJE, KKB, KKE, KKL,&
           HFRAC_ICE, HCONDENS, HLAMBDA3, &
           PPABS, PZZ, PRHODREF, PT, PRV_IN, PRV_OUT, PRC_IN, PRC_OUT, PRI_IN, PRI_OUT, &
-          PRR, PRS, PRG, PSIGS, PMFCONV, PCLDFR, PSIGRC, OUSERI,&
-          OSIGMAS, OCND2, PSIGQSAT, &
+          PRR, PRS, PRG, PSIGS, PMFCONV, PCLDFR, &
+          PSIGRC, OUSERI, OSIGMAS, OCND2, LHGT_QS, &
+          PICLDFR, PWCLDFR, PSSIO, PSSIU, PIFR, PSIGQSAT, &
           PLV, PLS, PCPH, &
-          PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF, PICE_CLD_WGT)
+          PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF, &
+          PICE_CLD_WGT)
 !
 !
 INTEGER,                      INTENT(IN)    :: KIU    ! horizontal dimension in x
@@ -32,15 +34,6 @@ REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN)    :: PRHODREF
 REAL, DIMENSION(KIU,KJU,KKU), INTENT(INOUT) :: PT     ! grid scale T  (K)
 REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN)    :: PRV_IN ! grid scale water vapor mixing ratio (kg/kg) in input
 REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PRV_OUT! grid scale water vapor mixing ratio (kg/kg) in output
-LOGICAL, INTENT(IN)                         :: OUSERI ! logical switch to compute both
-                                                      ! liquid and solid condensate (OUSERI=.TRUE.)
-                                                      ! or only solid condensate (OUSERI=.FALSE.)
-LOGICAL, INTENT(IN)                         :: OSIGMAS! use present global Sigma_s values
-                                                      ! or that from turbulence scheme
-LOGICAL, INTENT(IN)                         :: OCND2  ! logical switch to sparate liquid and ice
-                                                      ! more rigid (DEFALT value : .FALSE.)
-REAL, DIMENSION(KIU,KJU),     INTENT(IN)    :: PSIGQSAT ! use an extra "qsat" variance contribution (OSIGMAS case)
-                                                        ! multiplied by PSIGQSAT
 REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN)    :: PRC_IN ! grid scale r_c mixing ratio (kg/kg) in input
 REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PRC_OUT! grid scale r_c mixing ratio (kg/kg) in output
 REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN)    :: PRI_IN ! grid scale r_i (kg/kg) in input
@@ -53,6 +46,24 @@ REAL, DIMENSION(:,:,:),       INTENT(IN)    :: PMFCONV! convective mass flux (kg
 REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PCLDFR ! cloud fraction
 REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PSIGRC ! s r_c / sig_s^2
 
+LOGICAL, INTENT(IN)                         :: OUSERI ! logical switch to compute both
+                                                      ! liquid and solid condensate (OUSERI=.TRUE.)
+                                                      ! or only solid condensate (OUSERI=.FALSE.)
+LOGICAL, INTENT(IN)                         :: OSIGMAS! use present global Sigma_s values
+                                                      ! or that from turbulence scheme
+LOGICAL, INTENT(IN)                         :: OCND2  ! logical switch to sparate liquid and ice
+                                                      ! more rigid (DEFAULT value : .FALSE.)
+LOGICAL, INTENT(IN)                         :: LHGT_QS! logical switch for height dependent VQSIGSAT
+REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PICLDFR! ice cloud fraction
+REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PWCLDFR! water or mixed-phase cloud fraction
+REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PSSIO  ! Super-saturation with respect to ice in the  
+                                                      ! supersaturated fraction
+REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PSSIU  ! Sub-saturation with respect to ice in the  
+                                                      ! subsaturated fraction
+REAL, DIMENSION(KIU,KJU,KKU), INTENT(OUT)   :: PIFR   ! Ratio cloud ice moist part
+REAL, DIMENSION(KIU,KJU),     INTENT(IN)    :: PSIGQSAT ! use an extra "qsat" variance contribution (OSIGMAS case)
+                                                        ! multiplied by PSIGQSAT
+
 REAL, DIMENSION(KIU,KJU,KKU), OPTIONAL, INTENT(IN)    :: PLV    ! Latent heat L_v
 REAL, DIMENSION(KIU,KJU,KKU), OPTIONAL, INTENT(IN)    :: PLS    ! Latent heat L_s
 REAL, DIMENSION(KIU,KJU,KKU), OPTIONAL, INTENT(IN)    :: PCPH   ! Specific heat C_ph
diff --git a/src/common/micro/modi_ice_adjust.F90 b/src/common/micro/modi_ice_adjust.F90
index 147a971cde73d72b10db6551860a4ff42c1fa037..b955c80958528a238039c86eafbecf16271f1d37 100644
--- a/src/common/micro/modi_ice_adjust.F90
+++ b/src/common/micro/modi_ice_adjust.F90
@@ -5,16 +5,19 @@
 INTERFACE
 !
       SUBROUTINE ICE_ADJUST (KKA, KKU, KKL, KRR, HFRAC_ICE, HCONDENS, HLAMBDA3,&
-                             HBUNAME, OSUBG_COND, OSIGMAS, OCND2, HSUBG_MF_PDF,&
-                             PTSTEP, PSIGQSAT,                                 &
+                             HBUNAME, OSUBG_COND, OSIGMAS, OCND2, LHGT_QS,     &
+                             HSUBG_MF_PDF, PTSTEP, PSIGQSAT,                   &
                              PRHODJ, PEXNREF, PRHODREF, PSIGS, PMFCONV,        &
                              PPABST, PZZ,                                      &
                              PEXN, PCF_MF, PRC_MF, PRI_MF,                     &
+                             PICLDFR, PWCLDFR, PSSIO, PSSIU, PIFR,             &
                              PRV, PRC, PRVS, PRCS, PTH, PTHS, PSRCS, PCLDFR,   &
-                             PRR, PRI, PRIS, PRS, PRG, TBUDGETS, KBUDGETS, PRH,&
+                             PRR, PRI, PRIS, PRS, PRG, TBUDGETS, KBUDGETS,     &
+                             PICE_CLD_WGT,                                     &
+                             PRH,                                              &
                              POUT_RV, POUT_RC, POUT_RI, POUT_TH,               &
-                             PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF,           &
-                             PICE_CLD_WGT)
+                             PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF)
+!
 USE MODD_BUDGET,         ONLY: TBUDGETDATA
 IMPLICIT NONE
 !
@@ -22,9 +25,9 @@ IMPLICIT NONE
 !*       0.1   Declarations of dummy arguments :
 !
 !
-INTEGER,                  INTENT(IN)    :: KKA  !near ground array index
-INTEGER,                  INTENT(IN)    :: KKU  !uppest atmosphere array index
-INTEGER,                  INTENT(IN)    :: KKL  !vert. levels type 1=MNH -1=ARO
+INTEGER,                  INTENT(IN)    :: KKA      !near ground array index
+INTEGER,                  INTENT(IN)    :: KKU      !uppest atmosphere array index
+INTEGER,                  INTENT(IN)    :: KKL      !vert. levels type 1=MNH -1=ARO
 INTEGER,                  INTENT(IN)    :: KRR      ! Number of moist variables
 CHARACTER(LEN=1),         INTENT(IN)    :: HFRAC_ICE
 CHARACTER(LEN=80),        INTENT(IN)    :: HCONDENS
@@ -32,59 +35,67 @@ CHARACTER(LEN=4),         INTENT(IN)    :: HLAMBDA3 ! formulation for lambda3 co
 CHARACTER(LEN=4),         INTENT(IN)    :: HBUNAME  ! Name of the budget
 LOGICAL,                  INTENT(IN)    :: OSUBG_COND ! Switch for Subgrid
                                                     ! Condensation
-LOGICAL                                 :: OSIGMAS  ! Switch for Sigma_s:
+LOGICAL,                  INTENT(IN)    :: OSIGMAS  ! Switch for Sigma_s:
                                                     ! use values computed in CONDENSATION
                                                     ! or that from turbulence scheme
-LOGICAL                                 :: OCND2    ! logical switch to sparate liquid
+LOGICAL,                  INTENT(IN)    :: OCND2    ! logical switch to separate liquid
                                                     ! and ice
-                                                    ! more rigid (DEFALT value : .FALSE.)
-CHARACTER(LEN=80),        INTENT(IN)    :: HSUBG_MF_PDF
+                                                    ! more rigid (DEFAULT value : .FALSE.)
+LOGICAL,                  INTENT(IN)   :: LHGT_QS   ! logical switch for height dependent VQSIGSAT
+CHARACTER(LEN=80),        INTENT(IN)   :: HSUBG_MF_PDF
 REAL,                     INTENT(IN)   :: PTSTEP    ! Double Time step
                                                     ! (single if cold start)
 REAL, DIMENSION(:,:),     INTENT(IN)   :: PSIGQSAT  ! coeff applied to qsat variance contribution
 !
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PRHODJ  ! Dry density * Jacobian
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PEXNREF ! Reference Exner function
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PRHODREF
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)   ::  PRHODJ  ! Dry density * Jacobian
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)   ::  PEXNREF ! Reference Exner function
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)   ::  PRHODREF
 !
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PSIGS   ! Sigma_s at time t
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PMFCONV ! convective mass flux
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PPABST  ! Absolute Pressure at t
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PZZ     ! height of model layer
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PEXN    ! Exner function
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)   ::  PSIGS   ! Sigma_s at time t
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)   ::  PMFCONV ! convective mass flux
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)   ::  PPABST  ! Absolute Pressure at t
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)   ::  PZZ     ! height of model layer
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)   ::  PEXN    ! Exner function
 !
-REAL, DIMENSION(:,:,:),     INTENT(IN)    :: PCF_MF! Convective Mass Flux Cloud fraction
-REAL, DIMENSION(:,:,:),     INTENT(IN)    :: PRC_MF! Convective Mass Flux liquid mixing ratio
-REAL, DIMENSION(:,:,:),     INTENT(IN)    :: PRI_MF! Convective Mass Flux ice mixing ratio
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)    :: PCF_MF  ! Convective Mass Flux Cloud fraction
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)    :: PRC_MF  ! Convective Mass Flux liquid mixing ratio
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)    :: PRI_MF  ! Convective Mass Flux ice mixing ratio
 !
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PRV     ! Water vapor m.r. to adjust
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PRC     ! Cloud water m.r. to adjust
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRVS    ! Water vapor m.r. source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRCS    ! Cloud water m.r. source
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PTH     ! Theta to adjust
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PTHS    ! Theta source
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSRCS   ! Second-order flux
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)    :: PRV     ! Water vapor m.r. to adjust
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)    :: PRC     ! Cloud water m.r. to adjust
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(INOUT) :: PRVS    ! Water vapor m.r. source
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(INOUT) :: PRCS    ! Cloud water m.r. source
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(IN)    :: PTH     ! Theta to adjust
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(INOUT) :: PTHS    ! Theta source
+REAL, DIMENSION(:,:,:), CONTIGUOUS,   INTENT(OUT)   :: PSRCS   ! Second-order flux
                                                    ! s'rc'/2Sigma_s2 at time t+1
                                                    ! multiplied by Lambda_3
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PCLDFR  ! Cloud fraction
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(OUT)   :: PCLDFR  ! Cloud fraction
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(OUT)   :: PICLDFR ! ice cloud fraction
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(OUT)   :: PWCLDFR ! water or mixed-phase cloud fraction
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(OUT)   :: PSSIO   ! Super-saturation with respect to ice in the  
+                                                              ! supersaturated fraction
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(OUT)   :: PSSIU   ! Sub-saturation with respect to ice in the  
+                                                              ! subsaturated fraction 
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(OUT)   :: PIFR    ! Ratio cloud ice moist part to dry part
 !
-REAL, DIMENSION(:,:,:),  INTENT(INOUT)::  PRIS ! Cloud ice  m.r. at t+1
-REAL, DIMENSION(:,:,:),  INTENT(IN)   ::  PRR  ! Rain water m.r. to adjust
-REAL, DIMENSION(:,:,:),  INTENT(IN)   ::  PRI  ! Cloud ice  m.r. to adjust
-REAL, DIMENSION(:,:,:),  INTENT(IN)   ::  PRS  ! Aggregate  m.r. to adjust
-REAL, DIMENSION(:,:,:),  INTENT(IN)   ::  PRG  ! Graupel    m.r. to adjust
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)   ::  PRH  ! Hail       m.r. to adjust
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(OUT)  ::  POUT_RV ! Adjusted value
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(OUT)  ::  POUT_RC ! Adjusted value
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(OUT)  ::  POUT_RI ! Adjusted value
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(OUT)  ::  POUT_TH ! Adjusted value
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(OUT)  ::  PHLC_HRC
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(OUT)  ::  PHLC_HCF
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(OUT)  ::  PHLI_HRI
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(OUT)  ::  PHLI_HCF
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(INOUT) :: PRIS    ! Cloud ice  m.r. at t+1
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(IN)    :: PRR     ! Rain water m.r. to adjust
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(IN)    :: PRI     ! Cloud ice  m.r. to adjust
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(IN)    :: PRS     ! Aggregate  m.r. to adjust
+REAL, DIMENSION(:,:,:), CONTIGUOUS,  INTENT(IN)    :: PRG     ! Graupel    m.r. to adjust
 TYPE(TBUDGETDATA), DIMENSION(KBUDGETS), INTENT(INOUT) :: TBUDGETS
-INTEGER, INTENT(IN) :: KBUDGETS
-REAL, DIMENSION(:,:),   OPTIONAL, INTENT(IN)   :: PICE_CLD_WGT
+INTEGER,                             INTENT(IN)    :: KBUDGETS
+REAL, DIMENSION(:,:),   CONTIGUOUS, OPTIONAL, INTENT(IN)   ::  PICE_CLD_WGT
+REAL, DIMENSION(:,:,:), CONTIGUOUS, OPTIONAL, INTENT(IN)   ::  PRH  ! Hail       m.r. to adjust
+REAL, DIMENSION(:,:,:), CONTIGUOUS, OPTIONAL, INTENT(OUT)  ::  POUT_RV ! Adjusted value
+REAL, DIMENSION(:,:,:), CONTIGUOUS, OPTIONAL, INTENT(OUT)  ::  POUT_RC ! Adjusted value
+REAL, DIMENSION(:,:,:), CONTIGUOUS, OPTIONAL, INTENT(OUT)  ::  POUT_RI ! Adjusted value
+REAL, DIMENSION(:,:,:), CONTIGUOUS, OPTIONAL, INTENT(OUT)  ::  POUT_TH ! Adjusted value
+REAL, DIMENSION(:,:,:), CONTIGUOUS, OPTIONAL, INTENT(OUT)  ::  PHLC_HRC
+REAL, DIMENSION(:,:,:), CONTIGUOUS, OPTIONAL, INTENT(OUT)  ::  PHLC_HCF
+REAL, DIMENSION(:,:,:), CONTIGUOUS, OPTIONAL, INTENT(OUT)  ::  PHLI_HRI
+REAL, DIMENSION(:,:,:), CONTIGUOUS, OPTIONAL, INTENT(OUT)  ::  PHLI_HCF
 !
 END SUBROUTINE ICE_ADJUST
 !
diff --git a/src/common/micro/modi_ini_snow.F90 b/src/common/micro/modi_ini_snow.F90
new file mode 100644
index 0000000000000000000000000000000000000000..788ec7c9a8f216a921b5ddcbba27ab78195188b0
--- /dev/null
+++ b/src/common/micro/modi_ini_snow.F90
@@ -0,0 +1,15 @@
+!     ######spl
+       MODULE MODI_INI_SNOW
+!      ########################
+!
+INTERFACE
+      SUBROUTINE INI_SNOW ( KLUOUT )
+!
+INTEGER,                 INTENT(IN) :: KLUOUT    ! Logical unit number for prints
+
+!
+END SUBROUTINE INI_SNOW
+!
+END INTERFACE
+!
+END MODULE MODI_INI_SNOW
diff --git a/src/common/micro/modi_ini_tiwmx.F90 b/src/common/micro/modi_ini_tiwmx.F90
new file mode 100644
index 0000000000000000000000000000000000000000..9ef7e6409e537b13fe57af01140bc353dddfe029
--- /dev/null
+++ b/src/common/micro/modi_ini_tiwmx.F90
@@ -0,0 +1,16 @@
+!MNH_LIC Copyright 1994-2014 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 MODI_INI_TIWMX
+!       #####################
+!
+INTERFACE
+!
+SUBROUTINE INI_TIWMX
+END SUBROUTINE INI_TIWMX
+!
+END INTERFACE
+!
+END MODULE MODI_INI_TIWMX
diff --git a/src/common/turb/modd_cturb.F90 b/src/common/turb/modd_cturb.F90
index a446914f779a1f5aa6d72c4c24b7b9a2960261e5..75d4a5948b9a10399fd04e986cef957f21050856 100644
--- a/src/common/turb/modd_cturb.F90
+++ b/src/common/turb/modd_cturb.F90
@@ -82,5 +82,6 @@ REAL,SAVE :: XPHI_LIM     ! Threshold value for Phi3 and Psi3
 REAL,SAVE :: XSBL_O_BL    ! SBL height / BL height ratio
 REAL,SAVE :: XFTOP_O_FSURF! Fraction of surface (heat or momentum) flux used to define top of BL
 LOGICAL,SAVE :: LHARAT    ! SWITCH HARATU
+LOGICAL,SAVE :: LSTATNW   ! SWITCH LSTATNW
 !
 END MODULE MODD_CTURB
diff --git a/src/common/turb/modd_turbn.f90 b/src/common/turb/modd_turbn.F90
similarity index 100%
rename from src/common/turb/modd_turbn.f90
rename to src/common/turb/modd_turbn.F90
diff --git a/src/common/turb/mode_coefj.f90 b/src/common/turb/mode_coefj.F90
similarity index 100%
rename from src/common/turb/mode_coefj.f90
rename to src/common/turb/mode_coefj.F90
diff --git a/src/common/turb/mode_compute_function_thermo_mf.F90 b/src/common/turb/mode_compute_function_thermo_mf.F90
index 64cc93462a8539820657547cf78cff60ce859fb9..92d46fae9efe4fad66545ef8beaf97df70e8b130 100644
--- a/src/common/turb/mode_compute_function_thermo_mf.F90
+++ b/src/common/turb/mode_compute_function_thermo_mf.F90
@@ -1,6 +1,6 @@
 !MNH_LIC Copyright 1994-2014 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !     ######spl
      MODULE MODE_COMPUTE_FUNCTION_THERMO_MF
@@ -14,14 +14,14 @@ CONTAINS
 !     #################################################################
 !
 !!
-!!****  *COMPUTE_FUNCTION_THERMO_MF* - 
+!!****  *COMPUTE_FUNCTION_THERMO_MF* -
 !!
 !!    PURPOSE
 !!    -------
 !!
 !!**  METHOD
 !!    ------
-!!    
+!!
 !!
 !!    EXTERNAL
 !!    --------
@@ -35,7 +35,7 @@ CONTAINS
 !!
 !!    AUTHOR
 !!    ------
-!!     
+!!
 !!     JP Pinty      *LA*
 !!
 !!    MODIFICATIONS
@@ -44,13 +44,15 @@ CONTAINS
 !!     Externalisation of computations done in TURB and MF_TURB (Malardel and Pergaud, fev. 2007)
 !!     Optimization : V.Masson, 09/2010
 !!     S. Riette Sept 2011 : remove of unused PL?OCPEXN, use of received ice fraction
+!!     Wim de Rooy June 2019: update statistical cloud scheme
 !!
 !! --------------------------------------------------------------------------
-!       
+!
 !*      0. DECLARATIONS
 !          ------------
 !
 USE MODD_CST
+USE MODD_CTURB, ONLY : LSTATNW
 USE PARKIND1, ONLY : JPRB
 USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 !
@@ -73,12 +75,12 @@ REAL, DIMENSION(:,:), INTENT(OUT)   :: PT      ! temperature
 REAL, DIMENSION(:,:), INTENT(OUT)  ::  PAMOIST,PATHETA
 !
 !-------------------------------------------------------------------------------
-! 
+!
 !*       0.2   Declarations of local variables
 !
 REAL                :: ZEPS         ! XMV / XMD
 REAL, DIMENSION(SIZE(PTH,1),SIZE(PTH,2)) ::     &
-          ZCP,                        &  ! Cp 
+          ZCP,                        &  ! Cp
           ZE,                         &  ! Saturation mixing ratio
           ZDEDT,                      &  ! Saturation mixing ratio derivative
           ZAMOIST_W,                  &  ! Coefficients for s = f (Thetal,Rnp)
@@ -103,11 +105,11 @@ ZCP=XCPD
 
 IF (KRR > 0) ZCP(:,:) = ZCP(:,:) + XCPV * PR(:,:,1)
 
-DO JRR = 2,1+KRRL  ! loop on the liquid components  
+DO JRR = 2,1+KRRL  ! loop on the liquid components
    ZCP(:,:)  = ZCP(:,:) + XCL * PR(:,:,JRR)
 END DO
 
-DO JRR = 2+KRRL,1+KRRL+KRRI ! loop on the solid components   
+DO JRR = 2+KRRL,1+KRRL+KRRI ! loop on the solid components
   ZCP(:,:)  = ZCP(:,:)  + XCI * PR(:,:,JRR)
 END DO
 
@@ -118,9 +120,9 @@ PT(:,:) =  PTH(:,:) * PEXN(:,:)
 !
 !! Liquid water
 !
-IF ( KRRL >= 1 ) THEN 
+IF ( KRRL >= 1 ) THEN
 !
-!*       Lv/Cph 
+!*       Lv/Cph
 !
   ZLVOCP(:,:) = (XLVTT + (XCPV-XCL) *  (PT(:,:)-XTT) ) / ZCP(:,:)
 !
@@ -137,31 +139,32 @@ IF ( KRRL >= 1 ) THEN
   ZDEDT(:,:) = ( XBETAW / PT(:,:)  - XGAMW ) / PT(:,:)   &
                  * ZE(:,:) * ( 1. + ZE(:,:) / ZEPS )
 !
-!*      Compute Amoist
-!
-  ZAMOIST_W(:,:)=  0.5 / ( 1.0 + ZDEDT(:,:) * ZLVOCP(:,:) )
-!
-!*      Compute Atheta
+!*      Compute Amoist and Atheta
 !
-  ZATHETA_W(:,:)= ZAMOIST_W(:,:) * PEXN(:,:) *                          &
-        ( ( ZE(:,:) - PR(:,:,1) ) * ZLVOCP(:,:) /                    &
-          ( 1. + ZDEDT(:,:) * ZLVOCP(:,:) )           *              &
-          (                                                             &
-           ZE(:,:) * (1. + ZE(:,:)/ZEPS)                                &
-                        * ( -2.*XBETAW/PT(:,:) + XGAMW ) / PT(:,:)**2   &
-          +ZDEDT(:,:) * (1. + 2. * ZE(:,:)/ZEPS)                        &
-                        * ( XBETAW/PT(:,:) - XGAMW ) / PT(:,:)          &
-          )                                                             &
-         - ZDEDT(:,:)                                                   &
-        )
-
+  IF (LSTATNW) THEN
+    ZAMOIST_W(:,:)=  1.0 / ( 1.0 + ZDEDT(:,:) * ZLVOCP(:,:) )
+    ZATHETA_W(:,:)= ZAMOIST_W(:,:) * PEXN(:,:) * ZDEDT(:,:)
+  ELSE
+    ZAMOIST_W(:,:)=  0.5 / ( 1.0 + ZDEDT(:,:) * ZLVOCP(:,:) )
+    ZATHETA_W(:,:)= ZAMOIST_W(:,:) * PEXN(:,:) *                          &
+          ( ( ZE(:,:) - PR(:,:,1) ) * ZLVOCP(:,:) /                    &
+            ( 1. + ZDEDT(:,:) * ZLVOCP(:,:) )           *              &
+            (                                                             &
+             ZE(:,:) * (1. + ZE(:,:)/ZEPS)                                &
+                          * ( -2.*XBETAW/PT(:,:) + XGAMW ) / PT(:,:)**2   &
+            +ZDEDT(:,:) * (1. + 2. * ZE(:,:)/ZEPS)                        &
+                          * ( XBETAW/PT(:,:) - XGAMW ) / PT(:,:)          &
+            )                                                             &
+           - ZDEDT(:,:)                                                   &
+          )
+  ENDIF
 !
 !! Solid water
 !
-  IF ( KRRI >= 1 ) THEN 
+  IF ( KRRI >= 1 ) THEN
 
 !
-!*       Ls/Cph 
+!*       Ls/Cph
 !
     ZLSOCP(:,:) = (XLSTT + (XCPV-XCI) *  (PT(:,:)-XTT) ) / ZCP(:,:)
 !
@@ -178,23 +181,25 @@ IF ( KRRL >= 1 ) THEN
     ZDEDT(:,:) = ( XBETAI / PT(:,:)  - XGAMI ) / PT(:,:)   &
                    * ZE(:,:) * ( 1. + ZE(:,:) / ZEPS )
 !
-!*      Compute Amoist
-!
-    ZAMOIST_I(:,:)=  0.5 / ( 1.0 + ZDEDT(:,:) * ZLSOCP(:,:) )
-!
-!*      Compute Atheta
-!
-    ZATHETA_I(:,:)= ZAMOIST_I(:,:) * PEXN(:,:) *                        &
-        ( ( ZE(:,:) - PR(:,:,1) ) * ZLSOCP(:,:) /                    &
-          ( 1. + ZDEDT(:,:) * ZLSOCP(:,:) )           *              &
-          (                                                             &
-           ZE(:,:) * (1. + ZE(:,:)/ZEPS)                                &
-                        * ( -2.*XBETAI/PT(:,:) + XGAMI ) / PT(:,:)**2   &
-          +ZDEDT(:,:) * (1. + 2. * ZE(:,:)/ZEPS)                        &
-                        * ( XBETAI/PT(:,:) - XGAMI ) / PT(:,:)          &
-          )                                                             &
-         - ZDEDT(:,:)                                                   &
-        )
+!*      Compute Amoist and Atheta
+!
+    IF (LSTATNW) THEN
+       ZAMOIST_I(:,:)=  1.0 / ( 1.0 + ZDEDT(:,:) * ZLSOCP(:,:) )
+       ZATHETA_I(:,:)= ZAMOIST_I(:,:) * PEXN(:,:) * ZDEDT(:,:)
+    ELSE
+      ZAMOIST_I(:,:)=  0.5 / ( 1.0 + ZDEDT(:,:) * ZLSOCP(:,:) )
+      ZATHETA_I(:,:)= ZAMOIST_I(:,:) * PEXN(:,:) *                        &
+          ( ( ZE(:,:) - PR(:,:,1) ) * ZLSOCP(:,:) /                    &
+            ( 1. + ZDEDT(:,:) * ZLSOCP(:,:) )           *              &
+            (                                                             &
+             ZE(:,:) * (1. + ZE(:,:)/ZEPS)                                &
+                          * ( -2.*XBETAI/PT(:,:) + XGAMI ) / PT(:,:)**2   &
+            +ZDEDT(:,:) * (1. + 2. * ZE(:,:)/ZEPS)                        &
+                          * ( XBETAI/PT(:,:) - XGAMI ) / PT(:,:)          &
+            )                                                             &
+           - ZDEDT(:,:)                                                   &
+          )
+    ENDIF
 
   ELSE
     ZAMOIST_I(:,:)=0.
diff --git a/src/common/turb/mode_compute_mf_cloud_stat.F90 b/src/common/turb/mode_compute_mf_cloud_stat.F90
index 12fcce462fef6b0eb2c4b73fec8b6058a78ada08..7f670d5b6e4650225975d52650c648ffcff41287 100644
--- a/src/common/turb/mode_compute_mf_cloud_stat.F90
+++ b/src/common/turb/mode_compute_mf_cloud_stat.F90
@@ -48,10 +48,13 @@ CONTAINS
 !!    -------------
 !!      Original 25 Aug 2011
 !!      S. Riette Jan 2012: support for both order of vertical levels
+!!      Wim de Rooy June 2019: update statistical cloud scheme (now including
+!!                             covariance term for MF contribution)
 !! --------------------------------------------------------------------------
 !
 !*      0. DECLARATIONS
 !          ------------
+USE MODD_CTURB,           ONLY : LSTATNW, XCTV
 USE MODD_PARAM_MFSHALL_n, ONLY :  XTAUSIGMF
 USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT
 !
@@ -113,8 +116,13 @@ IF (KRRL > 0)  THEN
 !
 
 !
-    ZFLXZ(:,:) = -2 * XTAUSIGMF * PEMF(:,:)*(PTHL_UP(:,:)-MZM_MF(PTHLM(:,:), KKA, KKU, KKL)) * &
-                      GZ_M_W_MF(PTHLM(:,:),PDZZ(:,:), KKA, KKU, KKL)
+    IF (LSTATNW) THEN
+      ZFLXZ(:,:) = -2 * XCTV * XTAUSIGMF * PEMF(:,:)*(PTHL_UP(:,:)-MZM_MF(PTHLM(:,:), KKA, KKU, KKL)) * &
+                        GZ_M_W_MF(PTHLM(:,:),PDZZ(:,:), KKA, KKU, KKL)
+    ELSE
+      ZFLXZ(:,:) = -2 * XTAUSIGMF * PEMF(:,:)*(PTHL_UP(:,:)-MZM_MF(PTHLM(:,:), KKA, KKU, KKL)) * &
+                        GZ_M_W_MF(PTHLM(:,:),PDZZ(:,:), KKA, KKU, KKL)
+    ENDIF
 !
 !   Avoid negative values
     ZFLXZ(:,:) = MAX(0.,ZFLXZ(:,:))
@@ -129,14 +137,30 @@ IF (KRRL > 0)  THEN
 !
 !
 !
-    ZFLXZ(:,:) = -2 * XTAUSIGMF * PEMF(:,:)*(PRT_UP(:,:)-MZM_MF(PRTM(:,:), KKA, KKU, KKL)) * &
-                      GZ_M_W_MF(PRTM(:,:),PDZZ(:,:), KKA, KKU, KKL)
+    IF (LSTATNW) THEN
+      ZFLXZ(:,:) = -2 * XCTV * XTAUSIGMF * PEMF(:,:)*(PRT_UP(:,:)-MZM_MF(PRTM(:,:), KKA, KKU, KKL)) * &
+                        GZ_M_W_MF(PRTM(:,:),PDZZ(:,:), KKA, KKU, KKL)
+    ELSE
+      ZFLXZ(:,:) = -2 * XTAUSIGMF * PEMF(:,:)*(PRT_UP(:,:)-MZM_MF(PRTM(:,:), KKA, KKU, KKL)) * &
+                        GZ_M_W_MF(PRTM(:,:),PDZZ(:,:), KKA, KKU, KKL)
+    ENDIF
 !
 !   Avoid negative values
     ZFLXZ(:,:) = MAX(0.,ZFLXZ(:,:))
 !
 
     PSIGMF(:,:) = PSIGMF(:,:) + ZAMOIST(:,:) **2 * MZF_MF(ZFLXZ(:,:), KKA, KKU, KKL)
+    IF (LSTATNW) THEN
+      !wc Now including convection covariance contribution in case of LSTATNW=TRUE
+      !
+      !       1.2.2 contribution from <Rnp Thl>
+      ZFLXZ(:,:) = - XCTV * XTAUSIGMF * (PEMF(:,:)*(PRT_UP(:,:)-MZM_MF(PRTM(:,:), KKA, KKU, KKL)) * &
+                                   GZ_M_W_MF(PTHLM(:,:),PDZZ(:,:), KKA, KKU, KKL) + &
+                                   PEMF(:,:)*(PTHL_UP(:,:)-MZM_MF(PTHLM(:,:), KKA, KKU, KKL)) * &
+                                   GZ_M_W_MF(PRTM(:,:),PDZZ(:,:), KKA, KKU, KKL))      
+    
+      PSIGMF(:,:) = PSIGMF(:,:) - MIN(0.,2.*ZAMOIST(:,:)*ZATHETA(:,:)*MZF_MF(ZFLXZ(:,:), KKA, KKU, KKL))
+    ENDIF
 !
 !        1.3  Vertical part of Sigma_s
 !
diff --git a/src/common/turb/mode_tke_eps_sources.F90 b/src/common/turb/mode_tke_eps_sources.F90
index b2bcf0fe16e3365a0708939a151cc665ffd32f56..1e1e4bc400e6903c7e5d4f4d989efd646f195460 100644
--- a/src/common/turb/mode_tke_eps_sources.F90
+++ b/src/common/turb/mode_tke_eps_sources.F90
@@ -8,10 +8,10 @@ CONTAINS
       SUBROUTINE TKE_EPS_SOURCES(KKA,KKU,KKL,KMI,PTKEM,PLM,PLEPS,PDP,  &
                     & PTRH,PRHODJ,PDZZ,PDXX,PDYY,PDZX,PDZY,PZZ,        &
                     & PTSTEP,PIMPL,PEXPL,                              &
-                    & HTURBLEN,HTURBDIM,                               &
-                    & TPFILE,OTURB_DIAG,ODIAG_IN_RUN,                  &
+                    & HTURBLEN,HTURBDIM,OOCEAN,                        &
+                    & TPFILE,OTURB_DIAG,ODIAG_IN_RUN,PSFUM,PSFVM,      &
                     & PTP,PRTKES,PRTHLS,PCOEF_DISS,PTDIFF,PTDISS,PRTKEMS,&
-                    & TBUDGETS, KBUDGETS, &
+                    & TBUDGETS, KBUDGETS,                              &
                     & PEDR, PTR,PDISS, PCURRENT_TKE_DISS               )
 !     ##################################################################
 !
@@ -178,8 +178,10 @@ CHARACTER(LEN=4),        INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
 CHARACTER(LEN=4),        INTENT(IN)   ::  HTURBLEN     ! kind of mixing length
 TYPE(TFILEDATA),         INTENT(IN)   ::  TPFILE       ! Output file
 LOGICAL,                 INTENT(IN)   ::  OTURB_DIAG   ! switch to write some
-LOGICAL,                INTENT(IN)   ::  ODIAG_IN_RUN ! switch to activate online diagnostics (mesonh)
-                                  ! diagnostic fields in the syncronous FM-file
+                                                       ! diagnostic fields in the syncronous FM-file
+LOGICAL,                 INTENT(IN)   ::  ODIAG_IN_RUN  ! switch to activate online diagnostics (mesonh)
+LOGICAL,                 INTENT(IN)   ::  OOCEAN        ! switch to activate LES OCEAN version
+
 REAL, DIMENSION(:,:,:),  INTENT(INOUT)::  PDP          ! Dyn. prod. of TKE
 REAL, DIMENSION(:,:,:),  INTENT(IN)   ::  PTRH
 REAL, DIMENSION(:,:,:),  INTENT(IN)   ::  PTP          ! Ther. prod. of TKE
@@ -196,6 +198,7 @@ REAL, DIMENSION(:,:,:),  INTENT(OUT), OPTIONAL  ::  PTR          ! Transport pro
 REAL, DIMENSION(:,:,:),  INTENT(OUT), OPTIONAL  ::  PDISS        ! Dissipation of TKE
 REAL, DIMENSION(:,:,:),  INTENT(OUT), OPTIONAL  ::  PEDR         ! EDR 
 REAL, DIMENSION(:,:,:),  INTENT(INOUT), OPTIONAL  ::  PCURRENT_TKE_DISS ! if ODIAG_IN_RUN in mesonh
+REAL, DIMENSION(:,:),   INTENT(IN)    :: PSFUM,PSFVM ! momentum sfc flux
 !
 !
 !
@@ -263,8 +266,13 @@ END IF
 !*       2.2  Explicit TKE sources except horizontal turbulent transport 
 !
 ! extrapolate the dynamic production with a 1/Z law from its value at the 
-! W(IKB+1) value stored in PDP(IKB) to the mass localization tke(IKB)
-PDP(:,:,IKB) = PDP(:,:,IKB) * (1. + PDZZ(:,:,IKB+KKL)/PDZZ(:,:,IKB))
+IF (OOCEAN) THEN
+  ! W(IKE) value stored in PDP(IKE) to the mass localization of tke(IKE)
+  PDP(:,:,IKE) = PDP(:,:,IKE) * (1. + PDZZ(:,:,IKE)/PDZZ(:,:,IKE+1))
+ELSE
+  ! W(IKB+1) value stored in PDP(IKB) to the mass localization tke(IKB)
+  PDP(:,:,IKB) = PDP(:,:,IKB) * (1. + PDZZ(:,:,IKB+KKL)/PDZZ(:,:,IKB))
+END IF
 !
 ! Compute the source terms for TKE: ( ADVECtion + NUMerical DIFFusion + ..)
 ! + (Dynamical Production) + (Thermal Production) - (dissipation) 
@@ -276,6 +284,12 @@ ZSOURCE(:,:,:) = ( PRTKES(:,:,:) +  PRTKEMS(:,:,:) ) / PRHODJ(:,:,:) &
 !*       2.2  implicit vertical TKE transport
 !
 !
+! To add here in ZSOURCE surface flux of TKE 
+!(assumed to be 0 for ATM, 
+IF (OOCEAN) THEN
+  !for ocean:wave breaking  simple/very rough param wE = 100 Ustar**3 where ustar is the Tau_atmi/rhocea  
+  ZSOURCE (:,:,IKE)=ZSOURCE(:,:,IKE)-1.E2*((PSFUM(:,:)**2 + PSFVM(:,:)**2)**1.5) /PDZZ(:,:,IKE)
+END IF
 ! Compute the vector giving the elements just under the diagonal for the 
 ! matrix inverted in TRIDIAG 
 !
@@ -350,9 +364,18 @@ END IF
 
 !Store the previous source terms in prtkes before initializing the next one
 !Should be in IF LBUDGET_TKE only. Was removed out for a correct comput. of PTDIFF in case of LBUDGET_TKE=F in AROME
+#ifdef REPRO48
+IF (LBUDGET_TKE) THEN
+PRTKES(:,:,:) = PRTKES(:,:,:) + PDP(:,:,:) * PRHODJ(:,:,:)
+PRTKES(:,:,:) = PRTKES(:,:,:) + PTP(:,:,:) * PRHODJ(:,:,:)
+PRTKES(:,:,:) = PRTKES(:,:,:) - XCED * SQRT(PTKEM(:,:,:)) / PLEPS(:,:,:) * &
+                (PEXPL*PTKEM(:,:,:) + PIMPL*ZRES(:,:,:)) * PRHODJ(:,:,:)
+END IF
+#else
 PRTKES(:,:,:) = PRTKES(:,:,:) + PRHODJ(:,:,:) *                                                           &
                 ( PDP(:,:,:) + PTP(:,:,:)                                                                 &
                   - XCED * SQRT(PTKEM(:,:,:)) / PLEPS(:,:,:) * ( PEXPL*PTKEM(:,:,:) + PIMPL*ZRES(:,:,:) ) )
+#endif
 !
 PTDIFF(:,:,:) =  ZRES(:,:,:) / PTSTEP - PRTKES(:,:,:)/PRHODJ(:,:,:) &
  & - PDP(:,:,:)- PTP(:,:,:) - PTDISS(:,:,:)
diff --git a/src/common/turb/mode_turb_ver.F90 b/src/common/turb/mode_turb_ver.F90
index 49ed101bb374d335175ae8b26f446b5bdf427f44..393377797d4a4af6e802590439c6089404d96c7e 100644
--- a/src/common/turb/mode_turb_ver.F90
+++ b/src/common/turb/mode_turb_ver.F90
@@ -11,7 +11,7 @@ SUBROUTINE TURB_VER(KKA,KKU,KKL,KRR,KRRL,KRRI,                &
                       PTSTEP, TPFILE,                               &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PDIRCOSZW,PZZ,       &
                       PCOSSLOPE,PSINSLOPE,                          &
-                      PRHODJ,PTHVREF,                               &
+                      PRHODJ,PTHVREF,PSFUM,PSFVM,                   &
                       PSFTHM,PSFRM,PSFSVM,PSFTHP,PSFRP,PSFSVP,      &
                       PCDUEFF,PTAU11M,PTAU12M,PTAU33M,              &
                       PUM,PVM,PWM,PUSLOPEM,PVSLOPEM,PTHLM,PRM,PSVM, &
@@ -275,6 +275,7 @@ REAL, DIMENSION(:,:,:), INTENT(IN)   ::  MFMOIST       ! moist mass flux dual sc
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PTHVREF      ! ref. state Virtual 
                                                       ! Potential Temperature 
 !
+REAL, DIMENSION(:,:),   INTENT(IN)   ::  PSFUM,PSFVM ! surface fluxe
 REAL, DIMENSION(:,:),   INTENT(IN)   ::  PSFTHM,PSFRM ! surface fluxes at time
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PSFSVM       ! t - deltat 
 !
@@ -556,7 +557,7 @@ CALL  TURB_VER_DYN_FLUX(KKA,KKU,KKL,                                &
                       TPFILE,                                       &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PDIRCOSZW,PZZ,       &
                       PCOSSLOPE,PSINSLOPE,                          &
-                      PRHODJ,                                       &
+                      PRHODJ,PSFUM,PSFVM,                           &
                       PCDUEFF,PTAU11M,PTAU12M,PTAU33M,              &
                       PTHLM,PRM,PSVM,PUM,PVM,PWM,PUSLOPEM,PVSLOPEM, &
                       PTKEM,ZLM,MFMOIST,ZWU,ZWV,                    &
diff --git a/src/common/turb/mode_turb_ver_dyn_flux.F90 b/src/common/turb/mode_turb_ver_dyn_flux.F90
index 12915e63529d9791f97de93bbb1fe0f9cad3846b..9d018ff6e338b1a090d65ed8f0e0fbf17d94d871 100644
--- a/src/common/turb/mode_turb_ver_dyn_flux.F90
+++ b/src/common/turb/mode_turb_ver_dyn_flux.F90
@@ -13,6 +13,7 @@ SUBROUTINE TURB_VER_DYN_FLUX(KKA,KKU,KKL,                     &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PDIRCOSZW,PZZ,       &
                       PCOSSLOPE,PSINSLOPE,                          &
                       PRHODJ,                                       &
+                      PSFUM,PSFVM,                                  &
                       PCDUEFF,PTAU11M,PTAU12M,PTAU33M,              &
                       PTHLM,PRM,PSVM,PUM,PVM,PWM,PUSLOPEM,PVSLOPEM, &
                       PTKEM,PLM,MFMOIST,PWU,PWV,                    &
@@ -27,13 +28,13 @@ SUBROUTINE TURB_VER_DYN_FLUX(KKA,KKU,KKL,                     &
 !!    PURPOSE
 !!    -------
 !       The purpose of this routine is to compute the vertical turbulent
-!     fluxes of the evolutive variables and give back the source 
+!     fluxes of the evolutive variables and give back the source
 !     terms to the main program.	In the case of large horizontal meshes,
 !     the divergence of these vertical turbulent fluxes represent the whole
 !     effect of the turbulence but when the three-dimensionnal version of
 !     the turbulence scheme is activated (CTURBDIM="3DIM"), these divergences
-!     are completed in the next routine TURB_HOR. 
-!		  An arbitrary degree of implicitness has been implemented for the 
+!     are completed in the next routine TURB_HOR.
+!		  An arbitrary degree of implicitness has been implemented for the
 !     temporal treatment of these diffusion terms.
 !       The vertical boundary conditions are as follows:
 !           *  at the bottom, the surface fluxes are prescribed at the same
@@ -41,8 +42,8 @@ SUBROUTINE TURB_VER_DYN_FLUX(KKA,KKU,KKL,                     &
 !           *  at the top, the turbulent fluxes are set to 0.
 !       It should be noted that the condensation has been implicitely included
 !     in this turbulence scheme by using conservative variables and computing
-!     the subgrid variance of a statistical variable s indicating the presence 
-!     or not of condensation in a given mesh. 
+!     the subgrid variance of a statistical variable s indicating the presence
+!     or not of condensation in a given mesh.
 !
 !!**  METHOD
 !!    ------
@@ -51,27 +52,27 @@ SUBROUTINE TURB_VER_DYN_FLUX(KKA,KKU,KKL,                     &
 !!      implicit scheme (a Crank-Nicholson type with coefficients different
 !!      than 0.5), which allows to vary the degree of implicitness of the
 !!      formulation.
-!!      	 The different prognostic variables are treated one by one. 
-!!      The contributions of each turbulent fluxes are cumulated into the 
-!!      tendency  PRvarS, and into the dynamic and thermal production of 
+!!      	 The different prognostic variables are treated one by one.
+!!      The contributions of each turbulent fluxes are cumulated into the
+!!      tendency  PRvarS, and into the dynamic and thermal production of
 !!      TKE if necessary.
-!!        
+!!
 !!			 In section 2 and 3, the thermodynamical fields are considered.
 !!      Only the turbulent fluxes of the conservative variables
-!!      (Thetal and Rnp stored in PRx(:,:,:,1))  are computed. 
-!!       Note that the turbulent fluxes at the vertical 
+!!      (Thetal and Rnp stored in PRx(:,:,:,1))  are computed.
+!!       Note that the turbulent fluxes at the vertical
 !!      boundaries are given either by the soil scheme for the surface one
-!!      ( at the same instant as the others fluxes) and equal to 0 at the 
-!!      top of the model. The thermal production is computed by vertically 
+!!      ( at the same instant as the others fluxes) and equal to 0 at the
+!!      top of the model. The thermal production is computed by vertically
 !!      averaging the turbulent flux and multiply this flux at the mass point by
 !!      a function ETHETA or EMOIST, which preform the transformation from the
-!!      conservative variables to the virtual potential temperature. 
-!!     
+!!      conservative variables to the virtual potential temperature.
+!!
 !! 	    In section 4, the variance of the statistical variable
-!!      s indicating presence or not of condensation, is determined in function 
+!!      s indicating presence or not of condensation, is determined in function
 !!      of the turbulent moments of the conservative variables and its
-!!      squarred root is stored in PSIGS. This information will be completed in 
-!!      the horizontal turbulence if the turbulence dimensionality is not 
+!!      squarred root is stored in PSIGS. This information will be completed in
+!!      the horizontal turbulence if the turbulence dimensionality is not
 !!      equal to "1DIM".
 !!
 !!			 In section 5, the x component of the stress tensor is computed.
@@ -82,50 +83,50 @@ SUBROUTINE TURB_VER_DYN_FLUX(KKA,KKU,KKL,                     &
 !!        j" is also parallel to the surface and in the normal direction of
 !!           the maximum slope
 !!        k" is the normal to the surface
-!!      In order to prevent numerical instability, the implicit scheme has 
-!!      been extended to the surface flux regarding to its dependence in 
-!!      function of U. The dependence in function of the other components 
+!!      In order to prevent numerical instability, the implicit scheme has
+!!      been extended to the surface flux regarding to its dependence in
+!!      function of U. The dependence in function of the other components
 !!      introduced by the different rotations is only explicit.
-!!      The turbulent fluxes are used to compute the dynamic production of 
+!!      The turbulent fluxes are used to compute the dynamic production of
 !!      TKE. For the last TKE level ( located at PDZZ(:,:,IKB)/2 from the
-!!      ground), an harmonic extrapolation from the dynamic production at 
+!!      ground), an harmonic extrapolation from the dynamic production at
 !!      PDZZ(:,:,IKB) is used to avoid an evaluation of the gradient of U
 !!      in the surface layer.
 !!
 !!         In section 6, the same steps are repeated but for the y direction
-!!		  and in section 7, a diagnostic computation of the W variance is 
+!!		  and in section 7, a diagnostic computation of the W variance is
 !!      performed.
 !!
-!!         In section 8, the turbulent fluxes for the scalar variables are 
+!!         In section 8, the turbulent fluxes for the scalar variables are
 !!      computed by the same way as the conservative thermodynamical variables
 !!
-!!            
+!!
 !!    EXTERNAL
 !!    --------
-!!      GX_U_M, GY_V_M, GZ_W_M :  cartesian gradient operators 
+!!      GX_U_M, GY_V_M, GZ_W_M :  cartesian gradient operators
 !!      GX_U_UW,GY_V_VW	         (X,Y,Z) represent the direction of the gradient
-!!                               _(M,U,...)_ represent the localization of the 
+!!                               _(M,U,...)_ represent the localization of the
 !!                               field to be derivated
-!!                               _(M,UW,...) represent the localization of the 
+!!                               _(M,UW,...) represent the localization of the
 !!                               field	derivated
-!!                               
+!!
 !!
 !!      MXM,MXF,MYM,MYF,MZM,MZF
-!!                             :  Shuman functions (mean operators)     
+!!                             :  Shuman functions (mean operators)
 !!      DXF,DYF,DZF,DZM
-!!                             :  Shuman functions (difference operators)     
-!!                               
+!!                             :  Shuman functions (difference operators)
+!!
 !!      SUBROUTINE TRIDIAG_WIND: to compute the split implicit evolution
 !!                               of a variable located at a wind point
 !!
-!!      FUNCTIONs ETHETA and EMOIST  :  
+!!      FUNCTIONs ETHETA and EMOIST  :
 !!            allows to compute:
 !!            - the coefficients for the turbulent correlation between
-!!            any variable and the virtual potential temperature, of its 
-!!            correlations with the conservative potential temperature and 
+!!            any variable and the virtual potential temperature, of its
+!!            correlations with the conservative potential temperature and
 !!            the humidity conservative variable:
 !!            -------              -------              -------
-!!            A' Thv'  =  ETHETA   A' Thl'  +  EMOIST   A' Rnp'  
+!!            A' Thv'  =  ETHETA   A' Thl'  +  EMOIST   A' Rnp'
 !!
 !!
 !!    IMPLICIT ARGUMENTS
@@ -159,34 +160,34 @@ SUBROUTINE TURB_VER_DYN_FLUX(KKA,KKU,KKL,                     &
 !!    MODIFICATIONS
 !!    -------------
 !!      Original       August   19, 1994
-!!      Modifications: February 14, 1995 (J.Cuxart and J.Stein) 
+!!      Modifications: February 14, 1995 (J.Cuxart and J.Stein)
 !!                                  Doctorization and Optimization
-!!      Modifications: March 21, 1995 (J.M. Carriere) 
+!!      Modifications: March 21, 1995 (J.M. Carriere)
 !!                                  Introduction of cloud water
-!!      Modifications: June  14, 1995 (J.Cuxart and J. Stein) 
+!!      Modifications: June  14, 1995 (J.Cuxart and J. Stein)
 !!                                 Phi3 and Psi3 at w-point + bug in the all
-!!                                 or nothing condens. 
-!!      Modifications: Sept  15, 1995 (J.Cuxart and J. Stein) 
+!!                                 or nothing condens.
+!!      Modifications: Sept  15, 1995 (J.Cuxart and J. Stein)
 !!                                 Change the DP computation at the ground
-!!      Modifications: October 10, 1995 (J.Cuxart and J. Stein) 
+!!      Modifications: October 10, 1995 (J.Cuxart and J. Stein)
 !!                                 Psi for scal var and LES tools
 !!      Modifications: November 10, 1995 (J. Stein)
-!!                                 change the surface	relations 
+!!                                 change the surface	relations
 !!      Modifications: February 20, 1995 (J. Stein) optimization
-!!      Modifications: May 21, 1996 (J. Stein) 
-!!                                  bug in the vertical flux of the V wind 
+!!      Modifications: May 21, 1996 (J. Stein)
+!!                                  bug in the vertical flux of the V wind
 !!                                  component for explicit computation
-!!      Modifications: May 21, 1996 (N. wood) 
+!!      Modifications: May 21, 1996 (N. wood)
 !!                                  modify the computation of the vertical
 !!                                   part or the surface tangential flux
 !!      Modifications: May 21, 1996 (P. Jabouille)
 !!                                  same modification in the Y direction
-!!      
+!!
 !!      Modifications: Sept 17, 1996 (J. Stein) change the moist case by using
 !!                                  Pi instead of Piref + use Atheta and Amoist
 !!
-!!      Modifications: Nov  24, 1997 (V. Masson) removes the DO loops 
-!!      Modifications: Mar  31, 1998 (V. Masson) splits the routine TURB_VER_DYN_FLUX 
+!!      Modifications: Nov  24, 1997 (V. Masson) removes the DO loops
+!!      Modifications: Mar  31, 1998 (V. Masson) splits the routine TURB_VER_DYN_FLUX
 !!      Modifications: Oct  18, 2000 (J. Stein)  Bug in some computations for IKB level
 !!      Modifications: Oct  18, 2000 (V. Masson) LES computations + LFLAT switch
 !!                     Nov  06, 2002 (V. Masson) LES budgets
@@ -194,12 +195,14 @@ SUBROUTINE TURB_VER_DYN_FLUX(KKA,KKU,KKL,                     &
 !!                                              change of YCOMMENT
 !!      2012-02 Y. Seity,  add possibility to run with reversed vertical levels
 !!      Modifications  July 2015 (Wim de Rooy) LHARATU switch
-!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
+!!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !!      Q. Rodier      17/01/2019 : cleaning : remove cyclic conditions on DP and ZA
+!!      Modification   June 2019 (Wim de Rooy) 50*MF term can be removed with
+!!                                             inclusion of energy cascade
 !! JL Redelsperger 03/2021 : Add Ocean  & O-A Autocoupling LES Cases
 !!--------------------------------------------------------------------------
-!       
+!
 !*      0. DECLARATIONS
 !          ------------
 !
@@ -215,7 +218,6 @@ USE MODD_LES
 USE MODD_NSV
 USE MODD_OCEANH
 USE MODD_PARAMETERS
-USE MODD_REF, ONLY : LCOUPLES
 USE MODD_TURB_n
 !
 !
@@ -238,7 +240,7 @@ IMPLICIT NONE
 !
 !
 !
-INTEGER,                INTENT(IN)   :: KKA           !near ground array index  
+INTEGER,                INTENT(IN)   :: KKA           !near ground array index
 INTEGER,                INTENT(IN)   :: KKU           !uppest atmosphere array index
 INTEGER,                INTENT(IN)   :: KKL           !vert. levels type 1=MNH -1=ARO
 LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
@@ -251,23 +253,24 @@ REAL,                   INTENT(IN)   ::  PIMPL, PEXPL ! Coef. for temporal disc.
 REAL,                   INTENT(IN)   ::  PTSTEP       ! Double Time Step
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
 !
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PDXX, PDYY, PDZZ, PDZX, PDZY 
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PDXX, PDYY, PDZZ, PDZX, PDZY
                                                       ! Metric coefficients
 REAL, DIMENSION(:,:),   INTENT(IN)   ::  PDIRCOSZW    ! Director Cosinus of the
                                                       ! normal to the ground surface
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PZZ          ! altitude of flux points
-REAL, DIMENSION(:,:),   INTENT(IN)   ::  PCOSSLOPE    ! cosinus of the angle 
+REAL, DIMENSION(:,:),   INTENT(IN)   ::  PCOSSLOPE    ! cosinus of the angle
                                       ! between i and the slope vector
-REAL, DIMENSION(:,:),   INTENT(IN)   ::  PSINSLOPE    ! sinus of the angle 
+REAL, DIMENSION(:,:),   INTENT(IN)   ::  PSINSLOPE    ! sinus of the angle
                                       ! between i and the slope vector
 !
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PRHODJ       ! dry density * grid volum
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  MFMOIST      ! moist mass flux dual scheme
 
 !
+REAL, DIMENSION(:,:),   INTENT(IN)   :: PSFUM,PSFVM !  normal momentum sfc flux
 REAL, DIMENSION(:,:),   INTENT(IN)   ::  PCDUEFF     ! Cd * || u || at time t
-REAL, DIMENSION(:,:),   INTENT(IN)   ::  PTAU11M      ! <uu> in the axes linked 
-       ! to the maximum slope direction and the surface normal and the binormal 
+REAL, DIMENSION(:,:),   INTENT(IN)   ::  PTAU11M      ! <uu> in the axes linked
+       ! to the maximum slope direction and the surface normal and the binormal
        ! at time t - dt
 REAL, DIMENSION(:,:),   INTENT(IN)   ::  PTAU12M      ! <uv> in the same axes
 REAL, DIMENSION(:,:),   INTENT(IN)   ::  PTAU33M      ! <ww> in the same axes
@@ -276,13 +279,13 @@ REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PUM,PVM,PWM, PTHLM
   ! Wind at t-Delta t
 REAL, DIMENSION(:,:,:,:), INTENT(IN) ::  PRM
 REAL, DIMENSION(:,:,:,:), INTENT(IN) ::  PSVM
-REAL, DIMENSION(:,:),   INTENT(IN)   ::  PUSLOPEM     ! wind component along the 
+REAL, DIMENSION(:,:),   INTENT(IN)   ::  PUSLOPEM     ! wind component along the
                                      ! maximum slope direction
-REAL, DIMENSION(:,:),   INTENT(IN)   ::  PVSLOPEM     ! wind component along the 
+REAL, DIMENSION(:,:),   INTENT(IN)   ::  PVSLOPEM     ! wind component along the
                                      ! direction normal to the maximum slope one
 !
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PTKEM        ! TKE at time t
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PLM          ! Turb. mixing length   
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PLM          ! Turb. mixing length
 REAL, DIMENSION(:,:,:), INTENT(OUT)  ::  PWU          ! momentum flux u'w'
 REAL, DIMENSION(:,:,:), INTENT(OUT)  ::  PWV          ! momentum flux v'w'
 !
@@ -300,7 +303,7 @@ REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PTP          ! Thermal TKE production t
 !
 REAL, DIMENSION(SIZE(PUM,1),SIZE(PUM,2))  :: ZDIRSINZW ! sinus of the angle
                    ! between the normal and the vertical at the surface
-REAL, DIMENSION(SIZE(PUM,1),SIZE(PUM,2),1):: ZCOEFS    ! coeff. for the 
+REAL, DIMENSION(SIZE(PUM,1),SIZE(PUM,2),1):: ZCOEFS    ! coeff. for the
                    ! implicit scheme for the wind at the surface
 REAL, DIMENSION(SIZE(PUM,1),SIZE(PUM,2),SIZE(PUM,3))  ::  &
        ZA, &       ! under diagonal elements of the tri-diagonal matrix involved
@@ -308,7 +311,7 @@ REAL, DIMENSION(SIZE(PUM,1),SIZE(PUM,2),SIZE(PUM,3))  ::  &
                    ! J in Section 5)
        ZRES, &     ! guess of the treated variable at t+ deltat when the turbu-
                    ! lence is the only source of evolution added to the ones
-                   ! considered in ZSOURCE  
+                   ! considered in ZSOURCE
        ZFLXZ,  &   ! vertical flux of the treated variable
        ZSOURCE,  & ! source of evolution for the treated variable
        ZKEFF       ! effectif diffusion coeff = LT * SQRT( TKE )
@@ -322,7 +325,8 @@ REAL, DIMENSION(SIZE(PDZZ,1),SIZE(PDZZ,2),1) :: ZCOEFFLXU, &
                                     ZCOEFFLXV, ZUSLOPEM, ZVSLOPEM
                                     ! coefficients for the surface flux
                                     ! evaluation and copy of PUSLOPEM and
-                                    ! PVSLOPEM in local 3D arrays 
+                                    ! PVSLOPEM in local 3D arrays
+REAL, DIMENSION(SIZE(PDZZ,1),SIZE(PDZZ,2),1) :: ZFLUXSFCU,ZFLUXSFCV
 INTEGER             :: IIU,IJU      ! size of array in x,y,z directions
 !
 REAL :: ZTIME1, ZTIME2, ZCMFS
@@ -344,8 +348,8 @@ IKB=KKA+JPVEXT_TURB*KKL
 IKE=KKU-JPVEXT_TURB*KKL
 IKB=KKA+JPVEXT_TURB*KKL
 IKE=KKU-JPVEXT_TURB*KKL
-IKT=SIZE(PUM,3)          
-IKTB=1+JPVEXT_TURB              
+IKT=SIZE(PUM,3)
+IKTB=1+JPVEXT_TURB
 IKTE=IKT-JPVEXT_TURB
 !
 ZSOURCE = 0.
@@ -354,44 +358,48 @@ ZCMFS = XCMFS
 IF (LHARAT) ZCMFS=1.
 !
 ZDIRSINZW(:,:) = SQRT(1.-PDIRCOSZW(:,:)**2)
-!  compute the coefficients for the uncentred gradient computation near the 
+!  compute the coefficients for the uncentred gradient computation near the
 !  ground
 !
 ! With LHARATU length scale and TKE are at half levels so remove MZM
 !
 IF (LHARAT) THEN
-  ZKEFF(:,:,:) =  PLM(:,:,:) * SQRT(PTKEM(:,:,:)) + 50*MFMOIST(:,:,:)
-ELSE 
+  !wc with energy cascade 50*MF no longer necessary
+  !ZKEFF(:,:,:) =  PLM(:,:,:) * SQRT(PTKEM(:,:,:)) + 50*MFMOIST(:,:,:)
+  ZKEFF(:,:,:) =  PLM(:,:,:) * SQRT(PTKEM(:,:,:))
+ELSE
   ZKEFF(:,:,:) = MZM(PLM(:,:,:) * SQRT(PTKEM(:,:,:)), KKA, KKU, KKL)
 ENDIF
 
 !
 ZUSLOPEM(:,:,1)=PUSLOPEM(:,:)
 ZVSLOPEM(:,:,1)=PVSLOPEM(:,:)
+ZFLUXSFCU(:,:,1)=PSFUM(:,:)
+ZFLUXSFCV(:,:,1)=PSFVM(:,:)
 !
 !----------------------------------------------------------------------------
 !
 !
-!*       5.   SOURCES OF U,W WIND COMPONENTS AND PARTIAL DYNAMIC PRODUCTION 
+!*       5.   SOURCES OF U,W WIND COMPONENTS AND PARTIAL DYNAMIC PRODUCTION
 !             -------------------------------------------------------------
 !
 !*       5.1  Source of U wind component
 !
-! Preparation of the arguments for TRIDIAG_WIND 
+! Preparation of the arguments for TRIDIAG_WIND
 !
 ZA(:,:,:)    = -PTSTEP * ZCMFS *                              &
               MXM( ZKEFF ) * MXM(MZM(PRHODJ, KKA, KKU, KKL)) / &
               MXM( PDZZ )**2
 !
 !
-! Compute the source of U wind component 
+! Compute the source of U wind component
 !
-! compute the coefficient between the vertical flux and the 2 components of the 
+! compute the coefficient between the vertical flux and the 2 components of the
 ! wind following the slope
 ZCOEFFLXU(:,:,1) = PCDUEFF(:,:) * (PDIRCOSZW(:,:)**2 - ZDIRSINZW(:,:)**2) &
                                    * PCOSSLOPE(:,:)
 ZCOEFFLXV(:,:,1) = PCDUEFF(:,:) * PDIRCOSZW(:,:) * PSINSLOPE(:,:)
-
+!
 ! prepare the implicit scheme coefficients for the surface flux
 ZCOEFS(:,:,1)=  ZCOEFFLXU(:,:,1) * PCOSSLOPE(:,:) * PDIRCOSZW(:,:)  &
                  +ZCOEFFLXV(:,:,1) * PSINSLOPE(:,:)
@@ -399,32 +407,20 @@ ZCOEFS(:,:,1)=  ZCOEFFLXU(:,:,1) * PCOSSLOPE(:,:) * PDIRCOSZW(:,:)  &
 ! average this flux to be located at the U,W vorticity point
 ZCOEFS(:,:,1:1)=MXM(ZCOEFS(:,:,1:1) / PDZZ(:,:,IKB:IKB) )
 !
-!
-! ZSOURCE= FLUX /DZ
-IF (OOCEAN) THEN  ! OCEAN MODEL ONLY
-  ! Sfx flux assumed to be in SI & at vorticity point
-  IF (LCOUPLES) THEN  
-    ZSOURCE(:,:,IKE:IKE) = XSSUFL_C(:,:,1:1)/PDZZ(:,:,IKE:IKE) &
-         *0.5 * ( 1. + MXM(PRHODJ(:,:,KKU:KKU)) / MXM(PRHODJ(:,:,IKE:IKE))) 
-  ELSE
-    ZSOURCE(:,:,IKE)     = XSSUFL(:,:)
-    ZSOURCE(:,:,IKE:IKE) = ZSOURCE (:,:,IKE:IKE) /PDZZ(:,:,IKE:IKE) &
-        *0.5 * ( 1. + MXM(PRHODJ(:,:,KKU:KKU)) / MXM(PRHODJ(:,:,IKE:IKE)) )
-  ENDIF
-  !No flux at the ocean domain bottom
+ ZSOURCE(:,:,IKTB+1:IKTE-1) = 0
+! ZSOURCE= sfc FLUX /DZ
+! Sfx flux assumed to be in SI & at vorticity point
+IF (OOCEAN) THEN  ! Ocean model
+     ZSOURCE(:,:,IKE:IKE) =MXM( ZFLUXSFCU(:,:,1:1) / PDZZ(:,:,IKE:IKE) ) &
+        * 0.5 * ( 1. + MXM(PRHODJ(:,:,KKU:KKU)) / MXM(PRHODJ(:,:,IKE:IKE)) )
+ ! Zero flux at the ocean domain bottom
    ZSOURCE(:,:,IKB)           = 0.
-   ZSOURCE(:,:,IKTB+1:IKTE-1) = 0
-!
-ELSE             !ATMOS MODEL ONLY
-  IF (LCOUPLES) THEN 
-   ZSOURCE(:,:,IKB:IKB) = XSSUFL_C(:,:,1:1)/PDZZ(:,:,IKB:IKB) &
-      * 0.5 * ( 1. + MXM(PRHODJ(:,:,KKA:KKA)) / MXM(PRHODJ(:,:,IKB:IKB)) )
-  ELSE               
-    ! compute the explicit tangential flux at the W point
+ELSE ! Atmosphere
+ ! Compute the explicit tangential flux at the W point
     ZSOURCE(:,:,IKB)     =                                              &
      PTAU11M(:,:) * PCOSSLOPE(:,:) * PDIRCOSZW(:,:) * ZDIRSINZW(:,:) &
      -PTAU12M(:,:) * PSINSLOPE(:,:) * ZDIRSINZW(:,:)                  &
-     -PTAU33M(:,:) * PCOSSLOPE(:,:) * ZDIRSINZW(:,:) * PDIRCOSZW(:,:)  
+     -PTAU33M(:,:) * PCOSSLOPE(:,:) * ZDIRSINZW(:,:) * PDIRCOSZW(:,:)
 !
     ! add the vertical part or the surface flux at the U,W vorticity point
 !
@@ -436,42 +432,34 @@ ELSE             !ATMOS MODEL ONLY
            *ZVSLOPEM(:,:,1:1)                      )    &
     -  ZCOEFS(:,:,1:1) * PUM(:,:,IKB:IKB) * PIMPL        &
     ) * 0.5 * ( 1. + MXM(PRHODJ(:,:,KKA:KKA)) / MXM(PRHODJ(:,:,IKB:IKB)) )
-  ENDIF 
-!
-  ZSOURCE(:,:,IKTB+1:IKTE-1) = 0.
+ ! Zero flux at upper BC for atmos case 
   ZSOURCE(:,:,IKE) = 0.
-ENDIF !end ocean or atmosphere cases
+ENDIF
 !
-! Obtention of the split U at t+ deltat 
+! Obtention of the split U at t+ deltat
 !
 CALL TRIDIAG_WIND(KKA,KKU,KKL,PUM,ZA,ZCOEFS(:,:,1),PTSTEP,PEXPL,PIMPL,   &
                   MXM(PRHODJ),ZSOURCE,ZRES)
-! 
+!
 !  Compute the equivalent tendency for the U wind component
 !
 PRUS(:,:,:)=PRUS(:,:,:)+MXM(PRHODJ(:,:,:))*(ZRES(:,:,:)-PUM(:,:,:))/PTSTEP
 !
-!
-!*       5.2  Partial Dynamic Production
+!*       5.2  Partial TKE Dynamic Production
 !
 ! vertical flux of the U wind component
 !
 ZFLXZ(:,:,:)     = -ZCMFS * MXM(ZKEFF) * &
                   DZM(PIMPL*ZRES + PEXPL*PUM, KKA, KKU, KKL) / MXM(PDZZ)
-!
-! surface flux 
-ZFLXZ(:,:,IKB:IKB)   =   MXM(PDZZ(:,:,IKB:IKB))  *                &
+IF (OOCEAN) THEN
+ ZFLXZ(:,:,IKE+1)   =  ZFLUXSFCU(:,:,1)
+ELSE
+ ZFLXZ(:,:,IKB:IKB)   =   MXM(PDZZ(:,:,IKB:IKB))  *                &
   ( ZSOURCE(:,:,IKB:IKB)                                          &
-   +ZCOEFS(:,:,1:1) * ZRES(:,:,IKB:IKB) * PIMPL                   &                
+   +ZCOEFS(:,:,1:1) * ZRES(:,:,IKB:IKB) * PIMPL                   &
   ) / 0.5 / ( 1. + MXM(PRHODJ(:,:,KKA:KKA)) / MXM(PRHODJ(:,:,IKB:IKB)) )
 !
-ZFLXZ(:,:,KKA) = ZFLXZ(:,:,IKB) 
-
-IF (OOCEAN) THEN !ocean model at phys sfc (ocean domain top)
-  ZFLXZ(:,:,IKE:IKE)   =   MXM(PDZZ(:,:,IKE:IKE))  *                &
-                           ZSOURCE(:,:,IKE:IKE)                     &
-                           / 0.5 / ( 1. + MXM(PRHODJ(:,:,KKU:KKU)) / MXM(PRHODJ(:,:,IKE:IKE)) )
-  ZFLXZ(:,:,KKU) = ZFLXZ(:,:,IKE) 
+  ZFLXZ(:,:,KKA) = ZFLXZ(:,:,IKB)
 END IF
 !
 IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN
@@ -493,30 +481,32 @@ END IF
 !
 PWU(:,:,:) = ZFLXZ(:,:,:)
 !
-! Contribution to the dynamic production of TKE
-! compute the dynamic production at the mass point
+! Contribution to the TKE dynamic production of TKE
+! (computed at mass point)
 !
 PDP(:,:,:) = - MZF(MXF(ZFLXZ * GZ_U_UW(PUM,PDZZ, KKA, KKU, KKL)), KKA, KKU, KKL)
 !
+! Special cases near surface
+IF (OOCEAN) THEN
+! evaluate the dynamic production at w(IKE) and store in PDP(IKE)
+! before to be extrapolated in tke_eps routine
+  PDP(:,:,IKE:IKE) = - MXF (                                              &
+  ZFLXZ(:,:,IKE:IKE) * (PUM(:,:,IKE:IKE)-PUM(:,:,IKE-1:IKE-1))            &
+                           / MXM(PDZZ(:,:,IKE-1:IKE-1))                   &
+                           )
+ELSE ! Atmosphere
 ! evaluate the dynamic production at w(IKB+KKL) in PDP(IKB)
-PDP(:,:,IKB:IKB) = - MXF (                                                      &
-  ZFLXZ(:,:,IKB+KKL:IKB+KKL) * (PUM(:,:,IKB+KKL:IKB+KKL)-PUM(:,:,IKB:IKB))  &
+ PDP(:,:,IKB:IKB) = - MXF (                                                &
+ ZFLXZ(:,:,IKB+KKL:IKB+KKL) * (PUM(:,:,IKB+KKL:IKB+KKL)-PUM(:,:,IKB:IKB))  &
                          / MXM(PDZZ(:,:,IKB+KKL:IKB+KKL))                   &
                          )
-!
-IF (OOCEAN) THEN
-  ! evaluate the dynamic production at w(IKE-KKL) in PDP(IKE)
-  PDP(:,:,IKE:IKE) = - MXF (                                                      &
-    ZFLXZ(:,:,IKE-KKL:IKE-KKL) * (PUM(:,:,IKE:IKE)-PUM(:,:,IKE-KKL:IKE-KKL))  &
-                           / MXM(PDZZ(:,:,IKE-KKL:IKE-KKL))                   &
-                           ) 
 END IF
 !
 ! Storage in the LES configuration
-! 
+!
 IF (LLES_CALL) THEN
   CALL SECOND_MNH(ZTIME1)
-  CALL LES_MEAN_SUBGRID(MZF(MXF(ZFLXZ), KKA, KKU, KKL), X_LES_SUBGRID_WU ) 
+  CALL LES_MEAN_SUBGRID(MZF(MXF(ZFLXZ), KKA, KKU, KKL), X_LES_SUBGRID_WU )
   CALL LES_MEAN_SUBGRID(MZF(MXF(GZ_U_UW(PUM,PDZZ, KKA, KKU, KKL) &
                        & *ZFLXZ), KKA, KKU, KKL), X_LES_RES_ddxa_U_SBG_UaU )
   CALL LES_MEAN_SUBGRID( ZCMFS * ZKEFF, X_LES_SUBGRID_Km )
@@ -530,11 +520,8 @@ END IF
 IF(HTURBDIM=='3DIM') THEN
   ! Compute the source for the W wind component
                 ! used to compute the W source at the ground
-  ZFLXZ(:,:,KKA) = 2 * ZFLXZ(:,:,IKB) - ZFLXZ(:,:,IKB+KKL) ! extrapolation 
- IF (OOCEAN) THEN
-   ZFLXZ(:,:,KKU) = 2 * ZFLXZ(:,:,IKE) - ZFLXZ(:,:,IKE-KKL) ! extrapolation 
- END IF     
-     
+  ZFLXZ(:,:,KKA) = 2 * ZFLXZ(:,:,IKB) - ZFLXZ(:,:,IKB+KKL) ! extrapolation
+  IF (OOCEAN)   ZFLXZ(:,:,KKU) = 2 * ZFLXZ(:,:,IKE) - ZFLXZ(:,:,IKE-KKL) ! extrapolation
   !
   IF (.NOT. LFLAT) THEN
     PRWS(:,:,:)= PRWS                                      &
@@ -546,11 +533,19 @@ IF(HTURBDIM=='3DIM') THEN
     PRWS(:,:,:)= PRWS -DXF(MZM(MXM(PRHODJ) /PDXX, KKA, KKU, KKL)  * ZFLXZ )
   END IF
   !
-  ! Complete the Dynamical production with the W wind component 
+  ! Complete the TKE dynamical production with the W wind contribution 
   !
   ZA(:,:,:)=-MZF(MXF(ZFLXZ * GX_W_UW(PWM,PDXX,PDZZ,PDZX, KKA, KKU, KKL)), KKA, KKU, KKL)
   !
-  !
+! Special cases near surface
+  IF (OOCEAN) THEN
+  ! evaluate the dynamic production at w(IKE) and stored in PDP(IKE)
+    ZA(:,:,IKE:IKE) = - MXF (                                         &
+    ZFLXZ(:,:,IKE:IKE) *                                              &
+      DXM( PWM(:,:,IKE:IKE) )                                         &
+      / (0.5*(PDXX(:,:,IKE-1:IKE-1)+PDXX(:,:,IKE:IKE)))               &
+      )
+  ELSE !Atmosphere
   ! evaluate the dynamic production at w(IKB+KKL) in PDP(IKB)
   ZA(:,:,IKB:IKB) = - MXF (                                                  &
    ZFLXZ(:,:,IKB+KKL:IKB+KKL) *                                              &
@@ -563,26 +558,12 @@ IF(HTURBDIM=='3DIM') THEN
         * PDZX(:,:,IKB+KKL:IKB+KKL)                                          &
      ) / (0.5*(PDXX(:,:,IKB+KKL:IKB+KKL)+PDXX(:,:,IKB:IKB)))                 &
                           )
+  END IF
   !
-IF (OOCEAN) THEN
-  ! evaluate the dynamic production at w(IKE-KKL) in PDP(IKE)
-  ZA(:,:,IKE:IKE) = - MXF (                                                  &
-   ZFLXZ(:,:,IKE-KKL:IKE-KKL) *                                              &
-     ( DXM( PWM(:,:,IKE-KKL:IKE-KKL) )                                       &
-      -MXM(  (PWM(:,:,IKE-2*KKL:IKE-2*KKL   )-PWM(:,:,IKE-KKL:IKE-KKL))      &
-              /(PDZZ(:,:,IKE-2*KKL:IKE-2*KKL)+PDZZ(:,:,IKE-KKL:IKE-KKL))     &
-            +(PWM(:,:,IKE-KKL:IKE-KKL)-PWM(:,:,IKE:IKE  ))                   &
-              /(PDZZ(:,:,IKE-KKL:IKE-KKL)+PDZZ(:,:,IKE:IKE  ))               &
-          )                                                                  &
-         * PDZX(:,:,IKE-KKL:IKE-KKL)                                         &
-     ) / (0.5*(PDXX(:,:,IKE-KKL:IKE-KKL)+PDXX(:,:,IKE:IKE)))                 &
-                          )
-END IF
-  !
-  PDP(:,:,:)=PDP(:,:,:)+ZA(:,:,:)
+ PDP(:,:,:)=PDP(:,:,:)+ZA(:,:,:)
   !
   ! Storage in the LES configuration
-  ! 
+  !
   IF (LLES_CALL) THEN
     CALL SECOND_MNH(ZTIME1)
     CALL LES_MEAN_SUBGRID(MZF(MXF(GX_W_UW(PWM,PDXX,&
@@ -605,7 +586,7 @@ END IF
 !----------------------------------------------------------------------------
 !
 !
-!*       6.   SOURCES OF V,W WIND COMPONENTS AND COMPLETE 1D DYNAMIC PRODUCTION 
+!*       6.   SOURCES OF V,W WIND COMPONENTS AND COMPLETE 1D TKE DYNAMIC PRODUCTION 
 !             -----------------------------------------------------------------
 !
 !*       6.1  Source of V wind component
@@ -619,7 +600,7 @@ ZA(:,:,:)    = - PTSTEP * ZCMFS *                              &
 !
 !
 ! Compute the source of V wind component
-! compute the coefficient between the vertical flux and the 2 components of the 
+! compute the coefficient between the vertical flux and the 2 components of the
 ! wind following the slope
 ZCOEFFLXU(:,:,1) = PCDUEFF(:,:) * (PDIRCOSZW(:,:)**2 - ZDIRSINZW(:,:)**2) &
                                    * PSINSLOPE(:,:)
@@ -632,24 +613,28 @@ ZCOEFS(:,:,1)=  ZCOEFFLXU(:,:,1) * PSINSLOPE(:,:) * PDIRCOSZW(:,:)  &
 ! average this flux to be located at the V,W vorticity point
 ZCOEFS(:,:,1:1)=MYM(ZCOEFS(:,:,1:1) / PDZZ(:,:,IKB:IKB) )
 !
+
+! No flux in SOURCE TERM NULL OUTSIDE BC 
+ZSOURCE(:,:,IKB+1:IKE-1) = 0.
+! Surface case
 IF (OOCEAN) THEN ! Ocean case
-  IF (LCOUPLES) THEN
-    ZSOURCE(:,:,IKE:IKE) =  XSSVFL_C(:,:,1:1)/PDZZ(:,:,IKE:IKE) &
-        *0.5 * ( 1. + MYM(PRHODJ(:,:,KKU:KKU)) / MYM(PRHODJ(:,:,IKE:IKE)) ) 
-  ELSE 
-    ZSOURCE(:,:,IKE) = XSSVFL(:,:)
-    ZSOURCE(:,:,IKE:IKE) = ZSOURCE(:,:,IKE:IKE)/PDZZ(:,:,IKE:IKE) &
-        *0.5 * ( 1. + MYM(PRHODJ(:,:,KKU:KKU)) / MYM(PRHODJ(:,:,IKE:IKE)) )
-  END IF
-  !No flux at the ocean domain bottom
-  ZSOURCE(:,:,IKB) = 0.
+ ZCOEFFLXU(:,:,1) = PCDUEFF(:,:)
+ ZCOEFFLXV(:,:,1) = PCDUEFF(:,:)
+ ZCOEFS(:,:,1)=ZCOEFFLXU(:,:,1)
+! average this flux to be located at the U,W vorticity point
+ ZCOEFS(:,:,1:1)=MYM(ZCOEFS(:,:,1:1) / PDZZ(:,:,IKE:IKE) )
+ ZSOURCE(:,:,IKE:IKE) = MYM( ZFLUXSFCV(:,:,1:1) / PDZZ(:,:,IKE:IKE) )         &
+     * 0.5 * ( 1. + MYM(PRHODJ(:,:,KKU:KKU)) / MYM(PRHODJ(:,:,IKE:IKE)) )
+!No flux at the ocean domain bottom
+ ZSOURCE(:,:,IKB) = 0.
+!!!!!!!!!!!!!!!!!!!!!!
 ELSE ! Atmos case
-  IF (.NOT.LCOUPLES) THEN !  only atmosp without coupling
+!!!!!!!!!!!!!!!!!!!!!
   ! compute the explicit tangential flux at the W point
     ZSOURCE(:,:,IKB)       =                                                  &
       PTAU11M(:,:) * PSINSLOPE(:,:) * PDIRCOSZW(:,:) * ZDIRSINZW(:,:)         &
      +PTAU12M(:,:) * PCOSSLOPE(:,:) * ZDIRSINZW(:,:)                          &
-     -PTAU33M(:,:) * PSINSLOPE(:,:) * ZDIRSINZW(:,:) * PDIRCOSZW(:,:) 
+     -PTAU33M(:,:) * PSINSLOPE(:,:) * ZDIRSINZW(:,:) * PDIRCOSZW(:,:)
 !
   ! add the vertical part or the surface flux at the V,W vorticity point
   ZSOURCE(:,:,IKB:IKB) =                                      &
@@ -661,15 +646,9 @@ ELSE ! Atmos case
      - ZCOEFS(:,:,1:1) * PVM(:,:,IKB:IKB) * PIMPL             &
     ) * 0.5 * ( 1. + MYM(PRHODJ(:,:,KKA:KKA)) / MYM(PRHODJ(:,:,IKB:IKB)) )
 !
-  ELSE   !atmosphere when coupling
-    ! input flux assumed to be in SI and at vorticity point
-    ZSOURCE(:,:,IKB:IKB) =     -XSSVFL_C(:,:,1:1)/(1.*PDZZ(:,:,IKB:IKB)) &
-      * 0.5 * ( 1. + MYM(PRHODJ(:,:,KKA:KKA)) / MYM(PRHODJ(:,:,IKB:IKB)) )
-  ENDIF
-  !No flux at the atmosphere top
+!No flux at the atmosphere top
   ZSOURCE(:,:,IKE) = 0.
-ENDIF ! End of Ocean or Atmospher Cases
-ZSOURCE(:,:,IKTB+1:IKTE-1) = 0.
+ENDIF ! End of Ocean or Atmospheric Cases
 ! 
 !  Obtention of the split V at t+ deltat 
 CALL TRIDIAG_WIND(KKA,KKU,KKL,PVM,ZA,ZCOEFS(:,:,1),PTSTEP,PEXPL,PIMPL,  &
@@ -687,20 +666,17 @@ PRVS(:,:,:)=PRVS(:,:,:)+MYM(PRHODJ(:,:,:))*(ZRES(:,:,:)-PVM(:,:,:))/PTSTEP
 ZFLXZ(:,:,:)   = -ZCMFS * MYM(ZKEFF) * &
                 DZM(PIMPL*ZRES + PEXPL*PVM, KKA, KKU, KKL) / MYM(PDZZ)
 !
-ZFLXZ(:,:,IKB:IKB)   =   MYM(PDZZ(:,:,IKB:IKB))  *                       &
+!
+IF (OOCEAN) THEN
+ ZFLXZ(:,:,IKE+1)  =   ZFLUXSFCV(:,:,1)
+ELSE
+ ZFLXZ(:,:,IKB:IKB)   =   MYM(PDZZ(:,:,IKB:IKB))  *                       &
   ( ZSOURCE(:,:,IKB:IKB)                                                 &
-   +ZCOEFS(:,:,1:1) * ZRES(:,:,IKB:IKB) * PIMPL                      &      
+   +ZCOEFS(:,:,1:1) * ZRES(:,:,IKB:IKB) * PIMPL                      &
   ) / 0.5 / ( 1. + MYM(PRHODJ(:,:,KKA:KKA)) / MYM(PRHODJ(:,:,IKB:IKB)) )
-!  
 !
-ZFLXZ(:,:,KKA) = ZFLXZ(:,:,IKB)
-!
-IF (OOCEAN) THEN
-  ZFLXZ(:,:,IKE:IKE)   =   MYM(PDZZ(:,:,IKE:IKE))  *                &
-      ZSOURCE(:,:,IKE:IKE)                                          &
-      / 0.5 / ( 1. + MYM(PRHODJ(:,:,KKU:KKU)) / MYM(PRHODJ(:,:,IKE:IKE)) )
-  ZFLXZ(:,:,KKU) = ZFLXZ(:,:,IKE) 
-END IF
+  ZFLXZ(:,:,KKA) = ZFLXZ(:,:,IKB)
+ END IF
 !
 IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN
   ! stores the V wind component vertical flux
@@ -721,24 +697,25 @@ END IF
 !
 PWV(:,:,:) = ZFLXZ(:,:,:)
 !
-!  Contribution to the dynamic production of TKE
-! compute the dynamic production contribution at the mass point
+!  Contribution to the TKE dynamical production 
+!    computed at mass point
 !
 ZA(:,:,:) = - MZF(MYF(ZFLXZ * GZ_V_VW(PVM,PDZZ, KKA, KKU, KKL)), KKA, KKU, KKL)
 !
-! evaluate the dynamic production at w(IKB+KKL) in PDP(IKB)
-ZA(:,:,IKB:IKB)  =                                                 &
-                 - MYF (                                          &
-ZFLXZ(:,:,IKB+KKL:IKB+KKL) * (PVM(:,:,IKB+KKL:IKB+KKL)-PVM(:,:,IKB:IKB))  &
-                       / MYM(PDZZ(:,:,IKB+KKL:IKB+KKL))               &
-                       )
-!
+! Special cases at surface
 IF (OOCEAN) THEN
-  ! evaluate the dynamic production at w(IKE-KKL) in PDP(IKE)
+! evaluate the dynamic production at w(IKE) and stored in PDP(IKE)
+   ! before extrapolation done in routine tke_eps_source
   ZA(:,:,IKE:IKE) = - MYF (                                                  &
-   ZFLXZ(:,:,IKE-KKL:IKE-KKL) * (PVM(:,:,IKE:IKE)-PVM(:,:,IKE-KKL:IKE-KKL))  &
-                          / MYM(PDZZ(:,:,IKE-KKL:IKE-KKL))                   &
+  ZFLXZ(:,:,IKE:IKE) * (PVM(:,:,IKE:IKE)-PVM(:,:,IKE-1:IKE-1))  &
+                           / MYM(PDZZ(:,:,IKE-1:IKE-1))                   &
                           )
+ELSE ! Atmosphere  
+! evaluate the dynamic production at w(IKB+KL) and stored in PDP(IKB)
+  ZA(:,:,IKB:IKB)  = - MYF (                                                &
+  ZFLXZ(:,:,IKB+KKL:IKB+KKL) * (PVM(:,:,IKB+KKL:IKB+KKL)-PVM(:,:,IKB:IKB))  &
+                        / MYM(PDZZ(:,:,IKB+KKL:IKB+KKL))                   &
+                           )
 END IF
 !
 PDP(:,:,:)=PDP(:,:,:)+ZA(:,:,:)
@@ -747,7 +724,7 @@ PDP(:,:,:)=PDP(:,:,:)+ZA(:,:,:)
 !
 IF (LLES_CALL) THEN
   CALL SECOND_MNH(ZTIME1)
-  CALL LES_MEAN_SUBGRID(MZF(MYF(ZFLXZ), KKA, KKU, KKL), X_LES_SUBGRID_WV ) 
+  CALL LES_MEAN_SUBGRID(MZF(MYF(ZFLXZ), KKA, KKU, KKL), X_LES_SUBGRID_WV )
   CALL LES_MEAN_SUBGRID(MZF(MYF(GZ_V_VW(PVM,PDZZ, KKA, KKU, KKL)*&
                     & ZFLXZ), KKA, KKU, KKL), X_LES_RES_ddxa_V_SBG_UaV )
   CALL SECOND_MNH(ZTIME2)
@@ -755,16 +732,17 @@ IF (LLES_CALL) THEN
 END IF
 !
 !
-!*       6.3  Source of W wind component 
+!*       6.3  Source of W wind component
 !
 IF(HTURBDIM=='3DIM') THEN
   ! Compute the source for the W wind component
-  ZFLXZ(:,:,KKA) = 2 * ZFLXZ(:,:,IKB) - ZFLXZ(:,:,IKB+KKL) ! extrapolation 
-  IF (OOCEAN) THEN
-    ZFLXZ(:,:,KKU) = 2 * ZFLXZ(:,:,IKE) - ZFLXZ(:,:,IKE-KKL) ! extrapolation 
-  END IF
+ IF (OOCEAN) THEN
+    ZFLXZ(:,:,IKE+1) = 2 * ZFLXZ(:,:,IKE) - ZFLXZ(:,:,IKE-1) ! extrapolation 
+ ELSE
+    ZFLXZ(:,:,KKA) = 2 * ZFLXZ(:,:,IKB) - ZFLXZ(:,:,IKB+KKL) ! extrapolation 
+ END IF
   !
-  IF (.NOT. L2D) THEN 
+  IF (.NOT. L2D) THEN
     IF (.NOT. LFLAT) THEN
       PRWS(:,:,:)= PRWS(:,:,:)                               &
                   -DYF( MZM(MYM(PRHODJ) /PDYY, KKA, KKU, KKL) * ZFLXZ )   &
@@ -775,12 +753,19 @@ IF(HTURBDIM=='3DIM') THEN
       PRWS(:,:,:)= PRWS(:,:,:) -DYF(MZM(MYM(PRHODJ) /PDYY, KKA, KKU, KKL) * ZFLXZ )
     END IF
   END IF
-  ! 
-  ! Complete the Dynamical production with the W wind component 
+  !
+  ! Complete the TKE dynamical production with the W wind component
   IF (.NOT. L2D) THEN
     ZA(:,:,:) = - MZF(MYF(ZFLXZ * GY_W_VW(PWM,PDYY,PDZZ,PDZY, KKA, KKU, KKL)), KKA, KKU, KKL)
-  !
-  ! evaluate the dynamic production at w(IKB+KKL) in PDP(IKB)
+  ! Special case near surface
+   IF (OOCEAN) THEN
+  ! evaluate the dynamic production at w(IKE) and stored in PDP(IKE)
+     ZA(:,:,IKE:IKE) = - MYF (                                         &
+     ZFLXZ(:,:,IKE:IKE) * DYM( PWM(:,:,IKE:IKE) )                      &
+         / (0.5*(PDYY(:,:,IKE-1:IKE-1)+PDYY(:,:,IKE:IKE)))             &
+                              )
+    ELSE ! Atmosphere
+  ! evaluate the dynamic production at w(IKB+KKL) and stored in PDP(IKB)
     ZA(:,:,IKB:IKB) = - MYF (                                              &
      ZFLXZ(:,:,IKB+KKL:IKB+KKL) *                                          &
        ( DYM( PWM(:,:,IKB+KKL:IKB+KKL) )                                   &
@@ -793,20 +778,8 @@ IF(HTURBDIM=='3DIM') THEN
        ) / (0.5*(PDYY(:,:,IKB+KKL:IKB+KKL)+PDYY(:,:,IKB:IKB)))             &
                             )
   !
-    IF (OOCEAN) THEN
-     ZA(:,:,IKE:IKE) = - MYF (                                              &
-      ZFLXZ(:,:,IKE-KKL:IKE-KKL) *                                          &
-        ( DYM( PWM(:,:,IKE-KKL:IKE-KKL) )                                   &
-         -MYM(  (PWM(:,:,IKE-2*KKL:IKE-2*KKL)-PWM(:,:,IKE-KKL:IKE-KKL))     &
-                 /(PDZZ(:,:,IKE-2*KKL:IKE-2*KKL)+PDZZ(:,:,IKE-KKL:IKE-KKL)) &
-               +(PWM(:,:,IKE-KKL:IKE-KKL)-PWM(:,:,IKE:IKE  ))               &
-                 /(PDZZ(:,:,IKE-KKL:IKE-KKL)+PDZZ(:,:,IKE:IKE  ))           &
-             )                                                              &
-           * PDZY(:,:,IKE-KKL:IKE-KKL)                                      &
-        ) / (0.5*(PDYY(:,:,IKE-KKL:IKE-KKL)+PDYY(:,:,IKE:IKE)))             &
-                            )
     END IF
-!    
+!
     PDP(:,:,:)=PDP(:,:,:)+ZA(:,:,:)
   !
   END IF
@@ -842,7 +815,7 @@ IF ( OTURB_FLX .AND. TPFILE%LOPENED .AND. HTURBDIM == '1DIM') THEN
   ZFLXZ(:,:,:)= (2./3.) * PTKEM(:,:,:)                     &
      -ZCMFS*PLM(:,:,:)*SQRT(PTKEM(:,:,:))*GZ_W_M(PWM,PDZZ, KKA, KKU, KKL)
   ! to be tested &
-  !   +XCMFB*(4./3.)*PLM(:,:,:)/SQRT(PTKEM(:,:,:))*PTP(:,:,:) 
+  !   +XCMFB*(4./3.)*PLM(:,:,:)/SQRT(PTKEM(:,:,:))*PTP(:,:,:)
   ! stores the W variance
   TZFIELD%CMNHNAME   = 'W_VVAR'
   TZFIELD%CSTDNAME   = ''
diff --git a/src/common/turb/mode_turb_ver_sv_flux.F90 b/src/common/turb/mode_turb_ver_sv_flux.F90
index 271ee734e6aabd3d2cda09b7eba343113fa6e402..e7c47ec8323c67ce0b6e3352e788b450bcba1fda 100644
--- a/src/common/turb/mode_turb_ver_sv_flux.F90
+++ b/src/common/turb/mode_turb_ver_sv_flux.F90
@@ -25,13 +25,13 @@ SUBROUTINE TURB_VER_SV_FLUX(KKA,KKU,KKL,                      &
 !!    PURPOSE
 !!    -------
 !       The purpose of this routine is to compute the vertical turbulent
-!     fluxes of the evolutive variables and give back the source 
+!     fluxes of the evolutive variables and give back the source
 !     terms to the main program.	In the case of large horizontal meshes,
 !     the divergence of these vertical turbulent fluxes represent the whole
 !     effect of the turbulence but when the three-dimensionnal version of
 !     the turbulence scheme is activated (CTURBDIM="3DIM"), these divergences
-!     are completed in the next routine TURB_HOR. 
-!		  An arbitrary degree of implicitness has been implemented for the 
+!     are completed in the next routine TURB_HOR.
+!		  An arbitrary degree of implicitness has been implemented for the
 !     temporal treatment of these diffusion terms.
 !       The vertical boundary conditions are as follows:
 !           *  at the bottom, the surface fluxes are prescribed at the same
@@ -39,8 +39,8 @@ SUBROUTINE TURB_VER_SV_FLUX(KKA,KKU,KKL,                      &
 !           *  at the top, the turbulent fluxes are set to 0.
 !       It should be noted that the condensation has been implicitely included
 !     in this turbulence scheme by using conservative variables and computing
-!     the subgrid variance of a statistical variable s indicating the presence 
-!     or not of condensation in a given mesh. 
+!     the subgrid variance of a statistical variable s indicating the presence
+!     or not of condensation in a given mesh.
 !
 !!**  METHOD
 !!    ------
@@ -49,27 +49,27 @@ SUBROUTINE TURB_VER_SV_FLUX(KKA,KKU,KKL,                      &
 !!      implicit scheme (a Crank-Nicholson type with coefficients different
 !!      than 0.5), which allows to vary the degree of implicitness of the
 !!      formulation.
-!!      	 The different prognostic variables are treated one by one. 
-!!      The contributions of each turbulent fluxes are cumulated into the 
-!!      tendency  PRvarS, and into the dynamic and thermal production of 
+!!      	 The different prognostic variables are treated one by one.
+!!      The contributions of each turbulent fluxes are cumulated into the
+!!      tendency  PRvarS, and into the dynamic and thermal production of
 !!      TKE if necessary.
-!!        
+!!
 !!			 In section 2 and 3, the thermodynamical fields are considered.
 !!      Only the turbulent fluxes of the conservative variables
-!!      (Thetal and Rnp stored in PRx(:,:,:,1))  are computed. 
-!!       Note that the turbulent fluxes at the vertical 
+!!      (Thetal and Rnp stored in PRx(:,:,:,1))  are computed.
+!!       Note that the turbulent fluxes at the vertical
 !!      boundaries are given either by the soil scheme for the surface one
-!!      ( at the same instant as the others fluxes) and equal to 0 at the 
-!!      top of the model. The thermal production is computed by vertically 
+!!      ( at the same instant as the others fluxes) and equal to 0 at the
+!!      top of the model. The thermal production is computed by vertically
 !!      averaging the turbulent flux and multiply this flux at the mass point by
 !!      a function ETHETA or EMOIST, which preform the transformation from the
-!!      conservative variables to the virtual potential temperature. 
-!!     
+!!      conservative variables to the virtual potential temperature.
+!!
 !! 	    In section 4, the variance of the statistical variable
-!!      s indicating presence or not of condensation, is determined in function 
+!!      s indicating presence or not of condensation, is determined in function
 !!      of the turbulent moments of the conservative variables and its
-!!      squarred root is stored in PSIGS. This information will be completed in 
-!!      the horizontal turbulence if the turbulence dimensionality is not 
+!!      squarred root is stored in PSIGS. This information will be completed in
+!!      the horizontal turbulence if the turbulence dimensionality is not
 !!      equal to "1DIM".
 !!
 !!			 In section 5, the x component of the stress tensor is computed.
@@ -80,53 +80,53 @@ SUBROUTINE TURB_VER_SV_FLUX(KKA,KKU,KKL,                      &
 !!        j" is also parallel to the surface and in the normal direction of
 !!           the maximum slope
 !!        k" is the normal to the surface
-!!      In order to prevent numerical instability, the implicit scheme has 
-!!      been extended to the surface flux regarding to its dependence in 
-!!      function of U. The dependence in function of the other components 
+!!      In order to prevent numerical instability, the implicit scheme has
+!!      been extended to the surface flux regarding to its dependence in
+!!      function of U. The dependence in function of the other components
 !!      introduced by the different rotations is only explicit.
-!!      The turbulent fluxes are used to compute the dynamic production of 
+!!      The turbulent fluxes are used to compute the dynamic production of
 !!      TKE. For the last TKE level ( located at PDZZ(:,:,IKB)/2 from the
-!!      ground), an harmonic extrapolation from the dynamic production at 
+!!      ground), an harmonic extrapolation from the dynamic production at
 !!      PDZZ(:,:,IKB) is used to avoid an evaluation of the gradient of U
 !!      in the surface layer.
 !!
 !!         In section 6, the same steps are repeated but for the y direction
-!!		  and in section 7, a diagnostic computation of the W variance is 
+!!		  and in section 7, a diagnostic computation of the W variance is
 !!      performed.
 !!
-!!         In section 8, the turbulent fluxes for the scalar variables are 
+!!         In section 8, the turbulent fluxes for the scalar variables are
 !!      computed by the same way as the conservative thermodynamical variables
 !!
-!!            
+!!
 !!    EXTERNAL
 !!    --------
-!!      GX_U_M, GY_V_M, GZ_W_M :  cartesian gradient operators 
+!!      GX_U_M, GY_V_M, GZ_W_M :  cartesian gradient operators
 !!      GX_U_UW,GY_V_VW	         (X,Y,Z) represent the direction of the gradient
-!!                               _(M,U,...)_ represent the localization of the 
+!!                               _(M,U,...)_ represent the localization of the
 !!                               field to be derivated
-!!                               _(M,UW,...) represent the localization of the 
+!!                               _(M,UW,...) represent the localization of the
 !!                               field	derivated
-!!                               
+!!
 !!
 !!      MXM,MXF,MYM,MYF,MZM,MZF
-!!                             :  Shuman functions (mean operators)     
+!!                             :  Shuman functions (mean operators)
 !!      DXF,DYF,DZF,DZM
-!!                             :  Shuman functions (difference operators)     
-!!                               
+!!                             :  Shuman functions (difference operators)
+!!
 !!      SUBROUTINE TRIDIAG     : to compute the split implicit evolution
 !!                               of a variable located at a mass point
 !!
 !!      SUBROUTINE TRIDIAG_WIND: to compute the split implicit evolution
 !!                               of a variable located at a wind point
 !!
-!!      FUNCTIONs ETHETA and EMOIST  :  
+!!      FUNCTIONs ETHETA and EMOIST  :
 !!            allows to compute:
 !!            - the coefficients for the turbulent correlation between
-!!            any variable and the virtual potential temperature, of its 
-!!            correlations with the conservative potential temperature and 
+!!            any variable and the virtual potential temperature, of its
+!!            correlations with the conservative potential temperature and
 !!            the humidity conservative variable:
 !!            -------              -------              -------
-!!            A' Thv'  =  ETHETA   A' Thl'  +  EMOIST   A' Rnp'  
+!!            A' Thv'  =  ETHETA   A' Thl'  +  EMOIST   A' Rnp'
 !!
 !!
 !!    IMPLICIT ARGUMENTS
@@ -160,34 +160,34 @@ SUBROUTINE TURB_VER_SV_FLUX(KKA,KKU,KKL,                      &
 !!    MODIFICATIONS
 !!    -------------
 !!      Original       August   19, 1994
-!!      Modifications: February 14, 1995 (J.Cuxart and J.Stein) 
+!!      Modifications: February 14, 1995 (J.Cuxart and J.Stein)
 !!                                  Doctorization and Optimization
-!!      Modifications: March 21, 1995 (J.M. Carriere) 
+!!      Modifications: March 21, 1995 (J.M. Carriere)
 !!                                  Introduction of cloud water
-!!      Modifications: June  14, 1995 (J.Cuxart and J. Stein) 
+!!      Modifications: June  14, 1995 (J.Cuxart and J. Stein)
 !!                                 Phi3 and Psi3 at w-point + bug in the all
-!!                                 or nothing condens. 
-!!      Modifications: Sept  15, 1995 (J.Cuxart and J. Stein) 
+!!                                 or nothing condens.
+!!      Modifications: Sept  15, 1995 (J.Cuxart and J. Stein)
 !!                                 Change the DP computation at the ground
-!!      Modifications: October 10, 1995 (J.Cuxart and J. Stein) 
+!!      Modifications: October 10, 1995 (J.Cuxart and J. Stein)
 !!                                 Psi for scal var and LES tools
 !!      Modifications: November 10, 1995 (J. Stein)
-!!                                 change the surface	relations 
+!!                                 change the surface	relations
 !!      Modifications: February 20, 1995 (J. Stein) optimization
-!!      Modifications: May 21, 1996 (J. Stein) 
-!!                                  bug in the vertical flux of the V wind 
+!!      Modifications: May 21, 1996 (J. Stein)
+!!                                  bug in the vertical flux of the V wind
 !!                                  component for explicit computation
-!!      Modifications: May 21, 1996 (N. wood) 
+!!      Modifications: May 21, 1996 (N. wood)
 !!                                  modify the computation of the vertical
 !!                                   part or the surface tangential flux
 !!      Modifications: May 21, 1996 (P. Jabouille)
 !!                                  same modification in the Y direction
-!!      
+!!
 !!      Modifications: Sept 17, 1996 (J. Stein) change the moist case by using
 !!                                  Pi instead of Piref + use Atheta and Amoist
 !!
 !!      Modifications: Nov  24, 1997 (V. Masson) removes the DO loops
-!!      Modifications: Mar  31, 1998 (V. Masson) splits the routine TURB_VER_SV_FLUX  
+!!      Modifications: Mar  31, 1998 (V. Masson) splits the routine TURB_VER_SV_FLUX
 !!      Modifications: Dec  01, 2000 (V. Masson) conservation of scalar emission
 !!                                               from surface in 1DIM case
 !!                                               when slopes are present
@@ -195,15 +195,17 @@ SUBROUTINE TURB_VER_SV_FLUX(KKA,KKU,KKL,                      &
 !!                     Nov  06, 2002 (V. Masson) LES budgets
 !!                     October 2009 (G. Tanguy) add ILENCH=LEN(YCOMMENT) after
 !!                                              change of YCOMMENT
-!!                     Feb 2012(Y. Seity) add possibility to run with reversed 
+!!                     Feb 2012(Y. Seity) add possibility to run with reversed
 !!                                              vertical levels
 !!      Modifications: July 2015 (Wim de Rooy) LHARAT switch
 !!                     Feb 2017(M. Leriche) add initialisation of ZSOURCE
 !!                                   to avoid unknwon values outside physical domain
 !!                                   and avoid negative values in sv tendencies
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!!      Modifications: June 2019 (Wim de Rooy) with energycascade, 50MF nog
+!!                                             longer necessary
 !!--------------------------------------------------------------------------
-!       
+!
 !*      0. DECLARATIONS
 !          ------------
 !
@@ -238,7 +240,7 @@ IMPLICIT NONE
 !*      0.1  declarations of arguments
 !
 !
-INTEGER,                INTENT(IN)   :: KKA           !near ground array index  
+INTEGER,                INTENT(IN)   :: KKA           !near ground array index
 INTEGER,                INTENT(IN)   :: KKU           !uppest atmosphere array index
 INTEGER,                INTENT(IN)   :: KKL           !vert. levels type 1=MNH -1=ARO
 LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
@@ -258,15 +260,15 @@ REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PRHODJ       ! dry density * grid volum
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  MFMOIST       ! moist mf dual scheme
 
 !
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PSFSVM       ! t - deltat 
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PSFSVM       ! t - deltat
 !
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PSFSVP       ! t + deltat 
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PSFSVP       ! t + deltat
 !
 REAL, DIMENSION(:,:,:,:), INTENT(IN) ::  PSVM         ! scalar var. at t-Delta t
 !
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PWM          ! vertical wind
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PTKEM        ! TKE at time t
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PLM          ! Turb. mixing length   
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PLM          ! Turb. mixing length
 REAL, DIMENSION(:,:,:,:), INTENT(IN) ::  PPSI_SV      ! Inv.Turb.Sch.for scalars
 !
 REAL, DIMENSION(:,:,:,:), INTENT(INOUT) ::  PRSVS
@@ -285,14 +287,14 @@ REAL, DIMENSION(SIZE(PSVM,1),SIZE(PSVM,2),SIZE(PSVM,3))  ::  &
                    ! J in Section 5)
        ZRES, &     ! guess of the treated variable at t+ deltat when the turbu-
                    ! lence is the only source of evolution added to the ones
-                   ! considered in ZSOURCE  
+                   ! considered in ZSOURCE
        ZFLXZ,  &   ! vertical flux of the treated variable
        ZSOURCE,  & ! source of evolution for the treated variable
        ZKEFF       ! effectif diffusion coeff = LT * SQRT( TKE )
 INTEGER             :: IKB,IKE      ! I index values for the Beginning and End
                                     ! mass points of the domain in the 3 direct.
 INTEGER             :: IKT          ! array size in k direction
-INTEGER             :: IKTB,IKTE    ! start, end of k loops in physical domain 
+INTEGER             :: IKTB,IKTE    ! start, end of k loops in physical domain
 INTEGER             :: JSV          ! loop counters
 INTEGER             :: JK           ! loop
 INTEGER             :: ISV          ! number of scalar var.
@@ -314,19 +316,21 @@ IF (LHOOK) CALL DR_HOOK('TURB_VER_SV_FLUX',0,ZHOOK_HANDLE)
 IKB=KKA+JPVEXT_TURB*KKL
 IKE=KKU-JPVEXT_TURB*KKL
 IKT=SIZE(PSVM,3)
-IKTE =IKT-JPVEXT_TURB  
-IKTB =1+JPVEXT_TURB               
+IKTE =IKT-JPVEXT_TURB
+IKTB =1+JPVEXT_TURB
 !
 ISV=SIZE(PSVM,4)
 !
 IF (LHARAT) THEN
-  ZKEFF(:,:,:) =  PLM(:,:,:) * SQRT(PTKEM(:,:,:)) + 50.*MFMOIST(:,:,:)
+  !wc 50MF can be omitted with energy cascade included
+  !ZKEFF(:,:,:) =  PLM(:,:,:) * SQRT(PTKEM(:,:,:)) + 50.*MFMOIST(:,:,:)
+  ZKEFF(:,:,:) =  PLM(:,:,:) * SQRT(PTKEM(:,:,:))
 ELSE
   ZKEFF(:,:,:) = MZM(PLM(:,:,:) * SQRT(PTKEM(:,:,:)), KKA, KKU, KKL)
 ENDIF
 !
 IF(LBLOWSNOW) THEN
-! See Vionnet (PhD, 2012) for a complete discussion around the value of the Schmidt number for blowing snow variables           
+! See Vionnet (PhD, 2012) for a complete discussion around the value of the Schmidt number for blowing snow variables
    ZCSV= XCHF/XRSNOW
 ELSE
    ZCSV= XCHF
@@ -340,7 +344,7 @@ DO JSV=1,ISV
 !
   IF (LNOMIXLG .AND. JSV >= NSV_LGBEG .AND. JSV<= NSV_LGEND) CYCLE
 !
-! Preparation of the arguments for TRIDIAG 
+! Preparation of the arguments for TRIDIAG
     IF (LHARAT) THEN
       ZA(:,:,:)    = -PTSTEP*   &
                    ZKEFF * MZM(PRHODJ, KKA, KKU, KKL) /   &
@@ -361,7 +365,7 @@ DO JSV=1,ISV
   IF (HTURBDIM=='3DIM') THEN
     ZSOURCE(:,:,IKB) = (PIMPL*PSFSVP(:,:,JSV) + PEXPL*PSFSVM(:,:,JSV)) / &
                        PDZZ(:,:,IKB) * PDIRCOSZW(:,:)                    &
-                     * 0.5 * (1. + PRHODJ(:,:,KKA) / PRHODJ(:,:,IKB))   
+                     * 0.5 * (1. + PRHODJ(:,:,KKA) / PRHODJ(:,:,IKB))
   ELSE
 
     ZSOURCE(:,:,IKB) = (PIMPL*PSFSVP(:,:,JSV) + PEXPL*PSFSVM(:,:,JSV)) / &
@@ -371,7 +375,7 @@ DO JSV=1,ISV
   ZSOURCE(:,:,IKTB+1:IKTE-1) = 0.
   ZSOURCE(:,:,IKE) = 0.
 !
-! Obtention of the split JSV scalar variable at t+ deltat  
+! Obtention of the split JSV scalar variable at t+ deltat
   CALL TRIDIAG(KKA,KKU,KKL,PSVM(:,:,:,JSV),ZA,PTSTEP,PEXPL,PIMPL,PRHODJ,ZSOURCE,ZRES)
 !
 !  Compute the equivalent tendency for the JSV scalar variable
@@ -390,7 +394,7 @@ DO JSV=1,ISV
     ! is taken into account in the vertical part
     IF (HTURBDIM=='3DIM') THEN
       ZFLXZ(:,:,IKB) = (PIMPL*PSFSVP(:,:,JSV) + PEXPL*PSFSVM(:,:,JSV))  &
-                       * PDIRCOSZW(:,:)  
+                       * PDIRCOSZW(:,:)
     ELSE
       ZFLXZ(:,:,IKB) = (PIMPL*PSFSVP(:,:,JSV) + PEXPL*PSFSVM(:,:,JSV))  &
                        / PDIRCOSZW(:,:)
@@ -437,7 +441,7 @@ DO JSV=1,ISV
     XTIME_LES = XTIME_LES + ZTIME2 - ZTIME1
   END IF
   !
-END DO   ! end of scalar loop 
+END DO   ! end of scalar loop
 !
 !----------------------------------------------------------------------------
 !
diff --git a/src/common/turb/mode_turb_ver_thermo_corr.F90 b/src/common/turb/mode_turb_ver_thermo_corr.F90
index db08f0ce62947783ab09870fd2b49ff4d4245f2d..596c8c7b3af1c5b37fdd8759aa026b5aaf9cd99f 100644
--- a/src/common/turb/mode_turb_ver_thermo_corr.F90
+++ b/src/common/turb/mode_turb_ver_thermo_corr.F90
@@ -4,7 +4,7 @@
 !MNH_LIC for details. version 1.
 MODULE MODE_TURB_VER_THERMO_CORR
 IMPLICIT NONE
-CONTAINS      
+CONTAINS
 SUBROUTINE TURB_VER_THERMO_CORR(KKA,KKU,KKL,KRR,KRRL,KRRI,    &
                       OTURB_FLX,HTURBDIM,HTOM,                      &
                       PIMPL,PEXPL,                                  &
@@ -29,13 +29,13 @@ SUBROUTINE TURB_VER_THERMO_CORR(KKA,KKU,KKL,KRR,KRRL,KRRI,    &
 !!    PURPOSE
 !!    -------
 !       The purpose of this routine is to compute the vertical turbulent
-!     fluxes of the evolutive variables and give back the source 
+!     fluxes of the evolutive variables and give back the source
 !     terms to the main program.	In the case of large horizontal meshes,
 !     the divergence of these vertical turbulent fluxes represent the whole
 !     effect of the turbulence but when the three-dimensionnal version of
 !     the turbulence scheme is activated (CTURBDIM="3DIM"), these divergences
-!     are completed in the next routine TURB_HOR. 
-!		  An arbitrary degree of implicitness has been implemented for the 
+!     are completed in the next routine TURB_HOR.
+!		  An arbitrary degree of implicitness has been implemented for the
 !     temporal treatment of these diffusion terms.
 !       The vertical boundary conditions are as follows:
 !           *  at the bottom, the surface fluxes are prescribed at the same
@@ -43,8 +43,8 @@ SUBROUTINE TURB_VER_THERMO_CORR(KKA,KKU,KKL,KRR,KRRL,KRRI,    &
 !           *  at the top, the turbulent fluxes are set to 0.
 !       It should be noted that the condensation has been implicitely included
 !     in this turbulence scheme by using conservative variables and computing
-!     the subgrid variance of a statistical variable s indicating the presence 
-!     or not of condensation in a given mesh. 
+!     the subgrid variance of a statistical variable s indicating the presence
+!     or not of condensation in a given mesh.
 !
 !!**  METHOD
 !!    ------
@@ -53,27 +53,27 @@ SUBROUTINE TURB_VER_THERMO_CORR(KKA,KKU,KKL,KRR,KRRL,KRRI,    &
 !!      implicit scheme (a Crank-Nicholson type with coefficients different
 !!      than 0.5), which allows to vary the degree of implicitness of the
 !!      formulation.
-!!      	 The different prognostic variables are treated one by one. 
-!!      The contributions of each turbulent fluxes are cumulated into the 
-!!      tendency  PRvarS, and into the dynamic and thermal production of 
+!!      	 The different prognostic variables are treated one by one.
+!!      The contributions of each turbulent fluxes are cumulated into the
+!!      tendency  PRvarS, and into the dynamic and thermal production of
 !!      TKE if necessary.
-!!        
+!!
 !!			 In section 2 and 3, the thermodynamical fields are considered.
 !!      Only the turbulent fluxes of the conservative variables
-!!      (Thetal and Rnp stored in PRx(:,:,:,1))  are computed. 
-!!       Note that the turbulent fluxes at the vertical 
+!!      (Thetal and Rnp stored in PRx(:,:,:,1))  are computed.
+!!       Note that the turbulent fluxes at the vertical
 !!      boundaries are given either by the soil scheme for the surface one
-!!      ( at the same instant as the others fluxes) and equal to 0 at the 
-!!      top of the model. The thermal production is computed by vertically 
+!!      ( at the same instant as the others fluxes) and equal to 0 at the
+!!      top of the model. The thermal production is computed by vertically
 !!      averaging the turbulent flux and multiply this flux at the mass point by
 !!      a function ETHETA or EMOIST, which preform the transformation from the
-!!      conservative variables to the virtual potential temperature. 
-!!     
+!!      conservative variables to the virtual potential temperature.
+!!
 !! 	    In section 4, the variance of the statistical variable
-!!      s indicating presence or not of condensation, is determined in function 
+!!      s indicating presence or not of condensation, is determined in function
 !!      of the turbulent moments of the conservative variables and its
-!!      squarred root is stored in PSIGS. This information will be completed in 
-!!      the horizontal turbulence if the turbulence dimensionality is not 
+!!      squarred root is stored in PSIGS. This information will be completed in
+!!      the horizontal turbulence if the turbulence dimensionality is not
 !!      equal to "1DIM".
 !!
 !!			 In section 5, the x component of the stress tensor is computed.
@@ -84,47 +84,47 @@ SUBROUTINE TURB_VER_THERMO_CORR(KKA,KKU,KKL,KRR,KRRL,KRRI,    &
 !!        j" is also parallel to the surface and in the normal direction of
 !!           the maximum slope
 !!        k" is the normal to the surface
-!!      In order to prevent numerical instability, the implicit scheme has 
-!!      been extended to the surface flux regarding to its dependence in 
-!!      function of U. The dependence in function of the other components 
+!!      In order to prevent numerical instability, the implicit scheme has
+!!      been extended to the surface flux regarding to its dependence in
+!!      function of U. The dependence in function of the other components
 !!      introduced by the different rotations is only explicit.
-!!      The turbulent fluxes are used to compute the dynamic production of 
+!!      The turbulent fluxes are used to compute the dynamic production of
 !!      TKE. For the last TKE level ( located at PDZZ(:,:,IKB)/2 from the
-!!      ground), an harmonic extrapolation from the dynamic production at 
+!!      ground), an harmonic extrapolation from the dynamic production at
 !!      PDZZ(:,:,IKB) is used to avoid an evaluation of the gradient of U
 !!      in the surface layer.
 !!
 !!         In section 6, the same steps are repeated but for the y direction
-!!		  and in section 7, a diagnostic computation of the W variance is 
+!!		  and in section 7, a diagnostic computation of the W variance is
 !!      performed.
 !!
-!!         In section 8, the turbulent fluxes for the scalar variables are 
+!!         In section 8, the turbulent fluxes for the scalar variables are
 !!      computed by the same way as the conservative thermodynamical variables
 !!
-!!            
+!!
 !!    EXTERNAL
 !!    --------
-!!      GX_U_M, GY_V_M, GZ_W_M :  cartesian gradient operators 
+!!      GX_U_M, GY_V_M, GZ_W_M :  cartesian gradient operators
 !!      GX_U_UW,GY_V_VW	         (X,Y,Z) represent the direction of the gradient
-!!                               _(M,U,...)_ represent the localization of the 
+!!                               _(M,U,...)_ represent the localization of the
 !!                               field to be derivated
-!!                               _(M,UW,...) represent the localization of the 
+!!                               _(M,UW,...) represent the localization of the
 !!                               field	derivated
-!!                               
+!!
 !!
 !!      MXM,MXF,MYM,MYF,MZM,MZF
-!!                             :  Shuman functions (mean operators)     
+!!                             :  Shuman functions (mean operators)
 !!      DXF,DYF,DZF,DZM
-!!                             :  Shuman functions (difference operators)     
-!!                               
-!!      FUNCTIONs ETHETA and EMOIST  :  
+!!                             :  Shuman functions (difference operators)
+!!
+!!      FUNCTIONs ETHETA and EMOIST  :
 !!            allows to compute:
 !!            - the coefficients for the turbulent correlation between
-!!            any variable and the virtual potential temperature, of its 
-!!            correlations with the conservative potential temperature and 
+!!            any variable and the virtual potential temperature, of its
+!!            correlations with the conservative potential temperature and
 !!            the humidity conservative variable:
 !!            -------              -------              -------
-!!            A' Thv'  =  ETHETA   A' Thl'  +  EMOIST   A' Rnp'  
+!!            A' Thv'  =  ETHETA   A' Thl'  +  EMOIST   A' Rnp'
 !!
 !!
 !!    IMPLICIT ARGUMENTS
@@ -158,34 +158,34 @@ SUBROUTINE TURB_VER_THERMO_CORR(KKA,KKU,KKL,KRR,KRRL,KRRI,    &
 !!    MODIFICATIONS
 !!    -------------
 !!      Original       August   19, 1994
-!!      Modifications: February 14, 1995 (J.Cuxart and J.Stein) 
+!!      Modifications: February 14, 1995 (J.Cuxart and J.Stein)
 !!                                  Doctorization and Optimization
-!!      Modifications: March 21, 1995 (J.M. Carriere) 
+!!      Modifications: March 21, 1995 (J.M. Carriere)
 !!                                  Introduction of cloud water
-!!      Modifications: June  14, 1995 (J.Cuxart and J. Stein) 
+!!      Modifications: June  14, 1995 (J.Cuxart and J. Stein)
 !!                                 Phi3 and Psi3 at w-point + bug in the all
-!!                                 or nothing condens. 
-!!      Modifications: Sept  15, 1995 (J.Cuxart and J. Stein) 
+!!                                 or nothing condens.
+!!      Modifications: Sept  15, 1995 (J.Cuxart and J. Stein)
 !!                                 Change the DP computation at the ground
-!!      Modifications: October 10, 1995 (J.Cuxart and J. Stein) 
+!!      Modifications: October 10, 1995 (J.Cuxart and J. Stein)
 !!                                 Psi for scal var and LES tools
 !!      Modifications: November 10, 1995 (J. Stein)
-!!                                 change the surface	relations 
+!!                                 change the surface	relations
 !!      Modifications: February 20, 1995 (J. Stein) optimization
-!!      Modifications: May 21, 1996 (J. Stein) 
-!!                                  bug in the vertical flux of the V wind 
+!!      Modifications: May 21, 1996 (J. Stein)
+!!                                  bug in the vertical flux of the V wind
 !!                                  component for explicit computation
-!!      Modifications: May 21, 1996 (N. wood) 
+!!      Modifications: May 21, 1996 (N. wood)
 !!                                  modify the computation of the vertical
 !!                                   part or the surface tangential flux
 !!      Modifications: May 21, 1996 (P. Jabouille)
 !!                                  same modification in the Y direction
-!!      
+!!
 !!      Modifications: Sept 17, 1996 (J. Stein) change the moist case by using
 !!                                  Pi instead of Piref + use Atheta and Amoist
 !!
-!!      Modifications: Nov  24, 1997 (V. Masson) removes the DO loops 
-!!      Modifications: Mar  31, 1998 (V. Masson) splits the routine TURB_VER_THERMO_FLUX 
+!!      Modifications: Nov  24, 1997 (V. Masson) removes the DO loops
+!!      Modifications: Mar  31, 1998 (V. Masson) splits the routine TURB_VER_THERMO_FLUX
 !!      Modifications: Oct  18, 2000 (V. Masson) LES computations
 !!      Modifications: Dec  01, 2000 (V. Masson) conservation of energy from
 !!                                               surface flux in 1DIM case
@@ -193,12 +193,13 @@ SUBROUTINE TURB_VER_THERMO_CORR(KKA,KKU,KKL,KRR,KRRL,KRRI,    &
 !!                     Nov  06, 2002 (V. Masson) LES budgets
 !!                     October 2009 (G. Tanguy) add ILENCH=LEN(YCOMMENT) after
 !!                                              change of YCOMMENT
-!!                     2012-02 (Y. Seity) add possibility to run with reversed 
+!!                     2012-02 (Y. Seity) add possibility to run with reversed
 !!                                              vertical levels
 !!      Modifications  July 2015 (Wim de Rooy) LHARAT switch
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!!      Modifications  June 2019 (Wim de Rooy) New set up cloud scheme
 !!--------------------------------------------------------------------------
-!       
+!
 !*      0. DECLARATIONS
 !          ------------
 !
@@ -230,7 +231,7 @@ IMPLICIT NONE
 !
 !
 !
-INTEGER,                INTENT(IN)   :: KKA           !near ground array index  
+INTEGER,                INTENT(IN)   :: KKA           !near ground array index
 INTEGER,                INTENT(IN)   :: KKU           !uppest atmosphere array index
 INTEGER,                INTENT(IN)   :: KKL           !vert. levels type 1=MNH -1=ARO
 INTEGER,                INTENT(IN)   :: KRR           ! number of moist var.
@@ -252,31 +253,31 @@ REAL, DIMENSION(:,:),   INTENT(IN)   ::  PDIRCOSZW    ! Director Cosinus of the
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PRHODJ       ! dry density * grid volum
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  MFMOIST      ! moist mass flux dual scheme
 
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PTHVREF      ! ref. state Virtual 
-                                                      ! Potential Temperature 
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PTHVREF      ! ref. state Virtual
+                                                      ! Potential Temperature
 !
 REAL, DIMENSION(:,:),   INTENT(IN)   ::  PSFTHM,PSFRM ! surface fluxes at time
-!                                                     ! t - deltat 
+!                                                     ! t - deltat
 !
 REAL, DIMENSION(:,:),   INTENT(IN)   ::  PSFTHP,PSFRP ! surface fluxes at time
-!                                                     ! t + deltat 
+!                                                     ! t + deltat
 !
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PWM 
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PWM
 ! Vertical wind
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PTHLM 
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PTHLM
 ! potential temperature at t-Delta t
-REAL, DIMENSION(:,:,:,:), INTENT(IN) ::  PRM          ! Mixing ratios 
+REAL, DIMENSION(:,:,:,:), INTENT(IN) ::  PRM          ! Mixing ratios
                                                       ! at t-Delta t
-REAL, DIMENSION(:,:,:,:), INTENT(IN) ::  PSVM         ! Mixing ratios 
+REAL, DIMENSION(:,:,:,:), INTENT(IN) ::  PSVM         ! Mixing ratios
 !
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PTKEM        ! TKE at time t
 ! In case LHARATU=TRUE, PLM already includes all stability corrections
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PLM          ! Turb. mixing length   
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PLEPS        ! dissipative length   
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PLM          ! Turb. mixing length
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PLEPS        ! dissipative length
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PLOCPEXNM    ! Lv(T)/Cp/Exnref at time t-1
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PATHETA      ! coefficients between 
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PATHETA      ! coefficients between
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PAMOIST      ! s and Thetal and Rnp
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PSRCM        ! normalized 
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PSRCM        ! normalized
 ! 2nd-order flux s'r'c/2Sigma_s2 at t-1 multiplied by Lambda_3
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PBETA        ! buoyancy coefficient
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PSQRT_TKE    ! sqrt(e)
@@ -322,8 +323,8 @@ REAL, DIMENSION(SIZE(PTHLM,1),SIZE(PTHLM,2),SIZE(PTHLM,3))  ::  &
        PLMF,     & ! estimate full level length scale from half levels (sub optimal)
        PLEPSF      ! estimate full level diss length scale from half levels (sub optimal)
 
-INTEGER             :: IRESP        ! Return code of FM routines 
-INTEGER             :: IGRID        ! C-grid indicator in LFIFM file 
+INTEGER             :: IRESP        ! Return code of FM routines
+INTEGER             :: IGRID        ! C-grid indicator in LFIFM file
 INTEGER             :: ILENCH       ! Length of comment string in LFIFM file
 INTEGER             :: IKB,IKE      ! I index values for the Beginning and End
 INTEGER             :: IKU  ! array sizes
@@ -333,7 +334,7 @@ INTEGER             :: I1,I2        ! For ZCOEFF allocation
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
 CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
 REAL, DIMENSION(:,:,:),ALLOCATABLE  :: ZCOEFF
-                                    ! coefficients for the uncentred gradient 
+                                    ! coefficients for the uncentred gradient
                                     ! computation near the ground
 !
 REAL :: ZTIME1, ZTIME2
@@ -363,7 +364,7 @@ ALLOCATE(ZCOEFF(SIZE(PDZZ,1),SIZE(PDZZ,2),I1:I2))
 !
 GUSERV = (KRR/=0)
 !
-!  compute the coefficients for the uncentred gradient computation near the 
+!  compute the coefficients for the uncentred gradient computation near the
 !  ground
 ZCOEFF(:,:,IKB+2*KKL)= - PDZZ(:,:,IKB+KKL) /      &
        ( (PDZZ(:,:,IKB+2*KKL)+PDZZ(:,:,IKB+KKL)) * PDZZ(:,:,IKB+2*KKL) )
@@ -374,15 +375,22 @@ ZCOEFF(:,:,IKB)= - (PDZZ(:,:,IKB+2*KKL)+2.*PDZZ(:,:,IKB+KKL)) /      &
 !
 !
 IF (LHARAT) THEN
-PLMF=MZF(PLM, KKA, KKU, KKL)
-PLEPSF=PLMF
-!  function MZF produces -999 for level IKU (82 for 80 levels)
-!  so put these to normal value as this level (82) is indeed calculated
-PLMF(:,:,IKU)=0.001
-PLEPSF(:,:,IKU)=0.001
-ZKEFF(:,:,:) = PLM(:,:,:) * SQRT(PTKEM(:,:,:)) + 50*MFMOIST(:,:,:)
+  PLMF=MZF(PLM, KKA, KKU, KKL)
+  !wc Part of the new statistical cloud scheme set up
+  IF (LSTATNW) THEN
+    PLEPSF=MZF(PLEPS, KKA, KKU, KKL)
+  ELSE
+    PLEPSF=PLMF
+  ENDIF
+  !  function MZF produces -999 for level IKU (82 for 80 levels)
+  !  so put these to normal value as this level (82) is indeed calculated
+  PLMF(:,:,IKU)=0.001
+  PLEPSF(:,:,IKU)=0.001
+  ! with energy cascade contribution 50MF term can be omitted
+  !ZKEFF(:,:,:) = PLM(:,:,:) * SQRT(PTKEM(:,:,:)) + 50*MFMOIST(:,:,:)
+  ZKEFF(:,:,:) = PLM(:,:,:) * SQRT(PTKEM(:,:,:))
 ELSE
-ZKEFF(:,:,:) = MZM(PLM(:,:,:) * SQRT(PTKEM(:,:,:)), KKA, KKU, KKL)
+  ZKEFF(:,:,:) = MZM(PLM(:,:,:) * SQRT(PTKEM(:,:,:)), KKA, KKU, KKL)
 ENDIF
 !
 
@@ -409,15 +417,19 @@ END IF
 !             --------------------------------------------------------
 !
 !
-!*       4.2  <THl THl> 
+!*       4.2  <THl THl>
 !
 ! Compute the turbulent variance F and F' at time t-dt.
 !
-IF (LHARAT) THEN
-  ZF      (:,:,:) = PLMF*PLEPSF*MZF(PDTH_DZ**2, KKA, KKU, KKL)
-ELSE
-  ZF      (:,:,:) = XCTV*PLM*PLEPS*MZF(PPHI3*PDTH_DZ**2, KKA, KKU, KKL)
-ENDIF
+  IF (LHARAT) THEN
+    IF (LSTATNW) THEN
+      ZF    (:,:,:) = XCTV*PLMF*PLEPSF*MZF(PDTH_DZ**2, KKA, KKU, KKL)
+    ELSE
+      ZF    (:,:,:) = PLMF*PLEPSF*MZF(PDTH_DZ**2, KKA, KKU, KKL)
+    ENDIF
+  ELSE
+    ZF      (:,:,:) = XCTV*PLM*PLEPS*MZF(PPHI3*PDTH_DZ**2, KKA, KKU, KKL)
+  ENDIF
   ZDFDDTDZ(:,:,:) = 0.     ! this term, because of discretization, is treated separately
   !
   ! Effect of 3rd order terms in temperature flux (at mass point)
@@ -473,41 +485,63 @@ ENDIF
   !
   ! special case near the ground ( uncentred gradient )
   IF (LHARAT) THEN
-  ZFLXZ(:,:,IKB) =  PLMF(:,:,IKB)   &
-     * PLEPSF(:,:,IKB)                                         &
-  *( PEXPL *                                                  &
-     ( ZCOEFF(:,:,IKB+2*KKL)*PTHLM(:,:,IKB+2*KKL)             &
-      +ZCOEFF(:,:,IKB+KKL  )*PTHLM(:,:,IKB+KKL  )             & 
-      +ZCOEFF(:,:,IKB      )*PTHLM(:,:,IKB  )   )**2          &
-    +PIMPL *                                                  &
-     ( ZCOEFF(:,:,IKB+2*KKL)*PTHLP(:,:,IKB+2*KKL)             &
-      +ZCOEFF(:,:,IKB+KKL  )*PTHLP(:,:,IKB+KKL  )             &
-      +ZCOEFF(:,:,IKB      )*PTHLP(:,:,IKB  )   )**2          &
-   ) 
-   ELSE
-  ZFLXZ(:,:,IKB) = XCTV * PPHI3(:,:,IKB+KKL) * PLM(:,:,IKB)   &
-     * PLEPS(:,:,IKB)                                         &
-  *( PEXPL *                                                  &
-     ( ZCOEFF(:,:,IKB+2*KKL)*PTHLM(:,:,IKB+2*KKL)             &
-      +ZCOEFF(:,:,IKB+KKL  )*PTHLM(:,:,IKB+KKL  )             & 
-      +ZCOEFF(:,:,IKB      )*PTHLM(:,:,IKB  )   )**2          &
-    +PIMPL *                                                  &
-     ( ZCOEFF(:,:,IKB+2*KKL)*PTHLP(:,:,IKB+2*KKL)             &
-      +ZCOEFF(:,:,IKB+KKL  )*PTHLP(:,:,IKB+KKL  )             &
-      +ZCOEFF(:,:,IKB      )*PTHLP(:,:,IKB  )   )**2          &
-   ) 
-   ENDIF
+    IF (LSTATNW) THEN
+      ZFLXZ(:,:,IKB) =  XCTV * PLMF(:,:,IKB)   &
+         * PLEPSF(:,:,IKB)                                         &
+      *( PEXPL *                                                  &
+         ( ZCOEFF(:,:,IKB+2*KKL)*PTHLM(:,:,IKB+2*KKL)             &
+          +ZCOEFF(:,:,IKB+KKL  )*PTHLM(:,:,IKB+KKL  )             &
+          +ZCOEFF(:,:,IKB      )*PTHLM(:,:,IKB  )   )**2          &
+        +PIMPL *                                                  &
+         ( ZCOEFF(:,:,IKB+2*KKL)*PTHLP(:,:,IKB+2*KKL)             &
+          +ZCOEFF(:,:,IKB+KKL  )*PTHLP(:,:,IKB+KKL  )             &
+          +ZCOEFF(:,:,IKB      )*PTHLP(:,:,IKB  )   )**2          &
+       )
+    ELSE
+      ZFLXZ(:,:,IKB) =  PLMF(:,:,IKB)   &
+         * PLEPSF(:,:,IKB)                                         &
+      *( PEXPL *                                                  &
+         ( ZCOEFF(:,:,IKB+2*KKL)*PTHLM(:,:,IKB+2*KKL)             &
+          +ZCOEFF(:,:,IKB+KKL  )*PTHLM(:,:,IKB+KKL  )             &
+          +ZCOEFF(:,:,IKB      )*PTHLM(:,:,IKB  )   )**2          &
+        +PIMPL *                                                  &
+         ( ZCOEFF(:,:,IKB+2*KKL)*PTHLP(:,:,IKB+2*KKL)             &
+          +ZCOEFF(:,:,IKB+KKL  )*PTHLP(:,:,IKB+KKL  )             &
+          +ZCOEFF(:,:,IKB      )*PTHLP(:,:,IKB  )   )**2          &
+       )
+    ENDIF
+  ELSE
+    ZFLXZ(:,:,IKB) = XCTV * PPHI3(:,:,IKB+KKL) * PLM(:,:,IKB)   &
+       * PLEPS(:,:,IKB)                                         &
+    *( PEXPL *                                                  &
+       ( ZCOEFF(:,:,IKB+2*KKL)*PTHLM(:,:,IKB+2*KKL)             &
+        +ZCOEFF(:,:,IKB+KKL  )*PTHLM(:,:,IKB+KKL  )             &
+        +ZCOEFF(:,:,IKB      )*PTHLM(:,:,IKB  )   )**2          &
+      +PIMPL *                                                  &
+       ( ZCOEFF(:,:,IKB+2*KKL)*PTHLP(:,:,IKB+2*KKL)             &
+        +ZCOEFF(:,:,IKB+KKL  )*PTHLP(:,:,IKB+KKL  )             &
+        +ZCOEFF(:,:,IKB      )*PTHLP(:,:,IKB  )   )**2          &
+     )
+  ENDIF
   !
-  ZFLXZ(:,:,KKA) = ZFLXZ(:,:,IKB) 
+  ZFLXZ(:,:,KKA) = ZFLXZ(:,:,IKB)
   !
-  ZFLXZ = MAX(0., ZFLXZ)
+  IF (LSTATNW) THEN
+    !wc  The variance from the budget eq should be multiplied by 2 here
+    !    thl'2=2*L*LEPS*(dthl/dz**2)
+    ZFLXZ = MAX(0., 2.*ZFLXZ)
+  ELSE
+    ZFLXZ = MAX(0., ZFLXZ)
+  ENDIF
   !
   IF (KRRL > 0)  THEN
-    PSIGS(:,:,:) = ZFLXZ(:,:,:) * PATHETA(:,:,:)**2 
+    PSIGS(:,:,:) = ZFLXZ(:,:,:) * PATHETA(:,:,:)**2
+  ELSE
+    PSIGS(:,:,:) = 0.
   END IF
   !
   !
-  ! stores <THl THl>  
+  ! stores <THl THl>
   IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN
     TZFIELD%CMNHNAME   = 'THL_VVAR'
     TZFIELD%CSTDNAME   = ''
@@ -526,26 +560,30 @@ ENDIF
 !
   IF (LLES_CALL) THEN
     CALL SECOND_MNH(ZTIME1)
-    CALL LES_MEAN_SUBGRID(ZFLXZ, X_LES_SUBGRID_Thl2 ) 
+    CALL LES_MEAN_SUBGRID(ZFLXZ, X_LES_SUBGRID_Thl2 )
     CALL LES_MEAN_SUBGRID(MZF(PWM, KKA, KKU, KKL)*ZFLXZ, X_LES_RES_W_SBG_Thl2 )
-    CALL LES_MEAN_SUBGRID(-2.*XCTD*PSQRT_TKE*ZFLXZ/PLEPS, X_LES_SUBGRID_DISS_Thl2 ) 
-    CALL LES_MEAN_SUBGRID(PETHETA*ZFLXZ, X_LES_SUBGRID_ThlThv ) 
-    CALL LES_MEAN_SUBGRID(-XA3*PBETA*PETHETA*ZFLXZ, X_LES_SUBGRID_ThlPz, .TRUE. ) 
+    CALL LES_MEAN_SUBGRID(-2.*XCTD*PSQRT_TKE*ZFLXZ/PLEPS, X_LES_SUBGRID_DISS_Thl2 )
+    CALL LES_MEAN_SUBGRID(PETHETA*ZFLXZ, X_LES_SUBGRID_ThlThv )
+    CALL LES_MEAN_SUBGRID(-XA3*PBETA*PETHETA*ZFLXZ, X_LES_SUBGRID_ThlPz, .TRUE. )
     CALL SECOND_MNH(ZTIME2)
     XTIME_LES = XTIME_LES + ZTIME2 - ZTIME1
   END IF
 !
   IF ( KRR /= 0 ) THEN
 !
-!*       4.3  <THl Rnp>    
+!*       4.3  <THl Rnp>
 !
 !
     ! Compute the turbulent variance F and F' at time t-dt.
-IF (LHARAT) THEN
-    ZF      (:,:,:) = PLMF*PLEPSF*MZF(PDTH_DZ*PDR_DZ, KKA, KKU, KKL)
-ELSE
-    ZF      (:,:,:) = XCTV*PLM*PLEPS*MZF(0.5*(PPHI3+PPSI3)*PDTH_DZ*PDR_DZ, KKA, KKU, KKL)
-ENDIF
+    IF (LHARAT) THEN
+      IF (LSTATNW) THEN
+        ZF    (:,:,:) = XCTV*PLMF*PLEPSF*MZF(PDTH_DZ*PDR_DZ, KKA, KKU, KKL)
+      ELSE
+        ZF    (:,:,:) = PLMF*PLEPSF*MZF(PDTH_DZ*PDR_DZ, KKA, KKU, KKL)
+      ENDIF
+    ELSE
+      ZF      (:,:,:) = XCTV*PLM*PLEPS*MZF(0.5*(PPHI3+PPSI3)*PDTH_DZ*PDR_DZ, KKA, KKU, KKL)
+    ENDIF
     ZDFDDTDZ(:,:,:) = 0.     ! this term, because of discretization, is treated separately
     ZDFDDRDZ(:,:,:) = 0.     ! this term, because of discretization, is treated separately
     !
@@ -602,79 +640,119 @@ ENDIF
     END IF
     !
     IF (LHARAT) THEN
-    ZFLXZ(:,:,:)   = ZF                                                     &
-        + PIMPL * PLMF*PLEPSF*0.5                                        &
-          * MZF(( 2.  & 
-                 ) *PDR_DZ  *DZM(PTHLP - PTHLM, KKA, KKU, KKL    ) / PDZZ               &
-                +( 2.                                                    &
-                 ) *PDTH_DZ *DZM(PRP   - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ               &
-               , KKA, KKU, KKL)                                                            &
-        + PIMPL * ZDFDDTDZ * MZF(DZM(PTHLP - PTHLM(:,:,:), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL)         &
-        + PIMPL * ZDFDDRDZ * MZF(DZM(PRP   - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL)
+      IF (LSTATNW) THEN
+        ZFLXZ(:,:,:)   = ZF                                                     &
+            + PIMPL * XCTV*PLMF*PLEPSF*0.5                                        &
+              * MZF(( 2.  &
+                     ) *PDR_DZ  *DZM(PTHLP - PTHLM, KKA, KKU, KKL       ) / PDZZ               &
+                    +( 2.                                                    &
+                     ) *PDTH_DZ *DZM(PRP   - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ               &
+                   , KKA, KKU, KKL)                                                            &
+            + PIMPL * ZDFDDTDZ * MZF(DZM(PTHLP - PTHLM(:,:,:), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL)         &
+            + PIMPL * ZDFDDRDZ * MZF(DZM(PRP   - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL)
+      ELSE
+        ZFLXZ(:,:,:)   = ZF                                                     &
+            + PIMPL * PLMF*PLEPSF*0.5                                        &
+              * MZF(( 2.  &
+                     ) *PDR_DZ  *DZM(PTHLP - PTHLM, KKA, KKU, KKL    ) / PDZZ               &
+                    +( 2.                                                    &
+                     ) *PDTH_DZ *DZM(PRP   - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ               &
+                   , KKA, KKU, KKL)                                                            &
+            + PIMPL * ZDFDDTDZ * MZF(DZM(PTHLP - PTHLM(:,:,:), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL)         &
+            + PIMPL * ZDFDDRDZ * MZF(DZM(PRP   - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL)
+      ENDIF
     ELSE
-    ZFLXZ(:,:,:)   = ZF                                                     &
-        + PIMPL * XCTV*PLM*PLEPS*0.5                                        &
-          * MZF(( D_PHI3DTDZ_O_DDTDZ(PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,HTURBDIM,GUSERV) & ! d(phi3*dthdz)/ddthdz term
-                  +D_PSI3DTDZ_O_DDTDZ(PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,HTURBDIM,GUSERV) & ! d(psi3*dthdz)/ddthdz term
-                 ) *PDR_DZ  *DZM(PTHLP - PTHLM, KKA, KKU, KKL) / PDZZ               &
-                +( D_PHI3DRDZ_O_DDRDZ(PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,HTURBDIM,GUSERV) & ! d(phi3*drdz )/ddrdz term
-                  +D_PSI3DRDZ_O_DDRDZ(PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,HTURBDIM,GUSERV) & ! d(psi3*drdz )/ddrdz term
-                 ) *PDTH_DZ *DZM(PRP - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ               &
-               , KKA, KKU, KKL)                                                            &
-        + PIMPL * ZDFDDTDZ * MZF(DZM(PTHLP - PTHLM(:,:,:), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL)         &
-        + PIMPL * ZDFDDRDZ * MZF(DZM(PRP   - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL)
+      ZFLXZ(:,:,:)   = ZF                                                     &
+          + PIMPL * XCTV*PLM*PLEPS*0.5                                        &
+            * MZF(( D_PHI3DTDZ_O_DDTDZ(PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,HTURBDIM,GUSERV) & ! d(phi3*dthdz)/ddthdz term
+                    +D_PSI3DTDZ_O_DDTDZ(PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,HTURBDIM,GUSERV) & ! d(psi3*dthdz)/ddthdz term
+                   ) *PDR_DZ  *DZM(PTHLP - PTHLM, KKA, KKU, KKL) / PDZZ               &
+                  +( D_PHI3DRDZ_O_DDRDZ(PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,HTURBDIM,GUSERV) & ! d(phi3*drdz )/ddrdz term
+                    +D_PSI3DRDZ_O_DDRDZ(PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,HTURBDIM,GUSERV) & ! d(psi3*drdz )/ddrdz term
+                   ) *PDTH_DZ *DZM(PRP - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ               &
+                 , KKA, KKU, KKL)                                                            &
+          + PIMPL * ZDFDDTDZ * MZF(DZM(PTHLP - PTHLM(:,:,:), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL)         &
+          + PIMPL * ZDFDDRDZ * MZF(DZM(PRP   - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL)
     ENDIF
     !
     ! special case near the ground ( uncentred gradient )
     IF (LHARAT) THEN
-    ZFLXZ(:,:,IKB) =                                            & 
-    (1. )   &
-    *( PEXPL *                                                  &
-       ( ZCOEFF(:,:,IKB+2*KKL)*PTHLM(:,:,IKB+2*KKL)             &
-        +ZCOEFF(:,:,IKB+KKL  )*PTHLM(:,:,IKB+KKL  )             & 
-        +ZCOEFF(:,:,IKB      )*PTHLM(:,:,IKB      ))            &
-      *( ZCOEFF(:,:,IKB+2*KKL)*PRM(:,:,IKB+2*KKL,1)             &
-        +ZCOEFF(:,:,IKB+KKL  )*PRM(:,:,IKB+KKL,1  )             & 
-        +ZCOEFF(:,:,IKB      )*PRM(:,:,IKB  ,1    ))            &
-      +PIMPL *                                                  &
-       ( ZCOEFF(:,:,IKB+2*KKL)*PTHLP(:,:,IKB+2*KKL)             &
-        +ZCOEFF(:,:,IKB+KKL  )*PTHLP(:,:,IKB+KKL  )             &
-        +ZCOEFF(:,:,IKB      )*PTHLP(:,:,IKB      ))            &
-      *( ZCOEFF(:,:,IKB+2*KKL)*PRP(:,:,IKB+2*KKL  )             &
-        +ZCOEFF(:,:,IKB+KKL  )*PRP(:,:,IKB+KKL    )             & 
-        +ZCOEFF(:,:,IKB      )*PRP(:,:,IKB        ))            &
-     ) 
-    ELSE 
-    ZFLXZ(:,:,IKB) =                                            & 
-    (XCHT1 * PPHI3(:,:,IKB+KKL) + XCHT2 * PPSI3(:,:,IKB+KKL))   &
-    *( PEXPL *                                                  &
-       ( ZCOEFF(:,:,IKB+2*KKL)*PTHLM(:,:,IKB+2*KKL)             &
-        +ZCOEFF(:,:,IKB+KKL  )*PTHLM(:,:,IKB+KKL  )             & 
-        +ZCOEFF(:,:,IKB      )*PTHLM(:,:,IKB      ))            &
-      *( ZCOEFF(:,:,IKB+2*KKL)*PRM(:,:,IKB+2*KKL,1)             &
-        +ZCOEFF(:,:,IKB+KKL  )*PRM(:,:,IKB+KKL,1  )             & 
-        +ZCOEFF(:,:,IKB      )*PRM(:,:,IKB  ,1    ))            &
-      +PIMPL *                                                  &
-       ( ZCOEFF(:,:,IKB+2*KKL)*PTHLP(:,:,IKB+2*KKL)             &
-        +ZCOEFF(:,:,IKB+KKL  )*PTHLP(:,:,IKB+KKL  )             &
-        +ZCOEFF(:,:,IKB      )*PTHLP(:,:,IKB      ))            &
-      *( ZCOEFF(:,:,IKB+2*KKL)*PRP(:,:,IKB+2*KKL  )             &
-        +ZCOEFF(:,:,IKB+KKL  )*PRP(:,:,IKB+KKL    )             & 
-        +ZCOEFF(:,:,IKB      )*PRP(:,:,IKB        ))            &
-     ) 
+      IF (LSTATNW) THEN
+        ZFLXZ(:,:,IKB) =                                            &
+        (XCHT1 + XCHT2 )   &
+        *( PEXPL *                                                  &
+           ( ZCOEFF(:,:,IKB+2*KKL)*PTHLM(:,:,IKB+2*KKL)             &
+            +ZCOEFF(:,:,IKB+KKL  )*PTHLM(:,:,IKB+KKL  )             &
+            +ZCOEFF(:,:,IKB      )*PTHLM(:,:,IKB      ))            &
+          *( ZCOEFF(:,:,IKB+2*KKL)*PRM(:,:,IKB+2*KKL,1)             &
+            +ZCOEFF(:,:,IKB+KKL  )*PRM(:,:,IKB+KKL,1  )             &
+            +ZCOEFF(:,:,IKB      )*PRM(:,:,IKB  ,1    ))            &
+          +PIMPL *                                                  &
+           ( ZCOEFF(:,:,IKB+2*KKL)*PTHLP(:,:,IKB+2*KKL)             &
+            +ZCOEFF(:,:,IKB+KKL  )*PTHLP(:,:,IKB+KKL  )             &
+            +ZCOEFF(:,:,IKB      )*PTHLP(:,:,IKB      ))            &
+          *( ZCOEFF(:,:,IKB+2*KKL)*PRP(:,:,IKB+2*KKL  )             &
+            +ZCOEFF(:,:,IKB+KKL  )*PRP(:,:,IKB+KKL    )             &
+            +ZCOEFF(:,:,IKB      )*PRP(:,:,IKB        ))            &
+         )
+      ELSE
+        ZFLXZ(:,:,IKB) =                                            &
+        (1. )   &
+        *( PEXPL *                                                  &
+           ( ZCOEFF(:,:,IKB+2*KKL)*PTHLM(:,:,IKB+2*KKL)             &
+            +ZCOEFF(:,:,IKB+KKL  )*PTHLM(:,:,IKB+KKL  )             &
+            +ZCOEFF(:,:,IKB      )*PTHLM(:,:,IKB      ))            &
+          *( ZCOEFF(:,:,IKB+2*KKL)*PRM(:,:,IKB+2*KKL,1)             &
+            +ZCOEFF(:,:,IKB+KKL  )*PRM(:,:,IKB+KKL,1  )             &
+            +ZCOEFF(:,:,IKB      )*PRM(:,:,IKB  ,1    ))            &
+          +PIMPL *                                                  &
+           ( ZCOEFF(:,:,IKB+2*KKL)*PTHLP(:,:,IKB+2*KKL)             &
+            +ZCOEFF(:,:,IKB+KKL  )*PTHLP(:,:,IKB+KKL  )             &
+            +ZCOEFF(:,:,IKB      )*PTHLP(:,:,IKB      ))            &
+          *( ZCOEFF(:,:,IKB+2*KKL)*PRP(:,:,IKB+2*KKL  )             &
+            +ZCOEFF(:,:,IKB+KKL  )*PRP(:,:,IKB+KKL    )             &
+            +ZCOEFF(:,:,IKB      )*PRP(:,:,IKB        ))            &
+         )
+      ENDIF
+    ELSE
+      ZFLXZ(:,:,IKB) =                                            &
+      (XCHT1 * PPHI3(:,:,IKB+KKL) + XCHT2 * PPSI3(:,:,IKB+KKL))   &
+      *( PEXPL *                                                  &
+         ( ZCOEFF(:,:,IKB+2*KKL)*PTHLM(:,:,IKB+2*KKL)             &
+          +ZCOEFF(:,:,IKB+KKL  )*PTHLM(:,:,IKB+KKL  )             &
+          +ZCOEFF(:,:,IKB      )*PTHLM(:,:,IKB      ))            &
+        *( ZCOEFF(:,:,IKB+2*KKL)*PRM(:,:,IKB+2*KKL,1)             &
+          +ZCOEFF(:,:,IKB+KKL  )*PRM(:,:,IKB+KKL,1  )             &
+          +ZCOEFF(:,:,IKB      )*PRM(:,:,IKB  ,1    ))            &
+        +PIMPL *                                                  &
+         ( ZCOEFF(:,:,IKB+2*KKL)*PTHLP(:,:,IKB+2*KKL)             &
+          +ZCOEFF(:,:,IKB+KKL  )*PTHLP(:,:,IKB+KKL  )             &
+          +ZCOEFF(:,:,IKB      )*PTHLP(:,:,IKB      ))            &
+        *( ZCOEFF(:,:,IKB+2*KKL)*PRP(:,:,IKB+2*KKL  )             &
+          +ZCOEFF(:,:,IKB+KKL  )*PRP(:,:,IKB+KKL    )             &
+          +ZCOEFF(:,:,IKB      )*PRP(:,:,IKB        ))            &
+       )
     ENDIF
-    !    
-    ZFLXZ(:,:,KKA) = ZFLXZ(:,:,IKB) 
     !
-      IF ( KRRL > 0 ) THEN
-!
-!   
-!  NB PATHETA is -b in Chaboureau Bechtold 2002 which explains the + sign here
-
-      PSIGS(:,:,:) = PSIGS(:,:,:) +     &
+    ZFLXZ(:,:,KKA) = ZFLXZ(:,:,IKB)
+    !
+    IF (LSTATNW) THEN
+      !wc  The variance from the budget eq should be multiplied by 2 here
+      !    e.g. thl'2=2*L*LEPS*(cab)^-1 *(dthl/dz**2)
+      ZFLXZ = MIN(0., 2.*ZFLXZ)
+    ENDIF
+    IF ( KRRL > 0 ) THEN
+      IF (LSTATNW) THEN
+        !wc Part of the new statistical cloud scheme set up. Normal notation so - sign
+        PSIGS(:,:,:) = PSIGS(:,:,:) -    &
                      2. * PATHETA(:,:,:) * PAMOIST(:,:,:) * ZFLXZ(:,:,:)
+      ELSE
+        !  NB PATHETA is -b in Chaboureau Bechtold 2002 which explains the + sign here
+        PSIGS(:,:,:) = PSIGS(:,:,:) +     &
+                       2. * PATHETA(:,:,:) * PAMOIST(:,:,:) * ZFLXZ(:,:,:)
+      ENDIF
     END IF
-    ! stores <THl Rnp>   
+    ! stores <THl Rnp>
     IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN
       TZFIELD%CMNHNAME   = 'THLRCONS_VCOR'
       TZFIELD%CSTDNAME   = ''
@@ -693,27 +771,31 @@ ENDIF
 !
 IF (LLES_CALL) THEN
       CALL SECOND_MNH(ZTIME1)
-      CALL LES_MEAN_SUBGRID(ZFLXZ, X_LES_SUBGRID_THlRt ) 
+      CALL LES_MEAN_SUBGRID(ZFLXZ, X_LES_SUBGRID_THlRt )
       CALL LES_MEAN_SUBGRID(MZF(PWM, KKA, KKU, KKL)*ZFLXZ, X_LES_RES_W_SBG_ThlRt )
-      CALL LES_MEAN_SUBGRID(-2.*XCTD*PSQRT_TKE*ZFLXZ/PLEPS, X_LES_SUBGRID_DISS_ThlRt ) 
-      CALL LES_MEAN_SUBGRID(PETHETA*ZFLXZ, X_LES_SUBGRID_RtThv ) 
-      CALL LES_MEAN_SUBGRID(-XA3*PBETA*PETHETA*ZFLXZ, X_LES_SUBGRID_RtPz, .TRUE. ) 
-      CALL LES_MEAN_SUBGRID(PEMOIST*ZFLXZ, X_LES_SUBGRID_ThlThv , .TRUE. ) 
-      CALL LES_MEAN_SUBGRID(-XA3*PBETA*PEMOIST*ZFLXZ, X_LES_SUBGRID_ThlPz, .TRUE. ) 
+      CALL LES_MEAN_SUBGRID(-2.*XCTD*PSQRT_TKE*ZFLXZ/PLEPS, X_LES_SUBGRID_DISS_ThlRt )
+      CALL LES_MEAN_SUBGRID(PETHETA*ZFLXZ, X_LES_SUBGRID_RtThv )
+      CALL LES_MEAN_SUBGRID(-XA3*PBETA*PETHETA*ZFLXZ, X_LES_SUBGRID_RtPz, .TRUE. )
+      CALL LES_MEAN_SUBGRID(PEMOIST*ZFLXZ, X_LES_SUBGRID_ThlThv , .TRUE. )
+      CALL LES_MEAN_SUBGRID(-XA3*PBETA*PEMOIST*ZFLXZ, X_LES_SUBGRID_ThlPz, .TRUE. )
       CALL SECOND_MNH(ZTIME2)
       XTIME_LES = XTIME_LES + ZTIME2 - ZTIME1
 END IF
-! 
+!
 !
 !*       4.4  <Rnp Rnp>
 !
 !
     ! Compute the turbulent variance F and F' at time t-dt.
-IF (LHARAT) THEN
-    ZF      (:,:,:) = PLMF*PLEPSF*MZF(PDR_DZ**2, KKA, KKU, KKL)
-  ELSE
-    ZF      (:,:,:) = XCTV*PLM*PLEPS*MZF(PPSI3*PDR_DZ**2, KKA, KKU, KKL)
-ENDIF
+    IF (LHARAT) THEN
+      IF (LSTATNW) THEN
+        ZF    (:,:,:) = XCTV*PLMF*PLEPSF*MZF(PDR_DZ**2, KKA, KKU, KKL)
+      ELSE
+        ZF    (:,:,:) = PLMF*PLEPSF*MZF(PDR_DZ**2, KKA, KKU, KKL)
+      ENDIF
+    ELSE
+      ZF      (:,:,:) = XCTV*PLM*PLEPS*MZF(PPSI3*PDR_DZ**2, KKA, KKU, KKL)
+    ENDIF
     ZDFDDRDZ(:,:,:) = 0.     ! this term, because of discretization, is treated separately
     !
     ! Effect of 3rd order terms in temperature flux (at mass point)
@@ -758,56 +840,83 @@ ENDIF
         ZDFDDRDZ = ZDFDDRDZ + D_M3_R2_WTHR_O_DDRDZ(KKA,KKU,KKL,PREDR1,PREDTH1,&
         & PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PDR_DZ) * PFTHR
       END IF
-  
+
     END IF
     !
-  IF (LHARAT) THEN
-    ZFLXZ(:,:,:)   = ZF                                                              &
-          + PIMPL * PLMF*PLEPSF                                                  &
-            *MZF(2.*PDR_DZ*    &
-                 DZM(PRP - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL) &
-          + PIMPL * ZDFDDRDZ * MZF(DZM(PRP - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL)
-   ELSE
-    ZFLXZ(:,:,:)   = ZF                                                              &
-          + PIMPL * XCTV*PLM*PLEPS                                                  &
-            *MZF(D_PSI3DRDZ2_O_DDRDZ(PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,PDR_DZ,HTURBDIM,GUSERV)    &
-                 *DZM(PRP - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL) &
-          + PIMPL * ZDFDDRDZ * MZF(DZM(PRP - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL)
-  ENDIF
+    IF (LHARAT) THEN
+        IF (LSTATNW) THEN
+          ZFLXZ(:,:,:)   = ZF                                                              &
+                + PIMPL * XCTV*PLMF*PLEPSF                                                  &
+                  *MZF(2.*PDR_DZ*    &
+                       DZM(PRP - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL) &
+                + PIMPL * ZDFDDRDZ * MZF(DZM(PRP - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL)
+        ELSE
+        ZFLXZ(:,:,:)   = ZF                                                              &
+              + PIMPL * PLMF*PLEPSF                                                  &
+                *MZF(2.*PDR_DZ*    &
+                     DZM(PRP - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL) &
+              + PIMPL * ZDFDDRDZ * MZF(DZM(PRP - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL)
+      ENDIF
+    ELSE
+      ZFLXZ(:,:,:)   = ZF                                                              &
+            + PIMPL * XCTV*PLM*PLEPS                                                  &
+              *MZF(D_PSI3DRDZ2_O_DDRDZ(PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,PDR_DZ,HTURBDIM,GUSERV)    &
+                   *DZM(PRP - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL) &
+            + PIMPL * ZDFDDRDZ * MZF(DZM(PRP - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ, KKA, KKU, KKL)
+    ENDIF
     !
     ! special case near the ground ( uncentred gradient )
-  IF (LHARAT) THEN
-    ZFLXZ(:,:,IKB) =  PLMF(:,:,IKB)   &
-        * PLEPSF(:,:,IKB)                                        &
-    *( PEXPL *                                                  &
-       ( ZCOEFF(:,:,IKB+2*KKL)*PRM(:,:,IKB+2*KKL,1)             &
-        +ZCOEFF(:,:,IKB+KKL  )*PRM(:,:,IKB+KKL,1  )             & 
-        +ZCOEFF(:,:,IKB      )*PRM(:,:,IKB  ,1    ))**2         &
-      +PIMPL *                                                  &
-       ( ZCOEFF(:,:,IKB+2*KKL)*PRP(:,:,IKB+2*KKL)               &
-        +ZCOEFF(:,:,IKB+KKL  )*PRP(:,:,IKB+KKL  )               &
-        +ZCOEFF(:,:,IKB      )*PRP(:,:,IKB      ))**2           &
-     ) 
-   ELSE
-    ZFLXZ(:,:,IKB) = XCHV * PPSI3(:,:,IKB+KKL) * PLM(:,:,IKB)   &
-        * PLEPS(:,:,IKB)                                        &
-    *( PEXPL *                                                  &
-       ( ZCOEFF(:,:,IKB+2*KKL)*PRM(:,:,IKB+2*KKL,1)             &
-        +ZCOEFF(:,:,IKB+KKL  )*PRM(:,:,IKB+KKL,1  )             & 
-        +ZCOEFF(:,:,IKB      )*PRM(:,:,IKB  ,1    ))**2         &
-      +PIMPL *                                                  &
-       ( ZCOEFF(:,:,IKB+2*KKL)*PRP(:,:,IKB+2*KKL)               &
-        +ZCOEFF(:,:,IKB+KKL  )*PRP(:,:,IKB+KKL  )               &
-        +ZCOEFF(:,:,IKB      )*PRP(:,:,IKB      ))**2           &
-     ) 
-  ENDIF
+    IF (LHARAT) THEN
+      IF (LSTATNW) THEN
+        ZFLXZ(:,:,IKB) =  XCHV * PLMF(:,:,IKB)   &
+            * PLEPSF(:,:,IKB)                                        &
+        *( PEXPL *                                                  &
+           ( ZCOEFF(:,:,IKB+2*KKL)*PRM(:,:,IKB+2*KKL,1)             &
+            +ZCOEFF(:,:,IKB+KKL  )*PRM(:,:,IKB+KKL,1  )             &
+            +ZCOEFF(:,:,IKB      )*PRM(:,:,IKB  ,1    ))**2         &
+          +PIMPL *                                                  &
+           ( ZCOEFF(:,:,IKB+2*KKL)*PRP(:,:,IKB+2*KKL)               &
+            +ZCOEFF(:,:,IKB+KKL  )*PRP(:,:,IKB+KKL  )               &
+            +ZCOEFF(:,:,IKB      )*PRP(:,:,IKB      ))**2           &
+         )
+      ELSE
+        ZFLXZ(:,:,IKB) =  PLMF(:,:,IKB)   &
+            * PLEPSF(:,:,IKB)                                        &
+        *( PEXPL *                                                  &
+           ( ZCOEFF(:,:,IKB+2*KKL)*PRM(:,:,IKB+2*KKL,1)             &
+            +ZCOEFF(:,:,IKB+KKL  )*PRM(:,:,IKB+KKL,1  )             &
+            +ZCOEFF(:,:,IKB      )*PRM(:,:,IKB  ,1    ))**2         &
+          +PIMPL *                                                  &
+           ( ZCOEFF(:,:,IKB+2*KKL)*PRP(:,:,IKB+2*KKL)               &
+            +ZCOEFF(:,:,IKB+KKL  )*PRP(:,:,IKB+KKL  )               &
+            +ZCOEFF(:,:,IKB      )*PRP(:,:,IKB      ))**2           &
+         )
+      ENDIF
+    ELSE
+      ZFLXZ(:,:,IKB) = XCHV * PPSI3(:,:,IKB+KKL) * PLM(:,:,IKB)   &
+          * PLEPS(:,:,IKB)                                        &
+      *( PEXPL *                                                  &
+         ( ZCOEFF(:,:,IKB+2*KKL)*PRM(:,:,IKB+2*KKL,1)             &
+          +ZCOEFF(:,:,IKB+KKL  )*PRM(:,:,IKB+KKL,1  )             &
+          +ZCOEFF(:,:,IKB      )*PRM(:,:,IKB  ,1    ))**2         &
+        +PIMPL *                                                  &
+         ( ZCOEFF(:,:,IKB+2*KKL)*PRP(:,:,IKB+2*KKL)               &
+          +ZCOEFF(:,:,IKB+KKL  )*PRP(:,:,IKB+KKL  )               &
+          +ZCOEFF(:,:,IKB      )*PRP(:,:,IKB      ))**2           &
+       )
+    ENDIF
     !
-    ZFLXZ(:,:,KKA) = ZFLXZ(:,:,IKB) 
+    ZFLXZ(:,:,KKA) = ZFLXZ(:,:,IKB)
+    IF (LSTATNW) THEN
+      !wc  The variance from the budget eq should be multiplied by 2 here
+      !    thl'2=2*L*LEPS*(dthl/dz**2)
+      ZFLXZ = MAX(0., 2.*ZFLXZ)
+    ENDIF
     !
     IF ( KRRL > 0 ) THEN
       PSIGS(:,:,:) = PSIGS(:,:,:) + PAMOIST(:,:,:) **2 * ZFLXZ(:,:,:)
     END IF
-    ! stores <Rnp Rnp>    
+    ! stores <Rnp Rnp>
     IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN
       TZFIELD%CMNHNAME   = 'RTOT_VVAR'
       TZFIELD%CSTDNAME   = ''
@@ -826,11 +935,11 @@ ENDIF
     !
     IF (LLES_CALL) THEN
       CALL SECOND_MNH(ZTIME1)
-      CALL LES_MEAN_SUBGRID(ZFLXZ, X_LES_SUBGRID_Rt2 ) 
+      CALL LES_MEAN_SUBGRID(ZFLXZ, X_LES_SUBGRID_Rt2 )
       CALL LES_MEAN_SUBGRID(MZF(PWM, KKA, KKU, KKL)*ZFLXZ, X_LES_RES_W_SBG_Rt2 )
-      CALL LES_MEAN_SUBGRID(PEMOIST*ZFLXZ, X_LES_SUBGRID_RtThv , .TRUE. ) 
+      CALL LES_MEAN_SUBGRID(PEMOIST*ZFLXZ, X_LES_SUBGRID_RtThv , .TRUE. )
       CALL LES_MEAN_SUBGRID(-XA3*PBETA*PEMOIST*ZFLXZ, X_LES_SUBGRID_RtPz, .TRUE. )
-      CALL LES_MEAN_SUBGRID(-2.*XCTD*PSQRT_TKE*ZFLXZ/PLEPS, X_LES_SUBGRID_DISS_Rt2 ) 
+      CALL LES_MEAN_SUBGRID(-2.*XCTD*PSQRT_TKE*ZFLXZ/PLEPS, X_LES_SUBGRID_DISS_Rt2 )
       CALL SECOND_MNH(ZTIME2)
       XTIME_LES = XTIME_LES + ZTIME2 - ZTIME1
     END IF
diff --git a/src/common/turb/mode_turb_ver_thermo_flux.F90 b/src/common/turb/mode_turb_ver_thermo_flux.F90
index e8966c17f42f22b2a492a7502316d08693e6ebda..ae6faa452abe03daa215f4bcceab3935dada304d 100644
--- a/src/common/turb/mode_turb_ver_thermo_flux.F90
+++ b/src/common/turb/mode_turb_ver_thermo_flux.F90
@@ -5,7 +5,7 @@
 MODULE MODE_TURB_VER_THERMO_FLUX
 IMPLICIT NONE
 CONTAINS
-      
+
 SUBROUTINE TURB_VER_THERMO_FLUX(KKA,KKU,KKL,KRR,KRRL,KRRI,    &
                       OTURB_FLX,HTURBDIM,HTOM,OOCEAN,               &
                       PIMPL,PEXPL,                                  &
@@ -31,13 +31,13 @@ SUBROUTINE TURB_VER_THERMO_FLUX(KKA,KKU,KKL,KRR,KRRL,KRRI,    &
 !!    PURPOSE
 !!    -------
 !       The purpose of this routine is to compute the vertical turbulent
-!     fluxes of the evolutive variables and give back the source 
+!     fluxes of the evolutive variables and give back the source
 !     terms to the main program.	In the case of large horizontal meshes,
 !     the divergence of these vertical turbulent fluxes represent the whole
 !     effect of the turbulence but when the three-dimensionnal version of
 !     the turbulence scheme is activated (CTURBDIM="3DIM"), these divergences
-!     are completed in the next routine TURB_HOR. 
-!		  An arbitrary degree of implicitness has been implemented for the 
+!     are completed in the next routine TURB_HOR.
+!		  An arbitrary degree of implicitness has been implemented for the
 !     temporal treatment of these diffusion terms.
 !       The vertical boundary conditions are as follows:
 !           *  at the bottom, the surface fluxes are prescribed at the same
@@ -45,8 +45,8 @@ SUBROUTINE TURB_VER_THERMO_FLUX(KKA,KKU,KKL,KRR,KRRL,KRRI,    &
 !           *  at the top, the turbulent fluxes are set to 0.
 !       It should be noted that the condensation has been implicitely included
 !     in this turbulence scheme by using conservative variables and computing
-!     the subgrid variance of a statistical variable s indicating the presence 
-!     or not of condensation in a given mesh. 
+!     the subgrid variance of a statistical variable s indicating the presence
+!     or not of condensation in a given mesh.
 !
 !!**  METHOD
 !!    ------
@@ -55,27 +55,27 @@ SUBROUTINE TURB_VER_THERMO_FLUX(KKA,KKU,KKL,KRR,KRRL,KRRI,    &
 !!      implicit scheme (a Crank-Nicholson type with coefficients different
 !!      than 0.5), which allows to vary the degree of implicitness of the
 !!      formulation.
-!!      	 The different prognostic variables are treated one by one. 
-!!      The contributions of each turbulent fluxes are cumulated into the 
-!!      tendency  PRvarS, and into the dynamic and thermal production of 
+!!      	 The different prognostic variables are treated one by one.
+!!      The contributions of each turbulent fluxes are cumulated into the
+!!      tendency  PRvarS, and into the dynamic and thermal production of
 !!      TKE if necessary.
-!!        
+!!
 !!			 In section 2 and 3, the thermodynamical fields are considered.
 !!      Only the turbulent fluxes of the conservative variables
-!!      (Thetal and Rnp stored in PRx(:,:,:,1))  are computed. 
-!!       Note that the turbulent fluxes at the vertical 
+!!      (Thetal and Rnp stored in PRx(:,:,:,1))  are computed.
+!!       Note that the turbulent fluxes at the vertical
 !!      boundaries are given either by the soil scheme for the surface one
-!!      ( at the same instant as the others fluxes) and equal to 0 at the 
-!!      top of the model. The thermal production is computed by vertically 
+!!      ( at the same instant as the others fluxes) and equal to 0 at the
+!!      top of the model. The thermal production is computed by vertically
 !!      averaging the turbulent flux and multiply this flux at the mass point by
 !!      a function ETHETA or EMOIST, which preform the transformation from the
-!!      conservative variables to the virtual potential temperature. 
-!!     
+!!      conservative variables to the virtual potential temperature.
+!!
 !! 	    In section 4, the variance of the statistical variable
-!!      s indicating presence or not of condensation, is determined in function 
+!!      s indicating presence or not of condensation, is determined in function
 !!      of the turbulent moments of the conservative variables and its
-!!      squarred root is stored in PSIGS. This information will be completed in 
-!!      the horizontal turbulence if the turbulence dimensionality is not 
+!!      squarred root is stored in PSIGS. This information will be completed in
+!!      the horizontal turbulence if the turbulence dimensionality is not
 !!      equal to "1DIM".
 !!
 !!			 In section 5, the x component of the stress tensor is computed.
@@ -86,53 +86,53 @@ SUBROUTINE TURB_VER_THERMO_FLUX(KKA,KKU,KKL,KRR,KRRL,KRRI,    &
 !!        j" is also parallel to the surface and in the normal direction of
 !!           the maximum slope
 !!        k" is the normal to the surface
-!!      In order to prevent numerical instability, the implicit scheme has 
-!!      been extended to the surface flux regarding to its dependence in 
-!!      function of U. The dependence in function of the other components 
+!!      In order to prevent numerical instability, the implicit scheme has
+!!      been extended to the surface flux regarding to its dependence in
+!!      function of U. The dependence in function of the other components
 !!      introduced by the different rotations is only explicit.
-!!      The turbulent fluxes are used to compute the dynamic production of 
+!!      The turbulent fluxes are used to compute the dynamic production of
 !!      TKE. For the last TKE level ( located at PDZZ(:,:,IKB)/2 from the
-!!      ground), an harmonic extrapolation from the dynamic production at 
+!!      ground), an harmonic extrapolation from the dynamic production at
 !!      PDZZ(:,:,IKB) is used to avoid an evaluation of the gradient of U
 !!      in the surface layer.
 !!
 !!         In section 6, the same steps are repeated but for the y direction
-!!		  and in section 7, a diagnostic computation of the W variance is 
+!!		  and in section 7, a diagnostic computation of the W variance is
 !!      performed.
 !!
-!!         In section 8, the turbulent fluxes for the scalar variables are 
+!!         In section 8, the turbulent fluxes for the scalar variables are
 !!      computed by the same way as the conservative thermodynamical variables
 !!
-!!            
+!!
 !!    EXTERNAL
 !!    --------
-!!      GX_U_M, GY_V_M, GZ_W_M :  cartesian gradient operators 
+!!      GX_U_M, GY_V_M, GZ_W_M :  cartesian gradient operators
 !!      GX_U_UW,GY_V_VW	         (X,Y,Z) represent the direction of the gradient
-!!                               _(M,U,...)_ represent the localization of the 
+!!                               _(M,U,...)_ represent the localization of the
 !!                               field to be derivated
-!!                               _(M,UW,...) represent the localization of the 
+!!                               _(M,UW,...) represent the localization of the
 !!                               field	derivated
-!!                               
+!!
 !!
 !!      MXM,MXF,MYM,MYF,MZM,MZF
-!!                             :  Shuman functions (mean operators)     
+!!                             :  Shuman functions (mean operators)
 !!      DXF,DYF,DZF,DZM
-!!                             :  Shuman functions (difference operators)     
-!!                               
-!!      SUBROUTINE TRIDIAG     : to compute the split implicit evolution
+!!                             :  Shuman functions (difference operators)
+!!
+!!      SUBROUTINE TRIDIAG     : to compute the splitted implicit evolution
 !!                               of a variable located at a mass point
 !!
-!!      SUBROUTINE TRIDIAG_WIND: to compute the split implicit evolution
+!!      SUBROUTINE TRIDIAG_WIND: to compute the splitted implicit evolution
 !!                               of a variable located at a wind point
 !!
-!!      FUNCTIONs ETHETA and EMOIST  :  
+!!      FUNCTIONs ETHETA and EMOIST  :
 !!            allows to compute:
 !!            - the coefficients for the turbulent correlation between
-!!            any variable and the virtual potential temperature, of its 
-!!            correlations with the conservative potential temperature and 
+!!            any variable and the virtual potential temperature, of its
+!!            correlations with the conservative potential temperature and
 !!            the humidity conservative variable:
 !!            -------              -------              -------
-!!            A' Thv'  =  ETHETA   A' Thl'  +  EMOIST   A' Rnp'  
+!!            A' Thv'  =  ETHETA   A' Thl'  +  EMOIST   A' Rnp'
 !!
 !!
 !!    IMPLICIT ARGUMENTS
@@ -166,34 +166,34 @@ SUBROUTINE TURB_VER_THERMO_FLUX(KKA,KKU,KKL,KRR,KRRL,KRRI,    &
 !!    MODIFICATIONS
 !!    -------------
 !!      Original       August   19, 1994
-!!      Modifications: February 14, 1995 (J.Cuxart and J.Stein) 
+!!      Modifications: February 14, 1995 (J.Cuxart and J.Stein)
 !!                                  Doctorization and Optimization
-!!      Modifications: March 21, 1995 (J.M. Carriere) 
+!!      Modifications: March 21, 1995 (J.M. Carriere)
 !!                                  Introduction of cloud water
-!!      Modifications: June  14, 1995 (J.Cuxart and J. Stein) 
+!!      Modifications: June  14, 1995 (J.Cuxart and J. Stein)
 !!                                 Phi3 and Psi3 at w-point + bug in the all
-!!                                 or nothing condens. 
-!!      Modifications: Sept  15, 1995 (J.Cuxart and J. Stein) 
+!!                                 or nothing condens.
+!!      Modifications: Sept  15, 1995 (J.Cuxart and J. Stein)
 !!                                 Change the DP computation at the ground
-!!      Modifications: October 10, 1995 (J.Cuxart and J. Stein) 
+!!      Modifications: October 10, 1995 (J.Cuxart and J. Stein)
 !!                                 Psi for scal var and LES tools
 !!      Modifications: November 10, 1995 (J. Stein)
-!!                                 change the surface	relations 
+!!                                 change the surface	relations
 !!      Modifications: February 20, 1995 (J. Stein) optimization
-!!      Modifications: May 21, 1996 (J. Stein) 
-!!                                  bug in the vertical flux of the V wind 
+!!      Modifications: May 21, 1996 (J. Stein)
+!!                                  bug in the vertical flux of the V wind
 !!                                  component for explicit computation
-!!      Modifications: May 21, 1996 (N. wood) 
+!!      Modifications: May 21, 1996 (N. wood)
 !!                                  modify the computation of the vertical
 !!                                   part or the surface tangential flux
 !!      Modifications: May 21, 1996 (P. Jabouille)
 !!                                  same modification in the Y direction
-!!      
+!!
 !!      Modifications: Sept 17, 1996 (J. Stein) change the moist case by using
 !!                                  Pi instead of Piref + use Atheta and Amoist
 !!
-!!      Modifications: Nov  24, 1997 (V. Masson) removes the DO loops 
-!!      Modifications: Mar  31, 1998 (V. Masson) splits the routine TURB_VER_THERMO_FLUX 
+!!      Modifications: Nov  24, 1997 (V. Masson) removes the DO loops
+!!      Modifications: Mar  31, 1998 (V. Masson) splits the routine TURB_VER_THERMO_FLUX
 !!      Modifications: Oct  18, 2000 (V. Masson) LES computations
 !!      Modifications: Dec  01, 2000 (V. Masson) conservation of energy from
 !!                                               surface flux in 1DIM case
@@ -216,11 +216,13 @@ SUBROUTINE TURB_VER_THERMO_FLUX(KKA,KKU,KKL,KRR,KRRL,KRRI,    &
 !!                                 applied to vertical fluxes of r_np and Thl
 !!                                 for implicit version of turbulence scheme
 !!                                 corrections and cleaning
+!!      Modifications: June 2019 (Wim de Rooy) with energycascade, 50MF nog
+!!                                             longer necessary
 !!                     June 2020 (B. Vie) Patch preventing negative rc and ri in 2.3 and 3.3
 !! JL Redelsperger  : 03/2021: Ocean and Autocoupling O-A LES Cases
 !!                             Sfc flux shape for LDEEPOC Case
 !!--------------------------------------------------------------------------
-!       
+!
 !*      0. DECLARATIONS
 !          ------------
 !
@@ -239,7 +241,6 @@ USE MODD_TURB_n,         ONLY: LHGRAD, XCOEFHGRADTHL, XCOEFHGRADRM, XALTHGRAD, X
 USE MODD_CONF
 USE MODD_LES
 USE MODD_OCEANH
-USE MODD_REF,            ONLY: LCOUPLES
 USE MODD_TURB_n
 !
 USE MODI_GRADIENT_U
@@ -263,7 +264,7 @@ IMPLICIT NONE
 !
 !
 !
-INTEGER,                INTENT(IN)   :: KKA           !near ground array index  
+INTEGER,                INTENT(IN)   :: KKA           !near ground array index
 INTEGER,                INTENT(IN)   :: KKU           !uppest atmosphere array index
 INTEGER,                INTENT(IN)   :: KKL           !vert. levels type 1=MNH -1=ARO
 INTEGER,                INTENT(IN)   :: KRR           ! number of moist var.
@@ -287,32 +288,32 @@ REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PZZ          ! altitudes
 !
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PRHODJ       ! dry density * grid volum
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  MFMOIST      ! moist mass flux dual scheme
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PTHVREF      ! ref. state Virtual 
-                                                      ! Potential Temperature 
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PTHVREF      ! ref. state Virtual
+                                                      ! Potential Temperature
 !
 REAL, DIMENSION(:,:),   INTENT(IN)   ::  PSFTHM,PSFRM ! surface fluxes at time
-!                                                     ! t - deltat 
+!                                                     ! t - deltat
 !
 REAL, DIMENSION(:,:),   INTENT(IN)   ::  PSFTHP,PSFRP ! surface fluxes at time
-!                                                     ! t + deltat 
+!                                                     ! t + deltat
 !
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PWM 
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PWM
 ! Vertical wind
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PTHLM 
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PTHLM
 ! potential temperature at t-Delta t
-REAL, DIMENSION(:,:,:,:), INTENT(IN) ::  PRM          ! Mixing ratios 
+REAL, DIMENSION(:,:,:,:), INTENT(IN) ::  PRM          ! Mixing ratios
                                                       ! at t-Delta t
-REAL, DIMENSION(:,:,:,:), INTENT(IN) ::  PSVM         ! Mixing ratios 
+REAL, DIMENSION(:,:,:,:), INTENT(IN) ::  PSVM         ! Mixing ratios
 !
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PTKEM        ! TKE at time t
 !
 ! In case LHARAT=TRUE, PLM already includes all stability corrections
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PLM          ! Turb. mixing length   
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PLEPS        ! dissipative length   
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PLM          ! Turb. mixing length
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PLEPS        ! dissipative length
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PLOCPEXNM    ! Lv(T)/Cp/Exnref at time t-1
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PATHETA      ! coefficients between 
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PATHETA      ! coefficients between
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PAMOIST      ! s and Thetal and Rnp
-REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PSRCM        ! normalized 
+REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PSRCM        ! normalized
 ! 2nd-order flux s'r'c/2Sigma_s2 at t-1 multiplied by Lambda_3
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PFRAC_ICE    ! ri fraction of rc+ri
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PBETA        ! buoyancy coefficient
@@ -372,8 +373,8 @@ REAL,DIMENSION(SIZE(XZS,1),SIZE(XZS,2),KKU)  :: ZALT
 INTEGER             :: IKB,IKE      ! I index values for the Beginning and End
                                     ! mass points of the domain in the 3 direct.
 INTEGER             :: IKT          ! array size in k direction
-INTEGER             :: IKTB,IKTE    ! start, end of k loops in physical domain 
-INTEGER             :: JI, JJ ! loop indexes 
+INTEGER             :: IKTB,IKTE    ! start, end of k loops in physical domain
+INTEGER             :: JI, JJ ! loop indexes
 !
 INTEGER                    :: IIB,IJB       ! Lower bounds of the physical
                                             ! sub-domain in x and y directions
@@ -404,23 +405,24 @@ TYPE(TFIELDDATA) :: TZFIELD
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('TURB_VER_THERMO_FLUX',0,ZHOOK_HANDLE)
 !
-! Size for a given proc & a given model      
-IIU=SIZE(PTHLM,1) 
+! Size for a given proc & a given model
+IIU=SIZE(PTHLM,1)
 IJU=SIZE(PTHLM,2)
-IKT  =SIZE(PTHLM,3)  
-IKTE =IKT-JPVEXT_TURB  
-IKTB =1+JPVEXT_TURB               
+IKT  =SIZE(PTHLM,3)
+IKTE =IKT-JPVEXT_TURB
+IKTB =1+JPVEXT_TURB
 IKB=KKA+JPVEXT_TURB*KKL
 IKE=KKU-JPVEXT_TURB*KKL
 !
 GUSERV = (KRR/=0)
 !
-!  compute the coefficients for the uncentred gradient computation near the 
-!  ground
+!  compute the coefficients for the uncentred gradient computation near the ground
 !
 IF (LHARAT) THEN
-! LHARAT so TKE and length scales at half levels!
-  ZKEFF(:,:,:) =  PLM(:,:,:) * SQRT(PTKEM(:,:,:)) +50.*MFMOIST(:,:,:)
+  ! LHARAT so TKE and length scales at half levels!
+  !wc 50MF can be omitted with energy cascade included
+  !ZKEFF(:,:,:) =  PLM(:,:,:) * SQRT(PTKEM(:,:,:)) +50.*MFMOIST(:,:,:)
+  ZKEFF(:,:,:) =  PLM(:,:,:) * SQRT(PTKEM(:,:,:))
 ELSE
   ZKEFF(:,:,:) = MZM(PLM(:,:,:) * SQRT(PTKEM(:,:,:)), KKA, KKU, KKL)
 ENDIF
@@ -454,8 +456,8 @@ IF (HTOM/='NONE') THEN
 END IF
 !----------------------------------------------------------------------------
 !
-!*       2.   SOURCES OF CONSERVATIVE POTENTIAL TEMPERATURE AND 
-!                                                  PARTIAL THERMAL PRODUCTION 
+!*       2.   SOURCES OF CONSERVATIVE POTENTIAL TEMPERATURE AND
+!                                                  PARTIAL THERMAL PRODUCTION
 !             ---------------------------------------------------------------
 !
 !*       2.1  Splitted value for cons. potential temperature at t+deltat
@@ -525,18 +527,10 @@ IF (GFTHR) THEN
   ZDFDDTDZ = ZDFDDTDZ + D_M3_WTH_WTHR_O_DDTDZ(Z3RDMOMENT,PREDTH1,&
     & PREDR1,PD,PBLL_O_E,PETHETA) * MZM(PFTHR, KKA, KKU, KKL)
 END IF
-! compute interface flux
-IF (LCOUPLES) THEN   ! Autocoupling O-A LES
-  IF (OOCEAN) THEN    ! ocean model in coupled case 
-    ZF(:,:,IKE) =  (XSSTFL_C(:,:,1)+XSSRFL_C(:,:,1)) &
-                  *0.5* ( 1. + PRHODJ(:,:,KKU)/PRHODJ(:,:,IKE) )
-  ELSE                ! atmosph model in coupled case
-    ZF(:,:,IKB) =  XSSTFL_C(:,:,1) &
-                  *0.5* ( 1. + PRHODJ(:,:,KKA)/PRHODJ(:,:,IKB) )
-  ENDIF 
-!
-ELSE  ! No coupling O and A cases
-  ! atmosp bottom
+! specialcase for surface
+IF (OOCEAN) THEN ! ocean sfc (domain top)
+  ZF(:,:,IKE+1) = PSFTHM(:,:) *0.5*(1. + PRHODJ(:,:,KKU) / PRHODJ(:,:,IKE))
+ELSE ! atmosp bottom
   !*In 3D, a part of the flux goes vertically,
   ! and another goes horizontally (in presence of slopes)
   !*In 1D, part of energy released in horizontal flux is taken into account in the vertical part
@@ -549,17 +543,14 @@ ELSE  ! No coupling O and A cases
                        / PDIRCOSZW(:,:)                       &
                        * 0.5 * (1. + PRHODJ(:,:,KKA) / PRHODJ(:,:,IKB))
   END IF
-!
-  IF (OOCEAN) THEN
-    ZF(:,:,IKE) = XSSTFL(:,:) *0.5*(1. + PRHODJ(:,:,KKU) / PRHODJ(:,:,IKE))
-  ELSE !end ocean case (in nocoupled case)
     ! atmos top
 #ifdef REPRO48
 #else
       ZF(:,:,IKE)=0.
+      !TODO merge : the following solution must be kept :
+      !ZF(:,:,IKE+1)=0.
 #endif
   END IF
-END IF !end no coupled cases
 !
 ! Compute the split conservative potential temperature at t+deltat
 CALL TRIDIAG_THERMO(KKA,KKU,KKL,PTHLM,ZF,ZDFDDTDZ,PTSTEP,PIMPL,PDZZ,&
@@ -583,7 +574,7 @@ PRTHLS(:,:,:)= PRTHLS(:,:,:)  + ZRWTHL(:,:,:)
 !
 !*       2.2  Partial Thermal Production
 !
-!  Conservative potential temperature flux : 
+!  Conservative potential temperature flux :
 !
 ZFLXZ(:,:,:)   = ZF                                                &
                + PIMPL * ZDFDDTDZ * DZM(PTHLP - PTHLM, KKA, KKU, KKL) / PDZZ
@@ -594,21 +585,22 @@ IF (LHGRAD) THEN
  END WHERE
 END IF
 !
-ZFLXZ(:,:,KKA) = ZFLXZ(:,:,IKB) 
 IF (OOCEAN) THEN
-  ZFLXZ(:,:,KKU) = ZFLXZ(:,:,IKE)
+  ZFLXZ(:,:,IKE+1) = ZFLXZ(:,:,IKE)
+ELSE ! ATMOS
+  ZFLXZ(:,:,KKA) = ZFLXZ(:,:,IKB) 
 END IF
-!  
+!
 DO JK=IKTB+1,IKTE-1
   PWTH(:,:,JK)=0.5*(ZFLXZ(:,:,JK)+ZFLXZ(:,:,JK+KKL))
 END DO
 !
-PWTH(:,:,IKB)=0.5*(ZFLXZ(:,:,IKB)+ZFLXZ(:,:,IKB+KKL)) 
+PWTH(:,:,IKB)=0.5*(ZFLXZ(:,:,IKB)+ZFLXZ(:,:,IKB+KKL))
 !
 IF (OOCEAN) THEN
   PWTH(:,:,IKE)=0.5*(ZFLXZ(:,:,IKE)+ZFLXZ(:,:,IKE+KKL))
   PWTH(:,:,KKA)=0. 
-  PWTH(:,:,KKU)=ZFLXZ(:,:,KKU)
+  PWTH(:,:,KKU)=PWTH(:,:,IKE)! not used
 ELSE
   PWTH(:,:,KKA)=0.5*(ZFLXZ(:,:,KKA)+ZFLXZ(:,:,KKA+KKL))
   PWTH(:,:,IKE)=PWTH(:,:,IKE-KKL)
@@ -640,19 +632,19 @@ ELSE
   ELSE
     PTP(:,:,:)=  PBETA * MZF( ZFLXZ,KKA, KKU, KKL )
   END IF
-END IF 
+END IF
 !
 ! Buoyancy flux at flux points
-! 
+!
 PWTHV = MZM(PETHETA, KKA, KKU, KKL) * ZFLXZ
 PWTHV(:,:,IKB) = PETHETA(:,:,IKB) * ZFLXZ(:,:,IKB)
 !
 IF (OOCEAN) THEN
-  ! temperature contribution to Buy flux     
+  ! temperature contribution to Buy flux
   PWTHV(:,:,IKE) = PETHETA(:,:,IKE) * ZFLXZ(:,:,IKE)
 END IF
 !*       2.3  Partial vertical divergence of the < Rc w > flux
-! Correction for qc and qi negative in AROME 
+! Correction for qc and qi negative in AROME
 IF(CPROGRAM/='AROME  ') THEN
  IF ( KRRL >= 1 ) THEN
    IF ( KRRI >= 1 ) THEN
@@ -670,16 +662,16 @@ IF(CPROGRAM/='AROME  ') THEN
 END IF
 !
 !*       2.4  Storage in LES configuration
-! 
+!
 IF (LLES_CALL) THEN
   CALL SECOND_MNH(ZTIME1)
-  CALL LES_MEAN_SUBGRID(MZF(ZFLXZ, KKA, KKU, KKL), X_LES_SUBGRID_WThl ) 
+  CALL LES_MEAN_SUBGRID(MZF(ZFLXZ, KKA, KKU, KKL), X_LES_SUBGRID_WThl )
   CALL LES_MEAN_SUBGRID(MZF(PWM*ZFLXZ, KKA, KKU, KKL), X_LES_RES_W_SBG_WThl )
   CALL LES_MEAN_SUBGRID(GZ_W_M(PWM,PDZZ, KKA, KKU, KKL)*MZF(ZFLXZ, KKA, KKU, KKL),&
       & X_LES_RES_ddxa_W_SBG_UaThl )
   CALL LES_MEAN_SUBGRID(MZF(PDTH_DZ*ZFLXZ, KKA, KKU, KKL), X_LES_RES_ddxa_Thl_SBG_UaThl )
-  CALL LES_MEAN_SUBGRID(-XCTP*PSQRT_TKE/PLM*MZF(ZFLXZ, KKA, KKU, KKL), X_LES_SUBGRID_ThlPz ) 
-  CALL LES_MEAN_SUBGRID(MZF(MZM(PETHETA, KKA, KKU, KKL)*ZFLXZ, KKA, KKU, KKL), X_LES_SUBGRID_WThv ) 
+  CALL LES_MEAN_SUBGRID(-XCTP*PSQRT_TKE/PLM*MZF(ZFLXZ, KKA, KKU, KKL), X_LES_SUBGRID_ThlPz )
+  CALL LES_MEAN_SUBGRID(MZF(MZM(PETHETA, KKA, KKU, KKL)*ZFLXZ, KKA, KKU, KKL), X_LES_SUBGRID_WThv )
   IF (KRR>=1) THEN
     CALL LES_MEAN_SUBGRID(MZF(PDR_DZ*ZFLXZ, KKA, KKU, KKL), X_LES_RES_ddxa_Rt_SBG_UaThl )
   END IF
@@ -690,21 +682,21 @@ IF (LLES_CALL) THEN
   ZA(:,:,IKB) = XCSHF*PPHI3(:,:,IKB)*ZKEFF(:,:,IKB)
   ZA = MZF(ZA, KKA, KKU, KKL)
   ZA = MIN(MAX(ZA,-1000.),1000.)
-  CALL LES_MEAN_SUBGRID( ZA, X_LES_SUBGRID_Kh   ) 
+  CALL LES_MEAN_SUBGRID( ZA, X_LES_SUBGRID_Kh   )
   !
   CALL SECOND_MNH(ZTIME2)
   XTIME_LES = XTIME_LES + ZTIME2 - ZTIME1
 END IF
 !
 !*       2.5  New boundary layer depth for TOMs
-! 
+!
 IF (HTOM=='TM06') CALL TM06_H(IKB,IKTB,IKTE,PTSTEP,PZZ,ZFLXZ,PBL_DEPTH)
 !
 !----------------------------------------------------------------------------
 !
 !
-!*       3.   SOURCES OF CONSERVATIVE AND CLOUD MIXING RATIO AND 
-!                                        COMPLETE THERMAL PRODUCTION 
+!*       3.   SOURCES OF CONSERVATIVE AND CLOUD MIXING RATIO AND
+!                                        COMPLETE THERMAL PRODUCTION
 !             ------------------------------------------------------
 !
 !*       3.1  Splitted value for cons. mixing ratio at t+deltat
@@ -755,7 +747,7 @@ IF (KRR /= 0) THEN
   IF (GFWTH) THEN
     ZF       = ZF       + M3_WR_W2TH(KKA,KKU,KKL,PD,ZKEFF,&
      & PTKEM,PBLL_O_E,PETHETA,PDR_DZ) * PFWTH
-    ZDFDDRDZ = ZDFDDRDZ + D_M3_WR_W2TH_O_DDRDZ(KKA,KKU,KKL,PREDR1,PREDTH1,& 
+    ZDFDDRDZ = ZDFDDRDZ + D_M3_WR_W2TH_O_DDRDZ(KKA,KKU,KKL,PREDR1,PREDTH1,&
      & PD,ZKEFF,PTKEM,PBLL_O_E,PETHETA) * PFWTH
   END IF
   !
@@ -777,17 +769,12 @@ IF (KRR /= 0) THEN
      & PREDTH1,PD,PBLL_O_E,PEMOIST) * MZM(PFTHR, KKA, KKU, KKL)
   END IF
   !
-  ! compute interface flux
-  IF (LCOUPLES) THEN   ! coupling NH O-A
-    IF (OOCEAN) THEN    ! ocean model in coupled case
-      ! evap effect on salinity to be added later !!!
-      ZF(:,:,IKE) =  0.
-    ELSE                ! atmosph model in coupled case
-      ZF(:,:,IKB) =  0.
-      ! AJOUTER FLUX EVAP SUR MODELE ATMOS
-    ENDIF
-  !
-  ELSE  ! No coupling NH OA case
+   !special case at sfc
+    IF (OOCEAN) THEN
+      ! General ocean case
+      ! salinity/evap effect to be added later !!!!!
+      ZF(:,:,IKE) = 0.
+    ELSE ! atmosp case 
     ! atmosp bottom
     !* in 3DIM case, a part of the flux goes vertically, and another goes horizontally
     ! (in presence of slopes)
@@ -803,19 +790,12 @@ IF (KRR /= 0) THEN
                          / PDIRCOSZW(:,:)                       &
                          * 0.5 * (1. + PRHODJ(:,:,KKA) / PRHODJ(:,:,IKB))
     END IF
-    !
-    IF (OOCEAN) THEN
-      ! General ocean case
-      ! salinity/evap effect to be added later !!!!!
-      ZF(:,:,IKE) = 0.
-    ELSE !end ocean case (in nocoupled case)
       ! atmos top
 #ifdef REPRO48
 #else
       ZF(:,:,IKE)=0.
 #endif
     END IF
-  END IF!end no coupled cases
   ! Compute the split conservative potential temperature at t+deltat
   CALL TRIDIAG_THERMO(KKA,KKU,KKL,PRM(:,:,:,1),ZF,ZDFDDRDZ,PTSTEP,PIMPL,&
                       PDZZ,PRHODJ,PRP)
@@ -841,7 +821,7 @@ IF (KRR /= 0) THEN
   ! cons. mixing ratio flux :
   !
   ZFLXZ(:,:,:)   = ZF                                                &
-                 + PIMPL * ZDFDDRDZ * DZM(PRP - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ 
+                 + PIMPL * ZDFDDRDZ * DZM(PRP - PRM(:,:,:,1), KKA, KKU, KKL) / PDZZ
   !
   ! replace the flux by the Leonard terms above ZALT and ZCLD_THOLD
   IF (LHGRAD) THEN
@@ -850,15 +830,25 @@ IF (KRR /= 0) THEN
    END WHERE
   END IF
   !
-  ZFLXZ(:,:,KKA) = ZFLXZ(:,:,IKB) 
+  ZFLXZ(:,:,KKA) = ZFLXZ(:,:,IKB)
+  !
+  IF (OOCEAN) THEN
+    ZFLXZ(:,:,KKU) = ZFLXZ(:,:,IKE)
+  END IF
   !
   DO JK=IKTB+1,IKTE-1
    PWRC(:,:,JK)=0.5*(ZFLXZ(:,:,JK)+ZFLXZ(:,:,JK+KKL))
   END DO
   PWRC(:,:,IKB)=0.5*(ZFLXZ(:,:,IKB)+ZFLXZ(:,:,IKB+KKL))
-  PWRC(:,:,KKA)=0.5*(ZFLXZ(:,:,KKA)+ZFLXZ(:,:,KKA+KKL))
-  PWRC(:,:,IKE)=PWRC(:,:,IKE-KKL)
   !
+  IF (OOCEAN) THEN
+    PWRC(:,:,IKE)=0.5*(ZFLXZ(:,:,IKE)+ZFLXZ(:,:,IKE+KKL))
+    PWRC(:,:,KKA)=0.
+    PWRC(:,:,IKE+1)=ZFLXZ(:,:,IKE+1)
+  ELSE
+    PWRC(:,:,KKA)=0.5*(ZFLXZ(:,:,KKA)+ZFLXZ(:,:,KKA+KKL))
+    PWRC(:,:,IKE)=PWRC(:,:,IKE-KKL)
+  ENDIF
   !
   IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN
     ! stores the conservative mixing ratio vertical flux
@@ -886,12 +876,12 @@ IF (KRR /= 0) THEN
   END IF
   !
   ! Buoyancy flux at flux points
-  ! 
+  !
   PWTHV          = PWTHV          + MZM(PEMOIST, KKA, KKU, KKL) * ZFLXZ
   PWTHV(:,:,IKB) = PWTHV(:,:,IKB) + PEMOIST(:,:,IKB) * ZFLXZ(:,:,IKB)
   IF (OOCEAN) THEN
     PWTHV(:,:,IKE) = PWTHV(:,:,IKE) + PEMOIST(:,:,IKE)* ZFLXZ(:,:,IKE)
-  END IF   
+  END IF
 !
 !*       3.3  Complete vertical divergence of the < Rc w > flux
 ! Correction of qc and qi negative for AROME
@@ -912,17 +902,17 @@ IF(CPROGRAM/='AROME  ') THEN
 END IF
 !
 !*       3.4  Storage in LES configuration
-! 
+!
   IF (LLES_CALL) THEN
     CALL SECOND_MNH(ZTIME1)
-    CALL LES_MEAN_SUBGRID(MZF(ZFLXZ, KKA, KKU, KKL), X_LES_SUBGRID_WRt ) 
+    CALL LES_MEAN_SUBGRID(MZF(ZFLXZ, KKA, KKU, KKL), X_LES_SUBGRID_WRt )
     CALL LES_MEAN_SUBGRID(MZF(PWM*ZFLXZ, KKA, KKU, KKL), X_LES_RES_W_SBG_WRt )
     CALL LES_MEAN_SUBGRID(GZ_W_M(PWM,PDZZ, KKA, KKU, KKL)*MZF(ZFLXZ, KKA, KKU, KKL),&
     & X_LES_RES_ddxa_W_SBG_UaRt )
     CALL LES_MEAN_SUBGRID(MZF(PDTH_DZ*ZFLXZ, KKA, KKU, KKL), X_LES_RES_ddxa_Thl_SBG_UaRt )
     CALL LES_MEAN_SUBGRID(MZF(PDR_DZ*ZFLXZ, KKA, KKU, KKL), X_LES_RES_ddxa_Rt_SBG_UaRt )
-    CALL LES_MEAN_SUBGRID(MZF(MZM(PEMOIST, KKA, KKU, KKL)*ZFLXZ, KKA, KKU, KKL), X_LES_SUBGRID_WThv , .TRUE. ) 
-    CALL LES_MEAN_SUBGRID(-XCTP*PSQRT_TKE/PLM*MZF(ZFLXZ, KKA, KKU, KKL), X_LES_SUBGRID_RtPz ) 
+    CALL LES_MEAN_SUBGRID(MZF(MZM(PEMOIST, KKA, KKU, KKL)*ZFLXZ, KKA, KKU, KKL), X_LES_SUBGRID_WThv , .TRUE. )
+    CALL LES_MEAN_SUBGRID(-XCTP*PSQRT_TKE/PLM*MZF(ZFLXZ, KKA, KKU, KKL), X_LES_SUBGRID_RtPz )
     CALL SECOND_MNH(ZTIME2)
     XTIME_LES = XTIME_LES + ZTIME2 - ZTIME1
   END IF
@@ -936,28 +926,28 @@ END IF
 !             -------------------------------
 !
 !
-!*       4.1  <w Rc>    
+!*       4.1  <w Rc>
 !
 IF ( ((OTURB_FLX .AND. TPFILE%LOPENED) .OR. LLES_CALL) .AND. (KRRL > 0) ) THEN
-!  
-! recover the Conservative potential temperature flux : 
+!
+! recover the Conservative potential temperature flux :
 ! With LHARAT is true tke and length scales at half levels
 ! yet modify to use length scale and tke at half levels from vdfexcuhl
  IF (LHARAT) THEN
   ZA(:,:,:)   = DZM(PIMPL * PTHLP + PEXPL * PTHLM, KKA, KKU, KKL) / PDZZ *       &
-                  (-PLM*PSQRT_TKE) 
+                  (-PLM*PSQRT_TKE)
  ELSE
   ZA(:,:,:)   = DZM(PIMPL * PTHLP + PEXPL * PTHLM, KKA, KKU, KKL) / PDZZ *       &
-                  (-PPHI3*MZM(PLM*PSQRT_TKE, KKA, KKU, KKL)) * XCSHF 
+                  (-PPHI3*MZM(PLM*PSQRT_TKE, KKA, KKU, KKL)) * XCSHF
  ENDIF
   ZA(:,:,IKB) = ( PIMPL*PSFTHP(:,:) + PEXPL*PSFTHM(:,:) ) &
                * PDIRCOSZW(:,:)
-  !  
+  !
   ! compute <w Rc>
   ZFLXZ(:,:,:) = MZM(PAMOIST * 2.* PSRCM, KKA, KKU, KKL) * ZFLXZ(:,:,:) + &
                  MZM(PATHETA * 2.* PSRCM, KKA, KKU, KKL) * ZA(:,:,:)
-  ZFLXZ(:,:,KKA) = ZFLXZ(:,:,IKB) 
-  !                 
+  ZFLXZ(:,:,KKA) = ZFLXZ(:,:,IKB)
+  !
   ! store the liquid water mixing ratio vertical flux
   IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN
     TZFIELD%CMNHNAME   = 'RCW_FLX'
@@ -972,12 +962,12 @@ IF ( ((OTURB_FLX .AND. TPFILE%LOPENED) .OR. LLES_CALL) .AND. (KRRL > 0) ) THEN
     TZFIELD%LTIMEDEP   = .TRUE.
     CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ)
   END IF
-  !  
+  !
 ! and we store in LES configuration this subgrid flux <w'rc'>
 !
   IF (LLES_CALL) THEN
     CALL SECOND_MNH(ZTIME1)
-    CALL LES_MEAN_SUBGRID( MZF(ZFLXZ, KKA, KKU, KKL), X_LES_SUBGRID_WRc ) 
+    CALL LES_MEAN_SUBGRID( MZF(ZFLXZ, KKA, KKU, KKL), X_LES_SUBGRID_WRc )
     CALL SECOND_MNH(ZTIME2)
     XTIME_LES = XTIME_LES + ZTIME2 - ZTIME1
   END IF
diff --git a/src/common/turb/turb.F90 b/src/common/turb/turb.F90
index f66202783fd688fb91f30dedf586653e4e546d11..ace7ca393fe23c64b35fe4fea93090cee9c6cd75 100644
--- a/src/common/turb/turb.F90
+++ b/src/common/turb/turb.F90
@@ -24,26 +24,26 @@
               & PEDR,PLEM,PRTKEMS,PTPMF,                              &
               & PDRUS_TURB,PDRVS_TURB,                                &
               & PDRTHLS_TURB,PDRRTS_TURB,PDRSVS_TURB,PTR,PDISS,       &
-              & PCURRENT_TKE_DISS                                     ) 
+              & PCURRENT_TKE_DISS                                     )
 !     #################################################################
 !
 !
 !!****  *TURB* - computes the turbulent source terms for the prognostic
-!!               variables. 
+!!               variables.
 !!
 !!    PURPOSE
 !!    -------
-!!****  The purpose of this routine is to compute the source terms in 
-!!    the evolution equations due to the turbulent mixing. 
+!!****  The purpose of this routine is to compute the source terms in
+!!    the evolution equations due to the turbulent mixing.
 !!      The source term is computed as the divergence of the turbulent fluxes.
 !!    The cartesian fluxes are obtained by a one and a half order closure, based
-!!    on a prognostic equation for the Turbulence Kinetic Energy( TKE ). The 
-!!    system is closed by prescribing a turbulent mixing length. Different 
-!!    choices are available for this length. 
+!!    on a prognostic equation for the Turbulence Kinetic Energy( TKE ). The
+!!    system is closed by prescribing a turbulent mixing length. Different
+!!    choices are available for this length.
 !
 !!**  METHOD
 !!    ------
-!!    
+!!
 !!      The dimensionality of the turbulence parameterization can be chosen by
 !!    means of the parameter HTURBDIM:
 !!           * HTURBDIM='1DIM' the parameterization is 1D but can be used in
@@ -51,7 +51,7 @@
 !!    turbulent fluxes are taken into account.
 !!           *  HTURBDIM='3DIM' the parameterization is fully 2D or 3D depending
 !!    on the model  dimensionality. Of course, it does not make any sense to
-!!    activate this option with a 1D model. 
+!!    activate this option with a 1D model.
 !!
 !!      The following steps are made:
 !!      1- Preliminary computations.
@@ -62,39 +62,39 @@
 !!             original level of an air particule having an initial internal
 !!             energy equal to its TKE and stopped by the buoyancy forces.
 !!             The discrete formulation is second order accurate.
-!!           * HTURBLEN='DELT' the mixing length is given by the mesh size 
-!!             depending on the model dimensionality, this length is limited 
+!!           * HTURBLEN='DELT' the mixing length is given by the mesh size
+!!             depending on the model dimensionality, this length is limited
 !!             with the ground distance.
-!!           * HTURBLEN='DEAR' the mixing length is given by the mesh size 
-!!             depending on the model dimensionality, this length is limited 
+!!           * HTURBLEN='DEAR' the mixing length is given by the mesh size
+!!             depending on the model dimensionality, this length is limited
 !!             with the ground distance and also by the Deardorff mixing length
 !!             pertinent in the stable cases.
-!!           * HTURBLEN='KEPS' the mixing length is deduced from the TKE 
+!!           * HTURBLEN='KEPS' the mixing length is deduced from the TKE
 !!             dissipation, which becomes a prognostic variable of the model (
-!!             Duynkerke formulation).   
+!!             Duynkerke formulation).
 !!      3'- The cloud mixing length is computed according to HTURBLEN_CLOUD
 !!             and emphasized following the CEI index
 !!      4- The conservative variables are computed along with Lv/Cp.
 !!      5- The turbulent Prandtl numbers are computed from the resolved fields
-!!         and TKE 
+!!         and TKE
 !!      6- The sources associated to the vertical turbulent fluxes are computed
-!!      with a temporal scheme allowing a degree of implicitness given by 
+!!      with a temporal scheme allowing a degree of implicitness given by
 !!      PIMPL, varying from PIMPL=0. ( purely explicit scheme) to PIMPL=1.
 !!      ( purely implicit scheme)
 !!      The sources associated to the horizontal fluxes are computed with a
 !!      purely explicit temporal scheme. These sources are only computed when
 !!      the turbulence parameterization is 2D or 3D( HTURBDIM='3DIM' ).
-!!      7- The sources for TKE are computed, along with the dissipation of TKE 
+!!      7- The sources for TKE are computed, along with the dissipation of TKE
 !!      if HTURBLEN='KEPS'.
-!!      8- Some turbulence-related quantities are stored in the synchronous 
+!!      8- Some turbulence-related quantities are stored in the synchronous
 !!      FM-file.
-!!      9- The non-conservative variables are retrieved.  
-!!    
-!!      
+!!      9- The non-conservative variables are retrieved.
+!!
+!!
 !!      The saving of the fields in the synchronous FM-file is controlled by:
 !!        * OTURB_FLX => saves all the turbulent fluxes and correlations
 !!        * OTURB_DIAG=> saves the turbulent Prandtl and Schmidt numbers, the
-!!                       source terms of TKE and dissipation of TKE 
+!!                       source terms of TKE and dissipation of TKE
 !!
 !!    EXTERNAL
 !!    --------
@@ -121,24 +121,24 @@
 !!
 !!       MODD_CTURB : contains turbulence scheme constants
 !!                    XCMFS,XCED       to compute the dissipation mixing length
-!!                    XTKEMIN  minimum values for the TKE 
-!!                    XLINI,XLINF      to compute Bougeault-Lacarrere mixing 
+!!                    XTKEMIN  minimum values for the TKE
+!!                    XLINI,XLINF      to compute Bougeault-Lacarrere mixing
 !!                                     length
 !!      Module MODD_BUDGET:
-!!         NBUMOD  
-!!         CBUTYPE 
-!!         LBU_RU     
-!!         LBU_RV     
-!!         LBU_RW     
-!!         LBU_RTH    
-!!         LBU_RSV1   
-!!         LBU_RRV    
-!!         LBU_RRC    
-!!         LBU_RRR    
-!!         LBU_RRI    
-!!         LBU_RRS    
-!!         LBU_RRG    
-!!         LBU_RRH    
+!!         NBUMOD
+!!         CBUTYPE
+!!         LBU_RU
+!!         LBU_RV
+!!         LBU_RW
+!!         LBU_RTH
+!!         LBU_RSV1
+!!         LBU_RRV
+!!         LBU_RRC
+!!         LBU_RRR
+!!         LBU_RRI
+!!         LBU_RRS
+!!         LBU_RRG
+!!         LBU_RRH
 !!
 !!    REFERENCE
 !!    ---------
@@ -152,11 +152,11 @@
 !!    MODIFICATIONS
 !!    -------------
 !!      Original         05/10/94
-!!      Modifications: Feb 14, 1995 (J.Cuxart and J.Stein) 
+!!      Modifications: Feb 14, 1995 (J.Cuxart and J.Stein)
 !!                                  Doctorization and Optimization
-!!      Modifications: March 21, 1995 (J.M. Carriere) 
+!!      Modifications: March 21, 1995 (J.M. Carriere)
 !!                                  Introduction of cloud water
-!!      Modifications: June   1, 1995 (J.Cuxart     ) 
+!!      Modifications: June   1, 1995 (J.Cuxart     )
 !!                                  take min(Kz,delta)
 !!      Modifications: June   1, 1995 (J.Stein J.Cuxart)
 !!                                  remove unnecessary arrays and change Prandtl
@@ -164,18 +164,18 @@
 !!      Modifications: July  20, 1995 (J.Stein) remove MODI_ground_ocean +
 !!                                TZDTCUR + MODD_TIME because they are not used
 !!                                change RW in RNP for the outputs
-!!      Modifications: August 21, 1995 (Ph. Bougeault)   
+!!      Modifications: August 21, 1995 (Ph. Bougeault)
 !!                                  take min(K(z-zsol),delta)
 !!      Modifications: Sept 14, 1995 (Ph Bougeault, J. Cuxart)
-!!         second order BL89 mixing length computations + add Deardorff length 
+!!         second order BL89 mixing length computations + add Deardorff length
 !!         in the Delta case for stable cases
 !!      Modifications: Sept 19, 1995 (J. Stein, J. Cuxart)
 !!         define a DEAR case for the mixing length, add MODI_BUDGET and change
 !!         some BUDGET calls, add LES tools
 !!      Modifications: Oct  16, 1995 (J. Stein) change the budget calls
-!!      Modifications: Feb  28, 1996 (J. Stein) optimization + 
+!!      Modifications: Feb  28, 1996 (J. Stein) optimization +
 !!                                              remove min(K(z-zsol),delta)+
-!!                                              bug in the tangential fluxes 
+!!                                              bug in the tangential fluxes
 !!      Modifications: Oct  16, 1996 (J. Stein) change the subgrid condensation
 !!                                              scheme + temporal discretization
 !!      Modifications: Dec  19, 1996 (J.-P. Pinty) update the budget calls
@@ -198,7 +198,7 @@
 !!                     Feb 20, 2003 (J.-P. Pinty) Add reversible ice processes
 !!                     May,26  2004 (P Jabouille) coef for computing dissipative heating
 !!                     Sept 2004 (M.Tomasini) Cloud Mixing length modification
-!!                                            following the instability 
+!!                                            following the instability
 !!                                            criterium CEI calculated in modeln
 !!                     May   2006    Remove KEPS
 !!                     Sept.2006 (I.Sandu): Modification of the stability criterion for
@@ -220,6 +220,7 @@
 !  P. Wautelet 05/2016-04/2018: new data structures and calls for I/O
 !  Q. Rodier      01/2018: introduction of RM17
 !  P. Wautelet 20/05/2019: add name argument to ADDnFIELD_ll + new ADD4DFIELD_ll subroutine
+!!                     June 2019 (Wim de Rooy)  update statistical cloud scheme
 !  P. Wautelet    02/2020: use the new data structures and subroutines for budgets
 !  B. Vie         03/2020: LIMA negativity checks after turbulence, advection and microphysics budgets
 !  P. Wautelet 11/06/2020: bugfix: correct PRSVS array indices
@@ -283,10 +284,10 @@ IMPLICIT NONE
 !
 !
 !
-INTEGER,                INTENT(IN)   :: KKA           !near ground array index  
+INTEGER,                INTENT(IN)   :: KKA           !near ground array index
 INTEGER,                INTENT(IN)   :: KKU           !uppest atmosphere array index
 INTEGER,                INTENT(IN)   :: KKL           !vert. levels type 1=MNH -1=ARO
-INTEGER,                INTENT(IN)   :: KMI           ! model index number  
+INTEGER,                INTENT(IN)   :: KMI           ! model index number
 INTEGER,                INTENT(IN)   :: KRR           ! number of moist var.
 INTEGER,                INTENT(IN)   :: KRRL          ! number of liquid water var.
 INTEGER,                INTENT(IN)   :: KRRI          ! number of ice water var.
@@ -297,7 +298,7 @@ LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
                                  ! turbulent fluxes in the syncronous FM-file
 LOGICAL,                INTENT(IN)   ::  OTURB_DIAG   ! switch to write some
                                  ! diagnostic fields in the syncronous FM-file
-LOGICAL,                INTENT(IN)   ::  OSUBG_COND   ! switch for SUBGrid 
+LOGICAL,                INTENT(IN)   ::  OSUBG_COND   ! switch for SUBGrid
                                  ! CONDensation
 LOGICAL,                INTENT(IN)   ::  ORMC01       ! switch for RMC01 lengths in SBL
 LOGICAL,                INTENT(IN)   ::  OOCEAN       ! switch for Ocean model version
@@ -309,12 +310,12 @@ CHARACTER(LEN=4),       INTENT(IN)   ::  HTOM         ! kind of Third Order Mome
 CHARACTER(LEN=4),       INTENT(IN)   ::  HTURBLEN_CL  ! kind of cloud mixing length
 REAL,                   INTENT(IN)   ::  PIMPL        ! degree of implicitness
 CHARACTER (LEN=4),      INTENT(IN)   ::  HCLOUD       ! Kind of microphysical scheme
-REAL,                   INTENT(IN)   ::  PTSTEP       ! timestep 
+REAL,                   INTENT(IN)   ::  PTSTEP       ! timestep
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
 !
 REAL, DIMENSION(:,:,:), INTENT(IN)   :: PDXX,PDYY,PDZZ,PDZX,PDZY
                                         ! metric coefficients
-REAL, DIMENSION(:,:,:), INTENT(IN)   :: PZZ       !  physical distance 
+REAL, DIMENSION(:,:,:), INTENT(IN)   :: PZZ       !  physical distance
 ! between 2 succesive grid points along the K direction
 REAL, DIMENSION(:,:),   INTENT(IN)      ::  PDIRCOSXW, PDIRCOSYW, PDIRCOSZW
 ! Director Cosinus along x, y and z directions at surface w-point
@@ -328,11 +329,11 @@ REAL, DIMENSION(:,:,:), INTENT(IN)      ::  PTHVREF   ! Virtual Potential
                                         ! Temperature of the reference state
 !
 REAL, DIMENSION(:,:),   INTENT(IN)      ::  PSFTH,PSFRV,   &
-! normal surface fluxes of theta and Rv 
+! normal surface fluxes of theta and Rv
                                             PSFU,PSFV
 ! normal surface fluxes of (u,v) parallel to the orography
 REAL, DIMENSION(:,:,:), INTENT(IN)      ::  PSFSV
-! normal surface fluxes of Scalar var. 
+! normal surface fluxes of Scalar var.
 !
 !    prognostic variables at t- deltat
 REAL, DIMENSION(:,:,:),   INTENT(IN) ::  PPABST      ! Pressure at time t
@@ -346,7 +347,7 @@ REAL, DIMENSION(:,:),     INTENT(INOUT) :: PSBL_DEPTH ! SBL depth for RMC01
 !
 !    variables for cloud mixing length
 REAL, DIMENSION(:,:,:), INTENT(IN)      ::  PCEI ! Cloud Entrainment instability
-                                                 ! index to emphasize localy 
+                                                 ! index to emphasize localy
                                                  ! turbulent fluxes
 REAL, INTENT(IN)      ::  PCEI_MIN ! minimum threshold for the instability index CEI
 REAL, INTENT(IN)      ::  PCEI_MAX ! maximum threshold for the instability index CEI
@@ -354,10 +355,10 @@ REAL, INTENT(IN)      ::  PCOEF_AMPL_SAT ! saturation of the amplification coeff
 !
 !   thermodynamical variables which are transformed in conservative var.
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) ::  PTHLT       ! conservative pot. temp.
-REAL, DIMENSION(:,:,:,:), INTENT(INOUT) ::  PRT         ! water var.  where 
-                             ! PRT(:,:,:,1) is the conservative mixing ratio        
+REAL, DIMENSION(:,:,:,:), INTENT(INOUT) ::  PRT         ! water var.  where
+                             ! PRT(:,:,:,1) is the conservative mixing ratio
 !
-! sources of momentum, conservative potential temperature, Turb. Kin. Energy, 
+! sources of momentum, conservative potential temperature, Turb. Kin. Energy,
 ! TKE dissipation
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) ::  PRUS,PRVS,PRWS,PRTHLS,PRTKES
 ! Source terms for all water kinds, PRRS(:,:,:,1) is used for the conservative
@@ -366,7 +367,7 @@ REAL, DIMENSION(:,:,:),   INTENT(IN),OPTIONAL    ::  PRTKEMS
 REAL, DIMENSION(:,:,:,:), INTENT(INOUT) ::  PRRS
 ! Source terms for all passive scalar variables
 REAL, DIMENSION(:,:,:,:), INTENT(INOUT) ::  PRSVS
-! Sigma_s at time t+1 : square root of the variance of the deviation to the 
+! Sigma_s at time t+1 : square root of the variance of the deviation to the
 ! saturation
 REAL, DIMENSION(:,:,:), INTENT(OUT)     ::  PSIGS
 REAL, DIMENSION(:,:,:), INTENT(OUT),OPTIONAL     ::  PDRUS_TURB   ! evolution of rhoJ*U   by turbulence only
@@ -374,7 +375,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT),OPTIONAL     ::  PDRVS_TURB   ! evolution of
 REAL, DIMENSION(:,:,:), INTENT(OUT),OPTIONAL     ::  PDRTHLS_TURB ! evolution of rhoJ*thl by turbulence only
 REAL, DIMENSION(:,:,:), INTENT(OUT),OPTIONAL     ::  PDRRTS_TURB  ! evolution of rhoJ*rt  by turbulence only
 REAL, DIMENSION(:,:,:,:), INTENT(OUT),OPTIONAL   ::  PDRSVS_TURB  ! evolution of rhoJ*Sv  by turbulence only
-REAL, DIMENSION(:,:,:), INTENT(IN)      ::  PFLXZTHVMF 
+REAL, DIMENSION(:,:,:), INTENT(IN)      ::  PFLXZTHVMF
 !                                           MF contribution for vert. turb. transport
 !                                           used in the buoy. prod. of TKE
 REAL, DIMENSION(:,:,:), INTENT(OUT)  :: PWTH       ! heat flux
@@ -412,7 +413,7 @@ REAL, DIMENSION(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)) ::     &
           ZLOCPEXNM,                  &  ! Lv/Cp/EXNREF at t-1
           ZLM,ZLMW,                   &  ! Turbulent mixing length (+ work array)
           ZLEPS,                      &  ! Dissipative length
-          ZTRH,                       &  ! 
+          ZTRH,                       &  !
           ZATHETA,ZAMOIST,            &  ! coefficients for s = f (Thetal,Rnp)
           ZCOEF_DISS,                 &  ! 1/(Cph*Exner) for dissipative heating
           ZFRAC_ICE,                  &  ! ri fraction of rc+ri
@@ -420,15 +421,15 @@ REAL, DIMENSION(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)) ::     &
           ZFWTH,ZFWR,ZFTH2,ZFR2,ZFTHR,&  ! opposite of verticale derivate of 3rd order moments
           ZTHLM,ZRTKEMS                  ! initial potential temp; TKE advective source
 REAL, DIMENSION(SIZE(PRT,1),SIZE(PRT,2),SIZE(PRT,3),SIZE(PRT,4)) ::     &
-          ZRM                            ! initial mixing ratio 
+          ZRM                            ! initial mixing ratio
 REAL, DIMENSION(SIZE(PTHLT,1),SIZE(PTHLT,2)) ::  ZTAU11M,ZTAU12M,  &
                                                  ZTAU22M,ZTAU33M,  &
             ! tangential surface fluxes in the axes following the orography
                                                  ZUSLOPE,ZVSLOPE,  &
-            ! wind components at the first mass level parallel 
-            ! to the orography 
+            ! wind components at the first mass level parallel
+            ! to the orography
                                                  ZCDUEFF,          &
-            ! - Cd*||u|| where ||u|| is the module of the wind tangential to 
+            ! - Cd*||u|| where ||u|| is the module of the wind tangential to
             ! orography (ZUSLOPE,ZVSLOPE) at the surface.
                                                  ZUSTAR, ZLMO,     &
                                                  ZRVM, ZSFRV
@@ -436,7 +437,7 @@ REAL, DIMENSION(SIZE(PTHLT,1),SIZE(PTHLT,2)) ::  ZTAU11M,ZTAU12M,  &
 !
             ! Virtual Potential Temp. used
             ! in the Deardorff mixing length computation
-REAL, DIMENSION(:,:,:), ALLOCATABLE  :: &  
+REAL, DIMENSION(:,:,:), ALLOCATABLE  :: &
           ZLVOCPEXNM,ZLSOCPEXNM,      &  ! Lv/Cp/EXNREF and Ls/Cp/EXNREF at t-1
           ZATHETA_ICE,ZAMOIST_ICE        ! coefficients for s = f (Thetal,Rnp)
 !
@@ -446,12 +447,12 @@ REAL                :: ZRVORD       ! RV/RD
 INTEGER             :: IKB,IKE      ! index value for the
 ! Beginning and the End of the physical domain for the mass points
 INTEGER             :: IKT          ! array size in k direction
-INTEGER             :: IKTB,IKTE    ! start, end of k loops in physical domain 
+INTEGER             :: IKTB,IKTE    ! start, end of k loops in physical domain
 INTEGER             :: JRR,JK,JSV   ! loop counters
 INTEGER             :: JI,JJ        ! loop counters
 REAL                :: ZL0          ! Max. Mixing Length in Blakadar formula
-REAL                :: ZALPHA       ! work coefficient : 
-                                    ! - proportionnality constant between Dz/2 and 
+REAL                :: ZALPHA       ! work coefficient :
+                                    ! - proportionnality constant between Dz/2 and
 !                                   !   BL89 mixing length near the surface
 !
 REAL :: ZTIME1, ZTIME2
@@ -461,7 +462,7 @@ TYPE(TFIELDDATA) :: TZFIELD
 !*      1.PRELIMINARIES
 !         -------------
 !
-!*      1.1 Set the internal domains, ZEXPL 
+!*      1.1 Set the internal domains, ZEXPL
 !
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
@@ -474,8 +475,8 @@ IF (LHARAT .AND. LLES_CALL) THEN
   CALL ABOR1('LHARATU not implemented for option LLES_CALL')
 ENDIF
 
-IKT=SIZE(PTHLT,3)          
-IKTB=1+JPVEXT_TURB              
+IKT=SIZE(PTHLT,3)
+IKTB=1+JPVEXT_TURB
 IKTE=IKT-JPVEXT_TURB
 IKB=KKA+JPVEXT_TURB*KKL
 IKE=KKU-JPVEXT_TURB*KKL
@@ -502,11 +503,11 @@ END IF
 ZCP(:,:,:)=XCPD
 !
 IF (KRR > 0) ZCP(:,:,:) = ZCP(:,:,:) + XCPV * PRT(:,:,:,1)
-DO JRR = 2,1+KRRL                          ! loop on the liquid components  
+DO JRR = 2,1+KRRL                          ! loop on the liquid components
   ZCP(:,:,:)  = ZCP(:,:,:) + XCL * PRT(:,:,:,JRR)
 END DO
 !
-DO JRR = 2+KRRL,1+KRRL+KRRI                ! loop on the solid components   
+DO JRR = 2+KRRL,1+KRRL+KRRI                ! loop on the solid components
   ZCP(:,:,:)  = ZCP(:,:,:)  + XCI * PRT(:,:,:,JRR)
 END DO
 !
@@ -520,7 +521,7 @@ END IF
 !
 !*      2.3 dissipative heating coeff a t
 !
-ZCOEF_DISS(:,:,:) = 1/(ZCP(:,:,:) * ZEXN(:,:,:)) 
+ZCOEF_DISS(:,:,:) = 1/(ZCP(:,:,:) * ZEXN(:,:,:))
 !
 !
 ZFRAC_ICE(:,:,:) = 0.0
@@ -535,16 +536,26 @@ IF (KRRL >=1) THEN
 !
 !*       2.5 Lv/Cph/Exn
 !
-  IF ( KRRI >= 1 ) THEN 
+  IF ( KRRI >= 1 ) THEN
     ALLOCATE(ZLVOCPEXNM(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)))
     ALLOCATE(ZLSOCPEXNM(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)))
     ALLOCATE(ZAMOIST_ICE(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)))
     ALLOCATE(ZATHETA_ICE(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)))
 !
-    CALL COMPUTE_FUNCTION_THERMO(XALPW,XBETAW,XGAMW,XLVTT,XCL,ZT,ZEXN,ZCP, &
+!
+    !wc call new functions depending on statnew
+    IF (LSTATNW) THEN
+       CALL COMPUTE_FUNCTION_THERMO_NEW_STAT(XALPW,XBETAW,XGAMW,XLVTT,XCL,ZT,ZEXN,ZCP, &
                                  ZLVOCPEXNM,ZAMOIST,ZATHETA)
-    CALL COMPUTE_FUNCTION_THERMO(XALPI,XBETAI,XGAMI,XLSTT,XCI,ZT,ZEXN,ZCP, &
+       CALL COMPUTE_FUNCTION_THERMO_NEW_STAT(XALPI,XBETAI,XGAMI,XLSTT,XCI,ZT,ZEXN,ZCP, &
                                  ZLSOCPEXNM,ZAMOIST_ICE,ZATHETA_ICE)
+    ELSE
+
+      CALL COMPUTE_FUNCTION_THERMO(XALPW,XBETAW,XGAMW,XLVTT,XCL,ZT,ZEXN,ZCP, &
+                                   ZLVOCPEXNM,ZAMOIST,ZATHETA)
+      CALL COMPUTE_FUNCTION_THERMO(XALPI,XBETAI,XGAMI,XLSTT,XCI,ZT,ZEXN,ZCP, &
+                                   ZLSOCPEXNM,ZAMOIST_ICE,ZATHETA_ICE)
+    ENDIF
 !
     WHERE(PRT(:,:,:,2)+PRT(:,:,:,4)>0.0)
       ZFRAC_ICE(:,:,:) = PRT(:,:,:,4) / ( PRT(:,:,:,2)+PRT(:,:,:,4) )
@@ -560,8 +571,14 @@ IF (KRRL >=1) THEN
     DEALLOCATE(ZAMOIST_ICE)
     DEALLOCATE(ZATHETA_ICE)
   ELSE
-    CALL COMPUTE_FUNCTION_THERMO(XALPW,XBETAW,XGAMW,XLVTT,XCL,ZT,ZEXN,ZCP, &
+    !wc call new stat functions or not
+    IF (LSTATNW) THEN
+      CALL COMPUTE_FUNCTION_THERMO_NEW_STAT(XALPW,XBETAW,XGAMW,XLVTT,XCL,ZT,ZEXN,ZCP, &
                                  ZLOCPEXNM,ZAMOIST,ZATHETA)
+    ELSE
+      CALL COMPUTE_FUNCTION_THERMO(XALPW,XBETAW,XGAMW,XLVTT,XCL,ZT,ZEXN,ZCP, &
+                                   ZLOCPEXNM,ZAMOIST,ZATHETA)
+    ENDIF
   END IF
 !
 !
@@ -577,7 +594,7 @@ IF (KRRL >=1) THEN
     TZFIELD%NDIMS      = 3
     TZFIELD%LTIMEDEP   = .TRUE.
     CALL IO_FIELD_WRITE(TPFILE,TZFIELD,ZATHETA)
-! 
+!
     TZFIELD%CMNHNAME   = 'AMOIST'
     TZFIELD%CSTDNAME   = ''
     TZFIELD%CLONGNAME  = 'AMOIST'
@@ -609,7 +626,7 @@ IF ( KRRL >= 1 ) THEN
                                   - ZLSOCPEXNM(:,:,:) * PRRS(:,:,:,4)
   ELSE
     ! Rnp at t
-    PRT(:,:,:,1)  = PRT(:,:,:,1)  + PRT(:,:,:,2) 
+    PRT(:,:,:,1)  = PRT(:,:,:,1)  + PRT(:,:,:,2)
     PRRS(:,:,:,1) = PRRS(:,:,:,1) + PRRS(:,:,:,2)
     ! Theta_l at t
     PTHLT(:,:,:)  = PTHLT(:,:,:)  - ZLOCPEXNM(:,:,:) * PRT(:,:,:,2)
@@ -651,7 +668,7 @@ SELECT CASE (HTURBLEN)
     ZSHEAR = SQRT(ZDUDZ*ZDUDZ + ZDVDZ*ZDVDZ)
     CALL BL89(KKA,KKU,KKL,PZZ,PDZZ,PTHVREF,ZTHLM,KRR,ZRM,PTKET,ZSHEAR,ZLM,OOCEAN)
 !
-!*      3.3 Grey-zone combined RM17 & Deardorff mixing lengths 
+!*      3.3 Grey-zone combined RM17 & Deardorff mixing lengths
 !           --------------------------------------------------
 
   CASE ('ADAP')
@@ -663,7 +680,7 @@ SELECT CASE (HTURBLEN)
     CALL DELT(ZLMW,ODZ=.FALSE.)
     ! The minimum mixing length is chosen between Horizontal grid mesh (not taking into account the vertical grid mesh) and RM17.
     ! For large horizontal grid meshes, this is equal to RM17
-    ! For LES grid meshes, this is equivalent to Deardorff : the base mixing lentgh is the horizontal grid mesh, 
+    ! For LES grid meshes, this is equivalent to Deardorff : the base mixing lentgh is the horizontal grid mesh,
     !                      and it is limited by a stability-based length (RM17), as was done in Deardorff length (but taking into account shear as well)
     ! For grid meshes in the grey zone, then this is the smaller of the two.
     ZLM = MIN(ZLM,XCADAP*ZLMW)
@@ -743,7 +760,7 @@ IF (HTURBDIM=="3DIM") THEN
   CALL UPDATE_LM(HLBCX,HLBCY,ZLM,ZLEPS)
 END IF
 !
-!*      3.9 Mixing length correction if immersed walls 
+!*      3.9 Mixing length correction if immersed walls
 !           ------------------------------------------
 !
 IF (LIBM) THEN
@@ -771,6 +788,10 @@ ELSE
   ZUSLOPE=PUT(:,:,KKA)
   ZVSLOPE=PVT(:,:,KKA)
 END IF
+IF (OOCEAN) THEN
+    ZUSLOPE=PUT(:,:,KKU-1)
+    ZVSLOPE=PVT(:,:,KKU-1)
+END IF
 !
 !
 !*      4.2 compute the proportionality coefficient between wind and stress
@@ -780,15 +801,19 @@ ZCDUEFF(:,:) =-SQRT ( (PSFU(:,:)**2 + PSFV(:,:)**2) /               &
                     (1.E-60 + ZUSLOPE(:,:)**2 + ZVSLOPE(:,:)**2 ) )
 #else
                     (XMNH_TINY + ZUSLOPE(:,:)**2 + ZVSLOPE(:,:)**2 ) )
-#endif                      
+#endif
 !
 !*       4.6 compute the surface tangential fluxes
 !
-ZTAU11M(:,:) =2./3.*(  (1.+ (PZZ (:,:,IKB+KKL)-PZZ (:,:,IKB))  &
-                           /(PDZZ(:,:,IKB+KKL)+PDZZ(:,:,IKB))  &
-                       )   *PTKET(:,:,IKB)                   &
-                     -0.5  *PTKET(:,:,IKB+KKL)                 &
-                    )
+IF (OOCEAN) THEN
+  ZTAU11M(:,:)=0.
+ELSE
+  ZTAU11M(:,:) =2./3.*(  (1.+ (PZZ (:,:,IKB+KKL)-PZZ (:,:,IKB))  &
+                             /(PDZZ(:,:,IKB+KKL)+PDZZ(:,:,IKB))  &
+                         )   *PTKET(:,:,IKB)                   &
+                       -0.5  *PTKET(:,:,IKB+KKL)                 &
+                      )
+END IF
 ZTAU12M(:,:) =0.0
 ZTAU22M(:,:) =ZTAU11M(:,:)
 ZTAU33M(:,:) =ZTAU11M(:,:)
@@ -878,7 +903,7 @@ CALL TURB_VER(KKA,KKU,KKL,KRR, KRRL, KRRI,               &
           PTSTEP,TPFILE,                                 &
           PDXX,PDYY,PDZZ,PDZX,PDZY,PDIRCOSZW,PZZ,        &
           PCOSSLOPE,PSINSLOPE,                           &
-          PRHODJ,PTHVREF,                                &
+          PRHODJ,PTHVREF,PSFU,PSFV,                      &
           PSFTH,PSFRV,PSFSV,PSFTH,PSFRV,PSFSV,           &
           ZCDUEFF,ZTAU11M,ZTAU12M,ZTAU33M,               &
           PUT,PVT,PWT,ZUSLOPE,ZVSLOPE,PTHLT,PRT,PSVT,    &
@@ -925,8 +950,8 @@ END IF
 !
 !Les budgets des termes horizontaux de la turb sont présents dans AROME
 ! alors que ces termes ne sont pas calculés
-#ifdef REPRO48 
-#else          
+#ifdef REPRO48
+#else
 IF( HTURBDIM == '3DIM' ) THEN
 #endif
   IF( LBUDGET_U  ) CALL BUDGET_STORE_INIT( TBUDGETS(NBUDGET_U ), 'HTURB', PRUS  (:, :, :) )
@@ -1020,11 +1045,11 @@ END IF
 #endif
 !----------------------------------------------------------------------------
 !
-!*      6. EVOLUTION OF THE TKE AND ITS DISSIPATION 
+!*      6. EVOLUTION OF THE TKE AND ITS DISSIPATION
 !          ----------------------------------------
 !
-!  6.1 Contribution of mass-flux in the TKE buoyancy production if 
-!      cloud computation is not statistical 
+!  6.1 Contribution of mass-flux in the TKE buoyancy production if
+!      cloud computation is not statistical
 
 PTP = PTP + XG / PTHVREF * MZF(PFLXZTHVMF,KKA, KKU, KKL)
 IF(PRESENT(PTPMF))  PTPMF=XG / PTHVREF * MZF(PFLXZTHVMF, KKA, KKU, KKL)
@@ -1053,8 +1078,8 @@ END IF
 CALL TKE_EPS_SOURCES(KKA,KKU,KKL,KMI,PTKET,ZLM,ZLEPS,PDP,ZTRH,          &
                    & PRHODJ,PDZZ,PDXX,PDYY,PDZX,PDZY,PZZ,               &
                    & PTSTEP,PIMPL,ZEXPL,                                &
-                   & HTURBLEN,HTURBDIM,                                 &
-                   & TPFILE,OTURB_DIAG,ODIAG_IN_RUN,                    &
+                   & HTURBLEN,HTURBDIM,OOCEAN,                          &
+                   & TPFILE,OTURB_DIAG,ODIAG_IN_RUN,PSFU,PSFV,          &
                    & PTP,PRTKES,PRTHLS,ZCOEF_DISS,PTDIFF,PTDISS,ZRTKEMS,&
                    & TBUDGETS,KBUDGETS, PEDR=PEDR, PTR=PTR,PDISS=PDISS, &
                    & PCURRENT_TKE_DISS=PCURRENT_TKE_DISS                )
@@ -1077,9 +1102,9 @@ ENDIF
 !          ---------------------------------------------------------
 !
 IF ( OTURB_DIAG .AND. TPFILE%LOPENED ) THEN
-! 
+!
 ! stores the mixing length
-! 
+!
   TZFIELD%CMNHNAME   = 'LM'
   TZFIELD%CSTDNAME   = ''
   TZFIELD%CLONGNAME  = 'LM'
@@ -1129,7 +1154,7 @@ IF(PRESENT(PDRUS_TURB)) THEN
   PDRUS_TURB = PRUS - PDRUS_TURB
   PDRVS_TURB = PRVS - PDRVS_TURB
   PDRTHLS_TURB = PRTHLS - PDRTHLS_TURB
-  PDRRTS_TURB  = PRRS(:,:,:,1) - PDRRTS_TURB 
+  PDRRTS_TURB  = PRRS(:,:,:,1) - PDRRTS_TURB
   PDRSVS_TURB  = PRSVS - PDRSVS_TURB
 END IF
 !----------------------------------------------------------------------------
@@ -1149,7 +1174,7 @@ IF ( KRRL >= 1 ) THEN
     DEALLOCATE(ZLVOCPEXNM)
     DEALLOCATE(ZLSOCPEXNM)
   ELSE
-    PRT(:,:,:,1)  = PRT(:,:,:,1)  - PRT(:,:,:,2) 
+    PRT(:,:,:,1)  = PRT(:,:,:,1)  - PRT(:,:,:,2)
     PRRS(:,:,:,1) = PRRS(:,:,:,1) - PRRS(:,:,:,2)
     PTHLT(:,:,:)  = PTHLT(:,:,:)  + ZLOCPEXNM(:,:,:) * PRT(:,:,:,2)
     PRTHLS(:,:,:) = PRTHLS(:,:,:) + ZLOCPEXNM(:,:,:) * PRRS(:,:,:,2)
@@ -1333,14 +1358,14 @@ USE MODD_CST
 !
 IMPLICIT NONE
 !
-!*       0.1   Declarations of dummy arguments 
+!*       0.1   Declarations of dummy arguments
 !
 REAL,                   INTENT(IN)    :: PALP,PBETA,PGAM,PLTT,PC
 REAL, DIMENSION(:,:,:), INTENT(IN)    :: PT,PEXN,PCP
 !
 REAL, DIMENSION(:,:,:), INTENT(OUT)   :: PLOCPEXN
 REAL, DIMENSION(:,:,:), INTENT(OUT)   :: PAMOIST,PATHETA
-! 
+!
 !*       0.2   Declarations of local variables
 !
 REAL                :: ZEPS         ! XMV / XMD
@@ -1394,6 +1419,84 @@ REAL, DIMENSION(SIZE(PEXN,1),SIZE(PEXN,2),SIZE(PEXN,3)) :: ZDRVSATDT
 !
 IF (LHOOK) CALL DR_HOOK('TURB:COMPUTE_FUNCTION_THERMO',1,ZHOOK_HANDLE)
 END SUBROUTINE COMPUTE_FUNCTION_THERMO
+
+!     ########################################################################
+      SUBROUTINE COMPUTE_FUNCTION_THERMO_NEW_STAT(PALP,PBETA,PGAM,PLTT,PC,PT,PEXN,PCP,&
+                                         PLOCPEXN,PAMOIST,PATHETA            )
+!     ########################################################################
+!!
+!!****  *COMPUTE_FUNCTION_THERMO* routine to compute several thermo functions
+!
+!!    AUTHOR
+!!    ------
+!!
+!!     JP Pinty      *LA*
+!!
+!!    MODIFICATIONS
+!!    -------------
+!!      Original   24/02/03
+!!     Modified: Wim de Rooy 06-02-2019
+!!
+!-------------------------------------------------------------------------------
+!
+!*       0.    DECLARATIONS
+!              ------------
+USE MODD_CST
+!
+IMPLICIT NONE
+!
+!*       0.1   Declarations of dummy arguments
+!
+REAL, INTENT(IN)                      :: PALP,PBETA,PGAM,PLTT,PC
+REAL, DIMENSION(:,:,:), INTENT(IN)    :: PT,PEXN,PCP
+!
+REAL, DIMENSION(:,:,:), INTENT(OUT)   :: PLOCPEXN
+REAL, DIMENSION(:,:,:), INTENT(OUT)   :: PAMOIST,PATHETA
+!
+!*       0.2   Declarations of local variables
+!
+REAL                :: ZEPS         ! XMV / XMD
+REAL, DIMENSION(SIZE(PEXN,1),SIZE(PEXN,2),SIZE(PEXN,3)) :: ZRVSAT
+REAL, DIMENSION(SIZE(PEXN,1),SIZE(PEXN,2),SIZE(PEXN,3)) :: ZDRVSATDT
+!
+!-------------------------------------------------------------------------------
+!
+  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  IF (LHOOK) CALL DR_HOOK('TURB:COMPUTE_FUNCTION_THERMO_NEW_STAT',0,ZHOOK_HANDLE)
+  ZEPS = XMV / XMD
+!
+!*       1.1 Lv/Cph at  t
+!
+  PLOCPEXN(:,:,:) = ( PLTT + (XCPV-PC) *  (PT(:,:,:)-XTT) ) / PCP(:,:,:)
+!
+!*      1.2 Saturation vapor pressure at t
+!
+  ZRVSAT(:,:,:) =  EXP( PALP - PBETA/PT(:,:,:) - PGAM*ALOG( PT(:,:,:) ) )
+!
+!*      1.3 saturation  mixing ratio at t
+!
+  ZRVSAT(:,:,:) =  ZRVSAT(:,:,:) * ZEPS / ( PPABST(:,:,:) - ZRVSAT(:,:,:) )
+!
+!*      1.4 compute the saturation mixing ratio derivative (rvs')
+!
+  ZDRVSATDT(:,:,:) = ( PBETA / PT(:,:,:)  - PGAM ) / PT(:,:,:)   &
+                 * ZRVSAT(:,:,:) * ( 1. + ZRVSAT(:,:,:) / ZEPS )
+!
+!*      1.5 compute Amoist
+!
+  PAMOIST(:,:,:)=  1.0 / ( 1.0 + ZDRVSATDT(:,:,:) * PLOCPEXN(:,:,:) )
+!
+!*      1.6 compute Atheta
+!
+  PATHETA(:,:,:)= PAMOIST(:,:,:) * PEXN(:,:,:) * ZDRVSATDT(:,:,:)
+!
+!*      1.7 Lv/Cph/Exner at t-1
+!
+  PLOCPEXN(:,:,:) = PLOCPEXN(:,:,:) / PEXN(:,:,:)
+!
+IF (LHOOK) CALL DR_HOOK('TURB:COMPUTE_FUNCTION_THERMO_NEW_STAT',1,ZHOOK_HANDLE)
+END SUBROUTINE COMPUTE_FUNCTION_THERMO_NEW_STAT
+
 !
 !     ####################
       SUBROUTINE DELT(PLM,ODZ)
@@ -1415,7 +1518,7 @@ END SUBROUTINE COMPUTE_FUNCTION_THERMO
 !*       0.    DECLARATIONS
 !              ------------
 !
-!*       0.1   Declarations of dummy arguments 
+!*       0.1   Declarations of dummy arguments
 !
 REAL, DIMENSION(:,:,:), INTENT(OUT)   :: PLM
 LOGICAL,                INTENT(IN)    :: ODZ
@@ -1437,7 +1540,7 @@ IF (ODZ) THEN
   PLM(:,:,KKA) = PZZ(:,:,IKB) - PZZ(:,:,KKA)
   IF ( HTURBDIM /= '1DIM' ) THEN  ! 3D turbulence scheme
     IF ( L2D) THEN
-      PLM(:,:,:) = SQRT( PLM(:,:,:)*MXF(PDXX(:,:,:)) ) 
+      PLM(:,:,:) = SQRT( PLM(:,:,:)*MXF(PDXX(:,:,:)) )
     ELSE
       PLM(:,:,:) = (PLM(:,:,:)*MXF(PDXX(:,:,:))*MYF(PDYY(:,:,:)) ) ** (1./3.)
     END IF
@@ -1454,7 +1557,7 @@ ELSE
   END IF
 END IF
 !
-!  mixing length limited by the distance normal to the surface 
+!  mixing length limited by the distance normal to the surface
 !  (with the same factor as for BL89)
 !
 IF (.NOT. ORMC01) THEN
@@ -1481,7 +1584,7 @@ IF (.NOT. ORMC01) THEN
             EXIT
           ENDIF
         END DO
-      ENDIF   
+      ENDIF
     END DO
   END DO
 END IF
@@ -1514,7 +1617,7 @@ END SUBROUTINE DELT
 !*       0.    DECLARATIONS
 !              ------------
 !
-!*       0.1   Declarations of dummy arguments 
+!*       0.1   Declarations of dummy arguments
 !
 REAL, DIMENSION(:,:,:), INTENT(OUT)   :: PLM
 !
@@ -1526,7 +1629,7 @@ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2)) ::   ZWORK2D
 !
 REAL, DIMENSION(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)) ::     &
             ZDTHLDZ,ZDRTDZ,     &!dtheta_l/dz, drt_dz used for computing the stablity
-!                                ! criterion 
+!                                ! criterion
             ZETHETA,ZEMOIST             !coef ETHETA and EMOIST
 !----------------------------------------------------------------------------
 !
@@ -1593,7 +1696,7 @@ ELSE! For dry atmos or unsalted ocean runs
     END DO
   END DO
 END IF
-!  special case near the surface 
+!  special case near the surface
 ZDTHLDZ(:,:,IKB)=(PTHLT(:,:,IKB+KKL)-PTHLT(:,:,IKB))/PDZZ(:,:,IKB+KKL)
 ! For dry simulations
 IF (KRR>0) THEN
@@ -1639,7 +1742,7 @@ IF (.NOT. ORMC01) THEN
             EXIT
           ENDIF
         END DO
-      ENDIF 
+      ENDIF
     END DO
   END DO
 END IF
@@ -1707,7 +1810,7 @@ REAL :: ZCOEF_AMPL_CEI_NUL! Ordonnate at the origin of the
                           ! amplification straight line
 REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZCOEF_AMPL
                           ! Amplification coefficient of the mixing length
-                          ! when the instability criterium is verified 
+                          ! when the instability criterium is verified
 REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZLM_CLOUD
                           ! Turbulent mixing length in the clouds
 !
@@ -1718,7 +1821,7 @@ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZLM_CLOUD
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('TURB:CLOUD_MODIF_LM',0,ZHOOK_HANDLE)
-ZPENTE = ( PCOEF_AMPL_SAT - 1. ) / ( PCEI_MAX - PCEI_MIN ) 
+ZPENTE = ( PCOEF_AMPL_SAT - 1. ) / ( PCEI_MAX - PCEI_MIN )
 ZCOEF_AMPL_CEI_NUL = 1. - ZPENTE * PCEI_MIN
 !
 ZCOEF_AMPL(:,:,:) = 1.
@@ -1735,7 +1838,7 @@ WHERE ( PCEI(:,:,:)>=PCEI_MAX ) ZCOEF_AMPL(:,:,:)=PCOEF_AMPL_SAT
 !
 WHERE ( PCEI(:,:,:) <  PCEI_MAX .AND.                                        &
         PCEI(:,:,:) >  PCEI_MIN      )                                       &
-        ZCOEF_AMPL(:,:,:) = ZPENTE * PCEI(:,:,:) + ZCOEF_AMPL_CEI_NUL  
+        ZCOEF_AMPL(:,:,:) = ZPENTE * PCEI(:,:,:) + ZCOEF_AMPL_CEI_NUL
 !
 !
 !*       3.    CALCULATION OF THE MIXING LENGTH IN CLOUDS
@@ -1824,4 +1927,4 @@ ENDIF
 IF (LHOOK) CALL DR_HOOK('TURB:CLOUD_MODIF_LM',1,ZHOOK_HANDLE)
 END SUBROUTINE CLOUD_MODIF_LM
 !
-END SUBROUTINE TURB    
+END SUBROUTINE TURB
diff --git a/src/mesonh/ext/phys_paramn.f90 b/src/mesonh/ext/phys_paramn.f90
index e77c51456e785de14018acab81cfbdb27fbb1052..9ad4e40a4ec0c238e5a823d914d64b8bb99de2c7 100644
--- a/src/mesonh/ext/phys_paramn.f90
+++ b/src/mesonh/ext/phys_paramn.f90
@@ -828,28 +828,34 @@ END IF
 !*        1.6   Ocean case:
 ! Sfc turbulent fluxes & Radiative tendency due to SW penetrating ocean
 ! 
-IF (LOCEAN .AND. (.NOT.LCOUPLES)) THEN
+IF (LCOUPLES) THEN
+ZSFU(:,:)= XSSUFL_C(:,:,1)
+ZSFV(:,:)= XSSVFL_C(:,:,1)
+ZSFTH(:,:)= XSSTFL_C(:,:,1)
+ZSFRV(:,:)=XSSRFL_C(:,:,1)
+ELSE 
+IF (LOCEAN) THEN
 !
   ALLOCATE( ZIZOCE(IKU)); ZIZOCE(:)=0. 
   ALLOCATE( ZPROSOL1(IKU))
   ALLOCATE( ZPROSOL2(IKU))
-  ALLOCATE(XSSUFL(IIU,IJU))
-  ALLOCATE(XSSVFL(IIU,IJU))
-  ALLOCATE(XSSTFL(IIU,IJU))
   ALLOCATE(XSSOLA(IIU,IJU))
   ! Time interpolation
   JSW     = INT(TDTCUR%xtime/REAL(NINFRT))
   ZSWA    = TDTCUR%xtime/REAL(NINFRT)-REAL(JSW)
-  XSSTFL  = (XSSTFL_T(JSW+1)*(1.-ZSWA)+XSSTFL_T(JSW+2)*ZSWA) 
-  XSSUFL  = (XSSUFL_T(JSW+1)*(1.-ZSWA)+XSSUFL_T(JSW+2)*ZSWA)
-  XSSVFL  = (XSSVFL_T(JSW+1)*(1.-ZSWA)+XSSVFL_T(JSW+2)*ZSWA)
+  ZSFRV = 0.
+  ZSFTH  = (XSSTFL_T(JSW+1)*(1.-ZSWA)+XSSTFL_T(JSW+2)*ZSWA) 
+  ZSFU = (XSSUFL_T(JSW+1)*(1.-ZSWA)+XSSUFL_T(JSW+2)*ZSWA)
+  ZSFV = (XSSVFL_T(JSW+1)*(1.-ZSWA)+XSSVFL_T(JSW+2)*ZSWA)
 !
   ZIZOCE(IKU)   = XSSOLA_T(JSW+1)*(1.-ZSWA)+XSSOLA_T(JSW+2)*ZSWA
   ZPROSOL1(IKU) = XROC*ZIZOCE(IKU)
   ZPROSOL2(IKU) = (1.-XROC)*ZIZOCE(IKU)
   IF(NVERB >= 5 ) THEN   
-    WRITE(ILUOUT,*)'ZSWA JSW TDTCUR XTSTEP FT FU FV SolarR(IKU)', NINFRT, ZSWA,JSW,&
-       TDTCUR%xtime, XTSTEP, XSSTFL(2,2), XSSUFL(2,2),XSSVFL(2,2),ZIZOCE(IKU)
+!    WRITE(ILUOUT,*)'ZSWA JSW TDTCUR XTSTEP FT FU FV SolarR(IKU)', NINFRT, ZSWA,JSW,&
+!       TDTCUR%xtime, XTSTEP, ZSFTH(2,2), ZSFU(2,2),ZSFV(2,2),ZIZOCE(IKU)
+   WRITE(ILUOUT,*)'XSSTP1,XSSTP,NINFRT,ZSWA,JSW,TDTCUR%xtime,ZSFT', &
+      XSSTFL_T(JSW+1),XSSTFL_T(JSW),NINFRT,ZSWA,JSW, TDTCUR%xtime,ZSFTH(2,2)
   END IF
   if ( lbudget_th ) call Budget_store_init( tbudgets(NBUDGET_TH), 'OCEAN', xrths(:, :, :) ) 
   DO JKM=IKU-1,2,-1
@@ -860,10 +866,12 @@ IF (LOCEAN .AND. (.NOT.LCOUPLES)) THEN
     XRTHS(:,:,JKM) = XRTHS(:,:,JKM) + XRHODJ(:,:,JKM)*ZIZOCE(JKM)
   END DO
   if ( lbudget_th ) call Budget_store_end ( tbudgets(NBUDGET_TH), 'OCEAN', xrths(:, :, :) )
+  DEALLOCATE (XSSOLA)
   DEALLOCATE( ZIZOCE) 
   DEALLOCATE (ZPROSOL1)
   DEALLOCATE (ZPROSOL2)
-END IF
+END IF! LOCEAN NO LCOUPLES
+END IF!NO LCOUPLES
 !
 !
 CALL SECOND_MNH2(ZTIME2)
@@ -1266,14 +1274,18 @@ IF (CSURF=='EXTE') THEN
     XVT(:,:,1+JPVEXT) = XVT(:,:,1+JPVEXT) - XVTRANS
   END IF
 !
-ELSE
-  ZSFTH    = 0.
-  ZSFRV    = 0.
+ELSE ! case no SURFEX (CSURF logical)
   ZSFSV    = 0.
   ZSFCO2   = 0.
-  ZSFU     = 0.
-  ZSFV     = 0.
-END IF
+  IF (.NOT.LOCEAN) THEN
+    ZSFTH    = 0.
+    ZSFRV    = 0.
+    ZSFSV    = 0.
+    ZSFCO2   = 0.
+    ZSFU     = 0.
+    ZSFV     = 0.
+  END IF
+END IF !CSURF
 !
 CALL SECOND_MNH2(ZTIME2)
 !
@@ -1516,7 +1528,7 @@ IF (LOCEAN .AND. LDEEPOC) THEN
   END DO
   DO JJ=IJB,IJE
     DO JI=IIB,IIE
-      IF ( ZDIST(JI,JJ) > 1.) XSSTFL(JI,JJ)=0.
+      IF ( ZDIST(JI,JJ) > 1.) ZSFTH(JI,JJ)=0.
     END DO
   END DO
 END IF !END DEEP OCEAN CONV CASE
@@ -1603,7 +1615,6 @@ CALL SECOND_MNH2(ZTIME4)
     XUT(:,:,:) = XUT(:,:,:) - XUTRANS
     XVT(:,:,:) = XVT(:,:,:) - XVTRANS
   END IF
-
   IF (CMF_CLOUD == 'STAT') THEN
     XSIGS =SQRT( XSIGS**2 + ZSIGMF**2 )
   ENDIF
@@ -1625,14 +1636,6 @@ PMAFL = PMAFL + ZTIME4 - ZTIME3 - ZTIME_LES_MF
 PTIME_BU = PTIME_BU + XTIME_LES_BU_PROCESS + XTIME_BU_PROCESS
 !
 !
-!* deallocate sf flux array for ocean model (in grid nesting, dimensions can vary)
-!
-IF (LOCEAN .AND. (.NOT. LCOUPLES)) THEN
-  DEALLOCATE(XSSUFL)
-  DEALLOCATE(XSSVFL)
-  DEALLOCATE(XSSTFL)
-  DEALLOCATE(XSSOLA)
-END IF
 !-------------------------------------------------------------------------------
 !
 !* deallocation of variables used in more than one parameterization
diff --git a/src/mesonh/ext/resolved_cloud.f90 b/src/mesonh/ext/resolved_cloud.f90
index a425fe89cb0e566ad8701834891c16b9a16cea3e..e087afdec129c240e4a6d5e7bec7183d37de366e 100644
--- a/src/mesonh/ext/resolved_cloud.f90
+++ b/src/mesonh/ext/resolved_cloud.f90
@@ -478,6 +478,7 @@ REAL, DIMENSION(SIZE(PZZ,1),SIZE(PZZ,2),SIZE(PZZ,3)):: ZICEFR
 REAL, DIMENSION(SIZE(PZZ,1),SIZE(PZZ,2),SIZE(PZZ,3)):: ZPRCFR
 REAL, DIMENSION(SIZE(PZZ,1),SIZE(PZZ,2),SIZE(PZZ,3)):: ZTM
 REAL, DIMENSION(SIZE(PZZ,1),SIZE(PZZ,2)) :: ZSIGQSAT2D
+REAL, DIMENSION(SIZE(PZZ,1),SIZE(PZZ,2),SIZE(PZZ,3)):: ZDUM
 ZSIGQSAT2D(:,:) = PSIGQSAT
 !
 !------------------------------------------------------------------------------
@@ -743,10 +744,11 @@ SELECT CASE ( HCLOUD )
     ZZZ = MZF( PZZ )
     IF(LRED .AND. LADJ_BEFORE) THEN
       CALL ICE_ADJUST (1, IKU, 1, KRR, CFRAC_ICE_ADJUST, CCONDENS, CLAMBDA3,   &
-                      'ADJU', OSUBG_COND, OSIGMAS, .FALSE., CSUBG_MF_PDF,      &
-                      PTSTEP, ZSIGQSAT2D,                                      &
+                      'ADJU', OSUBG_COND, OSIGMAS, .FALSE., .FALSE.,           &
+                      CSUBG_MF_PDF, PTSTEP, ZSIGQSAT2D,                        &
                       PRHODJ, PEXNREF, PRHODREF, PSIGS, PMFCONV, PPABST, ZZZ,  &
                       ZEXN, PCF_MF, PRC_MF, PRI_MF,                            &
+                      ZDUM, ZDUM, ZDUM, ZDUM, ZDUM,                            &
                       PRV=PRS(:,:,:,1)*PTSTEP, PRC=PRS(:,:,:,2)*PTSTEP,        &
                       PRVS=PRS(:,:,:,1), PRCS=PRS(:,:,:,2),                    &
                       PTH=PTHS*PTSTEP, PTHS=PTHS, PSRCS=PSRCS, PCLDFR=PCLDFR,  &
@@ -795,10 +797,11 @@ SELECT CASE ( HCLOUD )
 !
     IF (.NOT. LRED .OR. (LRED .AND. LADJ_AFTER) ) THEN
       CALL ICE_ADJUST (1, IKU, 1, KRR, CFRAC_ICE_ADJUST, CCONDENS, CLAMBDA3,   &
-                       'DEPI', OSUBG_COND, OSIGMAS, .FALSE.,CSUBG_MF_PDF,      &
-                       PTSTEP, ZSIGQSAT2D,                                     &
+                       'DEPI', OSUBG_COND, OSIGMAS, .FALSE., .FALSE.,          &
+                       CSUBG_MF_PDF, PTSTEP, ZSIGQSAT2D,                       &
                        PRHODJ, PEXNREF, PRHODREF, PSIGS, PMFCONV, PPABST, ZZZ, &
                        ZEXN, PCF_MF, PRC_MF, PRI_MF,                           &
+                       ZDUM, ZDUM, ZDUM, ZDUM, ZDUM,                           &
                        PRV=PRS(:,:,:,1)*PTSTEP, PRC=PRS(:,:,:,2)*PTSTEP,       &
                        PRVS=PRS(:,:,:,1), PRCS=PRS(:,:,:,2),                   &
                        PTH=PTHS*PTSTEP, PTHS=PTHS, PSRCS=PSRCS, PCLDFR=PCLDFR, &
@@ -830,10 +833,11 @@ SELECT CASE ( HCLOUD )
     ZZZ = MZF( PZZ )
     IF(LRED .AND. LADJ_BEFORE) THEN
       CALL ICE_ADJUST (1, IKU, 1, KRR, CFRAC_ICE_ADJUST, CCONDENS, CLAMBDA3,   &
-                       'ADJU', OSUBG_COND, OSIGMAS, .FALSE., CSUBG_MF_PDF,     &
-                       PTSTEP, ZSIGQSAT2D,                                     &
+                       'ADJU', OSUBG_COND, OSIGMAS, .FALSE., .FALSE.,          &
+                       CSUBG_MF_PDF, PTSTEP, ZSIGQSAT2D,                       &
                        PRHODJ, PEXNREF, PRHODREF, PSIGS, PMFCONV, PPABST, ZZZ, &
                        ZEXN, PCF_MF, PRC_MF, PRI_MF,                           &
+                       ZDUM, ZDUM, ZDUM, ZDUM, ZDUM,                           &
                        PRV=PRS(:,:,:,1)*PTSTEP, PRC=PRS(:,:,:,2)*PTSTEP,       &
                        PRVS=PRS(:,:,:,1), PRCS=PRS(:,:,:,2),                   &
                        PTH=PTHS*PTSTEP, PTHS=PTHS, PSRCS=PSRCS, PCLDFR=PCLDFR, &
@@ -887,10 +891,11 @@ SELECT CASE ( HCLOUD )
 !
     IF (.NOT. LRED .OR. (LRED .AND. LADJ_AFTER) ) THEN
      CALL ICE_ADJUST (1, IKU, 1, KRR, CFRAC_ICE_ADJUST, CCONDENS, CLAMBDA3,  &
-                     'DEPI', OSUBG_COND, OSIGMAS, .FALSE., CSUBG_MF_PDF,     &
-                     PTSTEP, ZSIGQSAT2D,                                     &
+                     'DEPI', OSUBG_COND, OSIGMAS, .FALSE., .FALSE.,          &
+                     CSUBG_MF_PDF, PTSTEP, ZSIGQSAT2D,                       &
                      PRHODJ, PEXNREF, PRHODREF, PSIGS, PMFCONV, PPABST, ZZZ, &
                      ZEXN, PCF_MF, PRC_MF, PRI_MF,                           &
+                     ZDUM, ZDUM, ZDUM, ZDUM, ZDUM,                           &
                      PRV=PRS(:,:,:,1)*PTSTEP, PRC=PRS(:,:,:,2)*PTSTEP,       &
                      PRVS=PRS(:,:,:,1), PRCS=PRS(:,:,:,2),                   &
                      PTH=PTHS*PTSTEP, PTHS=PTHS, PSRCS=PSRCS, PCLDFR=PCLDFR, &
diff --git a/src/mesonh/micro/ice_adjust_elec.f90 b/src/mesonh/micro/ice_adjust_elec.f90
index 19ac78f72bec3358142b66047634bbf5a363e7e3..a44b468c02c96731714366f5e4462239fc9f6aa9 100644
--- a/src/mesonh/micro/ice_adjust_elec.f90
+++ b/src/mesonh/micro/ice_adjust_elec.f90
@@ -263,7 +263,7 @@ REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) &
                             ZLV,  &  ! guess of the Lv at t+1
                             ZLS,  &  ! guess of the Ls at t+1
       ZW1,ZW2,ZW3,ZW4,ZW5,ZW6,ZW7,&  ! Work arrays for intermediate fields
-      ZW1_IN, ZW2_IN, ZW3_IN,     &
+    ZW1_IN, ZW2_IN, ZW3_IN, ZDUM, &
                             ZCND     ! CND=(T-T00)/(T0-T00) cf sc doc and TAO etal (89)
 REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) &
                          :: ZWE1, &
@@ -377,11 +377,13 @@ DO JITER = 1, ITERMAX
     ZSIGQSAT2D(:,:)=PSIGQSAT
     ZW4 = 1. ! PRODREF is not used if HL variables are not present
 !
-    CALL CONDENSATION( IIU, IJU, IKU, IIB, IIE, IJB, IJE, IKB, IKE,1, 'T', 'CB02', 'CB',   &
+    CALL CONDENSATION( IIU, IJU, IKU, IIB, IIE, IJB, IJE, IKB, IKE,1, &
+       'T', 'CB02', 'CB',   &
        PPABST, PZZ, ZW4, ZT, ZW3_IN, ZW3, ZW1_IN, ZW1, ZW2_IN, ZW2, &
-       PRRS*PTSTEP, PRSS*PTSTEP, PRGS*PTSTEP, &
-       PSIGS, PMFCONV, PCLDFR, PSRCS, .TRUE., &
-       OSIGMAS, .FALSE., ZSIGQSAT2D, PLV=ZLV, PLS=ZLS, PCPH=ZCPH )
+       PRRS*PTSTEP, PRSS*PTSTEP, PRGS*PTSTEP, PSIGS, PMFCONV, PCLDFR, &
+       PSRCS, .TRUE., OSIGMAS, .FALSE., .FALSE., &
+       ZDUM, ZDUM, ZDUM, ZDUM, ZDUM, ZSIGQSAT2D, &
+       PLV=ZLV, PLS=ZLS, PCPH=ZCPH )
 !
 !*       3.2    compute the variation of mixing ratio
 !
diff --git a/src/mesonh/micro/ini_rain_ice.f90 b/src/mesonh/micro/ini_rain_ice.f90
index 9ee20cc3fd2ba6bc478e99e409fcccd5f455c616..ab29fbc6800d64ec44468df35b66d2d802c1ed48 100644
--- a/src/mesonh/micro/ini_rain_ice.f90
+++ b/src/mesonh/micro/ini_rain_ice.f90
@@ -397,7 +397,7 @@ XLBH   = ( XAH*XCCH*MOMG(XALPHAH,XNUH,XBH) )**(-XLBEXH)
 XLBDAS_MAX = 100000.0
 !
 ZCONC_MAX  = 1.E6 ! Maximal concentration for falling particules set to 1 per cc
-XLBDAS_MAX = ( ZCONC_MAX/XCCS )**(1./XCXS)
+IF(XCCS>0. .AND. XCXS>0. )XLBDAS_MAX = ( ZCONC_MAX/XCCS )**(1./XCXS)
 !
 IF (HCLOUD == 'ICE4') THEN
   ALLOCATE( XRTMIN(7) )
@@ -543,16 +543,26 @@ X0DEPS = (4.0*XPI)*XCCS*XC1S*XF0S*MOMG(XALPHAS,XNUS,1.)
 X1DEPS = (4.0*XPI)*XCCS*XC1S*XF1S*SQRT(XCS)*MOMG(XALPHAS,XNUS,0.5*XDS+1.5)
 XEX0DEPS = XCXS-1.0
 XEX1DEPS = XCXS-0.5*(XDS+3.0)
+XRDEPSRED = 1.0
 !
 X0DEPG = (4.0*XPI)*XCCG*XC1G*XF0G*MOMG(XALPHAG,XNUG,1.)
 X1DEPG = (4.0*XPI)*XCCG*XC1G*XF1G*SQRT(XCG)*MOMG(XALPHAG,XNUG,0.5*XDG+1.5)
 XEX0DEPG = XCXG-1.0
 XEX1DEPG = XCXG-0.5*(XDG+3.0)
+XRDEPGRED = 1.0
 !
 X0DEPH = (4.0*XPI)*XCCH*XC1H*XF0H*MOMG(XALPHAH,XNUH,1.)
 X1DEPH = (4.0*XPI)*XCCH*XC1H*XF1H*SQRT(XCH)*MOMG(XALPHAH,XNUH,0.5*XDH+1.5)
 XEX0DEPH = XCXH-1.0
 XEX1DEPH = XCXH-0.5*(XDH+3.0)
+
+GFLAG = .TRUE.
+IF (GFLAG) THEN
+  WRITE(UNIT=KLUOUT,FMT='("      factors sublimation snow/groupel")')
+  WRITE(UNIT=KLUOUT,FMT='(" mod sublim snow =",E13.6)') XRDEPSRED
+  WRITE(UNIT=KLUOUT,FMT='(" mod sublim graupel =",E13.6)') XRDEPGRED
+END IF
+
 !
 !*       5.3    Constants for pristine ice autoconversion
 !
@@ -1045,6 +1055,20 @@ IF( (KDRYLBDAG/=NDRYLBDAG) .OR. (KDRYLBDAR/=NDRYLBDAR) .OR. (KND/=IND) .OR. &
                      PFDINFTY,XKER_RDRYG                                      )
   WRITE(UNIT=KLUOUT,FMT='(" Read XKER_RDRYG")')
 END IF
+         
+!          8.2.6 Constants for possible modifying some processes related to 
+!                graupeln in XFRMIN(1:8),  IN - concentration in XFRMIN(9) and Kogan 
+!                autoconversion in XFRMIN(10:11). May be used for e.g. ensemble spread
+  XFRMIN(1:6)=0.
+  XFRMIN(7:9)=1.
+  XFRMIN(10) =10.
+  XFRMIN(11) =1.
+  XFRMIN(12) =100.
+  XFRMIN(13) =1.0E-15
+  XFRMIN(14) =120.
+  XFRMIN(15) =1.0E-4
+  XFRMIN(16:20)=0.
+  XFRMIN(21)=1.
 !
 !
 !-------------------------------------------------------------------------------
diff --git a/src/mesonh/micro/lima_adjust_split.f90 b/src/mesonh/micro/lima_adjust_split.f90
index 7534a193ad633d0584c16c1d348c0736ad8555bd..ebe680c80f6ca34373085633971e384f4d07c43a 100644
--- a/src/mesonh/micro/lima_adjust_split.f90
+++ b/src/mesonh/micro/lima_adjust_split.f90
@@ -275,7 +275,7 @@ REAL, DIMENSION(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3)) &
                             ZRI, ZRI_IN, &
                             ZSIGS, &
                             ZW_MF
-REAL, DIMENSION(SIZE(PRHODJ,1),SIZE(PRHODJ,2)) :: ZSIGQSAT2D
+REAL, DIMENSION(SIZE(PRHODJ,1),SIZE(PRHODJ,2)) :: ZSIGQSAT2D, ZDUM
 LOGICAL, DIMENSION(SIZE(PRHODJ,1),SIZE(PRHODJ,2),SIZE(PRHODJ,3)) &
                          :: GMICRO ! Test where to compute cond/dep proc.
 INTEGER                  :: IMICRO
@@ -510,12 +510,13 @@ DO JITER =1,ITERMAX
       ZRI=0.
       ZSIGS=PSIGS
       ZSIGQSAT2D(:,:)=PSIGQSAT
-      CALL CONDENSATION(IIU, IJU, IKU, IIB, IIE, IJB, IJE, IKB, IKE, 1, 'S',   &
-           HCONDENS, HLAMBDA3, &
+      CALL CONDENSATION(IIU, IJU, IKU, IIB, IIE, IJB, IJE, IKB, IKE, 1, &
+           'S', HCONDENS, HLAMBDA3, &
            PPABST, PZZ, PRHODREF, ZT, ZRV_IN, ZRV, ZRC_IN, ZRC, ZRI_IN, ZRI,&
-           PRRS*PTSTEP, PRSS*PTSTEP, PRGS*PTSTEP, &
-           ZSIGS, PMFCONV, PCLDFR, PSRCS, .FALSE., OSIGMAS, .FALSE., &
-           ZSIGQSAT2D, PLV=ZLV, PLS=ZLS, PCPH=ZCPH )
+           PRRS*PTSTEP, PRSS*PTSTEP, PRGS*PTSTEP, ZSIGS, PMFCONV, PCLDFR, &
+           PSRCS, .FALSE., OSIGMAS, .FALSE., .FALSE., &
+           ZDUM, ZDUM, ZDUM, ZDUM, ZDUM, ZSIGQSAT2D, &
+           PLV=ZLV, PLS=ZLS, PCPH=ZCPH )
       PCLDFR(:,:,:) = MIN(PCLDFR(:,:,:) + PCF_MF(:,:,:) , 1.)
       ZRV(:,:,:) = ZRV(:,:,:) - MAX(MIN(PRC_MF(:,:,:), ZRV(:,:,:)),0.)
       ZRC(:,:,:) = ZRC(:,:,:) + MAX(MIN(PRC_MF(:,:,:), ZRV(:,:,:)),0.)
diff --git a/src/mesonh/micro/radtr_satel.f90 b/src/mesonh/micro/radtr_satel.f90
index dbc0cd4e60f55a2a6d2b5483b15a615183d51dc3..48115b4c440146e3e91de52876af83fdcb6a5173 100644
--- a/src/mesonh/micro/radtr_satel.f90
+++ b/src/mesonh/micro/radtr_satel.f90
@@ -258,7 +258,7 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE  :: ZRC_IN, ZRC_OUT ! grid scale r_c mixing
 REAL, DIMENSION(:,:,:), ALLOCATABLE  :: ZRI_IN, ZRI_OUT ! grid scale r_i (kg/kg)
 REAL, DIMENSION(:,:,:), ALLOCATABLE  :: ZRV_IN, ZRV_OUT ! grid scale r_v (kg/kg)
 REAL, DIMENSION(:,:,:), ALLOCATABLE  :: ZRHO
-REAL, DIMENSION(SIZE(PPABST,1),SIZE(PPABST,2)) :: ZSIGQSAT2D
+REAL, DIMENSION(SIZE(PPABST,1),SIZE(PPABST,2)) :: ZSIGQSAT2D, ZDUM
 !----------------------------------------------------------------------------
 !
 !*       1.    INITIALIZATION OF CONSTANTS FOR TRANSFERT CODE
@@ -484,10 +484,12 @@ IF( SIZE(PRT(:,:,:,:),4) >= 2 ) THEN
     ALLOCATE(ZRHO(IIU,IJU,IKU))
     ZRHO=1. !unused
     ZSIGQSAT2D(:,:)=PSIGQSAT
-    CALL CONDENSATION( IIU, IJU, IKU, IIB, IIE, IJB, IJE, IKB, IKE, 1, 'T', 'CB02', 'CB',&
+    CALL CONDENSATION( IIU, IJU, IKU, IIB, IIE, IJB, IJE, IKB, IKE, 1, &
+         'T', 'CB02', 'CB',&
          PPABST, PZZ, ZRHO, ZTEMP, ZRV_IN, ZRV_OUT, ZRC_IN, ZRC_OUT, ZRI_IN, ZRI_OUT, &
-         PRT(:,:,:,2), PRT(:,:,:,5), PRT(:,:,:,6), PSIGS,&
-         PMFCONV, ZNCLD, ZSIGRC, OUSERI, OSIGMAS, .FALSE., PSIGQSAT=ZSIGQSAT2D )
+         PRT(:,:,:,2), PRT(:,:,:,5), PRT(:,:,:,6), PSIGS, PMFCONV, ZNCLD, &
+         ZSIGRC, OUSERI, OSIGMAS, .FALSE., .FALSE., &
+         ZDUM, ZDUM, ZDUM, ZDUM, ZDUM, ZSIGQSAT2D )
     DEALLOCATE(ZTEMP,ZSIGRC)
     DEALLOCATE(ZRV_OUT)
   ELSE
diff --git a/tools/INSTALL_pack_ial.md b/tools/INSTALL_pack_ial.md
index 60e553f070e584767b60f990390523182c4b0177..539958fc9c61c0f06266164e26360788bb5d13a3 100644
--- a/tools/INSTALL_pack_ial.md
+++ b/tools/INSTALL_pack_ial.md
@@ -20,6 +20,7 @@ is now automatically performed with the prep\_code.sh script.
 The same installation guide applies to sxphynh and belenos except for some commands.
 The directory in which the repository lies is designated by the TRUNK variable.
 The $TRUNK dir can be put on a shared directory to share this installation among several users.
+Tools are designed and tested with TRUNK=\<git repository\>/tools/pack/
 
 ## REFERENCE PACK CREATION
 
@@ -27,33 +28,34 @@ The $TRUNK dir can be put on a shared directory to share this installation among
 
 ```
 version=01
+cycle=48t1 or cy48t3 (after commit XXX on 22 September 2022)
 compiler=MPIGFORTRAN920DBL on ubuntu, MIMPIIFC1805 on belenos
 gmkfile=${compiler}.GMAP on ubuntu, ${compiler}.EPONA on belenos
 option=xfftw on ubuntu, 2y on belenos
-getpack 48t1_main.01.${compiler}.${option} #get source code on ubuntu, is it really necessary?
+getpack ${cycle}_main.01.${compiler}.${option} #get source code on ubuntu, is it really necessary?
 export GMKTMP=/dev/shm
 (. berootpack)
-gmkpack -a -r 48t1 -b phyex -n $version -l ${compiler} -o ${option} -p masterodb -h $TRUNK/tools/pack/ #create main pack
+gmkpack -a -r ${cycle} -b phyex -n $version -l ${compiler} -o ${option} -p masterodb -h $TRUNK/tools/pack/ #create main pack
 ```
 
 ### Populate main pack with source code
 
 ```
-cd $TRUNK/tools/pack/48t1_phyex.${version}.${compiler}.${option}/src/local
+cd $TRUNK/tools/pack/${cycle}_phyex.${version}.${compiler}.${option}/src/local
 if sxphynh; then
-  wget http://anonymous:mto@webdav.cnrm.meteo.fr/public/algo/khatib/src/48t1_main.01.tgz #only available at MF but equivalent must exist elsewhere
+  wget http://anonymous:mto@webdav.cnrm.meteo.fr/public/algo/khatib/src/${cycle}_main.01.tgz #only available at MF but equivalent must exist elsewhere
 else
-  ssh sxphynh.cnrm.meteo.fr "wget http://anonymous:mto@webdav.cnrm.meteo.fr/public/algo/khatib/src/48t1_main.01.tgz -O -" > 48t1_main.01.tgz
+  ssh sxphynh.cnrm.meteo.fr "wget http://anonymous:mto@webdav.cnrm.meteo.fr/public/algo/khatib/src/${cycle}_main.01.tgz -O -" > ${cycle}_main.01.tgz
 fi
-tar xf 48t1_main.01.tgz
-rm -f 48t1_main.01.tgz
+tar xf ${cycle}_main.01.tgz
+rm -f ${cycle}_main.01.tgz
 for rep in turb micro conv; do
   mkdir -p phyex/$rep
-  mv mpa/$rep/internals/* phyex/$rep/
-  mv mpa/$rep/module/* phyex/$rep/
+  mv -f mpa/$rep/internals/* phyex/$rep/
+  mv -f mpa/$rep/module/* phyex/$rep/
   rmdir mpa/$rep/internals mpa/$rep/module
 done
-tar xf /cnrm/algo/khatib/drhook.c_for_ubuntu.tar #only on ubuntu
+[ $cycle == 48t1 ] && tar xf /cnrm/algo/khatib/drhook.c_for_ubuntu.tar #only on ubuntu
 ```
 
 ### Apply some bug corrections
@@ -62,7 +64,7 @@ tar xf /cnrm/algo/khatib/drhook.c_for_ubuntu.tar #only on ubuntu
 sed -i 's/IF (LBUDGET_RH)/IF (LBUDGET_RH .AND. KRR==7)/' mpa/micro/externals/aro_rain_ice.F90
 ```
 
-Edition of arpifs/phys\_dmn/apl\_arome.F90 to modift (line 1573):
+Edition of arpifs/phys\_dmn/apl\_arome.F90 to modify (line 1573 in 48t1, 1496 in 48t3):
 
   ```
   IF (LMFSHAL .AND. (CMF_CLOUD=='DIRE'.OR.CMF_CLOUD=='BIGA')) THEN
@@ -71,7 +73,7 @@ Edition of arpifs/phys\_dmn/apl\_arome.F90 to modift (line 1573):
   ENDIF
   ```
 
-into:
+into (48t1):
 
   ```
   IF (LMFSHAL .AND. (CMF_CLOUD=='DIRE'.OR.CMF_CLOUD=='BIGA')) THEN
@@ -86,12 +88,27 @@ into:
   ENDIF
   ```
 
-Edition of apl\_arome.F90 to modify (line 1406):
+or (48t3):
+
+  ```
+  IF (LMFSHAL .AND. (CMF_CLOUD=='DIRE'.OR.CMF_CLOUD=='BIGA')) THEN
+    IOFF_MFSHAL=IOFF_MFSHAL+3
+    ...
+  ELSE
+    DO JLEV = 1, YDCPG_OPTS%KFLEVG
+      ZRC_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB                         
+      ZRI_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB                         
+      ZCF_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB                         
+    ENDDO
+  ENDIF
+  ```
+
+Edition of apl\_arome.F90 to modify (line 1406 in 48t1, 1329 in 48t3):
 
   ```
   IF ( LKFBCONV.AND.LOSUBG_COND.AND..NOT.LOSIGMAS) THEN
     DO JLEV = 1, KLEV
-      ZMFM_(KIDIA:KFDIA,JLEV)=PSIGM(KIDIA:KFDIA,JLEV)
+      ZMFM_(...
     ENDDO
   ENDIF
   ```
@@ -102,20 +119,91 @@ into:
   IF (LOSUBG_COND.AND..NOT.LOSIGMAS) THEN
     IF (LKFBCONV) THEN
       DO JLEV = 1, KLEV
-        ZMFM_(KIDIA:KFDIA,JLEV)=PSIGM(KIDIA:KFDIA,JLEV)
+        ZMFM_(...
       ENDDO
     ELSE
       DO JLEV = 1, KLEV
-        ZMFM_(KIDIA:KFDIA,JLEV)=0._JPRB
+        ZMFM_(...)=0._JPRB
       ENDDO
     ENDIF
   ENDIF
   ```
 
+If cycle is 48t3, edition of apl\_arome.F90 to modify (line 3616)
+
+  ```
+      ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)=ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,2)+ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,3)
+      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP2(:,:),'FQTPRECISTL',YDDDH)
+      ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)=ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,4)+ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,5)
+      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP2(:,:),'FQTPRECISTN',YDDDH)
+  ```
+
+into:
+
+  ```
+      ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,0)=0._JPRB
+      DO JLEV=1,YDCPG_OPTS%KFLEVG
+        ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZPFPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,2)+ZPFPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,4)
+      ENDDO
+      !ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)=ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,2)+ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,3)
+      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP2(:,:),'FQTPRECISTL',YDDDH)
+      DO JLEV=1,YDCPG_OPTS%KFLEVG
+        ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZPFPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,4)+ZPFPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,5)
+      ENDDO
+      !ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)=ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,4)+ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,5)
+      CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP2(:,:),'FQTPRECISTN',YDDDH)
+  ```
+
+If cycle is 48t3, edition of apl\_arome.F90 to:
+
+add the folowing lines after the line 236 (YOMTRAJ use statement):
+
+  ```
+  #ifdef REPRO48
+  !To compensate a bug introduced in 48t3
+  !Must be suppressed as soon as the bug is corrected
+  USE MODD_BUDGET
+  #endif
+  ```
+
+and add the folowing lines at line 912 (to be one of the first execution statement but exact emplacement is not sensitive):
+
+  ```
+  #ifdef REPRO48
+  !see comment associated to the MODD_BUDGET use statement
+  LBU_ENABLE = YDMODEL%YRML_DIAG%YRLDDH%LSDDH
+  LBUDGET_U =LBU_ENABLE
+  LBUDGET_V =LBU_ENABLE
+  LBUDGET_W =LBU_ENABLE
+  LBUDGET_TH=LBU_ENABLE
+  LBUDGET_TKE=LBU_ENABLE
+  LBUDGET_RV=LBU_ENABLE
+  LBUDGET_RC=LBU_ENABLE
+  LBUDGET_RR =LBU_ENABLE
+  LBUDGET_RI =LBU_ENABLE
+  LBUDGET_RS =LBU_ENABLE
+  LBUDGET_RG =LBU_ENABLE
+  LBUDGET_RH =LBU_ENABLE
+  LBUDGET_SV=LBU_ENABLE
+  #endif
+  ```
+
+Edition of phyex/turb/compute\_mf\_cloud\_bigaus.F90 to modify (line 120):
+
+  ```
+  DO JK=KKB,KKE,KKL
+  ```
+
+into:
+
+  ```
+  DO JK=KKB,KKE-KKL,KKL
+  ```
+
 ### Compilation
 
 ```
-cd $TRUNK/tools/pack/48t1_phyex.${version}.${compiler}.${option}
+cd $TRUNK/tools/pack/${cycle}_phyex.${version}.${compiler}.${option}
 #Not needed anymore: grep MPA .gmkfile/${compiler}.GMAP | sed 's/MPA/PHYEX/g' >> .gmkfile/${gmkfile}
 Edition of .gmkfile/${gmkfile} to add -DREPRO48 to the MACROS_FRT variable in order to suppress bug corrections and be able to reproduce the original cy48
 #Not needed anymore: Edition of .gmkfile/${gmkfile} to suppress on ubuntu -ftree-vectorize
@@ -132,11 +220,11 @@ version=01
 compiler=MPIGFORTRAN920DBL on ubuntu, MIMPIIFC1805 on belenos
 gmkfile=${compiler}.GMAP on ubuntu, ${compiler}.EPONA on belenos
 option=xfftw on ubuntu, 2y on belenos
-getpack 48t1_main.01.${compiler}.${option} #get source code on ubuntu, is it really necessary?
+getpack ${cycle}_main.01.${compiler}.${option} #get source code on ubuntu, is it really necessary?
 
 commit=9ce8119430dd603d35308d8ae94cf18636157473 #exemple of commit to test against the reference pack
 
-gmkpack -r 48t1 -b phyex -v ${version} -l ${compiler} -o ${option} -p masterodb -f $TRUNK/tools/pack/ -u PHYEX/$commit
+gmkpack -r ${cycle} -b phyex -v ${version} -l ${compiler} -o ${option} -p masterodb -f $TRUNK/tools/pack/ -u PHYEX/$commit
 
 cd $HOMEPACK/PHYEX/$commit/src/local/phyex
 git clone git@github.com:QuentinRodier/PHYEX.git
diff --git a/tools/check_commit_ial.sh b/tools/check_commit_ial.sh
index 6dce25678510156170da852334566d25e512fcb3..39a480a6a48f1c9590a73534641350de0ed2bf1f 100755
--- a/tools/check_commit_ial.sh
+++ b/tools/check_commit_ial.sh
@@ -23,7 +23,7 @@ set -e
 
 #The small_3D_alt9 is not included in the list of available tests because it cannot be run before 21 September (commit edc3f88).
 
-specialPack="ori split recompil"
+specialPack="ori split split_48t1 split_48t3 recompil"
 availTests="small_3D,small_3D_np2,small_3D_alt1,small_3D_alt2,small_3D_alt3,small_3D_alt4,small_3D_alt5,small_3D_alt6,small_3D_alt7"
 defaultTest="small_3D"
 separator='_' #- be carrefull, gmkpack (at least on belenos) has multiple allergies (':', '.', '@')
@@ -38,14 +38,14 @@ if [ $(hostname | cut -c 1-7) == 'belenos' -o $(hostname | cut -c 1-7) == 'taran
   gmkpack_l=MIMPIIFC1805
   gmkpack_o=2y
   defaultMainPackVersion=01
-  defaultRef=split
+  defaultRef='split_${cycle}'
   availTests="${availTests},big_3D"
 else
   HPC=0
   gmkpack_l=MPIGFORTRAN920DBL
   gmkpack_o=xfftw
   defaultMainPackVersion=01
-  defaultRef=split
+  defaultRef='split_${cycle}'
 fi
 mainPackVersion=${mainPackVersion:-${defaultMainPackVersion}}
 
@@ -63,6 +63,7 @@ function usage {
   echo "                or ALL to execute all tests"
   echo "--noexpand      do not use mnh_expand (code will be in array-syntax)"
   echo "-f              full compilation (do not use pre-compiled pack)"
+  echo "--cycle CYCLE   to force using CYCLE"
   echo ""
   echo "If nothing is asked (compilation, running, check) everything is done"
   echo
@@ -73,6 +74,8 @@ function usage {
   echo "The directory (for commit only, not ref) can take the form server:directory"
   echo
   echo "If using a directory (for commit or reference) it must contain at least one '/'"
+  echo
+  echo "The cycle will be guessed from the source code"
 }
 
 compilation=0
@@ -84,6 +87,7 @@ tests=""
 suppress=0
 useexpand=1
 fullcompilation=0
+cycle=""
 
 while [ -n "$1" ]; do
   case "$1" in
@@ -95,6 +99,7 @@ while [ -n "$1" ]; do
     '-t') tests="$2"; shift;;
     '--noexpand') useexpand=0;;
     '-f') fullcompilation=1;;
+    '--cycle') cycle="$2"; shift;;
     #--) shift; break ;;
      *) if [ -z "${commit-}" ]; then
           commit=$1
@@ -148,30 +153,52 @@ if [ $check -eq 1 -a -z "${reference-}" ]; then
   exit 3
 fi
 
-#Name is choosen such as it can be produced with a main pack: PHYEX/48t1_XXXXXXXXX.01.${gmkpack_l}.${gmkpack_o}
+function content2cycle {
+  # variable content_apl_arome must contain the source code of apl_arome.F90
+  if grep CPG_DYN_TYPE <(echo $content_apl_arome) > /dev/null; then
+    echo 48t3
+  else
+    echo 48t1
+  fi
+}
+
+#Name is choosen such as it can be produced with a main pack: PHYEX/${cycle}_XXXXXXXXX.01.${gmkpack_l}.${gmkpack_o}
 fromdir=''
 if echo $commit | grep '/' > /dev/null; then
   fromdir=$commit
+  if [ "$cycle" == "" ]; then
+    content_apl_arome=$(scp $commit/src/arome/ext/apl_arome.F90 /dev/stdout)
+    cycle=$(content2cycle)
+  fi
   packBranch=$(echo $commit | sed 's/\//'${separator}'/g' | sed 's/:/'${separator}'/g' | sed 's/\./'${separator}'/g')
-  name="PHYEX/48t1_${packBranch}.01.${gmkpack_l}.${gmkpack_o}"
+  name="PHYEX/${cycle}_${packBranch}.01.${gmkpack_l}.${gmkpack_o}"
   [ $suppress -eq 1 -a -d $HOMEPACK/$name ] && rm -rf $HOMEPACK/$name
 elif echo $specialPack | grep -w $commit > /dev/null; then
   name="PHYEX/$commit"
+  if [ $commit == split_48t3 ]; then
+    cycle=48t3
+  else
+    cycle=48t1
+  fi
 else
   packBranch="COMMIT$commit"
-  name="PHYEX/48t1_${packBranch}.01.${gmkpack_l}.${gmkpack_o}"
+  if [ "$cycle" == "" ]; then
+    content_apl_arome=$(wget https://raw.githubusercontent.com/QuentinRodier/PHYEX/${commit}/src/arome/ext/apl_arome.F90 -O - 2>/dev/null)
+    cycle=$(content2cycle)
+  fi
+  name="PHYEX/${cycle}_${packBranch}.01.${gmkpack_l}.${gmkpack_o}"
   [ $suppress -eq 1 -a -d $HOMEPACK/$name ] && rm -rf $HOMEPACK/$name
 fi
 if [ ! -z "${reference-}" ]; then
-  [ $reference == 'REF' ] && reference=$defaultRef
+  [ $reference == 'REF' ] && reference=$(eval echo $defaultRef) #echo to replace ${cycle} by value
   reffromdir=''
   if echo $reference | grep '/' > /dev/null; then
     reffromdir=$reference
-    refname="PHYEX/48t1_$(echo $reference | sed 's/\//'${separator}'/g' | sed 's/:/'${separator}'/g' | sed 's/\./'${separator}'/g').01.${gmkpack_l}.${gmkpack_o}"
+    refname="PHYEX/*_$(echo $reference | sed 's/\//'${separator}'/g' | sed 's/:/'${separator}'/g' | sed 's/\./'${separator}'/g').01.${gmkpack_l}.${gmkpack_o}"
   elif echo $specialPack | grep -w $reference > /dev/null; then
     refname="PHYEX/$reference"
   else
-    refname="PHYEX/48t1_COMMIT${reference}.01.${gmkpack_l}.${gmkpack_o}"
+    refname="PHYEX/*_COMMIT${reference}.01.${gmkpack_l}.${gmkpack_o}"
   fi
 fi
 
@@ -191,24 +218,24 @@ if [ $compilation -eq 1 ]; then
   export GMKTMP=/dev/shm
 
   if [ $fullcompilation == 0 ]; then
-    basepack=48t1_main.01.${gmkpack_l}.${gmkpack_o}
-    [ $HPC -eq 0 -a ! -d $ROOTPACK/$basepack ] &&  getpack $basepack
-    gmkpack -r 48t1 -b phyex -v $mainPackVersion -l ${gmkpack_l} -o ${gmkpack_o} -p masterodb \
+    basepack=${cycle}_main.01.${gmkpack_l}.${gmkpack_o}
+    #[ $HPC -eq 0 -a ! -d $ROOTPACK/$basepack ] &&  getpack $basepack
+    gmkpack -r ${cycle} -b phyex -v $mainPackVersion -l ${gmkpack_l} -o ${gmkpack_o} -p masterodb \
             -f $dirpack/ \
             -u $name
     reftree='main'
   else
     #Create main pack
-    gmkpack -a -r 48t1 -b ${packBranch} -n 01 -l ${gmkpack_l} -o ${gmkpack_o} -p masterodb -h $HOMEPACK/PHYEX
+    gmkpack -a -r ${cycle} -b ${packBranch} -n 01 -l ${gmkpack_l} -o ${gmkpack_o} -p masterodb -h $HOMEPACK/PHYEX
     #Populate (we keep everything from the official source code except internals and module subdirectories of mpa)
     cd $HOMEPACK/$name/src/local/
     if [ $HPC -eq 1 ]; then
-      ssh sxphynh.cnrm.meteo.fr "wget http://anonymous:mto@webdav.cnrm.meteo.fr/public/algo/khatib/src/48t1_main.01.tgz -O -" > 48t1_main.01.tgz
+      ssh sxphynh.cnrm.meteo.fr "wget http://anonymous:mto@webdav.cnrm.meteo.fr/public/algo/khatib/src/${cycle}_main.01.tgz -O -" > ${cycle}_main.01.tgz
     else
-      wget http://anonymous:mto@webdav.cnrm.meteo.fr/public/algo/khatib/src/48t1_main.01.tgz
+      wget http://anonymous:mto@webdav.cnrm.meteo.fr/public/algo/khatib/src/${cycle}_main.01.tgz
     fi
-    tar xf 48t1_main.01.tgz
-    rm -f 48t1_main.01.tgz
+    tar xf ${cycle}_main.01.tgz
+    rm -f ${cycle}_main.01.tgz
     for rep in turb micro conv; do
       mkdir -p phyex/$rep
       rm -rf mpa/$rep/internals mpa/$rep/module
@@ -220,7 +247,7 @@ if [ $compilation -eq 1 ]; then
     #Special modification of the compilation configuration file and script
     sed -i 's/-ftree-vectorize//' $HOMEPACK/$name/.gmkfile/${gmkpack_l}.*
     sed -i "/MACROS_FRT/s/$/ -DREPRO48/" $HOMEPACK/$name/.gmkfile/${gmkpack_l}.*
-    #sed -i "s/PHYEX\/48t1_$$.01.${gmkpack_l}.${gmkpack_o}/$(echo $name | sed 's/\//\\\//')/" $HOMEPACK/$name/ics_masterodb #this line could be used if pack was renamed before compilation but it does not work on belenos
+    #sed -i "s/PHYEX\/${cycle}_$$.01.${gmkpack_l}.${gmkpack_o}/$(echo $name | sed 's/\//\\\//')/" $HOMEPACK/$name/ics_masterodb #this line could be used if pack was renamed before compilation but it does not work on belenos
 
     resetpack -f #Is it really useful?
     reftree='local'
@@ -269,7 +296,7 @@ if [ $compilation -eq 1 ]; then
     fi
   fi
 
-  EXT=PHYEX/ext/
+  EXT=PHYEX/ext
   [ ! -d $EXT ] && EXT=PHYEX/externals #old name for ext/aux
   if [ -d $EXT ]; then
     #Move manually files outside of mpa (a find on the whole repository would take too much a long time)
@@ -278,6 +305,7 @@ if [ $compilation -eq 1 ]; then
     [ -f $EXT/suparar.F90 ] && mv $EXT/suparar.F90 ../arpifs/phys_dmn/
     [ -f $EXT/apl_arome.F90 ] && mv $EXT/apl_arome.F90 ../arpifs/phys_dmn/
     [ -f $EXT/suphmpa.F90 ] && mv $EXT/suphmpa.F90 ../arpifs/phys_dmn/
+    [ -f $EXT/vdfhghtnhl.F90 ] && mv $EXT/vdfhghtnhl.F90 ../arpifs/phys_dmn/
     #Special mpa case
     [ -f $EXT/modd_spp_type.F90 ] && mv $EXT/modd_spp_type.F90 ../mpa/micro/externals/
     [ -f $EXT/spp_mod_type.F90 ] && mv $EXT/spp_mod_type.F90 ../mpa/micro/externals/
@@ -346,7 +374,7 @@ if [ $run -ge 1 ]; then
     cd $HOMEPACK/$name
     mkdir -p conf_tests/$t
     cd conf_tests/$t
-    MYLIB=$name TESTDIR=$dirconf/$t exescript Output_run $dirconf/$t/aro48t1.sh
+    MYLIB=$name TESTDIR=$dirconf/$t exescript Output_run $dirconf/$t/aro${cycle}.sh
   done
 fi
 
@@ -367,7 +395,7 @@ if [ $check -eq 1 ]; then
       tag=$(echo $tag_file | cut -d, -f1)
       file=$(echo $tag_file | cut -d, -f2)
       file1=$HOMEPACK/$name/$file
-      file2=$HOMEPACK/$refname/$file
+      file2=$(echo $HOMEPACK/$refname/$file) #echo to enable shell substitution
 
       mess=""
       t=0
diff --git a/tools/comp_DDH.py b/tools/comp_DDH.py
index ea0b116e8d9e8ad3e3745d68959aee99ba0074d6..8a5bdb74a8ac3ca55147f9fdee994b06c81cbc07 100755
--- a/tools/comp_DDH.py
+++ b/tools/comp_DDH.py
@@ -22,6 +22,9 @@ def comp_DDH(filename1, filename2, output_fig, tol_ad=1.2E-7, tol_rd=1.E-6, verb
         toplt = False
         if not t:
             if verbose: print(fid, ':')
+            if numpy.array(v1).ndim == 0:
+                v1 = numpy.array([v1])
+                v2 = numpy.array([v2])
             for i in range(len(v1)):
                 if v1[i] - v2[i] != 0.:
                     ad = v1[i] - v2[i]
@@ -30,7 +33,7 @@ def comp_DDH(filename1, filename2, output_fig, tol_ad=1.2E-7, tol_rd=1.E-6, verb
                     if abs(ad) > tol_ad and abs(rd) > tol_rd: toplt = True
         return fid if toplt else None
     toplt = []
-    for fid in l1.intersection(l2):
+    for fid in [fid for fid in l1.intersection(l2) if fid != 'DOCFICHIER']:
         v1 = r1.readfield(fid)
         v2 = r2.readfield(fid)
         if isinstance(v1, epygram.base.FieldSet):
diff --git a/tools/conf_tests/big_3D/aro48t3.sh b/tools/conf_tests/big_3D/aro48t3.sh
new file mode 100644
index 0000000000000000000000000000000000000000..4663a7184bbbee85922b83a16d966b5cbc780451
--- /dev/null
+++ b/tools/conf_tests/big_3D/aro48t3.sh
@@ -0,0 +1,602 @@
+#!/bin/bash
+#SBATCH -p normal256
+#SBATCH --export=MYLIB,HOMEPACK,TESTDIR
+#SBATCH -n 1280
+#SBATCH -c 4
+#SBATCH -N 40
+#SBATCH -t 00:40:00
+#SBATCH --mem=247000
+#SBATCH --exclusiv
+
+# Job management :
+# --------------
+JOB_INITDIR=$SLURM_SUBMIT_DIR
+export JOB_NAME=arome_e700
+export JOB_ID=$SLURM_JOB_ID
+
+echo JOB_INITDIR=$JOB_INITDIR
+echo JOB_NAME=$JOB_NAME
+echo JOB_ID=$JOB_ID
+
+# =============================================================================
+
+#                               RESOURCES ALLOCATIONS
+#                               =====================
+
+# Number of nodes/mpi-tasks/omp-threads:
+# -------------------------------------
+NNODES=$SLURM_JOB_NUM_NODES
+# Number of MPI tasks per node:
+MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES))
+# Number of OPEN-MP threads per MPI task:
+export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
+# Total number of MPI tasks:
+MPI_TASKS=$SLURM_NTASKS
+# Number of tasks reserved for the I/O server : 2 (hyperthreaded) nodes
+NTASKS_IO=$(($(grep processor /proc/cpuinfo | wc -l)/1/$OMP_NUM_THREADS))
+
+echo NNODES=$NNODES
+echo MPITASKS_PER_NODE=$MPITASKS_PER_NODE
+echo
+# Number of MPI tasks and OMP threads used in the application :
+echo MPI_TASKS=$MPI_TASKS
+echo OMP_NUM_THREADS=$OMP_NUM_THREADS
+
+# =============================================================================
+
+#                               SYSTEM PREFERENCES
+#                               ==================
+
+# OMP/MPI submission management :
+# -----------------------------
+# LOCAL_MPI_WRAPPER : could be "mpiauto", "mpdrun", "mpiexec" ... or empty string
+# LOCAL_STACK_LIMIT : could be "unlimited" or empty string
+
+set -x
+#LOCAL_MPI_WRAPPER="/opt/softs/mpiauto/mpiauto --wrap --wrap-stdeo --wrap-stdeo-pack"
+LOCAL_MPI_WRAPPER="/opt/softs/mpiauto/mpiauto"
+LOCAL_STACK_LIMIT=unlimited
+ulimit -l unlimited
+set +x
+
+# Specific environment variables :
+# ------------------------------
+set -x
+export OMP_STACKSIZE=4G
+export KMP_STACKSIZE=4G
+export KMP_MONITOR_STACKSIZE=4G
+export I_MPI_HARD_FINALIZE=1
+export I_MPI_SCALABLE_OPTIMIZATION=0
+export I_MPI_DAPL_UD_RNDV_EP_NUM=4
+export I_MPI_SHM_SPIN_COUNT=10
+export I_MPI_SPIN_COUNT=10
+set +x
+
+# File systems :
+# ------------
+# Global file system:
+export TMPGFS=$TMPDIR
+export WORKGFS=$WORKDIR/benchmarks
+#MTOOL export TMPGFS=$MTOOL_STEP_WORKSPACE
+# Local file system (if preferred):
+export TMPLOC=$TMPGFS
+echo TMPGFS=$TMPGFS
+echo TMPLOC=$TMPLOC
+
+# Local disks synchronization :
+# ---------------------------
+export ISYNC=0
+if [ "$MTOOL_IS" = "ON" ] ; then
+# synchronization is needed anyway between the steps
+  export ISYNC=1
+elif [ $NNODES -gt 1 ] && [ "$TMPLOC" != "$TMPGFS" ] ; then
+# Local disk synchronization needed:
+  export ISYNC=1
+fi
+echo ISYNC=$ISYNC
+
+# Miscellaneous :
+# -------------
+
+# =============================================================================
+
+#                               USER PREFERENCES
+#                               ================
+
+#export NAMELDIR=/home/gmap/mrpm/khatib/pack/48t1_main.01#myref/run/cy47.forecast_arome_e700/Namelists
+export NAMELDIR=$TESTDIR/Namelists
+
+HOMEPACK=${HOMEPACK:=$HOME/pack}
+export BINDIR=$HOMEPACK/$MYLIB/bin
+#export BINDIR=/home/gmap/mrpm/khatib/pack/48t1_main.01#myref/bin
+OUTPUTDIR=${OUTPUTDIR:-$PWD} #No cd command have been done before this line
+
+
+
+export DATADIR=/scratch/work/khatib/data/cy47.forecast_arome_e700
+#export REFDIR=/home/gmap/mrpm/khatib/benchmarks/apps/modules/cy47.forecast_arome_e700/References
+export TOOLSDIR=/home/gmap/mrpm/khatib/benchmarks/tools
+#export ROOTDIR_ODB=/home/gmap/mrpm/khatib/odbpools/36t1_bench/cy47.forecast_arome_e700
+
+# Check reliability of auxilary directories :
+# -----------------------------------------
+ierr=0
+#for var in NAMELDIR BINDIR DATADIR REFDIR TOOLSDIR ; do
+for var in NAMELDIR BINDIR DATADIR TOOLSDIR ; do
+  eval "dir=\$$var"
+  if [ ! "$dir" ] ; then
+    echo "$var is not set."
+    ierr=1
+  fi
+  if [ $ierr -ne 0 ] ; then
+    exit 1
+  fi
+done
+ierr=0
+for dir in $NAMELDIR $BINDIR $REFDIR $TOOLSDIR ; do
+  if [ ! -d $dir ] ; then
+    echo "$dir does not exists."
+    ierr=1
+  fi
+  if [ $ierr -ne 0 ] ; then
+    exit 1
+  fi
+done
+
+echo TOOLSDIR=$TOOLSDIR
+echo NAMELDIR=$NAMELDIR
+echo DATADIR=$DATADIR
+#echo REFDIR=$REFDIR
+echo BINDIR=$BINDIR
+#echo ROOTDIR_ODB=$ROOTDIR_ODB
+
+export PATH=$TOOLSDIR:$PATH
+export TOOLSDIR
+export DATADIR
+
+# Software default environment variables :
+# --------------------------------------
+set -x
+export DR_HOOK=0
+export DR_HOOK_IGNORE_SIGNALS=-1
+export DR_HOOK_SILENT=1
+export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+export MPL_MBX_SIZE=2048000000
+export EC_PROFILE_HEAP=0
+export EC_PROFILE_MEM=0
+export EC_MPI_ATEXIT=0
+export EC_MEMINFO=0
+export OPENBLAS_NUM_THREADS=1
+export MKL_CBWR="AUTO,STRICT"
+export MKL_NUM_THREADS=1
+export MKL_DEBUG_CPU_TYPE=5
+set +x
+
+# Profilers management :
+# --------------------
+# FTRACE_JOB : profiler switch
+#              =0 : no profiler
+#              =1 : integrated DrHook profiler
+#              =2 : specific profiler
+#
+export FTRACE_JOB=1
+echo "FTRACE_JOB=$FTRACE_JOB"
+
+if [ $FTRACE_JOB -ne 0 ] ; then
+# profilings main directory:
+  if [ -d $JOB_INITDIR ] ; then
+#   Use the initial job's dir
+    FTRACE_DIR=$JOB_INITDIR
+  else
+#   Set one :
+    FTRACEDIR=
+    if [ ! "$FTRACEDIR" ] ; then
+      echo "FTRACEDIR is not set."
+      exit 1
+    fi
+    if [ ! -d $FTRACEDIR ] ; then
+      mkdir -p $FTRACEDIR
+      if [ $? -ne 0 ] ; then
+        echo "Can't make directory $FTRACEDIR"
+        exit 1
+      fi
+    fi
+    FTRACE_DIR=$FTRACEDIR
+  fi
+   SCRATCH_FTRACE_DIR=$TMPGFS
+#  SCRATCH_FTRACE_DIR=$FTRACE_DIR
+  if [ $FTRACE_JOB -eq 1 ] ; then
+    set -x
+    export DR_HOOK=1
+    export DR_HOOK_OPT=prof
+#   Directory of individual profiles :
+    export PROFDIR=$SCRATCH_FTRACE_DIR/${JOB_NAME}.d${JOB_ID}
+#   Merged profiles report filename :
+    export PROFMRG=$FTRACE_DIR/${JOB_NAME}.h${JOB_ID}
+    set +x
+  elif [ $FTRACE_JOB -ge 2 ] ; then
+    set -x
+#   Directory of individual profiles :
+    export PROFDIR=$SCRATCH_FTRACE_DIR/${JOB_NAME}.f${JOB_ID}
+#   Merged profiles report filename :
+    export PROFMRG=$FTRACE_DIR/${JOB_NAME}.t${JOB_ID}
+    set +x
+  fi
+fi
+
+set +x
+
+# Listings :
+# --------
+set -x
+export ECHO_MPSH=OFF
+export OUTPUT_LISTING=YES
+export LOGDIR=$JOB_INITDIR/${JOB_NAME}.l${JOB_ID}
+set +x
+
+# ODB archives :
+# ------------
+# if set to 1, archived Odbs will be gzipped :
+set -x
+export ARCHIVE_AND_ZIP_ODB=0
+set +x
+
+# Directory for application output data files :
+# -------------------------------------------
+echo
+OUTDIR=
+OUTDIR=${OUTDIR:=$TMPGFS}
+if [ "$TMPGFS" != "$TMPLOC" ] ; then
+  if [ "$OUTDIR" = "$TMPLOC" ] ; then
+    echo "Output files on LOCAL file system"
+  elif [ "$OUTDIR" = "$TMPGFS" ] ; then
+    echo "Output files on GLOBAL file system"
+  else
+    echo "Output files on directory : $OUTDIR"
+  fi
+else
+  echo "Output files on directory : $OUTDIR"
+fi
+
+# NFS temporary directory for small I/Os
+echo
+TMPNFS=$(mktemp -d --tmpdir=/tmp/$LOGNAME)
+if [ -d $TMPNFS ] ; then
+  echo "temporary directory on NFS for small I/Os : $TMPNFS"
+else
+  TMPNFS="."
+fi
+
+# =============================================================================
+
+#                               APPLICATION TUNING
+#                               ==================
+
+# ARPEGE : Forecast
+# *****************
+
+mkdir -p $TMPLOC
+if [ $ISYNC -gt 0 ] ; then
+  mkdir -p $TMPGFS
+  cd $TMPGFS
+else
+  cd $TMPLOC
+fi
+
+# Driver-specific environment variables :
+# -------------------------------------
+set -x
+NAMELIST=namel_previ.48
+CTRLLIST=extra_namelists48.list
+LINKS=links_inline48.scpt
+EXECUTABLE=MASTERODB
+#REFLIST=$REFDIR/forecast.out
+EXPLIST=./NODE.001_01
+set +x
+
+#MTOOL common join=step_2
+
+# Namelists modifications :
+# -----------------------
+ 
+set -x
+
+# Number of MPI tasks for the I/O server :
+NPROC_IO=$NTASKS_IO
+
+# Remaining number of MPI tasks :
+NPROC=$((MPI_TASKS-NPROC_IO))
+
+# Memory cache optimisation:
+NPROMA=-16
+NFPROMA=-24
+
+# Overall scalar optimisation:
+LOPT_SCALAR=.TRUE.
+
+# Output packing distribution:
+NSTROUT=${NPROC}
+NSTRIN=${NPROC}
+
+NPRGPEW=16
+#NPRGPNS=((NPROC/NPRGPEW))
+NPRTRV=16
+#NPRTRW=((NPROC/NPRTRV))
+
+set +x
+
+cat > namelist_mods2 <<EOF
+ &NAMPARAR
+ /
+ &NAMTRANS
+   LFFTW=.TRUE.,
+ /
+ &NAMPAR0
+   NPRINTLEV=1,
+   LOPT_SCALAR=${LOPT_SCALAR},
+   MBX_SIZE=2048000000,
+   NPROC=${NPROC},
+   NPRGPNS=-,
+   NPRGPEW=-,
+   NPRTRW=-,
+   NPRTRV=-,
+ /
+ &NAMDIM
+   NPROMA=$NPROMA,
+ /
+ &NAMFPSC2
+   NFPROMA=$NFPROMA,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=$NFPROMA,
+ /
+ &NAMPAR1
+   LSPLIT=.TRUE.,
+   NSTRIN=${NSTRIN},
+   NSTROUT=${NSTROUT},
+ /
+ &NAMFA
+   CMODEL=' ',
+ /
+ &NAMIAU
+   LIAU=.FALSE.,
+ /
+ &NAMARG
+   CNMEXP='0000',
+ /
+ &NAMCT0
+   CSCRIPT_LAMRTC=' ',
+   CSCRIPT_PPSERVER=' ',
+   CFPNCF='ECHFP',
+   NSDITS(0)=0,
+   NFRSDI=4,
+   NFPOS=1,
+ /
+ &NAMCT1
+   N1POS=1,
+ /
+ &NAMFPC
+   CFPDIR='${OUTDIR}/PF',
+ /
+ &NAMOPH
+   CFNHWF='${OUTDIR}/ECHIS',
+   CFPATH='${OUTDIR}/',
+ /
+ &NAMIO_SERV 
+   NPROC_IO=${NPROC_IO}, 
+   NMSG_LEVEL_SERVER=1, 
+   NMSG_LEVEL_CLIENT=1, 
+   NPROCESS_LEVEL=5,
+ /
+ &NAMRIP
+    CSTOP='h24',
+    TSTEP=50.,
+ /
+EOF
+cat namelist_mods2 > namelist_modset
+\rm -f namelist_mods2
+echo
+echo Namelists adaptations :
+cat namelist_modset
+echo
+
+set +x
+cp $NAMELDIR/$NAMELIST namelist
+perl -w $TOOLSDIR/xpnam namelist --dfile=namelist_modset
+set -x
+echo
+/bin/cat namelist.new
+set +x
+\rm -f namelist_modset namelist
+\mv namelist.new fort.4
+set -x
+
+#MTOOL common
+
+# =============================================================================
+
+#                               DRIVER
+#                               ======
+
+#      ******************************
+#      *  fetch initial data files  *
+#      ******************************
+
+#MTOOL common join=step_1
+
+set -x
+$TOOLSDIR/getdata.sh
+set +x
+
+#MTOOL common
+
+#MTOOL common join=step_2
+
+for file in $(cat $NAMELDIR/$CTRLLIST) ; do
+  set -x
+  cp $NAMELDIR/$file .
+  set +x
+done
+if [ -s $NAMELDIR/$LINKS ] ; then
+  set -x
+  cp $NAMELDIR/$LINKS .
+  chmod 755 $LINKS
+  . ./$LINKS
+  \rm $LINKS
+  set +x
+fi
+
+#MTOOL common
+
+#      ***************
+#      *  Executable *
+#      ***************
+
+#MTOOL common join=step_1
+
+echo
+set -x
+cp $BINDIR/$EXECUTABLE .
+set +x
+if [ ! -f $EXECUTABLE ] ; then
+  echo "executable $BINDIR/$EXECUTABLE could not be copied."
+  exit 1
+fi
+
+#MTOOL common
+
+#      ********************************
+#      *  Prepare parallel executions *
+#      ********************************
+
+#MTOOL common join=step_2
+
+if [ "$LOCAL_STACK_LIMIT" ] ; then
+  set -x
+  ulimit -s $LOCAL_STACK_LIMIT
+  set +x
+fi
+# for mpsh :
+export MPSH_NPES=$NNODES
+
+# grib_api environment variables may be determined by the executable : 
+. grib_api_profile $EXECUTABLE
+
+# Intel mpi fabric setup depending on what is found in the executable :
+. intel_mpi_fabric $EXECUTABLE
+
+#MTOOL common
+
+set -x
+cd $TMPLOC
+set +x
+. rttov_profile
+
+#      *******************************************************
+#      *  Unarchive datasets and local disks Synchronisation *
+#      *******************************************************
+
+if [ $ISYNC -eq 0 ] ; then
+  set -x
+#MTOOL common join=step_1
+  $TOOLSDIR/input_sync.sh
+#MTOOL common
+  set +x
+else
+  set -x
+#MTOOL common join=step_2
+  $TOOLSDIR/input_sync.sh
+#MTOOL common
+  set +x
+fi
+
+#      ***************
+#      *  Execution  *
+#      ***************
+
+#MTOOL common join=step_2
+
+mkdir -p $OUTDIR
+echo
+if [ $(echo $LOCAL_MPI_WRAPPER | grep -c mpiauto) -ne 0 ] ; then
+  set -x
+  time $LOCAL_MPI_WRAPPER -np $MPI_TASKS -nnp $MPITASKS_PER_NODE -- ./$EXECUTABLE </dev/null \
+  errorcode=$?
+  2>&1 | grep -v "FA[DC]GR[AM]: Field .* is not declared in \`faFieldName.def'"
+  set +x
+elif [ "$LOCAL_MPI_WRAPPER" = "srun" ] ; then
+  set -x
+  time $LOCAL_MPI_WRAPPER ./$EXECUTABLE </dev/null \
+  errorcode=$?
+  2>&1 | grep -v "FA[DC]GR[AM]: Field .* is not declared in \`faFieldName.def'"
+  set +x
+elif [ "$LOCAL_MPI_WRAPPER" ] ; then
+  set -x
+  time $LOCAL_MPI_WRAPPER -np $MPI_TASKS ./$EXECUTABLE </dev/null \
+  errorcode=$?
+  2>&1 | grep -v "FA[DC]GR[AM]: Field .* is not declared in \`faFieldName.def'"
+  set +x
+else
+  set -x
+  time ./$EXECUTABLE \
+  errorcode=$?
+  2>&1 | grep -v "FA[DC]GR[AM]: Field .* is not declared in \`faFieldName.def'"
+  set +x
+fi
+
+#      **********************
+#      *  Post-processings  *
+#      **********************
+
+echo
+if [ "$OUTPUT_LISTING" = "YES" ] ; then
+  set -x
+  $TOOLSDIR/outsync.sh
+  set +x
+fi
+
+if [ $FTRACE_JOB -gt 0 ] ; then
+  set -x
+  $TOOLSDIR/profsync.sh
+  set +x
+fi
+
+set -x
+ls -l $OUTDIR
+set +x
+
+set -x
+#errorcode returned by executable is not reliable (always different from 0)
+if grep " NSTEP =  1728 CNT0" NODE.001_01 > /dev/null; then
+  cp $EXPLIST $OUTPUTDIR/
+else
+  mkdir $OUTPUTDIR/error
+  cp $EXPLIST $OUTPUTDIR/error/
+fi
+#if [ -f $REFLIST ] && [ -f $EXPLIST ] ; then $TOOLSDIR/diffNODE.001_01 $EXPLIST $REFLIST ; fi
+set +x
+#      ****************
+#      *  Cleanups    *
+#      ****************
+
+set -x
+cd $TMPGFS
+$TOOLSDIR/cleansync.sh
+set +x
+
+#MTOOL common
+
+#      ****************
+#      *  Epilogue    *
+#       ****************
+
+set -x
+$TOOLSDIR/epilog.sh
+set +x
+if [ "$MTOOL_IS" != "ON" ] && [ "$AUTO_CLEAN" = "ON" ] ; then
+  cd $HOME
+  \rm -rf $TMPGFS
+fi
+
+#MTOOL step id=step_1 target=FRONTEND
+#MTOOL step id=step_2 target=SUPERCOMPUTER
diff --git a/tools/conf_tests/small_3D/aro48t3.sh b/tools/conf_tests/small_3D/aro48t3.sh
new file mode 100755
index 0000000000000000000000000000000000000000..e4dee94ab7fedf14b4354eef27618864b8095488
--- /dev/null
+++ b/tools/conf_tests/small_3D/aro48t3.sh
@@ -0,0 +1,1208 @@
+#!/bin/bash
+#SBATCH -n 4
+#SBATCH --mem=20000
+#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR
+#SBATCH -t 00:10:00
+#SBATCH -N 1
+#SBATCH -p normal256
+
+#The MYLIB variable must contain the gmkpack pack name
+#The TESTDIR variable must contain the test directory
+#Results will be stored in the local directory
+
+#Other environment varaibles that can be set:
+#OUTPUTDIR
+
+date
+
+OUTPUTDIR=${OUTPUTDIR:-$PWD}
+case=riette2
+#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script
+rekchemin=$TESTDIR
+
+NPROC=4
+NSTRIN=$NPROC
+NSTROUT=1
+NPRTRW_NPRTRV=""
+NPRTRW_NPRTRV="  NPRTRW=$NPROC,
+  NPRTRV=1,"
+export OMP_NUM_THREADS=1
+
+#MYLIB=48t1_main.01%jpdup
+
+export DR_HOOK=1
+#export DR_HOOK_IGNORE_SIGNALS=-1
+export DR_HOOK_NOT_MPI=1
+export DR_HOOK_SILENT=1
+export DR_HOOK_OPT=
+
+export EC_PROFILE_HEAP=0
+export EC_PROFILE_MEM=0
+export EC_MPI_ATEXIT=0
+export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+export EC_MEMINFO=0
+export TVSEARCHPATH=$SOURCE
+
+HOMEPACK=${HOMEPACK:=$HOME/pack}
+SOURCE=$HOMEPACK/$MYLIB/src/local
+LOADIR=$HOMEPACK/$MYLIB/bin
+
+TMPDIR=${TMPDIR:=$HOME/tmp}
+TMPLOC=$TMPDIR/rundir.$$
+TMPWAIT=$TMPDIR/wait_queue.$$
+mkdir $TMPWAIT
+mkdir $TMPLOC
+cd $TMPLOC
+
+export RTTOV_COEFDIR=$PWD
+
+#      **************************
+#      *  Saisie des NAMELISTS  *
+#      **************************
+
+CNMEXP='FPOS'
+
+echo
+/bin/cat <<FIN > fort.4
+ &NACIETEO
+ /
+ &NACOBS
+ /
+ &NACTAN
+ /
+ &NACTEX
+ /
+ &NACVEG
+ /
+ &NADOCK
+ /
+ &NAEAEM7
+ /
+ &NAEAER
+ /
+ &NAECOAPHY
+ /
+ &NAEPHLI
+ /
+ &NAEPHY
+ /
+ &NAERAD
+   LRRTM=.TRUE.,
+   LSRTM=.FALSE.,
+   NAER=1,
+   NICEOPT=3,
+   NLIQOPT=3,
+   NOVLP=6,
+   NOZOCL=2,
+   NRADFR=18,
+   NRADIP=3,
+   NRADLP=2,
+   NSW=6,
+   RLWINHF=1,
+   RRE2DE=0.64952,
+   RSWINHF=1,
+ /
+ &NAERCLI
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMAFN
+   GFP_CLSG%CLNAME='SURFACCGRAUPEL',
+   GFP_CLSP%CLNAME='SURFACCPLUIE',
+   GFP_CLSS%CLNAME='SURFACCNEIGE',
+   GFP_SFIS%IBITS=16,
+   GFP_ST%CLNAME='SURFTEMPERATURE',
+   GFP_ST%IANO=0,
+   GFP_ST%IBITS=12,
+   GFP_X10U%CLNAME='CLSVENT.ZONAL',
+   GFP_X10U%IANO=0,
+   GFP_X10U%IBITS=12,
+   GFP_X10V%CLNAME='CLSVENT.MERIDIEN',
+   GFP_X10V%IANO=0,
+   GFP_X10V%IBITS=12,
+   GFP_X2RH%CLNAME='CLSHUMI.RELATIVE',
+   GFP_X2RH%IANO=0,
+   GFP_X2RH%IBITS=12,
+   GFP_X2T%CLNAME='CLSTEMPERATURE',
+   GFP_X2T%IANO=1,
+   GFP_XCCC%IBITS=8,
+   GFP_XHCC%IBITS=8,
+   GFP_XLCC%IBITS=8,
+   GFP_XLSG%CLNAME='SURFINSGRAUPEL',
+   GFP_XLSP%CLNAME='SURFINSPLUIE',
+   GFP_XLSS%CLNAME='SURFINSNEIGE',
+   GFP_XMCC%IBITS=8,
+   GFP_XN2T%IBITS=12,
+   GFP_XTCC%IBITS=8,
+   GFP_XUGST%CLNAME='CLSU.RAF60M.XFU',
+   GFP_XUGST%IANO=0,
+   GFP_XUGST%IBITS=12,
+   GFP_XVGST%CLNAME='CLSV.RAF60M.XFU',
+   GFP_XVGST%IANO=0,
+   GFP_XVGST%IBITS=12,
+   GFP_XX2T%IBITS=12,
+   GFP_XXDIAGH%IBITS=12,
+   TFP_ABS%ZFK=32.,
+   TFP_CLF%IBITS=6,
+   TFP_EDR%CLNAME='EDR',
+   TFP_EDR%IBITS=16,
+   TFP_EDR%IGRIB=136,
+   TFP_GR%IBITS=12,
+   TFP_HL%IBITS=12,
+   TFP_HTB%IBITS=16,
+   TFP_HTB%LLGP=.TRUE.,
+   TFP_HU%IBITS=12,
+   TFP_MSAT9C2%IBITS=12,
+   TFP_MSAT9C6%IBITS=12,
+   TFP_MSLNH%IBITS=12,
+   TFP_PV%ZFK=64.,
+   TFP_RCLS%IBITS=12,
+   TFP_RR%IBITS=12,
+   TFP_SN%IBITS=12,
+   TFP_T%IBITS=12,
+   TFP_TCLS%IBITS=12,
+   TFP_TH%IBITS=12,
+   TFP_THPW%IBITS=12,
+   TFP_THV%IBITS=12,
+   TFP_TN%IBITS=12,
+   TFP_TWV%IBITS=12,
+   TFP_TX%IBITS=12,
+   TFP_U%IBITS=12,
+   TFP_V%IBITS=12,
+   TFP_VOR%ZFK=32.,
+   TFP_VV%ZFK=32.,
+ /
+ &NAMARG
+   CNMEXP='${CNMEXP}',
+   LECMWF=.FALSE.,
+   LELAM=.TRUE.,
+   LSLAG=.TRUE.,
+   NCONF=1,
+   NSUPERSEDE=1,
+ /
+ &NAMARPHY
+   LKFBCONV=.FALSE.,
+   LKFBD=.FALSE.,
+   LKFBS=.FALSE.,
+   LMFSHAL=.TRUE.,
+   LMICRO=.TRUE.,
+   LMPA=.TRUE.,
+   LMSE=.TRUE.,
+   LTURB=.TRUE.,
+ /
+ &NAMCA
+ /
+ &NAMCAPE
+ /
+ &NAMCFU
+   LCUMFU=.TRUE.,
+   LFPLS=.TRUE.,
+   LFPLSG=.TRUE.,
+   LFR=.TRUE.,
+   LFRRC=.TRUE.,
+   LFSF=.TRUE.,
+   LNEBPAR=.TRUE.,
+   LNEBTT=.TRUE.,
+   LRAYD=.TRUE.,
+   LRAYS=.TRUE.,
+ /
+ &NAMCHEM
+ /
+ &NAMCHET
+ /
+ &NAMCHK
+ /
+ &NAMCLA
+ /
+ &NAMCLDP
+ /
+ &NAMCLI
+ /
+ &NAMCLOP15
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LNHEE=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   LSPRT=.TRUE.,
+   LTWOTL=.TRUE.,
+   NFPOS=1,
+   NFRSDI=18,
+   NSDITS(0)=0,
+   NFRHIS=72,
+   NHISTS(0)=0,
+   NFRPOS=72,
+   NPOSTS(0)=0,
+   NFRSFXHIS=72,
+   NSFXHISTS(0)=0,
+   NFRDHFD=72,
+   NDHFDTS(0)=0,
+ /
+ &NAMCT1
+   LRFILAF=.FALSE.,
+   N1HIS=1,
+   N1POS=1,
+   N1RES=0,
+   N1SDI=1,
+   N1SFXHIS=1,
+   N1GDI=0,
+ /
+ &NAMCUMF
+ /
+ &NAMCUMFS
+ /
+ &NAMCVER
+ /
+ &NAMCVMNH
+ /
+ &NAMDDH
+   LDDH_OMP=.TRUE.,
+   LHDDOP=.TRUE.,
+   LHDHKS=.TRUE.,
+   LHDEFD=.TRUE.,
+   LFLEXDIA=.TRUE.,
+   BDEDDH(1,1)=3,
+   BDEDDH(2,1)=1,
+   BDEDDH(3,1)=358.8
+   BDEDDH(4,1)=45.1
+   BDEDDH(5,1)=360.3
+   BDEDDH(6,1)=44.5
+ /
+ &NAMDFI
+ /
+ &NAMDIM
+   NPROMA=-50,
+ /
+ &NAMDIMO
+ /
+ &NAMDIM_TRAJ
+ /
+ &NAMDPHY
+ /
+ &NAMDPRECIPS
+ /
+ &NAMDYN
+   LADVF=.TRUE.,
+   LQMPD=.FALSE.,
+   LQMT=.FALSE.,
+   LQMVD=.FALSE.,
+   LRHDI_LASTITERPC=.TRUE.,
+   NITMP=4,
+   NSITER=1,
+   NSPDLAG=3,
+   NSVDLAG=3,
+   NTLAG=3,
+   NVLAG=3,
+   NWLAG=3,
+   RDAMPDIV=20.,
+   RDAMPPD=20.,
+   RDAMPQ=0.,
+   RDAMPT=0.,
+   RDAMPVD=20.,
+   RDAMPVOR=20.,
+   REPS1=0.,
+   REPS2=0.,
+   REPSM1=0.,
+   REPSM2=0.,
+   REPSP1=0.,
+   SDRED=1.,
+   SIPR=90000.,
+   SITR=350.,
+   SITRA=100.,
+   SLHDA0=0.25,
+   SLHDD00=0.000065,
+   VESL=0.05,
+   XIDT=0.,
+   ZSLHDP1=1.7,
+   ZSLHDP3=0.6,
+ /
+ &NAMDYNA
+   LCOMADH=.TRUE.,
+   LCOMADV=.FALSE.,
+   LCOMAD_GFL=.TRUE.,
+   LCOMAD_SP=.TRUE.,
+   LCOMAD_SPD=.TRUE.,
+   LCOMAD_SVD=.TRUE.,
+   LCOMAD_T=.TRUE.,
+   LCOMAD_W=.TRUE.,
+   LGWADV=.TRUE.,
+   LNESC=.TRUE.,
+   LPC_CHEAP=.TRUE.,
+   LPC_FULL=.TRUE.,
+   LRDBBC=.FALSE.,
+   LSETTLS=.FALSE.,
+   LSETTLST=.TRUE.,
+   LSLHD_GFL=.TRUE.,
+   LSLHD_OLD=.FALSE.,
+   LSLHD_SPD=.FALSE.,
+   LSLHD_SVD=.FALSE.,
+   LSLHD_T=.FALSE.,
+   LSLHD_W=.FALSE.,
+   ND4SYS=2,
+   NDLNPR=1,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+ /
+ &NAMDYNCORE
+ /
+ &NAMEMIS_CONF
+ /
+ &NAMENKF
+ /
+ &NAMFA
+   CMODEL='OUTPUTID',
+   LEXTERN=.TRUE.,
+   LSUPPDATE=.FALSE.,
+   NBITCS=-1,
+   NBITPG=-1,
+   NSTRON=-1,
+ /
+ &NAMFAINIT
+   JPXTRO=2000,
+ /
+ &NAMFPC
+   CFP2DF(1)='SURFPRESSION',
+   CFP2DF(2)='MSL_NHPRESSURE',
+   CFP2DF(3)='SURFTOT.WAT.VAPO',
+   CFP2DF(4)='SURFISOTPW0.MALT',
+   CFP2DF(5)='SURFCAPE.POS.F00',
+   CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(8)='SURFREFLECT.MAX',
+   CFP2DF(9)='SURFISOTPW1.MALT',
+   CFP2DF(10)='SURFISOTPW2.MALT',
+   CFP3DF(1)='GEOPOTENTIEL',
+   CFP3DF(2)='TEMPERATURE',
+   CFP3DF(3)='VENT_ZONAL',
+   CFP3DF(4)='VENT_MERIDIEN',
+   CFP3DF(5)='HUMI_RELATIVE',
+   CFP3DF(6)='THETA_PRIM_W',
+   CFP3DF(7)='PRESSURE',
+   CFP3DF(8)='ABS_VORTICITY',
+   CFP3DF(9)='VITESSE_VERTICALE',
+   CFP3DF(10)='TEMPE_POTENT',
+   CFP3DF(11)='POT_VORTICIT',
+   CFP3DF(12)='SIM_REFLECTI',
+   CFP3DF(13)='RAIN',
+   CFP3DF(14)='SNOW',
+   CFP3DF(15)='GRAUPEL',
+   CFP3DF(16)='ICE_CRYSTAL',
+   CFP3DF(17)='CLOUD_WATER',
+   CFP3DF(18)='VERT.VELOCIT',
+   CFP3DF(19)='DIVERGENCE',
+   CFP3DF(20)='THETA_VIRTUA',
+   CFP3DF(21)='TKE',
+   CFP3DF(22)='CLOUD_FRACTI',
+   CFP3DF(23)='ISOT_ALTIT',
+   CFP3DF(24)='EDR',
+   CFPCFU(1)='SURFTENS.TOTA.ZO',
+   CFPCFU(2)='SURFTENS.TOTA.ME',
+   CFPCFU(3)='SURFACCPLUIE',
+   CFPCFU(4)='SURFACCNEIGE',
+   CFPCFU(5)='SURFACCGRAUPEL',
+   CFPCFU(6)='SOMMFLU.RAY.SOLA',
+   CFPCFU(7)='SURFFLU.RAY.SOLA',
+   CFPCFU(8)='SOMMFLU.RAY.THER',
+   CFPCFU(9)='SURFFLU.RAY.THER',
+   CFPCFU(10)='SURFFLU.LAT.MTOT',
+   CFPCFU(11)='SURFFLU.MTOTA.NE',
+   CFPCFU(12)='SURFFLU.CHA.SENS',
+   CFPCFU(13)='SURFRAYT SOLA DE',
+   CFPCFU(14)='SURFRAYT THER DE',
+   CFPCFU(15)='SURFRAYT SOL CL',
+   CFPCFU(16)='SURFRAYT THER CL',
+   CFPCFU(17)='SURFRAYT DIR SUR',
+   CFPDOM(1)='FRANGP0025',
+   CFPFMT='LALON',
+   CFPPHY(1)='SURFTEMPERATURE',
+   CFPPHY(2)='INTSURFGEOPOTENT',
+   CFPPHY(3)='SURFRESERV.NEIGE',
+   CFPXFU(1)='CLSTEMPERATURE',
+   CFPXFU(2)='CLSHUMI.RELATIVE',
+   CFPXFU(3)='CLSVENT.ZONAL',
+   CFPXFU(4)='CLSVENT.MERIDIEN',
+   CFPXFU(5)='SURFNEBUL.TOTALE',
+   CFPXFU(6)='SURFNEBUL.HAUTE',
+   CFPXFU(7)='SURFNEBUL.MOYENN',
+   CFPXFU(8)='SURFNEBUL.BASSE',
+   CFPXFU(9)='CLSMAXI.TEMPERAT',
+   CFPXFU(10)='CLSMINI.TEMPERAT',
+   CFPXFU(11)='CLPMHAUT.MOD.XFU',
+   CFPXFU(12)='SURFDIAGHAIL',
+   LCRITSNOWTEMP=.FALSE.,
+   LFPCAPEX=.TRUE.,
+   LFPMOIS=.TRUE.,
+   LFPPACKING=.FALSE.,
+   LWIDER_DOM=.TRUE.,
+   L_READ_MODEL_DATE=.TRUE.,
+   NFITI=1,
+   NFITV=1,
+   NFPCAPE=5,
+   NFPCLI=1,
+   NFPGRIB=1,
+   NFPINPHY=4,
+   NITERPV=8,
+   RENTRA=0.0001,
+   RFP3H(1)=10.,
+   RFP3H(2)=20.,
+   RFP3H(3)=35.,
+   RFP3H(4)=50.,
+   RFP3H(5)=75.,
+   RFP3H(6)=100.,
+   RFP3H(7)=150.,
+   RFP3H(8)=200.,
+   RFP3H(9)=250.,
+   RFP3H(10)=375.,
+   RFP3H(11)=500.,
+   RFP3H(12)=625.,
+   RFP3H(13)=750.,
+   RFP3H(14)=875.,
+   RFP3H(15)=1000.,
+   RFP3H(16)=1125.,
+   RFP3H(17)=1250.,
+   RFP3H(18)=1375.,
+   RFP3H(19)=1500.,
+   RFP3H(20)=1750.,
+   RFP3H(21)=2000.,
+   RFP3H(22)=2250.,
+   RFP3H(23)=2500.,
+   RFP3H(24)=2750.,
+   RFP3H(25)=3000.,
+   RFP3I(1)=-273.15,
+   RFP3I(2)=-263.15,
+   RFP3I(3)=-261.15,
+   RFP3I(4)=-253.15,
+   RFP3P(1)=10000.,
+   RFP3P(2)=12500.,
+   RFP3P(3)=15000.,
+   RFP3P(4)=17500.,
+   RFP3P(5)=20000.,
+   RFP3P(6)=22500.,
+   RFP3P(7)=25000.,
+   RFP3P(8)=27500.,
+   RFP3P(9)=30000.,
+   RFP3P(10)=35000.,
+   RFP3P(11)=40000.,
+   RFP3P(12)=45000.,
+   RFP3P(13)=50000.,
+   RFP3P(14)=55000.,
+   RFP3P(15)=60000.,
+   RFP3P(16)=65000.,
+   RFP3P(17)=70000.,
+   RFP3P(18)=75000.,
+   RFP3P(19)=80000.,
+   RFP3P(20)=85000.,
+   RFP3P(21)=90000.,
+   RFP3P(22)=92500.,
+   RFP3P(23)=95000.,
+   RFP3P(24)=100000.,
+   RFP3PV(1)=0.0000015,
+   RFP3PV(2)=0.000002,
+   RFPCD2=5.,
+   RFPCSAB=50.,
+   RFPVCAP=7000.,
+ /
+ &NAMFPD
+   NLAT(1)=41,
+   NLON(1)=41,
+   RLONC(1)=-0.71,
+   RLATC(1)=44.8,
+   RDELX(1)=0.025,
+   RDELY(1)=0.025,
+ /
+ &NAMFPDY2
+ /
+ &NAMFPDYF
+ /
+ &NAMFPDYH
+ /
+ &NAMFPDYI
+ /
+ &NAMFPDYP
+ /
+ &NAMFPDYS
+ /
+ &NAMFPDYT
+ /
+ &NAMFPDYV
+ /
+ &NAMFPF
+   NFMAX(1)=60,
+   NFMAX(2)=80,
+ /
+ &NAMFPG
+   NFPDISTRIB=1,
+ /
+ &NAMFPIOS
+ /
+ &NAMFPMOVE
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+ /
+ &NAMGFL
+   NGFL_EZDIAG=4,
+   YEZDIAG_NL(1)%CNAME='EZDIAG01',
+   YEZDIAG_NL(1)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(2)%CNAME='EZDIAG02',
+   YEZDIAG_NL(2)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(3)%CNAME='EZDIAG03',
+   YEZDIAG_NL(3)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(4)%CNAME='INPRRTOT3D',
+   YEZDIAG_NL(4)%LREQOUT=.TRUE.,
+   YG_NL%LQM=.TRUE.,
+   YG_NL%LSLHD=.TRUE.,
+   YG_NL%NCOUPLING=-1,
+   YG_NL%NREQIN=1,
+   YG_NL%REFVALC=0.,
+   YIRAD_NL%LGP=.TRUE.,
+   YI_NL%LQM=.TRUE.,
+   YI_NL%LSLHD=.TRUE.,
+   YI_NL%NCOUPLING=-1,
+   YI_NL%NREQIN=1,
+   YI_NL%REFVALC=0.,
+   YLRAD_NL%LGP=.TRUE.,
+   YL_NL%LQM=.TRUE.,
+   YL_NL%LSLHD=.TRUE.,
+   YL_NL%NCOUPLING=-1,
+   YL_NL%NREQIN=1,
+   YL_NL%REFVALC=0.,
+   YQ_NL%LCOMAD=.TRUE.,
+   YQ_NL%LQM=.TRUE.,
+   YQ_NL%LSLHD=.FALSE.,
+   YQ_NL%NREQIN=1,
+   YR_NL%LQM=.TRUE.,
+   YR_NL%LSLHD=.TRUE.,
+   YR_NL%NCOUPLING=-1,
+   YR_NL%NREQIN=1,
+   YR_NL%REFVALC=0.,
+   YS_NL%LQM=.TRUE.,
+   YS_NL%LSLHD=.TRUE.,
+   YS_NL%NCOUPLING=-1,
+   YS_NL%NREQIN=1,
+   YS_NL%REFVALC=0.,
+   YTKE_NL%NCOUPLING=0,
+   YTKE_NL%NREQIN=1,
+ /
+ &NAMGRIB
+ /
+ &NAMGWD
+ /
+ &NAMGWDIAG
+ /
+ &NAMGWWMS
+ /
+ &NAMIAU
+   ALPHAIAU=0.5,
+   LIAU=.FALSE.,
+   TSTARTIAU=1800,
+   TSTOPIAU=5340,
+ /
+ &NAMICE
+ /
+ &NAMINI
+   LDFI=.FALSE.,
+ /
+ &NAMINTFLEX
+ /
+ &NAMIOMI
+ /
+ &NAMIOS
+ /
+ &NAMIO_SERV
+   NIO_SERV_BUF_MAXSIZE=20,
+   NIO_SERV_METHOD=2,
+   NMSG_LEVEL_CLIENT=0,
+   NMSG_LEVEL_SERVER=0,
+   NPROCESS_LEVEL=5,
+   NPROC_IO=0,
+ /
+ &NAMJBCODES
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMOBS
+ /
+ &NAMONEDVAR
+ /
+ &NAMOOPS
+ /
+ &NAMOPH
+   CFNHWF='ECHIS',
+   LINC=.TRUE.,
+   NTIMEFMT=1,
+ /
+ &NAMOPTCMEM
+ /
+ &NAMPAR0
+   LOPT_SCALAR=.TRUE.,
+   NPRINTLEV=1,
+   LMPOFF=.FALSE.,
+   MBX_SIZE=2048000000,
+   MP_TYPE=2,
+   NOUTPUT=1,
+   NPROC=$NPROC,
+$NPRTRW_NPRTRV
+ /
+ &NAMPAR1
+   LEQ_REGIONS=.FALSE.,
+   LSLONDEM=.TRUE.,
+   LSPLIT=.TRUE.,
+   LSYNC_SLCOM=.FALSE.,
+   LSYNC_TRANS=.FALSE.,
+   L_GATHERV_WRGP=.FALSE.,
+   NCOMBFLEN=1800000,
+   NSTRIN=$NSTRIN,
+   NSTROUT=$NSTROUT,
+ /
+ &NAMPARAR
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   CMICRO='ICE3',
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LCRIAUTI=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LFPREC3D=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LOLSMC=.TRUE.,
+   LOSEDIC=.TRUE.,
+   LOSIGMAS=.TRUE.,
+   LOSUBG_COND=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   NPRINTFR=10000,
+   NPTP=1,
+   RCRIAUTC=0.001,
+   RCRIAUTI=0.0002,
+   RT0CRIAUTI=-5.,
+   VSIGQSAT=0.02,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+ /
+ &NAMPHMSE
+   LPGDFWR=.FALSE.,
+ /
+ &NAMPHY
+   LAERODES=.TRUE.,
+   LAEROLAN=.TRUE.,
+   LAEROSEA=.TRUE.,
+   LAEROSOO=.TRUE.,
+   LEDR=.TRUE.,
+   LMPHYS=.TRUE.,
+   LO3ABC=.TRUE.,
+   LRAYFM=.TRUE.,
+ /
+ &NAMPHY0
+   ALMAV=300.,
+   BEDIFV=0.05,
+   ECMNP=3000.,
+   GCCSV=0.,
+   GCVADS=0.8,
+   GCVALFA=0.000045,
+   GCVBETA=0.2,
+   GCVMLT=0.00016,
+   GCVNU=0.000025,
+   GCVPSI=1.,
+   GCVPSIE=1.,
+   GDDEVA=0.25,
+   GDDSDE=0.5,
+   GWDCD=6.,
+   HUCOE=0.5,
+   HUTIL=1.8,
+   QSSC=400.,
+   QSSUSC=0.75,
+   QSSUSS=0.4,
+   QSSUSV=250.,
+   QSUSXC=0.0002,
+   QSUSXS=0.0003,
+   QXRAL=130.,
+   QXRDEL=0.49,
+   QXRHX=0.99,
+   QXRR=0.25,
+   RCVEVAP=0.25,
+   REFLKUO=5000.,
+   REVGSL=15.,
+   SCO=-20.,
+   TDDGP=0.8,
+   TENTR=0.0000025,
+   TENTRX=0.00008,
+   TUDGP=0.8,
+   UHDIFV=0.0008,
+   USURIC=0.175,
+   USURICE=0.5,
+   USURICL=1.,
+   USURID=0.1,
+   USURIDE=0.25,
+   VZ0CM=0.00015,
+   XMAXLM=5000.,
+   XMINLM=10.,
+ /
+ &NAMPHY1
+   ALBMIN=0.65,
+   ALCRIN=0.75,
+   GCGEL=0.00003,
+   GCGELS=0.00005,
+   GNEIMX=1.8,
+   GNEIMXS=1.8,
+   RCTVEG(3)=0.000012,
+   RCTVEG(4)=0.00001,
+ /
+ &NAMPHY2
+   FACRAF=3.8,
+   HTKERAF=20.,
+   LMULAF=.TRUE.,
+   LRAFTKE=.TRUE.,
+   LRAFTUR=.TRUE.,
+   XDAMP=1.,
+   XMULAF=-1.85,
+ /
+ &NAMPHY3
+ /
+ &NAMPHYDS
+ /
+ &NAMPONG
+ /
+ &NAMPPC
+ /
+ &NAMPPVI
+ /
+ &NAMPRE
+ /
+ &NAMRAD15
+ /
+ &NAMRADCMEM
+ /
+ &NAMRCF
+ /
+ &NAMRCOEF
+ /
+ &NAMRES
+ /
+ &NAMRGRI
+ /
+ &NAMRINC
+ /
+ &NAMRIP
+    TSTEP=50.,
+    CSTOP='h2',
+ /
+ &NAMRIP0
+ /
+ &NAMRLX
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPSDT
+ /
+ &NAMSTA
+ /
+ &NAMSTOPH
+ /
+ &NAMSWE
+ /
+ &NAMTESTVAR
+ /
+ &NAMTHLIM
+ /
+ &NAMTOPH
+   ETCVIM=5000.,
+   ETNEBU=5000.,
+   ETPLUI=5000.,
+   XDRMTK=6.0D-7,
+   XDRMTP=800.,
+   XDRMUK=3.0D-7,
+   XDRMUP=800.,
+ /
+ &NAMTRAJP
+ /
+ &NAMTRANS
+ /
+ &NAMTRANS0
+ /
+ &NAMTS
+ /
+ &NAMVAR
+ /
+ &NAMVARBC
+ /
+ &NAMVARBC_AIREP
+ /
+ &NAMVARBC_ALLSKY
+ /
+ &NAMVARBC_GBRAD
+ /
+ &NAMVARBC_RAD
+ /
+ &NAMVARBC_SFCOBS
+ /
+ &NAMVARBC_TCWV
+ /
+ &NAMVARBC_TO3
+ /
+ &NAMVAREPS
+ /
+ &NAMVDF
+ /
+ &NAMVDOZ
+ /
+ &NAMVOLCANO
+ /
+ &NAMVRTL
+ /
+ &NAMVV0
+ /
+ &NAMVV1
+ /
+ &NAMVWRK
+ /
+ &NAMWAVELETJB
+ /
+ &NAMXFU
+   LXCLP=.TRUE.,
+   LXCLS=.TRUE.,
+   LXFU=.TRUE.,
+   LXNEBPA=.TRUE.,
+   LXNEBTT=.TRUE.,
+   LXNUVCLS=.TRUE.,
+   LXPLS=.TRUE.,
+   LXPLSG=.TRUE.,
+   LXQCLS=.TRUE.,
+   LXR=.TRUE.,
+   LXSOIL=.FALSE.,
+   LXTHW=.TRUE.,
+   LXTRT=.TRUE.,
+   LXTTCLS=.TRUE.,
+   LXXDIAGH=.TRUE.,
+   LXXGST=.TRUE.,
+   NFRRAZ=72,
+   NRAZTS(0)=0,
+ /
+ &NAM_CANAPE
+ /
+ &NAM_DISTRIBUTED_VECTORS
+ /
+ &NAPHLC
+ /
+ &NEMCT0
+ /
+ &NEMDIM
+ /
+ &NEMDYN
+ /
+ &NEMELBC0A
+   LESPCPL=.TRUE.,
+   NBICNHX=2,
+   NBICOP=2,
+   NBICOT=2,
+   NBICOU=2,
+   NBICPD=2,
+   NBICVD=2,
+   NECRIPL=1,
+ /
+ &NEMELBC0B
+   NEFRSPCPL=1,
+   NEK0=20,
+   NEK1=30,
+   NEN1=4,
+   NEN2=8,
+   SPNUDDIV=0.01,
+   SPNUDQ=0.,
+   SPNUDT=0.01,
+   SPNUDVOR=0.01,
+   TEFRCL=3600.,
+ /
+ &NEMFPEZO
+ /
+ &NEMGEO
+ /
+ &NEMJK
+ /
+ &NEMVAR
+ /
+ &NEMWAVELET
+ /
+ &NAETLDIAG
+ /
+ &NAMMETHOX
+ /
+ &NAMSPP
+ /
+ &NAMACV
+ /
+ &NAMFPOBJ
+ /
+ &NAMNORGWD
+ /
+ &NAMTRAJ
+ /
+ &NAMSATSIM
+ /
+ &NAMDVISI
+ /
+ &NAMNUDGLH
+ /
+ &NAMPERTPAR
+ /
+FIN
+/bin/cat fort.4
+
+/bin/cat <<FIN > EXSEG1.nam
+ &NAM_DIAG_ISBAN
+   LPGD=.TRUE.,
+   LSURF_MISC_BUDGET=.TRUE.,
+ /
+ &NAM_DIAG_SURFN
+   LCOEF=.TRUE.,
+   LSURF_BUDGET=.TRUE.,
+   N2M=2,
+ /
+ &NAM_ISBAN
+   CSCOND='NP89',
+ /
+ &NAM_REPROD_OPER
+   LREPROD_OPER=.TRUE.,
+ /
+ &NAM_SEAFLUXN
+   CSEA_FLUX='ECUME',
+   LPWG=.FALSE.,
+   LPRECIP=.FALSE.,
+   LPWEBB=.FALSE.,
+ /
+ &NAM_SSON
+   CROUGH='Z01D',
+   XFRACZ0=5.,
+   LDSV=.FALSE.,
+ /
+ &NAM_SURF_ATM
+   XRIMAX=0.2,
+   LNOSOF=.TRUE.,
+ /
+ &NAM_SURF_CSTS
+   XZ0SN=0.01,
+   XZ0HSN=0.001,
+   XEMISSN=0.99,
+ /
+ &NAM_WRITE_DIAG_SURFN
+   LPROVAR_TO_DIAG=.FALSE.,
+   LSELECT=.TRUE.,
+CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS',
+ /
+ &NAM_WRITE_SURF_ATM
+   LNOWRITE_TEXFILE=.TRUE.,
+ /
+FIN
+/bin/cat EXSEG1.nam
+
+#      *****************************************
+#      *  Acquisition du fichier de demarrage  *
+#      *****************************************
+
+echo
+for hh in 0 1 2 3 4 5 6 ; do
+  N=`expr $hh / 1 `
+  set -x
+  ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N}
+  set +x
+done
+set -x
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx
+ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin .
+ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim
+ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx
+ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat .
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat .
+ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz
+
+#      ***************
+#      *  Chargement *
+#      ***************
+
+echo
+set -x
+\ln -s $LOADIR/MASTERODB MASTER
+set +x
+if ldd MASTER | grep openmpi > /dev/null; then
+  #On est sur PC
+  MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}')
+  MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC"
+  GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1
+  export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions
+  export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions
+else
+  #On est sur HPC
+  #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD"
+  NNODES=$SLURM_JOB_NUM_NODES
+  MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES))
+  MPI_TASKS=$SLURM_NTASKS
+  MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --"
+  export OMP_STACKSIZE=4G
+  export KMP_STACKSIZE=4G
+  export KMP_MONITOR_STACKSIZE=4G
+  export DR_HOOK=1
+  export DR_HOOK_IGNORE_SIGNALS=-1
+  export DR_HOOK_SILENT=1
+  export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+  export MPL_MBX_SIZE=2048000000
+  export EC_PROFILE_HEAP=0
+  export EC_PROFILE_MEM=0
+  export EC_MPI_ATEXIT=0
+  export EC_MEMINFO=0
+  export OPENBLAS_NUM_THREADS=1
+  export MKL_CBWR="AUTO,STRICT"
+  export MKL_NUM_THREADS=1
+  export MKL_DEBUG_CPU_TYPE=5
+  export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions
+fi
+echo $MPIRUN
+set +x
+if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi
+
+#      ***************
+#      *  Execution  *
+#      ***************
+
+echo
+echo OMP_NUM_THREADS=$OMP_NUM_THREADS
+set -x
+ulimit -s unlimited
+$MPIRUN $PWD/MASTER >lola
+set +x
+echo
+##if [ -f lola ] ; then
+##  echo;echo Standard output :;echo;cat lola
+##fi
+##if [ -f stderr.* ] ; then
+##  for file in stderr.* ; do
+##    echo;echo $file :;cat $file
+##  done
+##fi
+##if [ -f stdout.* ] ; then
+##echo;echo stdout :;echo;cat stdout.*
+##fi
+##if [ -a NODE.001_01 ] ; then
+##  for file in NODE* ; do
+##    echo;echo Listing $file;echo
+##    cat $file
+##  done
+##fi
+##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then
+### Top 25 for each MPI task :
+##  for file in drhook.prof.* ; do
+##    echo;echo $file :;head -38 $file
+##  done
+##fi
+#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl
+
+#      *******************
+#      *  Sauvegardes    *
+#      *******************
+
+ls
+#if [ -f PFFPOS000+0000 ] ; then
+#  cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID
+#fi
+cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/
+mv *.dat $OUTPUTDIR/
+/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001*
+/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00*
+/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz)
+
+#      ****************
+#      *  Epilogue    *
+#      ****************
+
+ls -ltr | grep -v "\->"
+echo Wait_queue :
+ls -ltr $TMPWAIT
+cd $TMPDIR
+\rm -rf rundir.$$
+\rm -rf wait_queue.$$
+date
+set +x
diff --git a/tools/conf_tests/small_3D_alt1/aro48t3.sh b/tools/conf_tests/small_3D_alt1/aro48t3.sh
new file mode 100755
index 0000000000000000000000000000000000000000..62c8078f80366bf944c86f07a8c0c8a36ed0f8c3
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt1/aro48t3.sh
@@ -0,0 +1,1207 @@
+#!/bin/bash
+#SBATCH -n 4
+#SBATCH --mem=20000
+#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR
+#SBATCH -t 00:10:00
+#SBATCH -N 1
+#SBATCH -p normal256
+
+#The MYLIB varibale must contain the gmkpack pack name
+#The TESTDIR variable must contain the test directory
+#Results will be stored in the local directory
+
+#Other environment varaibles that can be set:
+#OUTPUTDIR
+
+date
+
+OUTPUTDIR=${OUTPUTDIR:-$PWD}
+case=riette2
+#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script
+rekchemin=$TESTDIR
+
+NPROC=4
+NSTRIN=$NPROC
+NSTROUT=1
+NPRTRW_NPRTRV=""
+NPRTRW_NPRTRV="  NPRTRW=$NPROC,
+  NPRTRV=1,"
+export OMP_NUM_THREADS=1
+
+#MYLIB=48t1_main.01%jpdup
+
+export DR_HOOK=1
+#export DR_HOOK_IGNORE_SIGNALS=-1
+export DR_HOOK_NOT_MPI=1
+export DR_HOOK_SILENT=1
+export DR_HOOK_OPT=
+
+export EC_PROFILE_HEAP=0
+export EC_PROFILE_MEM=0
+export EC_MPI_ATEXIT=0
+export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+export EC_MEMINFO=0
+export TVSEARCHPATH=$SOURCE
+
+HOMEPACK=${HOMEPACK:=$HOME/pack}
+SOURCE=$HOMEPACK/$MYLIB/src/local
+LOADIR=$HOMEPACK/$MYLIB/bin
+
+TMPDIR=${TMPDIR:=$HOME/tmp}
+TMPLOC=$TMPDIR/rundir.$$
+TMPWAIT=$TMPDIR/wait_queue.$$
+mkdir $TMPWAIT
+mkdir $TMPLOC
+cd $TMPLOC
+
+export RTTOV_COEFDIR=$PWD
+
+#      **************************
+#      *  Saisie des NAMELISTS  *
+#      **************************
+
+CNMEXP='FPOS'
+
+echo
+/bin/cat <<FIN > fort.4
+ &NACIETEO
+ /
+ &NACOBS
+ /
+ &NACTAN
+ /
+ &NACTEX
+ /
+ &NACVEG
+ /
+ &NADOCK
+ /
+ &NAEAEM7
+ /
+ &NAEAER
+ /
+ &NAECOAPHY
+ /
+ &NAEPHLI
+ /
+ &NAEPHY
+ /
+ &NAERAD
+   LRRTM=.TRUE.,
+   LSRTM=.FALSE.,
+   NAER=1,
+   NICEOPT=3,
+   NLIQOPT=3,
+   NOVLP=6,
+   NOZOCL=2,
+   NRADFR=18,
+   NRADIP=3,
+   NRADLP=2,
+   NSW=6,
+   RLWINHF=1,
+   RRE2DE=0.64952,
+   RSWINHF=1,
+ /
+ &NAERCLI
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMAFN
+   GFP_CLSG%CLNAME='SURFACCGRAUPEL',
+   GFP_CLSP%CLNAME='SURFACCPLUIE',
+   GFP_CLSS%CLNAME='SURFACCNEIGE',
+   GFP_SFIS%IBITS=16,
+   GFP_ST%CLNAME='SURFTEMPERATURE',
+   GFP_ST%IANO=0,
+   GFP_ST%IBITS=12,
+   GFP_X10U%CLNAME='CLSVENT.ZONAL',
+   GFP_X10U%IANO=0,
+   GFP_X10U%IBITS=12,
+   GFP_X10V%CLNAME='CLSVENT.MERIDIEN',
+   GFP_X10V%IANO=0,
+   GFP_X10V%IBITS=12,
+   GFP_X2RH%CLNAME='CLSHUMI.RELATIVE',
+   GFP_X2RH%IANO=0,
+   GFP_X2RH%IBITS=12,
+   GFP_X2T%CLNAME='CLSTEMPERATURE',
+   GFP_X2T%IANO=1,
+   GFP_XCCC%IBITS=8,
+   GFP_XHCC%IBITS=8,
+   GFP_XLCC%IBITS=8,
+   GFP_XLSG%CLNAME='SURFINSGRAUPEL',
+   GFP_XLSP%CLNAME='SURFINSPLUIE',
+   GFP_XLSS%CLNAME='SURFINSNEIGE',
+   GFP_XMCC%IBITS=8,
+   GFP_XN2T%IBITS=12,
+   GFP_XTCC%IBITS=8,
+   GFP_XUGST%CLNAME='CLSU.RAF60M.XFU',
+   GFP_XUGST%IANO=0,
+   GFP_XUGST%IBITS=12,
+   GFP_XVGST%CLNAME='CLSV.RAF60M.XFU',
+   GFP_XVGST%IANO=0,
+   GFP_XVGST%IBITS=12,
+   GFP_XX2T%IBITS=12,
+   GFP_XXDIAGH%IBITS=12,
+   TFP_ABS%ZFK=32.,
+   TFP_CLF%IBITS=6,
+   TFP_EDR%CLNAME='EDR',
+   TFP_EDR%IBITS=16,
+   TFP_EDR%IGRIB=136,
+   TFP_GR%IBITS=12,
+   TFP_HL%IBITS=12,
+   TFP_HTB%IBITS=16,
+   TFP_HTB%LLGP=.TRUE.,
+   TFP_HU%IBITS=12,
+   TFP_MSAT9C2%IBITS=12,
+   TFP_MSAT9C6%IBITS=12,
+   TFP_MSLNH%IBITS=12,
+   TFP_PV%ZFK=64.,
+   TFP_RCLS%IBITS=12,
+   TFP_RR%IBITS=12,
+   TFP_SN%IBITS=12,
+   TFP_T%IBITS=12,
+   TFP_TCLS%IBITS=12,
+   TFP_TH%IBITS=12,
+   TFP_THPW%IBITS=12,
+   TFP_THV%IBITS=12,
+   TFP_TN%IBITS=12,
+   TFP_TWV%IBITS=12,
+   TFP_TX%IBITS=12,
+   TFP_U%IBITS=12,
+   TFP_V%IBITS=12,
+   TFP_VOR%ZFK=32.,
+   TFP_VV%ZFK=32.,
+ /
+ &NAMARG
+   CNMEXP='${CNMEXP}',
+   LECMWF=.FALSE.,
+   LELAM=.TRUE.,
+   LSLAG=.TRUE.,
+   NCONF=1,
+   NSUPERSEDE=1,
+ /
+ &NAMARPHY
+   LKFBCONV=.FALSE.,
+   LKFBD=.FALSE.,
+   LKFBS=.FALSE.,
+   LMFSHAL=.TRUE.,
+   LMICRO=.TRUE.,
+   LMPA=.TRUE.,
+   LMSE=.TRUE.,
+   LTURB=.TRUE.,
+ /
+ &NAMCA
+ /
+ &NAMCAPE
+ /
+ &NAMCFU
+   LCUMFU=.TRUE.,
+   LFPLS=.TRUE.,
+   LFPLSG=.TRUE.,
+   LFR=.TRUE.,
+   LFRRC=.TRUE.,
+   LFSF=.TRUE.,
+   LNEBPAR=.TRUE.,
+   LNEBTT=.TRUE.,
+   LRAYD=.TRUE.,
+   LRAYS=.TRUE.,
+ /
+ &NAMCHEM
+ /
+ &NAMCHET
+ /
+ &NAMCHK
+ /
+ &NAMCLA
+ /
+ &NAMCLDP
+ /
+ &NAMCLI
+ /
+ &NAMCLOP15
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LNHEE=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   LSPRT=.TRUE.,
+   LTWOTL=.TRUE.,
+   NFPOS=1,
+   NFRSDI=18,
+   NSDITS(0)=0,
+   NFRHIS=72,
+   NHISTS(0)=0,
+   NFRPOS=72,
+   NPOSTS(0)=0,
+   NFRSFXHIS=72,
+   NSFXHISTS(0)=0,
+   NFRDHFD=72,
+   NDHFDTS(0)=0,
+ /
+ &NAMCT1
+   LRFILAF=.FALSE.,
+   N1HIS=1,
+   N1POS=1,
+   N1RES=0,
+   N1SDI=1,
+   N1SFXHIS=1,
+   N1GDI=0,
+ /
+ &NAMCUMF
+ /
+ &NAMCUMFS
+ /
+ &NAMCVER
+ /
+ &NAMCVMNH
+ /
+ &NAMDDH
+   LDDH_OMP=.TRUE.,
+   LHDDOP=.TRUE.,
+   LHDHKS=.TRUE.,
+   LHDEFD=.TRUE.,
+   LFLEXDIA=.TRUE.,
+   BDEDDH(1,1)=3,
+   BDEDDH(2,1)=1,
+   BDEDDH(3,1)=358.8
+   BDEDDH(4,1)=45.1
+   BDEDDH(5,1)=360.3
+   BDEDDH(6,1)=44.5
+ /
+ &NAMDFI
+ /
+ &NAMDIM
+   NPROMA=-50,
+ /
+ &NAMDIMO
+ /
+ &NAMDIM_TRAJ
+ /
+ &NAMDPHY
+ /
+ &NAMDPRECIPS
+ /
+ &NAMDYN
+   LADVF=.TRUE.,
+   LQMPD=.FALSE.,
+   LQMT=.FALSE.,
+   LQMVD=.FALSE.,
+   LRHDI_LASTITERPC=.TRUE.,
+   NITMP=4,
+   NSITER=1,
+   NSPDLAG=3,
+   NSVDLAG=3,
+   NTLAG=3,
+   NVLAG=3,
+   NWLAG=3,
+   RDAMPDIV=20.,
+   RDAMPPD=20.,
+   RDAMPQ=0.,
+   RDAMPT=0.,
+   RDAMPVD=20.,
+   RDAMPVOR=20.,
+   REPS1=0.,
+   REPS2=0.,
+   REPSM1=0.,
+   REPSM2=0.,
+   REPSP1=0.,
+   SDRED=1.,
+   SIPR=90000.,
+   SITR=350.,
+   SITRA=100.,
+   SLHDA0=0.25,
+   SLHDD00=0.000065,
+   VESL=0.05,
+   XIDT=0.,
+   ZSLHDP1=1.7,
+   ZSLHDP3=0.6,
+ /
+ &NAMDYNA
+   LCOMADH=.TRUE.,
+   LCOMADV=.FALSE.,
+   LCOMAD_GFL=.TRUE.,
+   LCOMAD_SP=.TRUE.,
+   LCOMAD_SPD=.TRUE.,
+   LCOMAD_SVD=.TRUE.,
+   LCOMAD_T=.TRUE.,
+   LCOMAD_W=.TRUE.,
+   LGWADV=.TRUE.,
+   LNESC=.TRUE.,
+   LPC_CHEAP=.TRUE.,
+   LPC_FULL=.TRUE.,
+   LRDBBC=.FALSE.,
+   LSETTLS=.FALSE.,
+   LSETTLST=.TRUE.,
+   LSLHD_GFL=.TRUE.,
+   LSLHD_OLD=.FALSE.,
+   LSLHD_SPD=.FALSE.,
+   LSLHD_SVD=.FALSE.,
+   LSLHD_T=.FALSE.,
+   LSLHD_W=.FALSE.,
+   ND4SYS=2,
+   NDLNPR=1,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+ /
+ &NAMDYNCORE
+ /
+ &NAMEMIS_CONF
+ /
+ &NAMENKF
+ /
+ &NAMFA
+   CMODEL='OUTPUTID',
+   LEXTERN=.TRUE.,
+   LSUPPDATE=.FALSE.,
+   NBITCS=-1,
+   NBITPG=-1,
+   NSTRON=-1,
+ /
+ &NAMFAINIT
+   JPXTRO=2000,
+ /
+ &NAMFPC
+   CFP2DF(1)='SURFPRESSION',
+   CFP2DF(2)='MSL_NHPRESSURE',
+   CFP2DF(3)='SURFTOT.WAT.VAPO',
+   CFP2DF(4)='SURFISOTPW0.MALT',
+   CFP2DF(5)='SURFCAPE.POS.F00',
+   CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(8)='SURFREFLECT.MAX',
+   CFP2DF(9)='SURFISOTPW1.MALT',
+   CFP2DF(10)='SURFISOTPW2.MALT',
+   CFP3DF(1)='GEOPOTENTIEL',
+   CFP3DF(2)='TEMPERATURE',
+   CFP3DF(3)='VENT_ZONAL',
+   CFP3DF(4)='VENT_MERIDIEN',
+   CFP3DF(5)='HUMI_RELATIVE',
+   CFP3DF(6)='THETA_PRIM_W',
+   CFP3DF(7)='PRESSURE',
+   CFP3DF(8)='ABS_VORTICITY',
+   CFP3DF(9)='VITESSE_VERTICALE',
+   CFP3DF(10)='TEMPE_POTENT',
+   CFP3DF(11)='POT_VORTICIT',
+   CFP3DF(12)='SIM_REFLECTI',
+   CFP3DF(13)='RAIN',
+   CFP3DF(14)='SNOW',
+   CFP3DF(15)='GRAUPEL',
+   CFP3DF(16)='ICE_CRYSTAL',
+   CFP3DF(17)='CLOUD_WATER',
+   CFP3DF(18)='VERT.VELOCIT',
+   CFP3DF(19)='DIVERGENCE',
+   CFP3DF(20)='THETA_VIRTUA',
+   CFP3DF(21)='TKE',
+   CFP3DF(22)='CLOUD_FRACTI',
+   CFP3DF(23)='ISOT_ALTIT',
+   CFP3DF(24)='EDR',
+   CFPCFU(1)='SURFTENS.TOTA.ZO',
+   CFPCFU(2)='SURFTENS.TOTA.ME',
+   CFPCFU(3)='SURFACCPLUIE',
+   CFPCFU(4)='SURFACCNEIGE',
+   CFPCFU(5)='SURFACCGRAUPEL',
+   CFPCFU(6)='SOMMFLU.RAY.SOLA',
+   CFPCFU(7)='SURFFLU.RAY.SOLA',
+   CFPCFU(8)='SOMMFLU.RAY.THER',
+   CFPCFU(9)='SURFFLU.RAY.THER',
+   CFPCFU(10)='SURFFLU.LAT.MTOT',
+   CFPCFU(11)='SURFFLU.MTOTA.NE',
+   CFPCFU(12)='SURFFLU.CHA.SENS',
+   CFPCFU(13)='SURFRAYT SOLA DE',
+   CFPCFU(14)='SURFRAYT THER DE',
+   CFPCFU(15)='SURFRAYT SOL CL',
+   CFPCFU(16)='SURFRAYT THER CL',
+   CFPCFU(17)='SURFRAYT DIR SUR',
+   CFPDOM(1)='FRANGP0025',
+   CFPFMT='LALON',
+   CFPPHY(1)='SURFTEMPERATURE',
+   CFPPHY(2)='INTSURFGEOPOTENT',
+   CFPPHY(3)='SURFRESERV.NEIGE',
+   CFPXFU(1)='CLSTEMPERATURE',
+   CFPXFU(2)='CLSHUMI.RELATIVE',
+   CFPXFU(3)='CLSVENT.ZONAL',
+   CFPXFU(4)='CLSVENT.MERIDIEN',
+   CFPXFU(5)='SURFNEBUL.TOTALE',
+   CFPXFU(6)='SURFNEBUL.HAUTE',
+   CFPXFU(7)='SURFNEBUL.MOYENN',
+   CFPXFU(8)='SURFNEBUL.BASSE',
+   CFPXFU(9)='CLSMAXI.TEMPERAT',
+   CFPXFU(10)='CLSMINI.TEMPERAT',
+   CFPXFU(11)='CLPMHAUT.MOD.XFU',
+   CFPXFU(12)='SURFDIAGHAIL',
+   LCRITSNOWTEMP=.FALSE.,
+   LFPCAPEX=.TRUE.,
+   LFPMOIS=.TRUE.,
+   LFPPACKING=.FALSE.,
+   LWIDER_DOM=.TRUE.,
+   L_READ_MODEL_DATE=.TRUE.,
+   NFITI=1,
+   NFITV=1,
+   NFPCAPE=5,
+   NFPCLI=1,
+   NFPGRIB=1,
+   NFPINPHY=4,
+   NITERPV=8,
+   RENTRA=0.0001,
+   RFP3H(1)=10.,
+   RFP3H(2)=20.,
+   RFP3H(3)=35.,
+   RFP3H(4)=50.,
+   RFP3H(5)=75.,
+   RFP3H(6)=100.,
+   RFP3H(7)=150.,
+   RFP3H(8)=200.,
+   RFP3H(9)=250.,
+   RFP3H(10)=375.,
+   RFP3H(11)=500.,
+   RFP3H(12)=625.,
+   RFP3H(13)=750.,
+   RFP3H(14)=875.,
+   RFP3H(15)=1000.,
+   RFP3H(16)=1125.,
+   RFP3H(17)=1250.,
+   RFP3H(18)=1375.,
+   RFP3H(19)=1500.,
+   RFP3H(20)=1750.,
+   RFP3H(21)=2000.,
+   RFP3H(22)=2250.,
+   RFP3H(23)=2500.,
+   RFP3H(24)=2750.,
+   RFP3H(25)=3000.,
+   RFP3I(1)=-273.15,
+   RFP3I(2)=-263.15,
+   RFP3I(3)=-261.15,
+   RFP3I(4)=-253.15,
+   RFP3P(1)=10000.,
+   RFP3P(2)=12500.,
+   RFP3P(3)=15000.,
+   RFP3P(4)=17500.,
+   RFP3P(5)=20000.,
+   RFP3P(6)=22500.,
+   RFP3P(7)=25000.,
+   RFP3P(8)=27500.,
+   RFP3P(9)=30000.,
+   RFP3P(10)=35000.,
+   RFP3P(11)=40000.,
+   RFP3P(12)=45000.,
+   RFP3P(13)=50000.,
+   RFP3P(14)=55000.,
+   RFP3P(15)=60000.,
+   RFP3P(16)=65000.,
+   RFP3P(17)=70000.,
+   RFP3P(18)=75000.,
+   RFP3P(19)=80000.,
+   RFP3P(20)=85000.,
+   RFP3P(21)=90000.,
+   RFP3P(22)=92500.,
+   RFP3P(23)=95000.,
+   RFP3P(24)=100000.,
+   RFP3PV(1)=0.0000015,
+   RFP3PV(2)=0.000002,
+   RFPCD2=5.,
+   RFPCSAB=50.,
+   RFPVCAP=7000.,
+ /
+ &NAMFPD
+   NLAT(1)=41,
+   NLON(1)=41,
+   RLONC(1)=-0.71,
+   RLATC(1)=44.8,
+   RDELX(1)=0.025,
+   RDELY(1)=0.025,
+ /
+ &NAMFPDY2
+ /
+ &NAMFPDYF
+ /
+ &NAMFPDYH
+ /
+ &NAMFPDYI
+ /
+ &NAMFPDYP
+ /
+ &NAMFPDYS
+ /
+ &NAMFPDYT
+ /
+ &NAMFPDYV
+ /
+ &NAMFPF
+   NFMAX(1)=60,
+   NFMAX(2)=80,
+ /
+ &NAMFPG
+   NFPDISTRIB=1,
+ /
+ &NAMFPIOS
+ /
+ &NAMFPMOVE
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+ /
+ &NAMGFL
+   NGFL_EZDIAG=4,
+   YEZDIAG_NL(1)%CNAME='EZDIAG01',
+   YEZDIAG_NL(1)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(2)%CNAME='EZDIAG02',
+   YEZDIAG_NL(2)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(3)%CNAME='EZDIAG03',
+   YEZDIAG_NL(3)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(4)%CNAME='INPRRTOT3D',
+   YEZDIAG_NL(4)%LREQOUT=.TRUE.,
+   YG_NL%LQM=.TRUE.,
+   YG_NL%LSLHD=.TRUE.,
+   YG_NL%NCOUPLING=-1,
+   YG_NL%NREQIN=1,
+   YG_NL%REFVALC=0.,
+   YIRAD_NL%LGP=.TRUE.,
+   YI_NL%LQM=.TRUE.,
+   YI_NL%LSLHD=.TRUE.,
+   YI_NL%NCOUPLING=-1,
+   YI_NL%NREQIN=1,
+   YI_NL%REFVALC=0.,
+   YLRAD_NL%LGP=.TRUE.,
+   YL_NL%LQM=.TRUE.,
+   YL_NL%LSLHD=.TRUE.,
+   YL_NL%NCOUPLING=-1,
+   YL_NL%NREQIN=1,
+   YL_NL%REFVALC=0.,
+   YQ_NL%LCOMAD=.TRUE.,
+   YQ_NL%LQM=.TRUE.,
+   YQ_NL%LSLHD=.FALSE.,
+   YQ_NL%NREQIN=1,
+   YR_NL%LQM=.TRUE.,
+   YR_NL%LSLHD=.TRUE.,
+   YR_NL%NCOUPLING=-1,
+   YR_NL%NREQIN=1,
+   YR_NL%REFVALC=0.,
+   YS_NL%LQM=.TRUE.,
+   YS_NL%LSLHD=.TRUE.,
+   YS_NL%NCOUPLING=-1,
+   YS_NL%NREQIN=1,
+   YS_NL%REFVALC=0.,
+   YTKE_NL%NCOUPLING=0,
+   YTKE_NL%NREQIN=1,
+ /
+ &NAMGRIB
+ /
+ &NAMGWD
+ /
+ &NAMGWDIAG
+ /
+ &NAMGWWMS
+ /
+ &NAMIAU
+   ALPHAIAU=0.5,
+   LIAU=.FALSE.,
+   TSTARTIAU=1800,
+   TSTOPIAU=5340,
+ /
+ &NAMICE
+ /
+ &NAMINI
+   LDFI=.FALSE.,
+ /
+ &NAMINTFLEX
+ /
+ &NAMIOMI
+ /
+ &NAMIOS
+ /
+ &NAMIO_SERV
+   NIO_SERV_BUF_MAXSIZE=20,
+   NIO_SERV_METHOD=2,
+   NMSG_LEVEL_CLIENT=0,
+   NMSG_LEVEL_SERVER=0,
+   NPROCESS_LEVEL=5,
+   NPROC_IO=0,
+ /
+ &NAMJBCODES
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMOBS
+ /
+ &NAMONEDVAR
+ /
+ &NAMOOPS
+ /
+ &NAMOPH
+   CFNHWF='ECHIS',
+   LINC=.TRUE.,
+   NTIMEFMT=1,
+ /
+ &NAMOPTCMEM
+ /
+ &NAMPAR0
+   LOPT_SCALAR=.TRUE.,
+   NPRINTLEV=1,
+   LMPOFF=.FALSE.,
+   MBX_SIZE=2048000000,
+   MP_TYPE=2,
+   NOUTPUT=1,
+   NPROC=$NPROC,
+$NPRTRW_NPRTRV
+ /
+ &NAMPAR1
+   LEQ_REGIONS=.FALSE.,
+   LSLONDEM=.TRUE.,
+   LSPLIT=.TRUE.,
+   LSYNC_SLCOM=.FALSE.,
+   LSYNC_TRANS=.FALSE.,
+   L_GATHERV_WRGP=.FALSE.,
+   NCOMBFLEN=1800000,
+   NSTRIN=$NSTRIN,
+   NSTROUT=$NSTROUT,
+ /
+ &NAMPARAR
+   CFRAC_ICE_ADJUST='T',
+   CFRAC_ICE_SHALLOW_MF='T',
+   CMICRO='ICE3',
+   CSEDIM='SPLI',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LCRIAUTI=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LFPREC3D=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LOLSMC=.TRUE.,
+   LOSEDIC=.TRUE.,
+   LOSIGMAS=.TRUE.,
+   LOSUBG_COND=.TRUE.,
+   LSEDIM_AFTER=.TRUE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=10,
+   NPRINTFR=10000,
+   NPTP=1,
+   RCRIAUTC=0.001,
+   RCRIAUTI=0.0002,
+   RT0CRIAUTI=-5.,
+   VSIGQSAT=0.02,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=25.,
+ /
+ &NAMPHMSE
+   LPGDFWR=.FALSE.,
+ /
+ &NAMPHY
+   LAERODES=.TRUE.,
+   LAEROLAN=.TRUE.,
+   LAEROSEA=.TRUE.,
+   LAEROSOO=.TRUE.,
+   LEDR=.TRUE.,
+   LMPHYS=.TRUE.,
+   LO3ABC=.TRUE.,
+   LRAYFM=.TRUE.,
+ /
+ &NAMPHY0
+   ALMAV=300.,
+   BEDIFV=0.05,
+   ECMNP=3000.,
+   GCCSV=0.,
+   GCVADS=0.8,
+   GCVALFA=0.000045,
+   GCVBETA=0.2,
+   GCVMLT=0.00016,
+   GCVNU=0.000025,
+   GCVPSI=1.,
+   GCVPSIE=1.,
+   GDDEVA=0.25,
+   GDDSDE=0.5,
+   GWDCD=6.,
+   HUCOE=0.5,
+   HUTIL=1.8,
+   QSSC=400.,
+   QSSUSC=0.75,
+   QSSUSS=0.4,
+   QSSUSV=250.,
+   QSUSXC=0.0002,
+   QSUSXS=0.0003,
+   QXRAL=130.,
+   QXRDEL=0.49,
+   QXRHX=0.99,
+   QXRR=0.25,
+   RCVEVAP=0.25,
+   REFLKUO=5000.,
+   REVGSL=15.,
+   SCO=-20.,
+   TDDGP=0.8,
+   TENTR=0.0000025,
+   TENTRX=0.00008,
+   TUDGP=0.8,
+   UHDIFV=0.0008,
+   USURIC=0.175,
+   USURICE=0.5,
+   USURICL=1.,
+   USURID=0.1,
+   USURIDE=0.25,
+   VZ0CM=0.00015,
+   XMAXLM=5000.,
+   XMINLM=10.,
+ /
+ &NAMPHY1
+   ALBMIN=0.65,
+   ALCRIN=0.75,
+   GCGEL=0.00003,
+   GCGELS=0.00005,
+   GNEIMX=1.8,
+   GNEIMXS=1.8,
+   RCTVEG(3)=0.000012,
+   RCTVEG(4)=0.00001,
+ /
+ &NAMPHY2
+   FACRAF=3.8,
+   HTKERAF=20.,
+   LMULAF=.TRUE.,
+   LRAFTKE=.TRUE.,
+   LRAFTUR=.TRUE.,
+   XDAMP=1.,
+   XMULAF=-1.85,
+ /
+ &NAMPHY3
+ /
+ &NAMPHYDS
+ /
+ &NAMPONG
+ /
+ &NAMPPC
+ /
+ &NAMPPVI
+ /
+ &NAMPRE
+ /
+ &NAMRAD15
+ /
+ &NAMRADCMEM
+ /
+ &NAMRCF
+ /
+ &NAMRCOEF
+ /
+ &NAMRES
+ /
+ &NAMRGRI
+ /
+ &NAMRINC
+ /
+ &NAMRIP
+    TSTEP=50.,
+    CSTOP='h2',
+ /
+ &NAMRIP0
+ /
+ &NAMRLX
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPSDT
+ /
+ &NAMSTA
+ /
+ &NAMSTOPH
+ /
+ &NAMSWE
+ /
+ &NAMTESTVAR
+ /
+ &NAMTHLIM
+ /
+ &NAMTOPH
+   ETCVIM=5000.,
+   ETNEBU=5000.,
+   ETPLUI=5000.,
+   XDRMTK=6.0D-7,
+   XDRMTP=800.,
+   XDRMUK=3.0D-7,
+   XDRMUP=800.,
+ /
+ &NAMTRAJP
+ /
+ &NAMTRANS
+ /
+ &NAMTRANS0
+ /
+ &NAMTS
+ /
+ &NAMVAR
+ /
+ &NAMVARBC
+ /
+ &NAMVARBC_AIREP
+ /
+ &NAMVARBC_ALLSKY
+ /
+ &NAMVARBC_GBRAD
+ /
+ &NAMVARBC_RAD
+ /
+ &NAMVARBC_SFCOBS
+ /
+ &NAMVARBC_TCWV
+ /
+ &NAMVARBC_TO3
+ /
+ &NAMVAREPS
+ /
+ &NAMVDF
+ /
+ &NAMVDOZ
+ /
+ &NAMVOLCANO
+ /
+ &NAMVRTL
+ /
+ &NAMVV0
+ /
+ &NAMVV1
+ /
+ &NAMVWRK
+ /
+ &NAMWAVELETJB
+ /
+ &NAMXFU
+   LXCLP=.TRUE.,
+   LXCLS=.TRUE.,
+   LXFU=.TRUE.,
+   LXNEBPA=.TRUE.,
+   LXNEBTT=.TRUE.,
+   LXNUVCLS=.TRUE.,
+   LXPLS=.TRUE.,
+   LXPLSG=.TRUE.,
+   LXQCLS=.TRUE.,
+   LXR=.TRUE.,
+   LXSOIL=.FALSE.,
+   LXTHW=.TRUE.,
+   LXTRT=.TRUE.,
+   LXTTCLS=.TRUE.,
+   LXXDIAGH=.TRUE.,
+   LXXGST=.TRUE.,
+   NFRRAZ=72,
+   NRAZTS(0)=0,
+ /
+ &NAM_CANAPE
+ /
+ &NAM_DISTRIBUTED_VECTORS
+ /
+ &NAPHLC
+ /
+ &NEMCT0
+ /
+ &NEMDIM
+ /
+ &NEMDYN
+ /
+ &NEMELBC0A
+   LESPCPL=.TRUE.,
+   NBICNHX=2,
+   NBICOP=2,
+   NBICOT=2,
+   NBICOU=2,
+   NBICPD=2,
+   NBICVD=2,
+   NECRIPL=1,
+ /
+ &NEMELBC0B
+   NEFRSPCPL=1,
+   NEK0=20,
+   NEK1=30,
+   NEN1=4,
+   NEN2=8,
+   SPNUDDIV=0.01,
+   SPNUDQ=0.,
+   SPNUDT=0.01,
+   SPNUDVOR=0.01,
+   TEFRCL=3600.,
+ /
+ &NEMFPEZO
+ /
+ &NEMGEO
+ /
+ &NEMJK
+ /
+ &NEMVAR
+ /
+ &NEMWAVELET
+ /
+ &NAETLDIAG
+ /
+ &NAMMETHOX
+ /
+ &NAMSPP
+ /
+ &NAMACV
+ /
+ &NAMFPOBJ
+ /
+ &NAMNORGWD
+ /
+ &NAMTRAJ
+ /
+ &NAMSATSIM
+ /
+ &NAMDVISI
+ /
+ &NAMNUDGLH
+ /
+ &NAMPERTPAR
+ /
+FIN
+/bin/cat fort.4
+
+/bin/cat <<FIN > EXSEG1.nam
+ &NAM_DIAG_ISBAN
+   LPGD=.TRUE.,
+   LSURF_MISC_BUDGET=.TRUE.,
+ /
+ &NAM_DIAG_SURFN
+   LCOEF=.TRUE.,
+   LSURF_BUDGET=.TRUE.,
+   N2M=2,
+ /
+ &NAM_ISBAN
+   CSCOND='NP89',
+ /
+ &NAM_REPROD_OPER
+   LREPROD_OPER=.TRUE.,
+ /
+ &NAM_SEAFLUXN
+   CSEA_FLUX='ECUME',
+   LPWG=.FALSE.,
+   LPRECIP=.FALSE.,
+   LPWEBB=.FALSE.,
+ /
+ &NAM_SSON
+   CROUGH='Z01D',
+   XFRACZ0=5.,
+   LDSV=.FALSE.,
+ /
+ &NAM_SURF_ATM
+   XRIMAX=0.2,
+   LNOSOF=.TRUE.,
+ /
+ &NAM_SURF_CSTS
+   XZ0SN=0.01,
+   XZ0HSN=0.001,
+   XEMISSN=0.99,
+ /
+ &NAM_WRITE_DIAG_SURFN
+   LPROVAR_TO_DIAG=.FALSE.,
+   LSELECT=.TRUE.,
+CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS',
+ /
+ &NAM_WRITE_SURF_ATM
+   LNOWRITE_TEXFILE=.TRUE.,
+ /
+FIN
+/bin/cat EXSEG1.nam
+
+#      *****************************************
+#      *  Acquisition du fichier de demarrage  *
+#      *****************************************
+
+echo
+for hh in 0 1 2 3 4 5 6 ; do
+  N=`expr $hh / 1 `
+  set -x
+  ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N}
+  set +x
+done
+set -x
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx
+ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin .
+ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim
+ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx
+ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat .
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat .
+ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz
+
+#      ***************
+#      *  Chargement *
+#      ***************
+
+echo
+set -x
+\ln -s $LOADIR/MASTERODB MASTER
+set +x
+if ldd MASTER | grep openmpi > /dev/null; then
+  #On est sur PC
+  MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}')
+  MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC"
+  GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1
+  export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions
+  export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions
+else
+  #On est sur HPC
+  #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD"
+  NNODES=$SLURM_JOB_NUM_NODES
+  MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES))
+  MPI_TASKS=$SLURM_NTASKS
+  MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --"
+  export OMP_STACKSIZE=4G
+  export KMP_STACKSIZE=4G
+  export KMP_MONITOR_STACKSIZE=4G
+  export DR_HOOK=1
+  export DR_HOOK_IGNORE_SIGNALS=-1
+  export DR_HOOK_SILENT=1
+  export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+  export MPL_MBX_SIZE=2048000000
+  export EC_PROFILE_HEAP=0
+  export EC_PROFILE_MEM=0
+  export EC_MPI_ATEXIT=0
+  export EC_MEMINFO=0
+  export OPENBLAS_NUM_THREADS=1
+  export MKL_CBWR="AUTO,STRICT"
+  export MKL_NUM_THREADS=1
+  export MKL_DEBUG_CPU_TYPE=5
+  export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions
+fi
+echo $MPIRUN
+set +x
+if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi
+
+#      ***************
+#      *  Execution  *
+#      ***************
+
+echo
+echo OMP_NUM_THREADS=$OMP_NUM_THREADS
+set -x
+ulimit -s unlimited
+$MPIRUN $PWD/MASTER >lola
+set +x
+echo
+##if [ -f lola ] ; then
+##  echo;echo Standard output :;echo;cat lola
+##fi
+##if [ -f stderr.* ] ; then
+##  for file in stderr.* ; do
+##    echo;echo $file :;cat $file
+##  done
+##fi
+##if [ -f stdout.* ] ; then
+##echo;echo stdout :;echo;cat stdout.*
+##fi
+##if [ -a NODE.001_01 ] ; then
+##  for file in NODE* ; do
+##    echo;echo Listing $file;echo
+##    cat $file
+##  done
+##fi
+##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then
+### Top 25 for each MPI task :
+##  for file in drhook.prof.* ; do
+##    echo;echo $file :;head -38 $file
+##  done
+##fi
+#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl
+
+#      *******************
+#      *  Sauvegardes    *
+#      *******************
+
+ls
+#if [ -f PFFPOS000+0000 ] ; then
+#  cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID
+#fi
+cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/
+/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001*
+/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00*
+/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz)
+
+#      ****************
+#      *  Epilogue    *
+#      ****************
+
+ls -ltr | grep -v "\->"
+echo Wait_queue :
+ls -ltr $TMPWAIT
+cd $TMPDIR
+\rm -rf rundir.$$
+\rm -rf wait_queue.$$
+date
+set +x
diff --git a/tools/conf_tests/small_3D_alt2/aro48t3.sh b/tools/conf_tests/small_3D_alt2/aro48t3.sh
new file mode 100755
index 0000000000000000000000000000000000000000..8928589a282adb723fd05cc8487109e78acbd982
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt2/aro48t3.sh
@@ -0,0 +1,1207 @@
+#!/bin/bash
+#SBATCH -n 4
+#SBATCH --mem=20000
+#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR
+#SBATCH -t 00:10:00
+#SBATCH -N 1
+#SBATCH -p normal256
+
+#The MYLIB varibale must contain the gmkpack pack name
+#The TESTDIR variable must contain the test directory
+#Results will be stored in the local directory
+
+#Other environment varaibles that can be set:
+#OUTPUTDIR
+
+date
+
+OUTPUTDIR=${OUTPUTDIR:-$PWD}
+case=riette2
+#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script
+rekchemin=$TESTDIR
+
+NPROC=4
+NSTRIN=$NPROC
+NSTROUT=1
+NPRTRW_NPRTRV=""
+NPRTRW_NPRTRV="  NPRTRW=$NPROC,
+  NPRTRV=1,"
+export OMP_NUM_THREADS=1
+
+#MYLIB=48t1_main.01%jpdup
+
+export DR_HOOK=1
+#export DR_HOOK_IGNORE_SIGNALS=-1
+export DR_HOOK_NOT_MPI=1
+export DR_HOOK_SILENT=1
+export DR_HOOK_OPT=
+
+export EC_PROFILE_HEAP=0
+export EC_PROFILE_MEM=0
+export EC_MPI_ATEXIT=0
+export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+export EC_MEMINFO=0
+export TVSEARCHPATH=$SOURCE
+
+HOMEPACK=${HOMEPACK:=$HOME/pack}
+SOURCE=$HOMEPACK/$MYLIB/src/local
+LOADIR=$HOMEPACK/$MYLIB/bin
+
+TMPDIR=${TMPDIR:=$HOME/tmp}
+TMPLOC=$TMPDIR/rundir.$$
+TMPWAIT=$TMPDIR/wait_queue.$$
+mkdir $TMPWAIT
+mkdir $TMPLOC
+cd $TMPLOC
+
+export RTTOV_COEFDIR=$PWD
+
+#      **************************
+#      *  Saisie des NAMELISTS  *
+#      **************************
+
+CNMEXP='FPOS'
+
+echo
+/bin/cat <<FIN > fort.4
+ &NACIETEO
+ /
+ &NACOBS
+ /
+ &NACTAN
+ /
+ &NACTEX
+ /
+ &NACVEG
+ /
+ &NADOCK
+ /
+ &NAEAEM7
+ /
+ &NAEAER
+ /
+ &NAECOAPHY
+ /
+ &NAEPHLI
+ /
+ &NAEPHY
+ /
+ &NAERAD
+   LRRTM=.TRUE.,
+   LSRTM=.FALSE.,
+   NAER=1,
+   NICEOPT=3,
+   NLIQOPT=3,
+   NOVLP=6,
+   NOZOCL=2,
+   NRADFR=18,
+   NRADIP=3,
+   NRADLP=2,
+   NSW=6,
+   RLWINHF=1,
+   RRE2DE=0.64952,
+   RSWINHF=1,
+ /
+ &NAERCLI
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMAFN
+   GFP_CLSG%CLNAME='SURFACCGRAUPEL',
+   GFP_CLSP%CLNAME='SURFACCPLUIE',
+   GFP_CLSS%CLNAME='SURFACCNEIGE',
+   GFP_SFIS%IBITS=16,
+   GFP_ST%CLNAME='SURFTEMPERATURE',
+   GFP_ST%IANO=0,
+   GFP_ST%IBITS=12,
+   GFP_X10U%CLNAME='CLSVENT.ZONAL',
+   GFP_X10U%IANO=0,
+   GFP_X10U%IBITS=12,
+   GFP_X10V%CLNAME='CLSVENT.MERIDIEN',
+   GFP_X10V%IANO=0,
+   GFP_X10V%IBITS=12,
+   GFP_X2RH%CLNAME='CLSHUMI.RELATIVE',
+   GFP_X2RH%IANO=0,
+   GFP_X2RH%IBITS=12,
+   GFP_X2T%CLNAME='CLSTEMPERATURE',
+   GFP_X2T%IANO=1,
+   GFP_XCCC%IBITS=8,
+   GFP_XHCC%IBITS=8,
+   GFP_XLCC%IBITS=8,
+   GFP_XLSG%CLNAME='SURFINSGRAUPEL',
+   GFP_XLSP%CLNAME='SURFINSPLUIE',
+   GFP_XLSS%CLNAME='SURFINSNEIGE',
+   GFP_XMCC%IBITS=8,
+   GFP_XN2T%IBITS=12,
+   GFP_XTCC%IBITS=8,
+   GFP_XUGST%CLNAME='CLSU.RAF60M.XFU',
+   GFP_XUGST%IANO=0,
+   GFP_XUGST%IBITS=12,
+   GFP_XVGST%CLNAME='CLSV.RAF60M.XFU',
+   GFP_XVGST%IANO=0,
+   GFP_XVGST%IBITS=12,
+   GFP_XX2T%IBITS=12,
+   GFP_XXDIAGH%IBITS=12,
+   TFP_ABS%ZFK=32.,
+   TFP_CLF%IBITS=6,
+   TFP_EDR%CLNAME='EDR',
+   TFP_EDR%IBITS=16,
+   TFP_EDR%IGRIB=136,
+   TFP_GR%IBITS=12,
+   TFP_HL%IBITS=12,
+   TFP_HTB%IBITS=16,
+   TFP_HTB%LLGP=.TRUE.,
+   TFP_HU%IBITS=12,
+   TFP_MSAT9C2%IBITS=12,
+   TFP_MSAT9C6%IBITS=12,
+   TFP_MSLNH%IBITS=12,
+   TFP_PV%ZFK=64.,
+   TFP_RCLS%IBITS=12,
+   TFP_RR%IBITS=12,
+   TFP_SN%IBITS=12,
+   TFP_T%IBITS=12,
+   TFP_TCLS%IBITS=12,
+   TFP_TH%IBITS=12,
+   TFP_THPW%IBITS=12,
+   TFP_THV%IBITS=12,
+   TFP_TN%IBITS=12,
+   TFP_TWV%IBITS=12,
+   TFP_TX%IBITS=12,
+   TFP_U%IBITS=12,
+   TFP_V%IBITS=12,
+   TFP_VOR%ZFK=32.,
+   TFP_VV%ZFK=32.,
+ /
+ &NAMARG
+   CNMEXP='${CNMEXP}',
+   LECMWF=.FALSE.,
+   LELAM=.TRUE.,
+   LSLAG=.TRUE.,
+   NCONF=1,
+   NSUPERSEDE=1,
+ /
+ &NAMARPHY
+   LKFBCONV=.FALSE.,
+   LKFBD=.FALSE.,
+   LKFBS=.FALSE.,
+   LMFSHAL=.TRUE.,
+   LMICRO=.TRUE.,
+   LMPA=.TRUE.,
+   LMSE=.TRUE.,
+   LTURB=.TRUE.,
+ /
+ &NAMCA
+ /
+ &NAMCAPE
+ /
+ &NAMCFU
+   LCUMFU=.TRUE.,
+   LFPLS=.TRUE.,
+   LFPLSG=.TRUE.,
+   LFR=.TRUE.,
+   LFRRC=.TRUE.,
+   LFSF=.TRUE.,
+   LNEBPAR=.TRUE.,
+   LNEBTT=.TRUE.,
+   LRAYD=.TRUE.,
+   LRAYS=.TRUE.,
+ /
+ &NAMCHEM
+ /
+ &NAMCHET
+ /
+ &NAMCHK
+ /
+ &NAMCLA
+ /
+ &NAMCLDP
+ /
+ &NAMCLI
+ /
+ &NAMCLOP15
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LNHEE=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   LSPRT=.TRUE.,
+   LTWOTL=.TRUE.,
+   NFPOS=1,
+   NFRSDI=18,
+   NSDITS(0)=0,
+   NFRHIS=72,
+   NHISTS(0)=0,
+   NFRPOS=72,
+   NPOSTS(0)=0,
+   NFRSFXHIS=72,
+   NSFXHISTS(0)=0,
+   NFRDHFD=72,
+   NDHFDTS(0)=0,
+ /
+ &NAMCT1
+   LRFILAF=.FALSE.,
+   N1HIS=1,
+   N1POS=1,
+   N1RES=0,
+   N1SDI=1,
+   N1SFXHIS=1,
+   N1GDI=0,
+ /
+ &NAMCUMF
+ /
+ &NAMCUMFS
+ /
+ &NAMCVER
+ /
+ &NAMCVMNH
+ /
+ &NAMDDH
+   LDDH_OMP=.TRUE.,
+   LHDDOP=.TRUE.,
+   LHDHKS=.TRUE.,
+   LHDEFD=.TRUE.,
+   LFLEXDIA=.TRUE.,
+   BDEDDH(1,1)=3,
+   BDEDDH(2,1)=1,
+   BDEDDH(3,1)=358.8
+   BDEDDH(4,1)=45.1
+   BDEDDH(5,1)=360.3
+   BDEDDH(6,1)=44.5
+ /
+ &NAMDFI
+ /
+ &NAMDIM
+   NPROMA=-50,
+ /
+ &NAMDIMO
+ /
+ &NAMDIM_TRAJ
+ /
+ &NAMDPHY
+ /
+ &NAMDPRECIPS
+ /
+ &NAMDYN
+   LADVF=.TRUE.,
+   LQMPD=.FALSE.,
+   LQMT=.FALSE.,
+   LQMVD=.FALSE.,
+   LRHDI_LASTITERPC=.TRUE.,
+   NITMP=4,
+   NSITER=1,
+   NSPDLAG=3,
+   NSVDLAG=3,
+   NTLAG=3,
+   NVLAG=3,
+   NWLAG=3,
+   RDAMPDIV=20.,
+   RDAMPPD=20.,
+   RDAMPQ=0.,
+   RDAMPT=0.,
+   RDAMPVD=20.,
+   RDAMPVOR=20.,
+   REPS1=0.,
+   REPS2=0.,
+   REPSM1=0.,
+   REPSM2=0.,
+   REPSP1=0.,
+   SDRED=1.,
+   SIPR=90000.,
+   SITR=350.,
+   SITRA=100.,
+   SLHDA0=0.25,
+   SLHDD00=0.000065,
+   VESL=0.05,
+   XIDT=0.,
+   ZSLHDP1=1.7,
+   ZSLHDP3=0.6,
+ /
+ &NAMDYNA
+   LCOMADH=.TRUE.,
+   LCOMADV=.FALSE.,
+   LCOMAD_GFL=.TRUE.,
+   LCOMAD_SP=.TRUE.,
+   LCOMAD_SPD=.TRUE.,
+   LCOMAD_SVD=.TRUE.,
+   LCOMAD_T=.TRUE.,
+   LCOMAD_W=.TRUE.,
+   LGWADV=.TRUE.,
+   LNESC=.TRUE.,
+   LPC_CHEAP=.TRUE.,
+   LPC_FULL=.TRUE.,
+   LRDBBC=.FALSE.,
+   LSETTLS=.FALSE.,
+   LSETTLST=.TRUE.,
+   LSLHD_GFL=.TRUE.,
+   LSLHD_OLD=.FALSE.,
+   LSLHD_SPD=.FALSE.,
+   LSLHD_SVD=.FALSE.,
+   LSLHD_T=.FALSE.,
+   LSLHD_W=.FALSE.,
+   ND4SYS=2,
+   NDLNPR=1,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+ /
+ &NAMDYNCORE
+ /
+ &NAMEMIS_CONF
+ /
+ &NAMENKF
+ /
+ &NAMFA
+   CMODEL='OUTPUTID',
+   LEXTERN=.TRUE.,
+   LSUPPDATE=.FALSE.,
+   NBITCS=-1,
+   NBITPG=-1,
+   NSTRON=-1,
+ /
+ &NAMFAINIT
+   JPXTRO=2000,
+ /
+ &NAMFPC
+   CFP2DF(1)='SURFPRESSION',
+   CFP2DF(2)='MSL_NHPRESSURE',
+   CFP2DF(3)='SURFTOT.WAT.VAPO',
+   CFP2DF(4)='SURFISOTPW0.MALT',
+   CFP2DF(5)='SURFCAPE.POS.F00',
+   CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(8)='SURFREFLECT.MAX',
+   CFP2DF(9)='SURFISOTPW1.MALT',
+   CFP2DF(10)='SURFISOTPW2.MALT',
+   CFP3DF(1)='GEOPOTENTIEL',
+   CFP3DF(2)='TEMPERATURE',
+   CFP3DF(3)='VENT_ZONAL',
+   CFP3DF(4)='VENT_MERIDIEN',
+   CFP3DF(5)='HUMI_RELATIVE',
+   CFP3DF(6)='THETA_PRIM_W',
+   CFP3DF(7)='PRESSURE',
+   CFP3DF(8)='ABS_VORTICITY',
+   CFP3DF(9)='VITESSE_VERTICALE',
+   CFP3DF(10)='TEMPE_POTENT',
+   CFP3DF(11)='POT_VORTICIT',
+   CFP3DF(12)='SIM_REFLECTI',
+   CFP3DF(13)='RAIN',
+   CFP3DF(14)='SNOW',
+   CFP3DF(15)='GRAUPEL',
+   CFP3DF(16)='ICE_CRYSTAL',
+   CFP3DF(17)='CLOUD_WATER',
+   CFP3DF(18)='VERT.VELOCIT',
+   CFP3DF(19)='DIVERGENCE',
+   CFP3DF(20)='THETA_VIRTUA',
+   CFP3DF(21)='TKE',
+   CFP3DF(22)='CLOUD_FRACTI',
+   CFP3DF(23)='ISOT_ALTIT',
+   CFP3DF(24)='EDR',
+   CFPCFU(1)='SURFTENS.TOTA.ZO',
+   CFPCFU(2)='SURFTENS.TOTA.ME',
+   CFPCFU(3)='SURFACCPLUIE',
+   CFPCFU(4)='SURFACCNEIGE',
+   CFPCFU(5)='SURFACCGRAUPEL',
+   CFPCFU(6)='SOMMFLU.RAY.SOLA',
+   CFPCFU(7)='SURFFLU.RAY.SOLA',
+   CFPCFU(8)='SOMMFLU.RAY.THER',
+   CFPCFU(9)='SURFFLU.RAY.THER',
+   CFPCFU(10)='SURFFLU.LAT.MTOT',
+   CFPCFU(11)='SURFFLU.MTOTA.NE',
+   CFPCFU(12)='SURFFLU.CHA.SENS',
+   CFPCFU(13)='SURFRAYT SOLA DE',
+   CFPCFU(14)='SURFRAYT THER DE',
+   CFPCFU(15)='SURFRAYT SOL CL',
+   CFPCFU(16)='SURFRAYT THER CL',
+   CFPCFU(17)='SURFRAYT DIR SUR',
+   CFPDOM(1)='FRANGP0025',
+   CFPFMT='LALON',
+   CFPPHY(1)='SURFTEMPERATURE',
+   CFPPHY(2)='INTSURFGEOPOTENT',
+   CFPPHY(3)='SURFRESERV.NEIGE',
+   CFPXFU(1)='CLSTEMPERATURE',
+   CFPXFU(2)='CLSHUMI.RELATIVE',
+   CFPXFU(3)='CLSVENT.ZONAL',
+   CFPXFU(4)='CLSVENT.MERIDIEN',
+   CFPXFU(5)='SURFNEBUL.TOTALE',
+   CFPXFU(6)='SURFNEBUL.HAUTE',
+   CFPXFU(7)='SURFNEBUL.MOYENN',
+   CFPXFU(8)='SURFNEBUL.BASSE',
+   CFPXFU(9)='CLSMAXI.TEMPERAT',
+   CFPXFU(10)='CLSMINI.TEMPERAT',
+   CFPXFU(11)='CLPMHAUT.MOD.XFU',
+   CFPXFU(12)='SURFDIAGHAIL',
+   LCRITSNOWTEMP=.FALSE.,
+   LFPCAPEX=.TRUE.,
+   LFPMOIS=.TRUE.,
+   LFPPACKING=.FALSE.,
+   LWIDER_DOM=.TRUE.,
+   L_READ_MODEL_DATE=.TRUE.,
+   NFITI=1,
+   NFITV=1,
+   NFPCAPE=5,
+   NFPCLI=1,
+   NFPGRIB=1,
+   NFPINPHY=4,
+   NITERPV=8,
+   RENTRA=0.0001,
+   RFP3H(1)=10.,
+   RFP3H(2)=20.,
+   RFP3H(3)=35.,
+   RFP3H(4)=50.,
+   RFP3H(5)=75.,
+   RFP3H(6)=100.,
+   RFP3H(7)=150.,
+   RFP3H(8)=200.,
+   RFP3H(9)=250.,
+   RFP3H(10)=375.,
+   RFP3H(11)=500.,
+   RFP3H(12)=625.,
+   RFP3H(13)=750.,
+   RFP3H(14)=875.,
+   RFP3H(15)=1000.,
+   RFP3H(16)=1125.,
+   RFP3H(17)=1250.,
+   RFP3H(18)=1375.,
+   RFP3H(19)=1500.,
+   RFP3H(20)=1750.,
+   RFP3H(21)=2000.,
+   RFP3H(22)=2250.,
+   RFP3H(23)=2500.,
+   RFP3H(24)=2750.,
+   RFP3H(25)=3000.,
+   RFP3I(1)=-273.15,
+   RFP3I(2)=-263.15,
+   RFP3I(3)=-261.15,
+   RFP3I(4)=-253.15,
+   RFP3P(1)=10000.,
+   RFP3P(2)=12500.,
+   RFP3P(3)=15000.,
+   RFP3P(4)=17500.,
+   RFP3P(5)=20000.,
+   RFP3P(6)=22500.,
+   RFP3P(7)=25000.,
+   RFP3P(8)=27500.,
+   RFP3P(9)=30000.,
+   RFP3P(10)=35000.,
+   RFP3P(11)=40000.,
+   RFP3P(12)=45000.,
+   RFP3P(13)=50000.,
+   RFP3P(14)=55000.,
+   RFP3P(15)=60000.,
+   RFP3P(16)=65000.,
+   RFP3P(17)=70000.,
+   RFP3P(18)=75000.,
+   RFP3P(19)=80000.,
+   RFP3P(20)=85000.,
+   RFP3P(21)=90000.,
+   RFP3P(22)=92500.,
+   RFP3P(23)=95000.,
+   RFP3P(24)=100000.,
+   RFP3PV(1)=0.0000015,
+   RFP3PV(2)=0.000002,
+   RFPCD2=5.,
+   RFPCSAB=50.,
+   RFPVCAP=7000.,
+ /
+ &NAMFPD
+   NLAT(1)=41,
+   NLON(1)=41,
+   RLONC(1)=-0.71,
+   RLATC(1)=44.8,
+   RDELX(1)=0.025,
+   RDELY(1)=0.025,
+ /
+ &NAMFPDY2
+ /
+ &NAMFPDYF
+ /
+ &NAMFPDYH
+ /
+ &NAMFPDYI
+ /
+ &NAMFPDYP
+ /
+ &NAMFPDYS
+ /
+ &NAMFPDYT
+ /
+ &NAMFPDYV
+ /
+ &NAMFPF
+   NFMAX(1)=60,
+   NFMAX(2)=80,
+ /
+ &NAMFPG
+   NFPDISTRIB=1,
+ /
+ &NAMFPIOS
+ /
+ &NAMFPMOVE
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+ /
+ &NAMGFL
+   NGFL_EZDIAG=4,
+   YEZDIAG_NL(1)%CNAME='EZDIAG01',
+   YEZDIAG_NL(1)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(2)%CNAME='EZDIAG02',
+   YEZDIAG_NL(2)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(3)%CNAME='EZDIAG03',
+   YEZDIAG_NL(3)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(4)%CNAME='INPRRTOT3D',
+   YEZDIAG_NL(4)%LREQOUT=.TRUE.,
+   YG_NL%LQM=.TRUE.,
+   YG_NL%LSLHD=.TRUE.,
+   YG_NL%NCOUPLING=-1,
+   YG_NL%NREQIN=1,
+   YG_NL%REFVALC=0.,
+   YIRAD_NL%LGP=.TRUE.,
+   YI_NL%LQM=.TRUE.,
+   YI_NL%LSLHD=.TRUE.,
+   YI_NL%NCOUPLING=-1,
+   YI_NL%NREQIN=1,
+   YI_NL%REFVALC=0.,
+   YLRAD_NL%LGP=.TRUE.,
+   YL_NL%LQM=.TRUE.,
+   YL_NL%LSLHD=.TRUE.,
+   YL_NL%NCOUPLING=-1,
+   YL_NL%NREQIN=1,
+   YL_NL%REFVALC=0.,
+   YQ_NL%LCOMAD=.TRUE.,
+   YQ_NL%LQM=.TRUE.,
+   YQ_NL%LSLHD=.FALSE.,
+   YQ_NL%NREQIN=1,
+   YR_NL%LQM=.TRUE.,
+   YR_NL%LSLHD=.TRUE.,
+   YR_NL%NCOUPLING=-1,
+   YR_NL%NREQIN=1,
+   YR_NL%REFVALC=0.,
+   YS_NL%LQM=.TRUE.,
+   YS_NL%LSLHD=.TRUE.,
+   YS_NL%NCOUPLING=-1,
+   YS_NL%NREQIN=1,
+   YS_NL%REFVALC=0.,
+   YTKE_NL%NCOUPLING=0,
+   YTKE_NL%NREQIN=1,
+ /
+ &NAMGRIB
+ /
+ &NAMGWD
+ /
+ &NAMGWDIAG
+ /
+ &NAMGWWMS
+ /
+ &NAMIAU
+   ALPHAIAU=0.5,
+   LIAU=.FALSE.,
+   TSTARTIAU=1800,
+   TSTOPIAU=5340,
+ /
+ &NAMICE
+ /
+ &NAMINI
+   LDFI=.FALSE.,
+ /
+ &NAMINTFLEX
+ /
+ &NAMIOMI
+ /
+ &NAMIOS
+ /
+ &NAMIO_SERV
+   NIO_SERV_BUF_MAXSIZE=20,
+   NIO_SERV_METHOD=2,
+   NMSG_LEVEL_CLIENT=0,
+   NMSG_LEVEL_SERVER=0,
+   NPROCESS_LEVEL=5,
+   NPROC_IO=0,
+ /
+ &NAMJBCODES
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMOBS
+ /
+ &NAMONEDVAR
+ /
+ &NAMOOPS
+ /
+ &NAMOPH
+   CFNHWF='ECHIS',
+   LINC=.TRUE.,
+   NTIMEFMT=1,
+ /
+ &NAMOPTCMEM
+ /
+ &NAMPAR0
+   LOPT_SCALAR=.TRUE.,
+   NPRINTLEV=1,
+   LMPOFF=.FALSE.,
+   MBX_SIZE=2048000000,
+   MP_TYPE=2,
+   NOUTPUT=1,
+   NPROC=$NPROC,
+$NPRTRW_NPRTRV
+ /
+ &NAMPAR1
+   LEQ_REGIONS=.FALSE.,
+   LSLONDEM=.TRUE.,
+   LSPLIT=.TRUE.,
+   LSYNC_SLCOM=.FALSE.,
+   LSYNC_TRANS=.FALSE.,
+   L_GATHERV_WRGP=.FALSE.,
+   NCOMBFLEN=1800000,
+   NSTRIN=$NSTRIN,
+   NSTROUT=$NSTROUT,
+ /
+ &NAMPARAR
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   CMICRO='OLD3',
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LCRIAUTI=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LFPREC3D=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LOLSMC=.TRUE.,
+   LOSEDIC=.TRUE.,
+   LOSIGMAS=.TRUE.,
+   LOSUBG_COND=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   NPRINTFR=10000,
+   NPTP=1,
+   RCRIAUTC=0.001,
+   RCRIAUTI=0.0002,
+   RT0CRIAUTI=-5.,
+   VSIGQSAT=0.02,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+ /
+ &NAMPHMSE
+   LPGDFWR=.FALSE.,
+ /
+ &NAMPHY
+   LAERODES=.TRUE.,
+   LAEROLAN=.TRUE.,
+   LAEROSEA=.TRUE.,
+   LAEROSOO=.TRUE.,
+   LEDR=.TRUE.,
+   LMPHYS=.TRUE.,
+   LO3ABC=.TRUE.,
+   LRAYFM=.TRUE.,
+ /
+ &NAMPHY0
+   ALMAV=300.,
+   BEDIFV=0.05,
+   ECMNP=3000.,
+   GCCSV=0.,
+   GCVADS=0.8,
+   GCVALFA=0.000045,
+   GCVBETA=0.2,
+   GCVMLT=0.00016,
+   GCVNU=0.000025,
+   GCVPSI=1.,
+   GCVPSIE=1.,
+   GDDEVA=0.25,
+   GDDSDE=0.5,
+   GWDCD=6.,
+   HUCOE=0.5,
+   HUTIL=1.8,
+   QSSC=400.,
+   QSSUSC=0.75,
+   QSSUSS=0.4,
+   QSSUSV=250.,
+   QSUSXC=0.0002,
+   QSUSXS=0.0003,
+   QXRAL=130.,
+   QXRDEL=0.49,
+   QXRHX=0.99,
+   QXRR=0.25,
+   RCVEVAP=0.25,
+   REFLKUO=5000.,
+   REVGSL=15.,
+   SCO=-20.,
+   TDDGP=0.8,
+   TENTR=0.0000025,
+   TENTRX=0.00008,
+   TUDGP=0.8,
+   UHDIFV=0.0008,
+   USURIC=0.175,
+   USURICE=0.5,
+   USURICL=1.,
+   USURID=0.1,
+   USURIDE=0.25,
+   VZ0CM=0.00015,
+   XMAXLM=5000.,
+   XMINLM=10.,
+ /
+ &NAMPHY1
+   ALBMIN=0.65,
+   ALCRIN=0.75,
+   GCGEL=0.00003,
+   GCGELS=0.00005,
+   GNEIMX=1.8,
+   GNEIMXS=1.8,
+   RCTVEG(3)=0.000012,
+   RCTVEG(4)=0.00001,
+ /
+ &NAMPHY2
+   FACRAF=3.8,
+   HTKERAF=20.,
+   LMULAF=.TRUE.,
+   LRAFTKE=.TRUE.,
+   LRAFTUR=.TRUE.,
+   XDAMP=1.,
+   XMULAF=-1.85,
+ /
+ &NAMPHY3
+ /
+ &NAMPHYDS
+ /
+ &NAMPONG
+ /
+ &NAMPPC
+ /
+ &NAMPPVI
+ /
+ &NAMPRE
+ /
+ &NAMRAD15
+ /
+ &NAMRADCMEM
+ /
+ &NAMRCF
+ /
+ &NAMRCOEF
+ /
+ &NAMRES
+ /
+ &NAMRGRI
+ /
+ &NAMRINC
+ /
+ &NAMRIP
+    TSTEP=50.,
+    CSTOP='h2',
+ /
+ &NAMRIP0
+ /
+ &NAMRLX
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPSDT
+ /
+ &NAMSTA
+ /
+ &NAMSTOPH
+ /
+ &NAMSWE
+ /
+ &NAMTESTVAR
+ /
+ &NAMTHLIM
+ /
+ &NAMTOPH
+   ETCVIM=5000.,
+   ETNEBU=5000.,
+   ETPLUI=5000.,
+   XDRMTK=6.0D-7,
+   XDRMTP=800.,
+   XDRMUK=3.0D-7,
+   XDRMUP=800.,
+ /
+ &NAMTRAJP
+ /
+ &NAMTRANS
+ /
+ &NAMTRANS0
+ /
+ &NAMTS
+ /
+ &NAMVAR
+ /
+ &NAMVARBC
+ /
+ &NAMVARBC_AIREP
+ /
+ &NAMVARBC_ALLSKY
+ /
+ &NAMVARBC_GBRAD
+ /
+ &NAMVARBC_RAD
+ /
+ &NAMVARBC_SFCOBS
+ /
+ &NAMVARBC_TCWV
+ /
+ &NAMVARBC_TO3
+ /
+ &NAMVAREPS
+ /
+ &NAMVDF
+ /
+ &NAMVDOZ
+ /
+ &NAMVOLCANO
+ /
+ &NAMVRTL
+ /
+ &NAMVV0
+ /
+ &NAMVV1
+ /
+ &NAMVWRK
+ /
+ &NAMWAVELETJB
+ /
+ &NAMXFU
+   LXCLP=.TRUE.,
+   LXCLS=.TRUE.,
+   LXFU=.TRUE.,
+   LXNEBPA=.TRUE.,
+   LXNEBTT=.TRUE.,
+   LXNUVCLS=.TRUE.,
+   LXPLS=.TRUE.,
+   LXPLSG=.TRUE.,
+   LXQCLS=.TRUE.,
+   LXR=.TRUE.,
+   LXSOIL=.FALSE.,
+   LXTHW=.TRUE.,
+   LXTRT=.TRUE.,
+   LXTTCLS=.TRUE.,
+   LXXDIAGH=.TRUE.,
+   LXXGST=.TRUE.,
+   NFRRAZ=72,
+   NRAZTS(0)=0,
+ /
+ &NAM_CANAPE
+ /
+ &NAM_DISTRIBUTED_VECTORS
+ /
+ &NAPHLC
+ /
+ &NEMCT0
+ /
+ &NEMDIM
+ /
+ &NEMDYN
+ /
+ &NEMELBC0A
+   LESPCPL=.TRUE.,
+   NBICNHX=2,
+   NBICOP=2,
+   NBICOT=2,
+   NBICOU=2,
+   NBICPD=2,
+   NBICVD=2,
+   NECRIPL=1,
+ /
+ &NEMELBC0B
+   NEFRSPCPL=1,
+   NEK0=20,
+   NEK1=30,
+   NEN1=4,
+   NEN2=8,
+   SPNUDDIV=0.01,
+   SPNUDQ=0.,
+   SPNUDT=0.01,
+   SPNUDVOR=0.01,
+   TEFRCL=3600.,
+ /
+ &NEMFPEZO
+ /
+ &NEMGEO
+ /
+ &NEMJK
+ /
+ &NEMVAR
+ /
+ &NEMWAVELET
+ /
+ &NAETLDIAG
+ /
+ &NAMMETHOX
+ /
+ &NAMSPP
+ /
+ &NAMACV
+ /
+ &NAMFPOBJ
+ /
+ &NAMNORGWD
+ /
+ &NAMTRAJ
+ /
+ &NAMSATSIM
+ /
+ &NAMDVISI
+ /
+ &NAMNUDGLH
+ /
+ &NAMPERTPAR
+ /
+FIN
+/bin/cat fort.4
+
+/bin/cat <<FIN > EXSEG1.nam
+ &NAM_DIAG_ISBAN
+   LPGD=.TRUE.,
+   LSURF_MISC_BUDGET=.TRUE.,
+ /
+ &NAM_DIAG_SURFN
+   LCOEF=.TRUE.,
+   LSURF_BUDGET=.TRUE.,
+   N2M=2,
+ /
+ &NAM_ISBAN
+   CSCOND='NP89',
+ /
+ &NAM_REPROD_OPER
+   LREPROD_OPER=.TRUE.,
+ /
+ &NAM_SEAFLUXN
+   CSEA_FLUX='ECUME',
+   LPWG=.FALSE.,
+   LPRECIP=.FALSE.,
+   LPWEBB=.FALSE.,
+ /
+ &NAM_SSON
+   CROUGH='Z01D',
+   XFRACZ0=5.,
+   LDSV=.FALSE.,
+ /
+ &NAM_SURF_ATM
+   XRIMAX=0.2,
+   LNOSOF=.TRUE.,
+ /
+ &NAM_SURF_CSTS
+   XZ0SN=0.01,
+   XZ0HSN=0.001,
+   XEMISSN=0.99,
+ /
+ &NAM_WRITE_DIAG_SURFN
+   LPROVAR_TO_DIAG=.FALSE.,
+   LSELECT=.TRUE.,
+CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS',
+ /
+ &NAM_WRITE_SURF_ATM
+   LNOWRITE_TEXFILE=.TRUE.,
+ /
+FIN
+/bin/cat EXSEG1.nam
+
+#      *****************************************
+#      *  Acquisition du fichier de demarrage  *
+#      *****************************************
+
+echo
+for hh in 0 1 2 3 4 5 6 ; do
+  N=`expr $hh / 1 `
+  set -x
+  ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N}
+  set +x
+done
+set -x
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx
+ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin .
+ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim
+ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx
+ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat .
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat .
+ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz
+
+#      ***************
+#      *  Chargement *
+#      ***************
+
+echo
+set -x
+\ln -s $LOADIR/MASTERODB MASTER
+set +x
+if ldd MASTER | grep openmpi > /dev/null; then
+  #On est sur PC
+  MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}')
+  MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC"
+  GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1
+  export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions
+  export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions
+else
+  #On est sur HPC
+  #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD"
+  NNODES=$SLURM_JOB_NUM_NODES
+  MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES))
+  MPI_TASKS=$SLURM_NTASKS
+  MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --"
+  export OMP_STACKSIZE=4G
+  export KMP_STACKSIZE=4G
+  export KMP_MONITOR_STACKSIZE=4G
+  export DR_HOOK=1
+  export DR_HOOK_IGNORE_SIGNALS=-1
+  export DR_HOOK_SILENT=1
+  export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+  export MPL_MBX_SIZE=2048000000
+  export EC_PROFILE_HEAP=0
+  export EC_PROFILE_MEM=0
+  export EC_MPI_ATEXIT=0
+  export EC_MEMINFO=0
+  export OPENBLAS_NUM_THREADS=1
+  export MKL_CBWR="AUTO,STRICT"
+  export MKL_NUM_THREADS=1
+  export MKL_DEBUG_CPU_TYPE=5
+  export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions
+fi
+echo $MPIRUN
+set +x
+if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi
+
+#      ***************
+#      *  Execution  *
+#      ***************
+
+echo
+echo OMP_NUM_THREADS=$OMP_NUM_THREADS
+set -x
+ulimit -s unlimited
+$MPIRUN $PWD/MASTER >lola
+set +x
+echo
+##if [ -f lola ] ; then
+##  echo;echo Standard output :;echo;cat lola
+##fi
+##if [ -f stderr.* ] ; then
+##  for file in stderr.* ; do
+##    echo;echo $file :;cat $file
+##  done
+##fi
+##if [ -f stdout.* ] ; then
+##echo;echo stdout :;echo;cat stdout.*
+##fi
+##if [ -a NODE.001_01 ] ; then
+##  for file in NODE* ; do
+##    echo;echo Listing $file;echo
+##    cat $file
+##  done
+##fi
+##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then
+### Top 25 for each MPI task :
+##  for file in drhook.prof.* ; do
+##    echo;echo $file :;head -38 $file
+##  done
+##fi
+#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl
+
+#      *******************
+#      *  Sauvegardes    *
+#      *******************
+
+ls
+#if [ -f PFFPOS000+0000 ] ; then
+#  cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID
+#fi
+cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/
+/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001*
+/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00*
+/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz)
+
+#      ****************
+#      *  Epilogue    *
+#      ****************
+
+ls -ltr | grep -v "\->"
+echo Wait_queue :
+ls -ltr $TMPWAIT
+cd $TMPDIR
+\rm -rf rundir.$$
+\rm -rf wait_queue.$$
+date
+set +x
diff --git a/tools/conf_tests/small_3D_alt3/aro48t3.sh b/tools/conf_tests/small_3D_alt3/aro48t3.sh
new file mode 100755
index 0000000000000000000000000000000000000000..74b175583b629d090492e0ace4e1b052b36c1026
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt3/aro48t3.sh
@@ -0,0 +1,1209 @@
+#!/bin/bash
+#SBATCH -n 4
+#SBATCH --mem=20000
+#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR
+#SBATCH -t 00:10:00
+#SBATCH -N 1
+#SBATCH -p normal256
+
+#The MYLIB varibale must contain the gmkpack pack name
+#The TESTDIR variable must contain the test directory
+#Results will be stored in the local directory
+
+#Other environment varaibles that can be set:
+#OUTPUTDIR
+
+date
+
+OUTPUTDIR=${OUTPUTDIR:-$PWD}
+case=riette2
+#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script
+rekchemin=$TESTDIR
+
+NPROC=4
+NSTRIN=$NPROC
+NSTROUT=1
+NPRTRW_NPRTRV=""
+NPRTRW_NPRTRV="  NPRTRW=$NPROC,
+  NPRTRV=1,"
+export OMP_NUM_THREADS=1
+
+#MYLIB=48t1_main.01%jpdup
+
+export DR_HOOK=1
+#export DR_HOOK_IGNORE_SIGNALS=-1
+export DR_HOOK_NOT_MPI=1
+export DR_HOOK_SILENT=1
+export DR_HOOK_OPT=
+
+export EC_PROFILE_HEAP=0
+export EC_PROFILE_MEM=0
+export EC_MPI_ATEXIT=0
+export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+export EC_MEMINFO=0
+export TVSEARCHPATH=$SOURCE
+
+HOMEPACK=${HOMEPACK:=$HOME/pack}
+SOURCE=$HOMEPACK/$MYLIB/src/local
+LOADIR=$HOMEPACK/$MYLIB/bin
+
+TMPDIR=${TMPDIR:=$HOME/tmp}
+TMPLOC=$TMPDIR/rundir.$$
+TMPWAIT=$TMPDIR/wait_queue.$$
+mkdir $TMPWAIT
+mkdir $TMPLOC
+cd $TMPLOC
+
+export RTTOV_COEFDIR=$PWD
+
+#      **************************
+#      *  Saisie des NAMELISTS  *
+#      **************************
+
+CNMEXP='FPOS'
+
+echo
+/bin/cat <<FIN > fort.4
+ &NACIETEO
+ /
+ &NACOBS
+ /
+ &NACTAN
+ /
+ &NACTEX
+ /
+ &NACVEG
+ /
+ &NADOCK
+ /
+ &NAEAEM7
+ /
+ &NAEAER
+ /
+ &NAECOAPHY
+ /
+ &NAEPHLI
+ /
+ &NAEPHY
+ /
+ &NAERAD
+   LRRTM=.TRUE.,
+   LSRTM=.FALSE.,
+   NAER=1,
+   NICEOPT=3,
+   NLIQOPT=3,
+   NOVLP=6,
+   NOZOCL=2,
+   NRADFR=18,
+   NRADIP=3,
+   NRADLP=2,
+   NSW=6,
+   RLWINHF=1,
+   RRE2DE=0.64952,
+   RSWINHF=1,
+ /
+ &NAERCLI
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMAFN
+   GFP_CLSG%CLNAME='SURFACCGRAUPEL',
+   GFP_CLSP%CLNAME='SURFACCPLUIE',
+   GFP_CLSS%CLNAME='SURFACCNEIGE',
+   GFP_SFIS%IBITS=16,
+   GFP_ST%CLNAME='SURFTEMPERATURE',
+   GFP_ST%IANO=0,
+   GFP_ST%IBITS=12,
+   GFP_X10U%CLNAME='CLSVENT.ZONAL',
+   GFP_X10U%IANO=0,
+   GFP_X10U%IBITS=12,
+   GFP_X10V%CLNAME='CLSVENT.MERIDIEN',
+   GFP_X10V%IANO=0,
+   GFP_X10V%IBITS=12,
+   GFP_X2RH%CLNAME='CLSHUMI.RELATIVE',
+   GFP_X2RH%IANO=0,
+   GFP_X2RH%IBITS=12,
+   GFP_X2T%CLNAME='CLSTEMPERATURE',
+   GFP_X2T%IANO=1,
+   GFP_XCCC%IBITS=8,
+   GFP_XHCC%IBITS=8,
+   GFP_XLCC%IBITS=8,
+   GFP_XLSG%CLNAME='SURFINSGRAUPEL',
+   GFP_XLSP%CLNAME='SURFINSPLUIE',
+   GFP_XLSS%CLNAME='SURFINSNEIGE',
+   GFP_XMCC%IBITS=8,
+   GFP_XN2T%IBITS=12,
+   GFP_XTCC%IBITS=8,
+   GFP_XUGST%CLNAME='CLSU.RAF60M.XFU',
+   GFP_XUGST%IANO=0,
+   GFP_XUGST%IBITS=12,
+   GFP_XVGST%CLNAME='CLSV.RAF60M.XFU',
+   GFP_XVGST%IANO=0,
+   GFP_XVGST%IBITS=12,
+   GFP_XX2T%IBITS=12,
+   GFP_XXDIAGH%IBITS=12,
+   TFP_ABS%ZFK=32.,
+   TFP_CLF%IBITS=6,
+   TFP_EDR%CLNAME='EDR',
+   TFP_EDR%IBITS=16,
+   TFP_EDR%IGRIB=136,
+   TFP_GR%IBITS=12,
+   TFP_HL%IBITS=12,
+   TFP_HTB%IBITS=16,
+   TFP_HTB%LLGP=.TRUE.,
+   TFP_HU%IBITS=12,
+   TFP_MSAT9C2%IBITS=12,
+   TFP_MSAT9C6%IBITS=12,
+   TFP_MSLNH%IBITS=12,
+   TFP_PV%ZFK=64.,
+   TFP_RCLS%IBITS=12,
+   TFP_RR%IBITS=12,
+   TFP_SN%IBITS=12,
+   TFP_T%IBITS=12,
+   TFP_TCLS%IBITS=12,
+   TFP_TH%IBITS=12,
+   TFP_THPW%IBITS=12,
+   TFP_THV%IBITS=12,
+   TFP_TN%IBITS=12,
+   TFP_TWV%IBITS=12,
+   TFP_TX%IBITS=12,
+   TFP_U%IBITS=12,
+   TFP_V%IBITS=12,
+   TFP_VOR%ZFK=32.,
+   TFP_VV%ZFK=32.,
+ /
+ &NAMARG
+   CNMEXP='${CNMEXP}',
+   LECMWF=.FALSE.,
+   LELAM=.TRUE.,
+   LSLAG=.TRUE.,
+   NCONF=1,
+   NSUPERSEDE=1,
+ /
+ &NAMARPHY
+   LKFBCONV=.FALSE.,
+   LKFBD=.FALSE.,
+   LKFBS=.FALSE.,
+   LMFSHAL=.TRUE.,
+   LMICRO=.TRUE.,
+   LMPA=.TRUE.,
+   LMSE=.TRUE.,
+   LTURB=.TRUE.,
+ /
+ &NAMCA
+ /
+ &NAMCAPE
+ /
+ &NAMCFU
+   LCUMFU=.TRUE.,
+   LFPLS=.TRUE.,
+   LFPLSG=.TRUE.,
+   LFR=.TRUE.,
+   LFRRC=.TRUE.,
+   LFSF=.TRUE.,
+   LNEBPAR=.TRUE.,
+   LNEBTT=.TRUE.,
+   LRAYD=.TRUE.,
+   LRAYS=.TRUE.,
+ /
+ &NAMCHEM
+ /
+ &NAMCHET
+ /
+ &NAMCHK
+ /
+ &NAMCLA
+ /
+ &NAMCLDP
+ /
+ &NAMCLI
+ /
+ &NAMCLOP15
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LNHEE=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   LSPRT=.TRUE.,
+   LTWOTL=.TRUE.,
+   NFPOS=1,
+   NFRSDI=18,
+   NSDITS(0)=0,
+   NFRHIS=72,
+   NHISTS(0)=0,
+   NFRPOS=72,
+   NPOSTS(0)=0,
+   NFRSFXHIS=72,
+   NSFXHISTS(0)=0,
+   NFRDHFD=72,
+   NDHFDTS(0)=0,
+ /
+ &NAMCT1
+   LRFILAF=.FALSE.,
+   N1HIS=1,
+   N1POS=1,
+   N1RES=0,
+   N1SDI=1,
+   N1SFXHIS=1,
+   N1GDI=0,
+ /
+ &NAMCUMF
+ /
+ &NAMCUMFS
+ /
+ &NAMCVER
+ /
+ &NAMCVMNH
+ /
+ &NAMDDH
+   LDDH_OMP=.TRUE.,
+   LHDDOP=.TRUE.,
+   LHDHKS=.TRUE.,
+   LHDEFD=.TRUE.,
+   LFLEXDIA=.TRUE.,
+   BDEDDH(1,1)=3,
+   BDEDDH(2,1)=1,
+   BDEDDH(3,1)=358.8
+   BDEDDH(4,1)=45.1
+   BDEDDH(5,1)=360.3
+   BDEDDH(6,1)=44.5
+ /
+ &NAMDFI
+ /
+ &NAMDIM
+   NPROMA=-50,
+ /
+ &NAMDIMO
+ /
+ &NAMDIM_TRAJ
+ /
+ &NAMDPHY
+ /
+ &NAMDPRECIPS
+ /
+ &NAMDYN
+   LADVF=.TRUE.,
+   LQMPD=.FALSE.,
+   LQMT=.FALSE.,
+   LQMVD=.FALSE.,
+   LRHDI_LASTITERPC=.TRUE.,
+   NITMP=4,
+   NSITER=1,
+   NSPDLAG=3,
+   NSVDLAG=3,
+   NTLAG=3,
+   NVLAG=3,
+   NWLAG=3,
+   RDAMPDIV=20.,
+   RDAMPPD=20.,
+   RDAMPQ=0.,
+   RDAMPT=0.,
+   RDAMPVD=20.,
+   RDAMPVOR=20.,
+   REPS1=0.,
+   REPS2=0.,
+   REPSM1=0.,
+   REPSM2=0.,
+   REPSP1=0.,
+   SDRED=1.,
+   SIPR=90000.,
+   SITR=350.,
+   SITRA=100.,
+   SLHDA0=0.25,
+   SLHDD00=0.000065,
+   VESL=0.05,
+   XIDT=0.,
+   ZSLHDP1=1.7,
+   ZSLHDP3=0.6,
+ /
+ &NAMDYNA
+   LCOMADH=.TRUE.,
+   LCOMADV=.FALSE.,
+   LCOMAD_GFL=.TRUE.,
+   LCOMAD_SP=.TRUE.,
+   LCOMAD_SPD=.TRUE.,
+   LCOMAD_SVD=.TRUE.,
+   LCOMAD_T=.TRUE.,
+   LCOMAD_W=.TRUE.,
+   LGWADV=.TRUE.,
+   LNESC=.TRUE.,
+   LPC_CHEAP=.TRUE.,
+   LPC_FULL=.TRUE.,
+   LRDBBC=.FALSE.,
+   LSETTLS=.FALSE.,
+   LSETTLST=.TRUE.,
+   LSLHD_GFL=.TRUE.,
+   LSLHD_OLD=.FALSE.,
+   LSLHD_SPD=.FALSE.,
+   LSLHD_SVD=.FALSE.,
+   LSLHD_T=.FALSE.,
+   LSLHD_W=.FALSE.,
+   ND4SYS=2,
+   NDLNPR=1,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+ /
+ &NAMDYNCORE
+ /
+ &NAMEMIS_CONF
+ /
+ &NAMENKF
+ /
+ &NAMFA
+   CMODEL='OUTPUTID',
+   LEXTERN=.TRUE.,
+   LSUPPDATE=.FALSE.,
+   NBITCS=-1,
+   NBITPG=-1,
+   NSTRON=-1,
+ /
+ &NAMFAINIT
+   JPXTRO=2000,
+ /
+ &NAMFPC
+   CFP2DF(1)='SURFPRESSION',
+   CFP2DF(2)='MSL_NHPRESSURE',
+   CFP2DF(3)='SURFTOT.WAT.VAPO',
+   CFP2DF(4)='SURFISOTPW0.MALT',
+   CFP2DF(5)='SURFCAPE.POS.F00',
+   CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(8)='SURFREFLECT.MAX',
+   CFP2DF(9)='SURFISOTPW1.MALT',
+   CFP2DF(10)='SURFISOTPW2.MALT',
+   CFP3DF(1)='GEOPOTENTIEL',
+   CFP3DF(2)='TEMPERATURE',
+   CFP3DF(3)='VENT_ZONAL',
+   CFP3DF(4)='VENT_MERIDIEN',
+   CFP3DF(5)='HUMI_RELATIVE',
+   CFP3DF(6)='THETA_PRIM_W',
+   CFP3DF(7)='PRESSURE',
+   CFP3DF(8)='ABS_VORTICITY',
+   CFP3DF(9)='VITESSE_VERTICALE',
+   CFP3DF(10)='TEMPE_POTENT',
+   CFP3DF(11)='POT_VORTICIT',
+   CFP3DF(12)='SIM_REFLECTI',
+   CFP3DF(13)='RAIN',
+   CFP3DF(14)='SNOW',
+   CFP3DF(15)='GRAUPEL',
+   CFP3DF(16)='ICE_CRYSTAL',
+   CFP3DF(17)='CLOUD_WATER',
+   CFP3DF(18)='VERT.VELOCIT',
+   CFP3DF(19)='DIVERGENCE',
+   CFP3DF(20)='THETA_VIRTUA',
+   CFP3DF(21)='TKE',
+   CFP3DF(22)='CLOUD_FRACTI',
+   CFP3DF(23)='ISOT_ALTIT',
+   CFP3DF(24)='EDR',
+   CFPCFU(1)='SURFTENS.TOTA.ZO',
+   CFPCFU(2)='SURFTENS.TOTA.ME',
+   CFPCFU(3)='SURFACCPLUIE',
+   CFPCFU(4)='SURFACCNEIGE',
+   CFPCFU(5)='SURFACCGRAUPEL',
+   CFPCFU(6)='SOMMFLU.RAY.SOLA',
+   CFPCFU(7)='SURFFLU.RAY.SOLA',
+   CFPCFU(8)='SOMMFLU.RAY.THER',
+   CFPCFU(9)='SURFFLU.RAY.THER',
+   CFPCFU(10)='SURFFLU.LAT.MTOT',
+   CFPCFU(11)='SURFFLU.MTOTA.NE',
+   CFPCFU(12)='SURFFLU.CHA.SENS',
+   CFPCFU(13)='SURFRAYT SOLA DE',
+   CFPCFU(14)='SURFRAYT THER DE',
+   CFPCFU(15)='SURFRAYT SOL CL',
+   CFPCFU(16)='SURFRAYT THER CL',
+   CFPCFU(17)='SURFRAYT DIR SUR',
+   CFPDOM(1)='FRANGP0025',
+   CFPFMT='LALON',
+   CFPPHY(1)='SURFTEMPERATURE',
+   CFPPHY(2)='INTSURFGEOPOTENT',
+   CFPPHY(3)='SURFRESERV.NEIGE',
+   CFPXFU(1)='CLSTEMPERATURE',
+   CFPXFU(2)='CLSHUMI.RELATIVE',
+   CFPXFU(3)='CLSVENT.ZONAL',
+   CFPXFU(4)='CLSVENT.MERIDIEN',
+   CFPXFU(5)='SURFNEBUL.TOTALE',
+   CFPXFU(6)='SURFNEBUL.HAUTE',
+   CFPXFU(7)='SURFNEBUL.MOYENN',
+   CFPXFU(8)='SURFNEBUL.BASSE',
+   CFPXFU(9)='CLSMAXI.TEMPERAT',
+   CFPXFU(10)='CLSMINI.TEMPERAT',
+   CFPXFU(11)='CLPMHAUT.MOD.XFU',
+   CFPXFU(12)='SURFDIAGHAIL',
+   LCRITSNOWTEMP=.FALSE.,
+   LFPCAPEX=.TRUE.,
+   LFPMOIS=.TRUE.,
+   LFPPACKING=.FALSE.,
+   LWIDER_DOM=.TRUE.,
+   L_READ_MODEL_DATE=.TRUE.,
+   NFITI=1,
+   NFITV=1,
+   NFPCAPE=5,
+   NFPCLI=1,
+   NFPGRIB=1,
+   NFPINPHY=4,
+   NITERPV=8,
+   RENTRA=0.0001,
+   RFP3H(1)=10.,
+   RFP3H(2)=20.,
+   RFP3H(3)=35.,
+   RFP3H(4)=50.,
+   RFP3H(5)=75.,
+   RFP3H(6)=100.,
+   RFP3H(7)=150.,
+   RFP3H(8)=200.,
+   RFP3H(9)=250.,
+   RFP3H(10)=375.,
+   RFP3H(11)=500.,
+   RFP3H(12)=625.,
+   RFP3H(13)=750.,
+   RFP3H(14)=875.,
+   RFP3H(15)=1000.,
+   RFP3H(16)=1125.,
+   RFP3H(17)=1250.,
+   RFP3H(18)=1375.,
+   RFP3H(19)=1500.,
+   RFP3H(20)=1750.,
+   RFP3H(21)=2000.,
+   RFP3H(22)=2250.,
+   RFP3H(23)=2500.,
+   RFP3H(24)=2750.,
+   RFP3H(25)=3000.,
+   RFP3I(1)=-273.15,
+   RFP3I(2)=-263.15,
+   RFP3I(3)=-261.15,
+   RFP3I(4)=-253.15,
+   RFP3P(1)=10000.,
+   RFP3P(2)=12500.,
+   RFP3P(3)=15000.,
+   RFP3P(4)=17500.,
+   RFP3P(5)=20000.,
+   RFP3P(6)=22500.,
+   RFP3P(7)=25000.,
+   RFP3P(8)=27500.,
+   RFP3P(9)=30000.,
+   RFP3P(10)=35000.,
+   RFP3P(11)=40000.,
+   RFP3P(12)=45000.,
+   RFP3P(13)=50000.,
+   RFP3P(14)=55000.,
+   RFP3P(15)=60000.,
+   RFP3P(16)=65000.,
+   RFP3P(17)=70000.,
+   RFP3P(18)=75000.,
+   RFP3P(19)=80000.,
+   RFP3P(20)=85000.,
+   RFP3P(21)=90000.,
+   RFP3P(22)=92500.,
+   RFP3P(23)=95000.,
+   RFP3P(24)=100000.,
+   RFP3PV(1)=0.0000015,
+   RFP3PV(2)=0.000002,
+   RFPCD2=5.,
+   RFPCSAB=50.,
+   RFPVCAP=7000.,
+ /
+ &NAMFPD
+   NLAT(1)=41,
+   NLON(1)=41,
+   RLONC(1)=-0.71,
+   RLATC(1)=44.8,
+   RDELX(1)=0.025,
+   RDELY(1)=0.025,
+ /
+ &NAMFPDY2
+ /
+ &NAMFPDYF
+ /
+ &NAMFPDYH
+ /
+ &NAMFPDYI
+ /
+ &NAMFPDYP
+ /
+ &NAMFPDYS
+ /
+ &NAMFPDYT
+ /
+ &NAMFPDYV
+ /
+ &NAMFPF
+   NFMAX(1)=60,
+   NFMAX(2)=80,
+ /
+ &NAMFPG
+   NFPDISTRIB=1,
+ /
+ &NAMFPIOS
+ /
+ &NAMFPMOVE
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+ /
+ &NAMGFL
+   NGFL_EZDIAG=4,
+   YEZDIAG_NL(1)%CNAME='EZDIAG01',
+   YEZDIAG_NL(1)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(2)%CNAME='EZDIAG02',
+   YEZDIAG_NL(2)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(3)%CNAME='EZDIAG03',
+   YEZDIAG_NL(3)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(4)%CNAME='INPRRTOT3D',
+   YEZDIAG_NL(4)%LREQOUT=.TRUE.,
+   YG_NL%LQM=.TRUE.,
+   YG_NL%LSLHD=.TRUE.,
+   YG_NL%NCOUPLING=-1,
+   YG_NL%NREQIN=1,
+   YG_NL%REFVALC=0.,
+   YIRAD_NL%LGP=.TRUE.,
+   YI_NL%LQM=.TRUE.,
+   YI_NL%LSLHD=.TRUE.,
+   YI_NL%NCOUPLING=-1,
+   YI_NL%NREQIN=1,
+   YI_NL%REFVALC=0.,
+   YLRAD_NL%LGP=.TRUE.,
+   YL_NL%LQM=.TRUE.,
+   YL_NL%LSLHD=.TRUE.,
+   YL_NL%NCOUPLING=-1,
+   YL_NL%NREQIN=1,
+   YL_NL%REFVALC=0.,
+   YQ_NL%LCOMAD=.TRUE.,
+   YQ_NL%LQM=.TRUE.,
+   YQ_NL%LSLHD=.FALSE.,
+   YQ_NL%NREQIN=1,
+   YR_NL%LQM=.TRUE.,
+   YR_NL%LSLHD=.TRUE.,
+   YR_NL%NCOUPLING=-1,
+   YR_NL%NREQIN=1,
+   YR_NL%REFVALC=0.,
+   YS_NL%LQM=.TRUE.,
+   YS_NL%LSLHD=.TRUE.,
+   YS_NL%NCOUPLING=-1,
+   YS_NL%NREQIN=1,
+   YS_NL%REFVALC=0.,
+   YTKE_NL%NCOUPLING=0,
+   YTKE_NL%NREQIN=1,
+ /
+ &NAMGRIB
+ /
+ &NAMGWD
+ /
+ &NAMGWDIAG
+ /
+ &NAMGWWMS
+ /
+ &NAMIAU
+   ALPHAIAU=0.5,
+   LIAU=.FALSE.,
+   TSTARTIAU=1800,
+   TSTOPIAU=5340,
+ /
+ &NAMICE
+ /
+ &NAMINI
+   LDFI=.FALSE.,
+ /
+ &NAMINTFLEX
+ /
+ &NAMIOMI
+ /
+ &NAMIOS
+ /
+ &NAMIO_SERV
+   NIO_SERV_BUF_MAXSIZE=20,
+   NIO_SERV_METHOD=2,
+   NMSG_LEVEL_CLIENT=0,
+   NMSG_LEVEL_SERVER=0,
+   NPROCESS_LEVEL=5,
+   NPROC_IO=0,
+ /
+ &NAMJBCODES
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMOBS
+ /
+ &NAMONEDVAR
+ /
+ &NAMOOPS
+ /
+ &NAMOPH
+   CFNHWF='ECHIS',
+   LINC=.TRUE.,
+   NTIMEFMT=1,
+ /
+ &NAMOPTCMEM
+ /
+ &NAMPAR0
+   LOPT_SCALAR=.TRUE.,
+   NPRINTLEV=1,
+   LMPOFF=.FALSE.,
+   MBX_SIZE=2048000000,
+   MP_TYPE=2,
+   NOUTPUT=1,
+   NPROC=$NPROC,
+$NPRTRW_NPRTRV
+ /
+ &NAMPAR1
+   LEQ_REGIONS=.FALSE.,
+   LSLONDEM=.TRUE.,
+   LSPLIT=.TRUE.,
+   LSYNC_SLCOM=.FALSE.,
+   LSYNC_TRANS=.FALSE.,
+   L_GATHERV_WRGP=.FALSE.,
+   NCOMBFLEN=1800000,
+   NSTRIN=$NSTRIN,
+   NSTROUT=$NSTROUT,
+ /
+ &NAMPARAR
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   CMICRO='ICE3',
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LCRIAUTI=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LFPREC3D=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LOLSMC=.TRUE.,
+   LOSEDIC=.TRUE.,
+   LOSIGMAS=.TRUE.,
+   LOSUBG_COND=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   NPRINTFR=10000,
+   NPTP=1,
+   RCRIAUTC=0.001,
+   RCRIAUTI=0.0002,
+   RT0CRIAUTI=-5.,
+   VSIGQSAT=0.02,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+   CSUBG_RC_RR_ACCR='PRFR',
+   CSUBG_RR_EVAP='PRFR',
+ /
+ &NAMPHMSE
+   LPGDFWR=.FALSE.,
+ /
+ &NAMPHY
+   LAERODES=.TRUE.,
+   LAEROLAN=.TRUE.,
+   LAEROSEA=.TRUE.,
+   LAEROSOO=.TRUE.,
+   LEDR=.TRUE.,
+   LMPHYS=.TRUE.,
+   LO3ABC=.TRUE.,
+   LRAYFM=.TRUE.,
+ /
+ &NAMPHY0
+   ALMAV=300.,
+   BEDIFV=0.05,
+   ECMNP=3000.,
+   GCCSV=0.,
+   GCVADS=0.8,
+   GCVALFA=0.000045,
+   GCVBETA=0.2,
+   GCVMLT=0.00016,
+   GCVNU=0.000025,
+   GCVPSI=1.,
+   GCVPSIE=1.,
+   GDDEVA=0.25,
+   GDDSDE=0.5,
+   GWDCD=6.,
+   HUCOE=0.5,
+   HUTIL=1.8,
+   QSSC=400.,
+   QSSUSC=0.75,
+   QSSUSS=0.4,
+   QSSUSV=250.,
+   QSUSXC=0.0002,
+   QSUSXS=0.0003,
+   QXRAL=130.,
+   QXRDEL=0.49,
+   QXRHX=0.99,
+   QXRR=0.25,
+   RCVEVAP=0.25,
+   REFLKUO=5000.,
+   REVGSL=15.,
+   SCO=-20.,
+   TDDGP=0.8,
+   TENTR=0.0000025,
+   TENTRX=0.00008,
+   TUDGP=0.8,
+   UHDIFV=0.0008,
+   USURIC=0.175,
+   USURICE=0.5,
+   USURICL=1.,
+   USURID=0.1,
+   USURIDE=0.25,
+   VZ0CM=0.00015,
+   XMAXLM=5000.,
+   XMINLM=10.,
+ /
+ &NAMPHY1
+   ALBMIN=0.65,
+   ALCRIN=0.75,
+   GCGEL=0.00003,
+   GCGELS=0.00005,
+   GNEIMX=1.8,
+   GNEIMXS=1.8,
+   RCTVEG(3)=0.000012,
+   RCTVEG(4)=0.00001,
+ /
+ &NAMPHY2
+   FACRAF=3.8,
+   HTKERAF=20.,
+   LMULAF=.TRUE.,
+   LRAFTKE=.TRUE.,
+   LRAFTUR=.TRUE.,
+   XDAMP=1.,
+   XMULAF=-1.85,
+ /
+ &NAMPHY3
+ /
+ &NAMPHYDS
+ /
+ &NAMPONG
+ /
+ &NAMPPC
+ /
+ &NAMPPVI
+ /
+ &NAMPRE
+ /
+ &NAMRAD15
+ /
+ &NAMRADCMEM
+ /
+ &NAMRCF
+ /
+ &NAMRCOEF
+ /
+ &NAMRES
+ /
+ &NAMRGRI
+ /
+ &NAMRINC
+ /
+ &NAMRIP
+    TSTEP=50.,
+    CSTOP='h2',
+ /
+ &NAMRIP0
+ /
+ &NAMRLX
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPSDT
+ /
+ &NAMSTA
+ /
+ &NAMSTOPH
+ /
+ &NAMSWE
+ /
+ &NAMTESTVAR
+ /
+ &NAMTHLIM
+ /
+ &NAMTOPH
+   ETCVIM=5000.,
+   ETNEBU=5000.,
+   ETPLUI=5000.,
+   XDRMTK=6.0D-7,
+   XDRMTP=800.,
+   XDRMUK=3.0D-7,
+   XDRMUP=800.,
+ /
+ &NAMTRAJP
+ /
+ &NAMTRANS
+ /
+ &NAMTRANS0
+ /
+ &NAMTS
+ /
+ &NAMVAR
+ /
+ &NAMVARBC
+ /
+ &NAMVARBC_AIREP
+ /
+ &NAMVARBC_ALLSKY
+ /
+ &NAMVARBC_GBRAD
+ /
+ &NAMVARBC_RAD
+ /
+ &NAMVARBC_SFCOBS
+ /
+ &NAMVARBC_TCWV
+ /
+ &NAMVARBC_TO3
+ /
+ &NAMVAREPS
+ /
+ &NAMVDF
+ /
+ &NAMVDOZ
+ /
+ &NAMVOLCANO
+ /
+ &NAMVRTL
+ /
+ &NAMVV0
+ /
+ &NAMVV1
+ /
+ &NAMVWRK
+ /
+ &NAMWAVELETJB
+ /
+ &NAMXFU
+   LXCLP=.TRUE.,
+   LXCLS=.TRUE.,
+   LXFU=.TRUE.,
+   LXNEBPA=.TRUE.,
+   LXNEBTT=.TRUE.,
+   LXNUVCLS=.TRUE.,
+   LXPLS=.TRUE.,
+   LXPLSG=.TRUE.,
+   LXQCLS=.TRUE.,
+   LXR=.TRUE.,
+   LXSOIL=.FALSE.,
+   LXTHW=.TRUE.,
+   LXTRT=.TRUE.,
+   LXTTCLS=.TRUE.,
+   LXXDIAGH=.TRUE.,
+   LXXGST=.TRUE.,
+   NFRRAZ=72,
+   NRAZTS(0)=0,
+ /
+ &NAM_CANAPE
+ /
+ &NAM_DISTRIBUTED_VECTORS
+ /
+ &NAPHLC
+ /
+ &NEMCT0
+ /
+ &NEMDIM
+ /
+ &NEMDYN
+ /
+ &NEMELBC0A
+   LESPCPL=.TRUE.,
+   NBICNHX=2,
+   NBICOP=2,
+   NBICOT=2,
+   NBICOU=2,
+   NBICPD=2,
+   NBICVD=2,
+   NECRIPL=1,
+ /
+ &NEMELBC0B
+   NEFRSPCPL=1,
+   NEK0=20,
+   NEK1=30,
+   NEN1=4,
+   NEN2=8,
+   SPNUDDIV=0.01,
+   SPNUDQ=0.,
+   SPNUDT=0.01,
+   SPNUDVOR=0.01,
+   TEFRCL=3600.,
+ /
+ &NEMFPEZO
+ /
+ &NEMGEO
+ /
+ &NEMJK
+ /
+ &NEMVAR
+ /
+ &NEMWAVELET
+ /
+ &NAETLDIAG
+ /
+ &NAMMETHOX
+ /
+ &NAMSPP
+ /
+ &NAMACV
+ /
+ &NAMFPOBJ
+ /
+ &NAMNORGWD
+ /
+ &NAMTRAJ
+ /
+ &NAMSATSIM
+ /
+ &NAMDVISI
+ /
+ &NAMNUDGLH
+ /
+ &NAMPERTPAR
+ /
+FIN
+/bin/cat fort.4
+
+/bin/cat <<FIN > EXSEG1.nam
+ &NAM_DIAG_ISBAN
+   LPGD=.TRUE.,
+   LSURF_MISC_BUDGET=.TRUE.,
+ /
+ &NAM_DIAG_SURFN
+   LCOEF=.TRUE.,
+   LSURF_BUDGET=.TRUE.,
+   N2M=2,
+ /
+ &NAM_ISBAN
+   CSCOND='NP89',
+ /
+ &NAM_REPROD_OPER
+   LREPROD_OPER=.TRUE.,
+ /
+ &NAM_SEAFLUXN
+   CSEA_FLUX='ECUME',
+   LPWG=.FALSE.,
+   LPRECIP=.FALSE.,
+   LPWEBB=.FALSE.,
+ /
+ &NAM_SSON
+   CROUGH='Z01D',
+   XFRACZ0=5.,
+   LDSV=.FALSE.,
+ /
+ &NAM_SURF_ATM
+   XRIMAX=0.2,
+   LNOSOF=.TRUE.,
+ /
+ &NAM_SURF_CSTS
+   XZ0SN=0.01,
+   XZ0HSN=0.001,
+   XEMISSN=0.99,
+ /
+ &NAM_WRITE_DIAG_SURFN
+   LPROVAR_TO_DIAG=.FALSE.,
+   LSELECT=.TRUE.,
+CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS',
+ /
+ &NAM_WRITE_SURF_ATM
+   LNOWRITE_TEXFILE=.TRUE.,
+ /
+FIN
+/bin/cat EXSEG1.nam
+
+#      *****************************************
+#      *  Acquisition du fichier de demarrage  *
+#      *****************************************
+
+echo
+for hh in 0 1 2 3 4 5 6 ; do
+  N=`expr $hh / 1 `
+  set -x
+  ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N}
+  set +x
+done
+set -x
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx
+ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin .
+ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim
+ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx
+ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat .
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat .
+ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz
+
+#      ***************
+#      *  Chargement *
+#      ***************
+
+echo
+set -x
+\ln -s $LOADIR/MASTERODB MASTER
+set +x
+if ldd MASTER | grep openmpi > /dev/null; then
+  #On est sur PC
+  MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}')
+  MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC"
+  GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1
+  export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions
+  export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions
+else
+  #On est sur HPC
+  #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD"
+  NNODES=$SLURM_JOB_NUM_NODES
+  MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES))
+  MPI_TASKS=$SLURM_NTASKS
+  MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --"
+  export OMP_STACKSIZE=4G
+  export KMP_STACKSIZE=4G
+  export KMP_MONITOR_STACKSIZE=4G
+  export DR_HOOK=1
+  export DR_HOOK_IGNORE_SIGNALS=-1
+  export DR_HOOK_SILENT=1
+  export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+  export MPL_MBX_SIZE=2048000000
+  export EC_PROFILE_HEAP=0
+  export EC_PROFILE_MEM=0
+  export EC_MPI_ATEXIT=0
+  export EC_MEMINFO=0
+  export OPENBLAS_NUM_THREADS=1
+  export MKL_CBWR="AUTO,STRICT"
+  export MKL_NUM_THREADS=1
+  export MKL_DEBUG_CPU_TYPE=5
+  export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions
+fi
+echo $MPIRUN
+set +x
+if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi
+
+#      ***************
+#      *  Execution  *
+#      ***************
+
+echo
+echo OMP_NUM_THREADS=$OMP_NUM_THREADS
+set -x
+ulimit -s unlimited
+$MPIRUN $PWD/MASTER >lola
+set +x
+echo
+##if [ -f lola ] ; then
+##  echo;echo Standard output :;echo;cat lola
+##fi
+##if [ -f stderr.* ] ; then
+##  for file in stderr.* ; do
+##    echo;echo $file :;cat $file
+##  done
+##fi
+##if [ -f stdout.* ] ; then
+##echo;echo stdout :;echo;cat stdout.*
+##fi
+##if [ -a NODE.001_01 ] ; then
+##  for file in NODE* ; do
+##    echo;echo Listing $file;echo
+##    cat $file
+##  done
+##fi
+##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then
+### Top 25 for each MPI task :
+##  for file in drhook.prof.* ; do
+##    echo;echo $file :;head -38 $file
+##  done
+##fi
+#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl
+
+#      *******************
+#      *  Sauvegardes    *
+#      *******************
+
+ls
+#if [ -f PFFPOS000+0000 ] ; then
+#  cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID
+#fi
+cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/
+/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001*
+/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00*
+/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz)
+
+#      ****************
+#      *  Epilogue    *
+#      ****************
+
+ls -ltr | grep -v "\->"
+echo Wait_queue :
+ls -ltr $TMPWAIT
+cd $TMPDIR
+\rm -rf rundir.$$
+\rm -rf wait_queue.$$
+date
+set +x
diff --git a/tools/conf_tests/small_3D_alt4/aro48t3.sh b/tools/conf_tests/small_3D_alt4/aro48t3.sh
new file mode 100755
index 0000000000000000000000000000000000000000..d74e8b71259c7858589b9a305517a8bebc18a924
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt4/aro48t3.sh
@@ -0,0 +1,1207 @@
+#!/bin/bash
+#SBATCH -n 4
+#SBATCH --mem=20000
+#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR
+#SBATCH -t 00:10:00
+#SBATCH -N 1
+#SBATCH -p normal256
+
+#The MYLIB varibale must contain the gmkpack pack name
+#The TESTDIR variable must contain the test directory
+#Results will be stored in the local directory
+
+#Other environment varaibles that can be set:
+#OUTPUTDIR
+
+date
+
+OUTPUTDIR=${OUTPUTDIR:-$PWD}
+case=riette2
+#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script
+rekchemin=$TESTDIR
+
+NPROC=4
+NSTRIN=$NPROC
+NSTROUT=1
+NPRTRW_NPRTRV=""
+NPRTRW_NPRTRV="  NPRTRW=$NPROC,
+  NPRTRV=1,"
+export OMP_NUM_THREADS=1
+
+#MYLIB=48t1_main.01%jpdup
+
+export DR_HOOK=1
+#export DR_HOOK_IGNORE_SIGNALS=-1
+export DR_HOOK_NOT_MPI=1
+export DR_HOOK_SILENT=1
+export DR_HOOK_OPT=
+
+export EC_PROFILE_HEAP=0
+export EC_PROFILE_MEM=0
+export EC_MPI_ATEXIT=0
+export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+export EC_MEMINFO=0
+export TVSEARCHPATH=$SOURCE
+
+HOMEPACK=${HOMEPACK:=$HOME/pack}
+SOURCE=$HOMEPACK/$MYLIB/src/local
+LOADIR=$HOMEPACK/$MYLIB/bin
+
+TMPDIR=${TMPDIR:=$HOME/tmp}
+TMPLOC=$TMPDIR/rundir.$$
+TMPWAIT=$TMPDIR/wait_queue.$$
+mkdir $TMPWAIT
+mkdir $TMPLOC
+cd $TMPLOC
+
+export RTTOV_COEFDIR=$PWD
+
+#      **************************
+#      *  Saisie des NAMELISTS  *
+#      **************************
+
+CNMEXP='FPOS'
+
+echo
+/bin/cat <<FIN > fort.4
+ &NACIETEO
+ /
+ &NACOBS
+ /
+ &NACTAN
+ /
+ &NACTEX
+ /
+ &NACVEG
+ /
+ &NADOCK
+ /
+ &NAEAEM7
+ /
+ &NAEAER
+ /
+ &NAECOAPHY
+ /
+ &NAEPHLI
+ /
+ &NAEPHY
+ /
+ &NAERAD
+   LRRTM=.TRUE.,
+   LSRTM=.FALSE.,
+   NAER=1,
+   NICEOPT=3,
+   NLIQOPT=3,
+   NOVLP=6,
+   NOZOCL=2,
+   NRADFR=18,
+   NRADIP=3,
+   NRADLP=2,
+   NSW=6,
+   RLWINHF=1,
+   RRE2DE=0.64952,
+   RSWINHF=1,
+ /
+ &NAERCLI
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMAFN
+   GFP_CLSG%CLNAME='SURFACCGRAUPEL',
+   GFP_CLSP%CLNAME='SURFACCPLUIE',
+   GFP_CLSS%CLNAME='SURFACCNEIGE',
+   GFP_SFIS%IBITS=16,
+   GFP_ST%CLNAME='SURFTEMPERATURE',
+   GFP_ST%IANO=0,
+   GFP_ST%IBITS=12,
+   GFP_X10U%CLNAME='CLSVENT.ZONAL',
+   GFP_X10U%IANO=0,
+   GFP_X10U%IBITS=12,
+   GFP_X10V%CLNAME='CLSVENT.MERIDIEN',
+   GFP_X10V%IANO=0,
+   GFP_X10V%IBITS=12,
+   GFP_X2RH%CLNAME='CLSHUMI.RELATIVE',
+   GFP_X2RH%IANO=0,
+   GFP_X2RH%IBITS=12,
+   GFP_X2T%CLNAME='CLSTEMPERATURE',
+   GFP_X2T%IANO=1,
+   GFP_XCCC%IBITS=8,
+   GFP_XHCC%IBITS=8,
+   GFP_XLCC%IBITS=8,
+   GFP_XLSG%CLNAME='SURFINSGRAUPEL',
+   GFP_XLSP%CLNAME='SURFINSPLUIE',
+   GFP_XLSS%CLNAME='SURFINSNEIGE',
+   GFP_XMCC%IBITS=8,
+   GFP_XN2T%IBITS=12,
+   GFP_XTCC%IBITS=8,
+   GFP_XUGST%CLNAME='CLSU.RAF60M.XFU',
+   GFP_XUGST%IANO=0,
+   GFP_XUGST%IBITS=12,
+   GFP_XVGST%CLNAME='CLSV.RAF60M.XFU',
+   GFP_XVGST%IANO=0,
+   GFP_XVGST%IBITS=12,
+   GFP_XX2T%IBITS=12,
+   GFP_XXDIAGH%IBITS=12,
+   TFP_ABS%ZFK=32.,
+   TFP_CLF%IBITS=6,
+   TFP_EDR%CLNAME='EDR',
+   TFP_EDR%IBITS=16,
+   TFP_EDR%IGRIB=136,
+   TFP_GR%IBITS=12,
+   TFP_HL%IBITS=12,
+   TFP_HTB%IBITS=16,
+   TFP_HTB%LLGP=.TRUE.,
+   TFP_HU%IBITS=12,
+   TFP_MSAT9C2%IBITS=12,
+   TFP_MSAT9C6%IBITS=12,
+   TFP_MSLNH%IBITS=12,
+   TFP_PV%ZFK=64.,
+   TFP_RCLS%IBITS=12,
+   TFP_RR%IBITS=12,
+   TFP_SN%IBITS=12,
+   TFP_T%IBITS=12,
+   TFP_TCLS%IBITS=12,
+   TFP_TH%IBITS=12,
+   TFP_THPW%IBITS=12,
+   TFP_THV%IBITS=12,
+   TFP_TN%IBITS=12,
+   TFP_TWV%IBITS=12,
+   TFP_TX%IBITS=12,
+   TFP_U%IBITS=12,
+   TFP_V%IBITS=12,
+   TFP_VOR%ZFK=32.,
+   TFP_VV%ZFK=32.,
+ /
+ &NAMARG
+   CNMEXP='${CNMEXP}',
+   LECMWF=.FALSE.,
+   LELAM=.TRUE.,
+   LSLAG=.TRUE.,
+   NCONF=1,
+   NSUPERSEDE=1,
+ /
+ &NAMARPHY
+   LKFBCONV=.FALSE.,
+   LKFBD=.FALSE.,
+   LKFBS=.FALSE.,
+   LMFSHAL=.TRUE.,
+   LMICRO=.TRUE.,
+   LMPA=.TRUE.,
+   LMSE=.TRUE.,
+   LTURB=.TRUE.,
+ /
+ &NAMCA
+ /
+ &NAMCAPE
+ /
+ &NAMCFU
+   LCUMFU=.TRUE.,
+   LFPLS=.TRUE.,
+   LFPLSG=.TRUE.,
+   LFR=.TRUE.,
+   LFRRC=.TRUE.,
+   LFSF=.TRUE.,
+   LNEBPAR=.TRUE.,
+   LNEBTT=.TRUE.,
+   LRAYD=.TRUE.,
+   LRAYS=.TRUE.,
+ /
+ &NAMCHEM
+ /
+ &NAMCHET
+ /
+ &NAMCHK
+ /
+ &NAMCLA
+ /
+ &NAMCLDP
+ /
+ &NAMCLI
+ /
+ &NAMCLOP15
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LNHEE=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   LSPRT=.TRUE.,
+   LTWOTL=.TRUE.,
+   NFPOS=1,
+   NFRSDI=18,
+   NSDITS(0)=0,
+   NFRHIS=72,
+   NHISTS(0)=0,
+   NFRPOS=72,
+   NPOSTS(0)=0,
+   NFRSFXHIS=72,
+   NSFXHISTS(0)=0,
+   NFRDHFD=72,
+   NDHFDTS(0)=0,
+ /
+ &NAMCT1
+   LRFILAF=.FALSE.,
+   N1HIS=1,
+   N1POS=1,
+   N1RES=0,
+   N1SDI=1,
+   N1SFXHIS=1,
+   N1GDI=0,
+ /
+ &NAMCUMF
+ /
+ &NAMCUMFS
+ /
+ &NAMCVER
+ /
+ &NAMCVMNH
+ /
+ &NAMDDH
+   LDDH_OMP=.TRUE.,
+   LHDDOP=.TRUE.,
+   LHDHKS=.TRUE.,
+   LHDEFD=.TRUE.,
+   LFLEXDIA=.TRUE.,
+   BDEDDH(1,1)=3,
+   BDEDDH(2,1)=1,
+   BDEDDH(3,1)=358.8
+   BDEDDH(4,1)=45.1
+   BDEDDH(5,1)=360.3
+   BDEDDH(6,1)=44.5
+ /
+ &NAMDFI
+ /
+ &NAMDIM
+   NPROMA=-50,
+ /
+ &NAMDIMO
+ /
+ &NAMDIM_TRAJ
+ /
+ &NAMDPHY
+ /
+ &NAMDPRECIPS
+ /
+ &NAMDYN
+   LADVF=.TRUE.,
+   LQMPD=.FALSE.,
+   LQMT=.FALSE.,
+   LQMVD=.FALSE.,
+   LRHDI_LASTITERPC=.TRUE.,
+   NITMP=4,
+   NSITER=1,
+   NSPDLAG=3,
+   NSVDLAG=3,
+   NTLAG=3,
+   NVLAG=3,
+   NWLAG=3,
+   RDAMPDIV=20.,
+   RDAMPPD=20.,
+   RDAMPQ=0.,
+   RDAMPT=0.,
+   RDAMPVD=20.,
+   RDAMPVOR=20.,
+   REPS1=0.,
+   REPS2=0.,
+   REPSM1=0.,
+   REPSM2=0.,
+   REPSP1=0.,
+   SDRED=1.,
+   SIPR=90000.,
+   SITR=350.,
+   SITRA=100.,
+   SLHDA0=0.25,
+   SLHDD00=0.000065,
+   VESL=0.05,
+   XIDT=0.,
+   ZSLHDP1=1.7,
+   ZSLHDP3=0.6,
+ /
+ &NAMDYNA
+   LCOMADH=.TRUE.,
+   LCOMADV=.FALSE.,
+   LCOMAD_GFL=.TRUE.,
+   LCOMAD_SP=.TRUE.,
+   LCOMAD_SPD=.TRUE.,
+   LCOMAD_SVD=.TRUE.,
+   LCOMAD_T=.TRUE.,
+   LCOMAD_W=.TRUE.,
+   LGWADV=.TRUE.,
+   LNESC=.TRUE.,
+   LPC_CHEAP=.TRUE.,
+   LPC_FULL=.TRUE.,
+   LRDBBC=.FALSE.,
+   LSETTLS=.FALSE.,
+   LSETTLST=.TRUE.,
+   LSLHD_GFL=.TRUE.,
+   LSLHD_OLD=.FALSE.,
+   LSLHD_SPD=.FALSE.,
+   LSLHD_SVD=.FALSE.,
+   LSLHD_T=.FALSE.,
+   LSLHD_W=.FALSE.,
+   ND4SYS=2,
+   NDLNPR=1,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+ /
+ &NAMDYNCORE
+ /
+ &NAMEMIS_CONF
+ /
+ &NAMENKF
+ /
+ &NAMFA
+   CMODEL='OUTPUTID',
+   LEXTERN=.TRUE.,
+   LSUPPDATE=.FALSE.,
+   NBITCS=-1,
+   NBITPG=-1,
+   NSTRON=-1,
+ /
+ &NAMFAINIT
+   JPXTRO=2000,
+ /
+ &NAMFPC
+   CFP2DF(1)='SURFPRESSION',
+   CFP2DF(2)='MSL_NHPRESSURE',
+   CFP2DF(3)='SURFTOT.WAT.VAPO',
+   CFP2DF(4)='SURFISOTPW0.MALT',
+   CFP2DF(5)='SURFCAPE.POS.F00',
+   CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(8)='SURFREFLECT.MAX',
+   CFP2DF(9)='SURFISOTPW1.MALT',
+   CFP2DF(10)='SURFISOTPW2.MALT',
+   CFP3DF(1)='GEOPOTENTIEL',
+   CFP3DF(2)='TEMPERATURE',
+   CFP3DF(3)='VENT_ZONAL',
+   CFP3DF(4)='VENT_MERIDIEN',
+   CFP3DF(5)='HUMI_RELATIVE',
+   CFP3DF(6)='THETA_PRIM_W',
+   CFP3DF(7)='PRESSURE',
+   CFP3DF(8)='ABS_VORTICITY',
+   CFP3DF(9)='VITESSE_VERTICALE',
+   CFP3DF(10)='TEMPE_POTENT',
+   CFP3DF(11)='POT_VORTICIT',
+   CFP3DF(12)='SIM_REFLECTI',
+   CFP3DF(13)='RAIN',
+   CFP3DF(14)='SNOW',
+   CFP3DF(15)='GRAUPEL',
+   CFP3DF(16)='ICE_CRYSTAL',
+   CFP3DF(17)='CLOUD_WATER',
+   CFP3DF(18)='VERT.VELOCIT',
+   CFP3DF(19)='DIVERGENCE',
+   CFP3DF(20)='THETA_VIRTUA',
+   CFP3DF(21)='TKE',
+   CFP3DF(22)='CLOUD_FRACTI',
+   CFP3DF(23)='ISOT_ALTIT',
+   CFP3DF(24)='EDR',
+   CFPCFU(1)='SURFTENS.TOTA.ZO',
+   CFPCFU(2)='SURFTENS.TOTA.ME',
+   CFPCFU(3)='SURFACCPLUIE',
+   CFPCFU(4)='SURFACCNEIGE',
+   CFPCFU(5)='SURFACCGRAUPEL',
+   CFPCFU(6)='SOMMFLU.RAY.SOLA',
+   CFPCFU(7)='SURFFLU.RAY.SOLA',
+   CFPCFU(8)='SOMMFLU.RAY.THER',
+   CFPCFU(9)='SURFFLU.RAY.THER',
+   CFPCFU(10)='SURFFLU.LAT.MTOT',
+   CFPCFU(11)='SURFFLU.MTOTA.NE',
+   CFPCFU(12)='SURFFLU.CHA.SENS',
+   CFPCFU(13)='SURFRAYT SOLA DE',
+   CFPCFU(14)='SURFRAYT THER DE',
+   CFPCFU(15)='SURFRAYT SOL CL',
+   CFPCFU(16)='SURFRAYT THER CL',
+   CFPCFU(17)='SURFRAYT DIR SUR',
+   CFPDOM(1)='FRANGP0025',
+   CFPFMT='LALON',
+   CFPPHY(1)='SURFTEMPERATURE',
+   CFPPHY(2)='INTSURFGEOPOTENT',
+   CFPPHY(3)='SURFRESERV.NEIGE',
+   CFPXFU(1)='CLSTEMPERATURE',
+   CFPXFU(2)='CLSHUMI.RELATIVE',
+   CFPXFU(3)='CLSVENT.ZONAL',
+   CFPXFU(4)='CLSVENT.MERIDIEN',
+   CFPXFU(5)='SURFNEBUL.TOTALE',
+   CFPXFU(6)='SURFNEBUL.HAUTE',
+   CFPXFU(7)='SURFNEBUL.MOYENN',
+   CFPXFU(8)='SURFNEBUL.BASSE',
+   CFPXFU(9)='CLSMAXI.TEMPERAT',
+   CFPXFU(10)='CLSMINI.TEMPERAT',
+   CFPXFU(11)='CLPMHAUT.MOD.XFU',
+   CFPXFU(12)='SURFDIAGHAIL',
+   LCRITSNOWTEMP=.FALSE.,
+   LFPCAPEX=.TRUE.,
+   LFPMOIS=.TRUE.,
+   LFPPACKING=.FALSE.,
+   LWIDER_DOM=.TRUE.,
+   L_READ_MODEL_DATE=.TRUE.,
+   NFITI=1,
+   NFITV=1,
+   NFPCAPE=5,
+   NFPCLI=1,
+   NFPGRIB=1,
+   NFPINPHY=4,
+   NITERPV=8,
+   RENTRA=0.0001,
+   RFP3H(1)=10.,
+   RFP3H(2)=20.,
+   RFP3H(3)=35.,
+   RFP3H(4)=50.,
+   RFP3H(5)=75.,
+   RFP3H(6)=100.,
+   RFP3H(7)=150.,
+   RFP3H(8)=200.,
+   RFP3H(9)=250.,
+   RFP3H(10)=375.,
+   RFP3H(11)=500.,
+   RFP3H(12)=625.,
+   RFP3H(13)=750.,
+   RFP3H(14)=875.,
+   RFP3H(15)=1000.,
+   RFP3H(16)=1125.,
+   RFP3H(17)=1250.,
+   RFP3H(18)=1375.,
+   RFP3H(19)=1500.,
+   RFP3H(20)=1750.,
+   RFP3H(21)=2000.,
+   RFP3H(22)=2250.,
+   RFP3H(23)=2500.,
+   RFP3H(24)=2750.,
+   RFP3H(25)=3000.,
+   RFP3I(1)=-273.15,
+   RFP3I(2)=-263.15,
+   RFP3I(3)=-261.15,
+   RFP3I(4)=-253.15,
+   RFP3P(1)=10000.,
+   RFP3P(2)=12500.,
+   RFP3P(3)=15000.,
+   RFP3P(4)=17500.,
+   RFP3P(5)=20000.,
+   RFP3P(6)=22500.,
+   RFP3P(7)=25000.,
+   RFP3P(8)=27500.,
+   RFP3P(9)=30000.,
+   RFP3P(10)=35000.,
+   RFP3P(11)=40000.,
+   RFP3P(12)=45000.,
+   RFP3P(13)=50000.,
+   RFP3P(14)=55000.,
+   RFP3P(15)=60000.,
+   RFP3P(16)=65000.,
+   RFP3P(17)=70000.,
+   RFP3P(18)=75000.,
+   RFP3P(19)=80000.,
+   RFP3P(20)=85000.,
+   RFP3P(21)=90000.,
+   RFP3P(22)=92500.,
+   RFP3P(23)=95000.,
+   RFP3P(24)=100000.,
+   RFP3PV(1)=0.0000015,
+   RFP3PV(2)=0.000002,
+   RFPCD2=5.,
+   RFPCSAB=50.,
+   RFPVCAP=7000.,
+ /
+ &NAMFPD
+   NLAT(1)=41,
+   NLON(1)=41,
+   RLONC(1)=-0.71,
+   RLATC(1)=44.8,
+   RDELX(1)=0.025,
+   RDELY(1)=0.025,
+ /
+ &NAMFPDY2
+ /
+ &NAMFPDYF
+ /
+ &NAMFPDYH
+ /
+ &NAMFPDYI
+ /
+ &NAMFPDYP
+ /
+ &NAMFPDYS
+ /
+ &NAMFPDYT
+ /
+ &NAMFPDYV
+ /
+ &NAMFPF
+   NFMAX(1)=60,
+   NFMAX(2)=80,
+ /
+ &NAMFPG
+   NFPDISTRIB=1,
+ /
+ &NAMFPIOS
+ /
+ &NAMFPMOVE
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+ /
+ &NAMGFL
+   NGFL_EZDIAG=4,
+   YEZDIAG_NL(1)%CNAME='EZDIAG01',
+   YEZDIAG_NL(1)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(2)%CNAME='EZDIAG02',
+   YEZDIAG_NL(2)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(3)%CNAME='EZDIAG03',
+   YEZDIAG_NL(3)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(4)%CNAME='INPRRTOT3D',
+   YEZDIAG_NL(4)%LREQOUT=.TRUE.,
+   YG_NL%LQM=.TRUE.,
+   YG_NL%LSLHD=.TRUE.,
+   YG_NL%NCOUPLING=-1,
+   YG_NL%NREQIN=1,
+   YG_NL%REFVALC=0.,
+   YIRAD_NL%LGP=.TRUE.,
+   YI_NL%LQM=.TRUE.,
+   YI_NL%LSLHD=.TRUE.,
+   YI_NL%NCOUPLING=-1,
+   YI_NL%NREQIN=1,
+   YI_NL%REFVALC=0.,
+   YLRAD_NL%LGP=.TRUE.,
+   YL_NL%LQM=.TRUE.,
+   YL_NL%LSLHD=.TRUE.,
+   YL_NL%NCOUPLING=-1,
+   YL_NL%NREQIN=1,
+   YL_NL%REFVALC=0.,
+   YQ_NL%LCOMAD=.TRUE.,
+   YQ_NL%LQM=.TRUE.,
+   YQ_NL%LSLHD=.FALSE.,
+   YQ_NL%NREQIN=1,
+   YR_NL%LQM=.TRUE.,
+   YR_NL%LSLHD=.TRUE.,
+   YR_NL%NCOUPLING=-1,
+   YR_NL%NREQIN=1,
+   YR_NL%REFVALC=0.,
+   YS_NL%LQM=.TRUE.,
+   YS_NL%LSLHD=.TRUE.,
+   YS_NL%NCOUPLING=-1,
+   YS_NL%NREQIN=1,
+   YS_NL%REFVALC=0.,
+   YTKE_NL%NCOUPLING=0,
+   YTKE_NL%NREQIN=1,
+ /
+ &NAMGRIB
+ /
+ &NAMGWD
+ /
+ &NAMGWDIAG
+ /
+ &NAMGWWMS
+ /
+ &NAMIAU
+   ALPHAIAU=0.5,
+   LIAU=.FALSE.,
+   TSTARTIAU=1800,
+   TSTOPIAU=5340,
+ /
+ &NAMICE
+ /
+ &NAMINI
+   LDFI=.FALSE.,
+ /
+ &NAMINTFLEX
+ /
+ &NAMIOMI
+ /
+ &NAMIOS
+ /
+ &NAMIO_SERV
+   NIO_SERV_BUF_MAXSIZE=20,
+   NIO_SERV_METHOD=2,
+   NMSG_LEVEL_CLIENT=0,
+   NMSG_LEVEL_SERVER=0,
+   NPROCESS_LEVEL=5,
+   NPROC_IO=0,
+ /
+ &NAMJBCODES
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMOBS
+ /
+ &NAMONEDVAR
+ /
+ &NAMOOPS
+ /
+ &NAMOPH
+   CFNHWF='ECHIS',
+   LINC=.TRUE.,
+   NTIMEFMT=1,
+ /
+ &NAMOPTCMEM
+ /
+ &NAMPAR0
+   LOPT_SCALAR=.TRUE.,
+   NPRINTLEV=1,
+   LMPOFF=.FALSE.,
+   MBX_SIZE=2048000000,
+   MP_TYPE=2,
+   NOUTPUT=1,
+   NPROC=$NPROC,
+$NPRTRW_NPRTRV
+ /
+ &NAMPAR1
+   LEQ_REGIONS=.FALSE.,
+   LSLONDEM=.TRUE.,
+   LSPLIT=.TRUE.,
+   LSYNC_SLCOM=.FALSE.,
+   LSYNC_TRANS=.FALSE.,
+   L_GATHERV_WRGP=.FALSE.,
+   NCOMBFLEN=1800000,
+   NSTRIN=$NSTRIN,
+   NSTROUT=$NSTROUT,
+ /
+ &NAMPARAR
+   CFRAC_ICE_ADJUST='T',
+   CFRAC_ICE_SHALLOW_MF='T',
+   CMICRO='ICE3',
+   CSEDIM='SPLI',
+   CSNOWRIMING='OLD',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LCRIAUTI=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LFPREC3D=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LOLSMC=.TRUE.,
+   LOSEDIC=.TRUE.,
+   LOSIGMAS=.TRUE.,
+   LOSUBG_COND=.TRUE.,
+   LSEDIM_AFTER=.TRUE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=10,
+   NPRINTFR=10000,
+   NPTP=1,
+   RCRIAUTC=0.001,
+   RCRIAUTI=0.0002,
+   RT0CRIAUTI=-5.,
+   VSIGQSAT=0.02,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=25.,
+ /
+ &NAMPHMSE
+   LPGDFWR=.FALSE.,
+ /
+ &NAMPHY
+   LAERODES=.TRUE.,
+   LAEROLAN=.TRUE.,
+   LAEROSEA=.TRUE.,
+   LAEROSOO=.TRUE.,
+   LEDR=.TRUE.,
+   LMPHYS=.TRUE.,
+   LO3ABC=.TRUE.,
+   LRAYFM=.TRUE.,
+ /
+ &NAMPHY0
+   ALMAV=300.,
+   BEDIFV=0.05,
+   ECMNP=3000.,
+   GCCSV=0.,
+   GCVADS=0.8,
+   GCVALFA=0.000045,
+   GCVBETA=0.2,
+   GCVMLT=0.00016,
+   GCVNU=0.000025,
+   GCVPSI=1.,
+   GCVPSIE=1.,
+   GDDEVA=0.25,
+   GDDSDE=0.5,
+   GWDCD=6.,
+   HUCOE=0.5,
+   HUTIL=1.8,
+   QSSC=400.,
+   QSSUSC=0.75,
+   QSSUSS=0.4,
+   QSSUSV=250.,
+   QSUSXC=0.0002,
+   QSUSXS=0.0003,
+   QXRAL=130.,
+   QXRDEL=0.49,
+   QXRHX=0.99,
+   QXRR=0.25,
+   RCVEVAP=0.25,
+   REFLKUO=5000.,
+   REVGSL=15.,
+   SCO=-20.,
+   TDDGP=0.8,
+   TENTR=0.0000025,
+   TENTRX=0.00008,
+   TUDGP=0.8,
+   UHDIFV=0.0008,
+   USURIC=0.175,
+   USURICE=0.5,
+   USURICL=1.,
+   USURID=0.1,
+   USURIDE=0.25,
+   VZ0CM=0.00015,
+   XMAXLM=5000.,
+   XMINLM=10.,
+ /
+ &NAMPHY1
+   ALBMIN=0.65,
+   ALCRIN=0.75,
+   GCGEL=0.00003,
+   GCGELS=0.00005,
+   GNEIMX=1.8,
+   GNEIMXS=1.8,
+   RCTVEG(3)=0.000012,
+   RCTVEG(4)=0.00001,
+ /
+ &NAMPHY2
+   FACRAF=3.8,
+   HTKERAF=20.,
+   LMULAF=.TRUE.,
+   LRAFTKE=.TRUE.,
+   LRAFTUR=.TRUE.,
+   XDAMP=1.,
+   XMULAF=-1.85,
+ /
+ &NAMPHY3
+ /
+ &NAMPHYDS
+ /
+ &NAMPONG
+ /
+ &NAMPPC
+ /
+ &NAMPPVI
+ /
+ &NAMPRE
+ /
+ &NAMRAD15
+ /
+ &NAMRADCMEM
+ /
+ &NAMRCF
+ /
+ &NAMRCOEF
+ /
+ &NAMRES
+ /
+ &NAMRGRI
+ /
+ &NAMRINC
+ /
+ &NAMRIP
+    TSTEP=50.,
+    CSTOP='h2',
+ /
+ &NAMRIP0
+ /
+ &NAMRLX
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPSDT
+ /
+ &NAMSTA
+ /
+ &NAMSTOPH
+ /
+ &NAMSWE
+ /
+ &NAMTESTVAR
+ /
+ &NAMTHLIM
+ /
+ &NAMTOPH
+   ETCVIM=5000.,
+   ETNEBU=5000.,
+   ETPLUI=5000.,
+   XDRMTK=6.0D-7,
+   XDRMTP=800.,
+   XDRMUK=3.0D-7,
+   XDRMUP=800.,
+ /
+ &NAMTRAJP
+ /
+ &NAMTRANS
+ /
+ &NAMTRANS0
+ /
+ &NAMTS
+ /
+ &NAMVAR
+ /
+ &NAMVARBC
+ /
+ &NAMVARBC_AIREP
+ /
+ &NAMVARBC_ALLSKY
+ /
+ &NAMVARBC_GBRAD
+ /
+ &NAMVARBC_RAD
+ /
+ &NAMVARBC_SFCOBS
+ /
+ &NAMVARBC_TCWV
+ /
+ &NAMVARBC_TO3
+ /
+ &NAMVAREPS
+ /
+ &NAMVDF
+ /
+ &NAMVDOZ
+ /
+ &NAMVOLCANO
+ /
+ &NAMVRTL
+ /
+ &NAMVV0
+ /
+ &NAMVV1
+ /
+ &NAMVWRK
+ /
+ &NAMWAVELETJB
+ /
+ &NAMXFU
+   LXCLP=.TRUE.,
+   LXCLS=.TRUE.,
+   LXFU=.TRUE.,
+   LXNEBPA=.TRUE.,
+   LXNEBTT=.TRUE.,
+   LXNUVCLS=.TRUE.,
+   LXPLS=.TRUE.,
+   LXPLSG=.TRUE.,
+   LXQCLS=.TRUE.,
+   LXR=.TRUE.,
+   LXSOIL=.FALSE.,
+   LXTHW=.TRUE.,
+   LXTRT=.TRUE.,
+   LXTTCLS=.TRUE.,
+   LXXDIAGH=.TRUE.,
+   LXXGST=.TRUE.,
+   NFRRAZ=72,
+   NRAZTS(0)=0,
+ /
+ &NAM_CANAPE
+ /
+ &NAM_DISTRIBUTED_VECTORS
+ /
+ &NAPHLC
+ /
+ &NEMCT0
+ /
+ &NEMDIM
+ /
+ &NEMDYN
+ /
+ &NEMELBC0A
+   LESPCPL=.TRUE.,
+   NBICNHX=2,
+   NBICOP=2,
+   NBICOT=2,
+   NBICOU=2,
+   NBICPD=2,
+   NBICVD=2,
+   NECRIPL=1,
+ /
+ &NEMELBC0B
+   NEFRSPCPL=1,
+   NEK0=20,
+   NEK1=30,
+   NEN1=4,
+   NEN2=8,
+   SPNUDDIV=0.01,
+   SPNUDQ=0.,
+   SPNUDT=0.01,
+   SPNUDVOR=0.01,
+   TEFRCL=3600.,
+ /
+ &NEMFPEZO
+ /
+ &NEMGEO
+ /
+ &NEMJK
+ /
+ &NEMVAR
+ /
+ &NEMWAVELET
+ /
+ &NAETLDIAG
+ /
+ &NAMMETHOX
+ /
+ &NAMSPP
+ /
+ &NAMACV
+ /
+ &NAMFPOBJ
+ /
+ &NAMNORGWD
+ /
+ &NAMTRAJ
+ /
+ &NAMSATSIM
+ /
+ &NAMDVISI
+ /
+ &NAMNUDGLH
+ /
+ &NAMPERTPAR
+ /
+FIN
+/bin/cat fort.4
+
+/bin/cat <<FIN > EXSEG1.nam
+ &NAM_DIAG_ISBAN
+   LPGD=.TRUE.,
+   LSURF_MISC_BUDGET=.TRUE.,
+ /
+ &NAM_DIAG_SURFN
+   LCOEF=.TRUE.,
+   LSURF_BUDGET=.TRUE.,
+   N2M=2,
+ /
+ &NAM_ISBAN
+   CSCOND='NP89',
+ /
+ &NAM_REPROD_OPER
+   LREPROD_OPER=.TRUE.,
+ /
+ &NAM_SEAFLUXN
+   CSEA_FLUX='ECUME',
+   LPWG=.FALSE.,
+   LPRECIP=.FALSE.,
+   LPWEBB=.FALSE.,
+ /
+ &NAM_SSON
+   CROUGH='Z01D',
+   XFRACZ0=5.,
+   LDSV=.FALSE.,
+ /
+ &NAM_SURF_ATM
+   XRIMAX=0.2,
+   LNOSOF=.TRUE.,
+ /
+ &NAM_SURF_CSTS
+   XZ0SN=0.01,
+   XZ0HSN=0.001,
+   XEMISSN=0.99,
+ /
+ &NAM_WRITE_DIAG_SURFN
+   LPROVAR_TO_DIAG=.FALSE.,
+   LSELECT=.TRUE.,
+CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS',
+ /
+ &NAM_WRITE_SURF_ATM
+   LNOWRITE_TEXFILE=.TRUE.,
+ /
+FIN
+/bin/cat EXSEG1.nam
+
+#      *****************************************
+#      *  Acquisition du fichier de demarrage  *
+#      *****************************************
+
+echo
+for hh in 0 1 2 3 4 5 6 ; do
+  N=`expr $hh / 1 `
+  set -x
+  ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N}
+  set +x
+done
+set -x
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx
+ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin .
+ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim
+ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx
+ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat .
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat .
+ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz
+
+#      ***************
+#      *  Chargement *
+#      ***************
+
+echo
+set -x
+\ln -s $LOADIR/MASTERODB MASTER
+set +x
+if ldd MASTER | grep openmpi > /dev/null; then
+  #On est sur PC
+  MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}')
+  MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC"
+  GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1
+  export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions
+  export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions
+else
+  #On est sur HPC
+  #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD"
+  NNODES=$SLURM_JOB_NUM_NODES
+  MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES))
+  MPI_TASKS=$SLURM_NTASKS
+  MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --"
+  export OMP_STACKSIZE=4G
+  export KMP_STACKSIZE=4G
+  export KMP_MONITOR_STACKSIZE=4G
+  export DR_HOOK=1
+  export DR_HOOK_IGNORE_SIGNALS=-1
+  export DR_HOOK_SILENT=1
+  export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+  export MPL_MBX_SIZE=2048000000
+  export EC_PROFILE_HEAP=0
+  export EC_PROFILE_MEM=0
+  export EC_MPI_ATEXIT=0
+  export EC_MEMINFO=0
+  export OPENBLAS_NUM_THREADS=1
+  export MKL_CBWR="AUTO,STRICT"
+  export MKL_NUM_THREADS=1
+  export MKL_DEBUG_CPU_TYPE=5
+  export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions
+fi
+echo $MPIRUN
+set +x
+if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi
+
+#      ***************
+#      *  Execution  *
+#      ***************
+
+echo
+echo OMP_NUM_THREADS=$OMP_NUM_THREADS
+set -x
+ulimit -s unlimited
+$MPIRUN $PWD/MASTER >lola
+set +x
+echo
+##if [ -f lola ] ; then
+##  echo;echo Standard output :;echo;cat lola
+##fi
+##if [ -f stderr.* ] ; then
+##  for file in stderr.* ; do
+##    echo;echo $file :;cat $file
+##  done
+##fi
+##if [ -f stdout.* ] ; then
+##echo;echo stdout :;echo;cat stdout.*
+##fi
+##if [ -a NODE.001_01 ] ; then
+##  for file in NODE* ; do
+##    echo;echo Listing $file;echo
+##    cat $file
+##  done
+##fi
+##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then
+### Top 25 for each MPI task :
+##  for file in drhook.prof.* ; do
+##    echo;echo $file :;head -38 $file
+##  done
+##fi
+#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl
+
+#      *******************
+#      *  Sauvegardes    *
+#      *******************
+
+ls
+#if [ -f PFFPOS000+0000 ] ; then
+#  cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID
+#fi
+cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/
+/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001*
+/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00*
+/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz)
+
+#      ****************
+#      *  Epilogue    *
+#      ****************
+
+ls -ltr | grep -v "\->"
+echo Wait_queue :
+ls -ltr $TMPWAIT
+cd $TMPDIR
+\rm -rf rundir.$$
+\rm -rf wait_queue.$$
+date
+set +x
diff --git a/tools/conf_tests/small_3D_alt5/aro48t3.sh b/tools/conf_tests/small_3D_alt5/aro48t3.sh
new file mode 100755
index 0000000000000000000000000000000000000000..9ca429fc39c97e4db7cd5077916c99b9abf30900
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt5/aro48t3.sh
@@ -0,0 +1,1219 @@
+#!/bin/bash
+#SBATCH -n 4
+#SBATCH --mem=20000
+#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR
+#SBATCH -t 00:10:00
+#SBATCH -N 1
+#SBATCH -p normal256
+
+#The MYLIB varibale must contain the gmkpack pack name
+#The TESTDIR variable must contain the test directory
+#Results will be stored in the local directory
+
+#Other environment varaibles that can be set:
+#OUTPUTDIR
+
+date
+
+OUTPUTDIR=${OUTPUTDIR:-$PWD}
+case=riette2
+#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script
+rekchemin=$TESTDIR
+
+NPROC=4
+NSTRIN=$NPROC
+NSTROUT=1
+NPRTRW_NPRTRV=""
+NPRTRW_NPRTRV="  NPRTRW=$NPROC,
+  NPRTRV=1,"
+export OMP_NUM_THREADS=1
+
+#MYLIB=48t1_main.01%jpdup
+
+export DR_HOOK=1
+#export DR_HOOK_IGNORE_SIGNALS=-1
+export DR_HOOK_NOT_MPI=1
+export DR_HOOK_SILENT=1
+export DR_HOOK_OPT=
+
+export EC_PROFILE_HEAP=0
+export EC_PROFILE_MEM=0
+export EC_MPI_ATEXIT=0
+export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+export EC_MEMINFO=0
+export TVSEARCHPATH=$SOURCE
+
+HOMEPACK=${HOMEPACK:=$HOME/pack}
+SOURCE=$HOMEPACK/$MYLIB/src/local
+LOADIR=$HOMEPACK/$MYLIB/bin
+
+TMPDIR=${TMPDIR:=$HOME/tmp}
+TMPLOC=$TMPDIR/rundir.$$
+TMPWAIT=$TMPDIR/wait_queue.$$
+mkdir $TMPWAIT
+mkdir $TMPLOC
+cd $TMPLOC
+
+export RTTOV_COEFDIR=$PWD
+
+#      **************************
+#      *  Saisie des NAMELISTS  *
+#      **************************
+
+CNMEXP='FPOS'
+
+echo
+/bin/cat <<FIN > fort.4
+ &NACIETEO
+ /
+ &NACOBS
+ /
+ &NACTAN
+ /
+ &NACTEX
+ /
+ &NACVEG
+ /
+ &NADOCK
+ /
+ &NAEAEM7
+ /
+ &NAEAER
+ /
+ &NAECOAPHY
+ /
+ &NAEPHLI
+ /
+ &NAEPHY
+ /
+ &NAERAD
+   LRRTM=.TRUE.,
+   LSRTM=.FALSE.,
+   NAER=1,
+   NICEOPT=3,
+   NLIQOPT=3,
+   NOVLP=6,
+   NOZOCL=2,
+   NRADFR=18,
+   NRADIP=3,
+   NRADLP=2,
+   NSW=6,
+   RLWINHF=1,
+   RRE2DE=0.64952,
+   RSWINHF=1,
+ /
+ &NAERCLI
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMAFN
+   GFP_CLSH%CLNAME='SURFACCGREL2',
+   GFP_XLSH%CLNAME='SURFINSGREL2',
+   GFP_CLSG%CLNAME='SURFACCGRAUPEL',
+   GFP_CLSP%CLNAME='SURFACCPLUIE',
+   GFP_CLSS%CLNAME='SURFACCNEIGE',
+   GFP_SFIS%IBITS=16,
+   GFP_ST%CLNAME='SURFTEMPERATURE',
+   GFP_ST%IANO=0,
+   GFP_ST%IBITS=12,
+   GFP_X10U%CLNAME='CLSVENT.ZONAL',
+   GFP_X10U%IANO=0,
+   GFP_X10U%IBITS=12,
+   GFP_X10V%CLNAME='CLSVENT.MERIDIEN',
+   GFP_X10V%IANO=0,
+   GFP_X10V%IBITS=12,
+   GFP_X2RH%CLNAME='CLSHUMI.RELATIVE',
+   GFP_X2RH%IANO=0,
+   GFP_X2RH%IBITS=12,
+   GFP_X2T%CLNAME='CLSTEMPERATURE',
+   GFP_X2T%IANO=1,
+   GFP_XCCC%IBITS=8,
+   GFP_XHCC%IBITS=8,
+   GFP_XLCC%IBITS=8,
+   GFP_XLSG%CLNAME='SURFINSGRAUPEL',
+   GFP_XLSP%CLNAME='SURFINSPLUIE',
+   GFP_XLSS%CLNAME='SURFINSNEIGE',
+   GFP_XMCC%IBITS=8,
+   GFP_XN2T%IBITS=12,
+   GFP_XTCC%IBITS=8,
+   GFP_XUGST%CLNAME='CLSU.RAF60M.XFU',
+   GFP_XUGST%IANO=0,
+   GFP_XUGST%IBITS=12,
+   GFP_XVGST%CLNAME='CLSV.RAF60M.XFU',
+   GFP_XVGST%IANO=0,
+   GFP_XVGST%IBITS=12,
+   GFP_XX2T%IBITS=12,
+   GFP_XXDIAGH%IBITS=12,
+   TFP_ABS%ZFK=32.,
+   TFP_CLF%IBITS=6,
+   TFP_EDR%CLNAME='EDR',
+   TFP_EDR%IBITS=16,
+   TFP_EDR%IGRIB=136,
+   TFP_GR%IBITS=12,
+   TFP_HL%IBITS=12,
+   TFP_HTB%IBITS=16,
+   TFP_HTB%LLGP=.TRUE.,
+   TFP_HU%IBITS=12,
+   TFP_MSAT9C2%IBITS=12,
+   TFP_MSAT9C6%IBITS=12,
+   TFP_MSLNH%IBITS=12,
+   TFP_PV%ZFK=64.,
+   TFP_RCLS%IBITS=12,
+   TFP_RR%IBITS=12,
+   TFP_SN%IBITS=12,
+   TFP_T%IBITS=12,
+   TFP_TCLS%IBITS=12,
+   TFP_TH%IBITS=12,
+   TFP_THPW%IBITS=12,
+   TFP_THV%IBITS=12,
+   TFP_TN%IBITS=12,
+   TFP_TWV%IBITS=12,
+   TFP_TX%IBITS=12,
+   TFP_U%IBITS=12,
+   TFP_V%IBITS=12,
+   TFP_VOR%ZFK=32.,
+   TFP_VV%ZFK=32.,
+ /
+ &NAMARG
+   CNMEXP='${CNMEXP}',
+   LECMWF=.FALSE.,
+   LELAM=.TRUE.,
+   LSLAG=.TRUE.,
+   NCONF=1,
+   NSUPERSEDE=1,
+ /
+ &NAMARPHY
+   LKFBCONV=.FALSE.,
+   LKFBD=.FALSE.,
+   LKFBS=.FALSE.,
+   LMFSHAL=.TRUE.,
+   LMICRO=.TRUE.,
+   LMPA=.TRUE.,
+   LMSE=.TRUE.,
+   LTURB=.TRUE.,
+ /
+ &NAMCA
+ /
+ &NAMCAPE
+ /
+ &NAMCFU
+   LCUMFU=.TRUE.,
+   LFPLS=.TRUE.,
+   LFPLSG=.TRUE.,
+   LFPLSH=.TRUE.,
+   LFR=.TRUE.,
+   LFRRC=.TRUE.,
+   LFSF=.TRUE.,
+   LNEBPAR=.TRUE.,
+   LNEBTT=.TRUE.,
+   LRAYD=.TRUE.,
+   LRAYS=.TRUE.,
+ /
+ &NAMCHEM
+ /
+ &NAMCHET
+ /
+ &NAMCHK
+ /
+ &NAMCLA
+ /
+ &NAMCLDP
+ /
+ &NAMCLI
+ /
+ &NAMCLOP15
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LNHEE=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   LSPRT=.TRUE.,
+   LTWOTL=.TRUE.,
+   NFPOS=1,
+   NFRSDI=18,
+   NSDITS(0)=0,
+   NFRHIS=72,
+   NHISTS(0)=0,
+   NFRPOS=72,
+   NPOSTS(0)=0,
+   NFRSFXHIS=72,
+   NSFXHISTS(0)=0,
+   NFRDHFD=72,
+   NDHFDTS(0)=0,
+ /
+ &NAMCT1
+   LRFILAF=.FALSE.,
+   N1HIS=1,
+   N1POS=1,
+   N1RES=0,
+   N1SDI=1,
+   N1SFXHIS=1,
+   N1GDI=0,
+ /
+ &NAMCUMF
+ /
+ &NAMCUMFS
+ /
+ &NAMCVER
+ /
+ &NAMCVMNH
+ /
+ &NAMDDH
+   LDDH_OMP=.TRUE.,
+   LHDDOP=.TRUE.,
+   LHDHKS=.TRUE.,
+   LHDEFD=.TRUE.,
+   LFLEXDIA=.TRUE.,
+   BDEDDH(1,1)=3,
+   BDEDDH(2,1)=1,
+   BDEDDH(3,1)=358.8
+   BDEDDH(4,1)=45.1
+   BDEDDH(5,1)=360.3
+   BDEDDH(6,1)=44.5
+ /
+ &NAMDFI
+ /
+ &NAMDIM
+   NPROMA=-50,
+ /
+ &NAMDIMO
+ /
+ &NAMDIM_TRAJ
+ /
+ &NAMDPHY
+ /
+ &NAMDPRECIPS
+ /
+ &NAMDYN
+   LADVF=.TRUE.,
+   LQMPD=.FALSE.,
+   LQMT=.FALSE.,
+   LQMVD=.FALSE.,
+   LRHDI_LASTITERPC=.TRUE.,
+   NITMP=4,
+   NSITER=1,
+   NSPDLAG=3,
+   NSVDLAG=3,
+   NTLAG=3,
+   NVLAG=3,
+   NWLAG=3,
+   RDAMPDIV=20.,
+   RDAMPPD=20.,
+   RDAMPQ=0.,
+   RDAMPT=0.,
+   RDAMPVD=20.,
+   RDAMPVOR=20.,
+   REPS1=0.,
+   REPS2=0.,
+   REPSM1=0.,
+   REPSM2=0.,
+   REPSP1=0.,
+   SDRED=1.,
+   SIPR=90000.,
+   SITR=350.,
+   SITRA=100.,
+   SLHDA0=0.25,
+   SLHDD00=0.000065,
+   VESL=0.05,
+   XIDT=0.,
+   ZSLHDP1=1.7,
+   ZSLHDP3=0.6,
+ /
+ &NAMDYNA
+   LCOMADH=.TRUE.,
+   LCOMADV=.FALSE.,
+   LCOMAD_GFL=.TRUE.,
+   LCOMAD_SP=.TRUE.,
+   LCOMAD_SPD=.TRUE.,
+   LCOMAD_SVD=.TRUE.,
+   LCOMAD_T=.TRUE.,
+   LCOMAD_W=.TRUE.,
+   LGWADV=.TRUE.,
+   LNESC=.TRUE.,
+   LPC_CHEAP=.TRUE.,
+   LPC_FULL=.TRUE.,
+   LRDBBC=.FALSE.,
+   LSETTLS=.FALSE.,
+   LSETTLST=.TRUE.,
+   LSLHD_GFL=.TRUE.,
+   LSLHD_OLD=.FALSE.,
+   LSLHD_SPD=.FALSE.,
+   LSLHD_SVD=.FALSE.,
+   LSLHD_T=.FALSE.,
+   LSLHD_W=.FALSE.,
+   ND4SYS=2,
+   NDLNPR=1,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+ /
+ &NAMDYNCORE
+ /
+ &NAMEMIS_CONF
+ /
+ &NAMENKF
+ /
+ &NAMFA
+   CMODEL='OUTPUTID',
+   LEXTERN=.TRUE.,
+   LSUPPDATE=.FALSE.,
+   NBITCS=-1,
+   NBITPG=-1,
+   NSTRON=-1,
+ /
+ &NAMFAINIT
+   JPXTRO=2000,
+ /
+ &NAMFPC
+   CFP2DF(1)='SURFPRESSION',
+   CFP2DF(2)='MSL_NHPRESSURE',
+   CFP2DF(3)='SURFTOT.WAT.VAPO',
+   CFP2DF(4)='SURFISOTPW0.MALT',
+   CFP2DF(5)='SURFCAPE.POS.F00',
+   CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(8)='SURFREFLECT.MAX',
+   CFP2DF(9)='SURFISOTPW1.MALT',
+   CFP2DF(10)='SURFISOTPW2.MALT',
+   CFP3DF(1)='GEOPOTENTIEL',
+   CFP3DF(2)='TEMPERATURE',
+   CFP3DF(3)='VENT_ZONAL',
+   CFP3DF(4)='VENT_MERIDIEN',
+   CFP3DF(5)='HUMI_RELATIVE',
+   CFP3DF(6)='THETA_PRIM_W',
+   CFP3DF(7)='PRESSURE',
+   CFP3DF(8)='ABS_VORTICITY',
+   CFP3DF(9)='VITESSE_VERTICALE',
+   CFP3DF(10)='TEMPE_POTENT',
+   CFP3DF(11)='POT_VORTICIT',
+   CFP3DF(12)='SIM_REFLECTI',
+   CFP3DF(13)='RAIN',
+   CFP3DF(14)='SNOW',
+   CFP3DF(15)='GRAUPEL',
+   CFP3DF(16)='ICE_CRYSTAL',
+   CFP3DF(17)='CLOUD_WATER',
+   CFP3DF(18)='VERT.VELOCIT',
+   CFP3DF(19)='DIVERGENCE',
+   CFP3DF(20)='THETA_VIRTUA',
+   CFP3DF(21)='TKE',
+   CFP3DF(22)='CLOUD_FRACTI',
+   CFP3DF(23)='ISOT_ALTIT',
+   CFP3DF(24)='EDR',
+   CFPCFU(1)='SURFTENS.TOTA.ZO',
+   CFPCFU(2)='SURFTENS.TOTA.ME',
+   CFPCFU(3)='SURFACCPLUIE',
+   CFPCFU(4)='SURFACCNEIGE',
+   CFPCFU(5)='SURFACCGRAUPEL',
+   CFPCFU(6)='SOMMFLU.RAY.SOLA',
+   CFPCFU(7)='SURFFLU.RAY.SOLA',
+   CFPCFU(8)='SOMMFLU.RAY.THER',
+   CFPCFU(9)='SURFFLU.RAY.THER',
+   CFPCFU(10)='SURFFLU.LAT.MTOT',
+   CFPCFU(11)='SURFFLU.MTOTA.NE',
+   CFPCFU(12)='SURFFLU.CHA.SENS',
+   CFPCFU(13)='SURFRAYT SOLA DE',
+   CFPCFU(14)='SURFRAYT THER DE',
+   CFPCFU(15)='SURFRAYT SOL CL',
+   CFPCFU(16)='SURFRAYT THER CL',
+   CFPCFU(17)='SURFRAYT DIR SUR',
+   CFPDOM(1)='FRANGP0025',
+   CFPFMT='LALON',
+   CFPPHY(1)='SURFTEMPERATURE',
+   CFPPHY(2)='INTSURFGEOPOTENT',
+   CFPPHY(3)='SURFRESERV.NEIGE',
+   CFPXFU(1)='CLSTEMPERATURE',
+   CFPXFU(2)='CLSHUMI.RELATIVE',
+   CFPXFU(3)='CLSVENT.ZONAL',
+   CFPXFU(4)='CLSVENT.MERIDIEN',
+   CFPXFU(5)='SURFNEBUL.TOTALE',
+   CFPXFU(6)='SURFNEBUL.HAUTE',
+   CFPXFU(7)='SURFNEBUL.MOYENN',
+   CFPXFU(8)='SURFNEBUL.BASSE',
+   CFPXFU(9)='CLSMAXI.TEMPERAT',
+   CFPXFU(10)='CLSMINI.TEMPERAT',
+   CFPXFU(11)='CLPMHAUT.MOD.XFU',
+   CFPXFU(12)='SURFDIAGHAIL',
+   LCRITSNOWTEMP=.FALSE.,
+   LFPCAPEX=.TRUE.,
+   LFPMOIS=.TRUE.,
+   LFPPACKING=.FALSE.,
+   LWIDER_DOM=.TRUE.,
+   L_READ_MODEL_DATE=.TRUE.,
+   NFITI=1,
+   NFITV=1,
+   NFPCAPE=5,
+   NFPCLI=1,
+   NFPGRIB=1,
+   NFPINPHY=4,
+   NITERPV=8,
+   RENTRA=0.0001,
+   RFP3H(1)=10.,
+   RFP3H(2)=20.,
+   RFP3H(3)=35.,
+   RFP3H(4)=50.,
+   RFP3H(5)=75.,
+   RFP3H(6)=100.,
+   RFP3H(7)=150.,
+   RFP3H(8)=200.,
+   RFP3H(9)=250.,
+   RFP3H(10)=375.,
+   RFP3H(11)=500.,
+   RFP3H(12)=625.,
+   RFP3H(13)=750.,
+   RFP3H(14)=875.,
+   RFP3H(15)=1000.,
+   RFP3H(16)=1125.,
+   RFP3H(17)=1250.,
+   RFP3H(18)=1375.,
+   RFP3H(19)=1500.,
+   RFP3H(20)=1750.,
+   RFP3H(21)=2000.,
+   RFP3H(22)=2250.,
+   RFP3H(23)=2500.,
+   RFP3H(24)=2750.,
+   RFP3H(25)=3000.,
+   RFP3I(1)=-273.15,
+   RFP3I(2)=-263.15,
+   RFP3I(3)=-261.15,
+   RFP3I(4)=-253.15,
+   RFP3P(1)=10000.,
+   RFP3P(2)=12500.,
+   RFP3P(3)=15000.,
+   RFP3P(4)=17500.,
+   RFP3P(5)=20000.,
+   RFP3P(6)=22500.,
+   RFP3P(7)=25000.,
+   RFP3P(8)=27500.,
+   RFP3P(9)=30000.,
+   RFP3P(10)=35000.,
+   RFP3P(11)=40000.,
+   RFP3P(12)=45000.,
+   RFP3P(13)=50000.,
+   RFP3P(14)=55000.,
+   RFP3P(15)=60000.,
+   RFP3P(16)=65000.,
+   RFP3P(17)=70000.,
+   RFP3P(18)=75000.,
+   RFP3P(19)=80000.,
+   RFP3P(20)=85000.,
+   RFP3P(21)=90000.,
+   RFP3P(22)=92500.,
+   RFP3P(23)=95000.,
+   RFP3P(24)=100000.,
+   RFP3PV(1)=0.0000015,
+   RFP3PV(2)=0.000002,
+   RFPCD2=5.,
+   RFPCSAB=50.,
+   RFPVCAP=7000.,
+ /
+ &NAMFPD
+   NLAT(1)=41,
+   NLON(1)=41,
+   RLONC(1)=-0.71,
+   RLATC(1)=44.8,
+   RDELX(1)=0.025,
+   RDELY(1)=0.025,
+ /
+ &NAMFPDY2
+ /
+ &NAMFPDYF
+ /
+ &NAMFPDYH
+ /
+ &NAMFPDYI
+ /
+ &NAMFPDYP
+ /
+ &NAMFPDYS
+ /
+ &NAMFPDYT
+ /
+ &NAMFPDYV
+ /
+ &NAMFPF
+   NFMAX(1)=60,
+   NFMAX(2)=80,
+ /
+ &NAMFPG
+   NFPDISTRIB=1,
+ /
+ &NAMFPIOS
+ /
+ &NAMFPMOVE
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+ /
+ &NAMGFL
+   NGFL_EZDIAG=4,
+   YEZDIAG_NL(1)%CNAME='EZDIAG01',
+   YEZDIAG_NL(1)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(2)%CNAME='EZDIAG02',
+   YEZDIAG_NL(2)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(3)%CNAME='EZDIAG03',
+   YEZDIAG_NL(3)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(4)%CNAME='INPRRTOT3D',
+   YEZDIAG_NL(4)%LREQOUT=.TRUE.,
+   YG_NL%LQM=.TRUE.,
+   YG_NL%LSLHD=.TRUE.,
+   YG_NL%NCOUPLING=-1,
+   YG_NL%NREQIN=1,
+   YG_NL%REFVALC=0.,
+   YH_NL%LGP=.TRUE.,
+   YH_NL%NREQIN=0,
+   YH_NL%NCOUPLING=-1,
+   YH_NL%REFVALC=0.,
+   YH_NL%LPT=.FALSE.,
+   YH_NL%LREQOUT=.TRUE.,
+   YH_NL%LQM=.TRUE.,
+   YH_NL%LSLHD=.FALSE.,
+   YIRAD_NL%LGP=.TRUE.,
+   YI_NL%LQM=.TRUE.,
+   YI_NL%LSLHD=.TRUE.,
+   YI_NL%NCOUPLING=-1,
+   YI_NL%NREQIN=1,
+   YI_NL%REFVALC=0.,
+   YLRAD_NL%LGP=.TRUE.,
+   YL_NL%LQM=.TRUE.,
+   YL_NL%LSLHD=.TRUE.,
+   YL_NL%NCOUPLING=-1,
+   YL_NL%NREQIN=1,
+   YL_NL%REFVALC=0.,
+   YQ_NL%LCOMAD=.TRUE.,
+   YQ_NL%LQM=.TRUE.,
+   YQ_NL%LSLHD=.FALSE.,
+   YQ_NL%NREQIN=1,
+   YR_NL%LQM=.TRUE.,
+   YR_NL%LSLHD=.TRUE.,
+   YR_NL%NCOUPLING=-1,
+   YR_NL%NREQIN=1,
+   YR_NL%REFVALC=0.,
+   YS_NL%LQM=.TRUE.,
+   YS_NL%LSLHD=.TRUE.,
+   YS_NL%NCOUPLING=-1,
+   YS_NL%NREQIN=1,
+   YS_NL%REFVALC=0.,
+   YTKE_NL%NCOUPLING=0,
+   YTKE_NL%NREQIN=1,
+ /
+ &NAMGRIB
+ /
+ &NAMGWD
+ /
+ &NAMGWDIAG
+ /
+ &NAMGWWMS
+ /
+ &NAMIAU
+   ALPHAIAU=0.5,
+   LIAU=.FALSE.,
+   TSTARTIAU=1800,
+   TSTOPIAU=5340,
+ /
+ &NAMICE
+ /
+ &NAMINI
+   LDFI=.FALSE.,
+ /
+ &NAMINTFLEX
+ /
+ &NAMIOMI
+ /
+ &NAMIOS
+ /
+ &NAMIO_SERV
+   NIO_SERV_BUF_MAXSIZE=20,
+   NIO_SERV_METHOD=2,
+   NMSG_LEVEL_CLIENT=0,
+   NMSG_LEVEL_SERVER=0,
+   NPROCESS_LEVEL=5,
+   NPROC_IO=0,
+ /
+ &NAMJBCODES
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMOBS
+ /
+ &NAMONEDVAR
+ /
+ &NAMOOPS
+ /
+ &NAMOPH
+   CFNHWF='ECHIS',
+   LINC=.TRUE.,
+   NTIMEFMT=1,
+ /
+ &NAMOPTCMEM
+ /
+ &NAMPAR0
+   LOPT_SCALAR=.TRUE.,
+   NPRINTLEV=1,
+   LMPOFF=.FALSE.,
+   MBX_SIZE=2048000000,
+   MP_TYPE=2,
+   NOUTPUT=1,
+   NPROC=$NPROC,
+$NPRTRW_NPRTRV
+ /
+ &NAMPAR1
+   LEQ_REGIONS=.FALSE.,
+   LSLONDEM=.TRUE.,
+   LSPLIT=.TRUE.,
+   LSYNC_SLCOM=.FALSE.,
+   LSYNC_TRANS=.FALSE.,
+   L_GATHERV_WRGP=.FALSE.,
+   NCOMBFLEN=1800000,
+   NSTRIN=$NSTRIN,
+   NSTROUT=$NSTROUT,
+ /
+ &NAMPARAR
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   CMICRO='ICE4',
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LCRIAUTI=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LFPREC3D=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LOLSMC=.TRUE.,
+   LOSEDIC=.TRUE.,
+   LOSIGMAS=.TRUE.,
+   LOSUBG_COND=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   NPRINTFR=10000,
+   NPTP=1,
+   RCRIAUTC=0.001,
+   RCRIAUTI=0.0002,
+   RT0CRIAUTI=-5.,
+   VSIGQSAT=0.02,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+ /
+ &NAMPHMSE
+   LPGDFWR=.FALSE.,
+ /
+ &NAMPHY
+   LAERODES=.TRUE.,
+   LAEROLAN=.TRUE.,
+   LAEROSEA=.TRUE.,
+   LAEROSOO=.TRUE.,
+   LEDR=.TRUE.,
+   LMPHYS=.TRUE.,
+   LO3ABC=.TRUE.,
+   LRAYFM=.TRUE.,
+ /
+ &NAMPHY0
+   ALMAV=300.,
+   BEDIFV=0.05,
+   ECMNP=3000.,
+   GCCSV=0.,
+   GCVADS=0.8,
+   GCVALFA=0.000045,
+   GCVBETA=0.2,
+   GCVMLT=0.00016,
+   GCVNU=0.000025,
+   GCVPSI=1.,
+   GCVPSIE=1.,
+   GDDEVA=0.25,
+   GDDSDE=0.5,
+   GWDCD=6.,
+   HUCOE=0.5,
+   HUTIL=1.8,
+   QSSC=400.,
+   QSSUSC=0.75,
+   QSSUSS=0.4,
+   QSSUSV=250.,
+   QSUSXC=0.0002,
+   QSUSXS=0.0003,
+   QXRAL=130.,
+   QXRDEL=0.49,
+   QXRHX=0.99,
+   QXRR=0.25,
+   RCVEVAP=0.25,
+   REFLKUO=5000.,
+   REVGSL=15.,
+   SCO=-20.,
+   TDDGP=0.8,
+   TENTR=0.0000025,
+   TENTRX=0.00008,
+   TUDGP=0.8,
+   UHDIFV=0.0008,
+   USURIC=0.175,
+   USURICE=0.5,
+   USURICL=1.,
+   USURID=0.1,
+   USURIDE=0.25,
+   VZ0CM=0.00015,
+   XMAXLM=5000.,
+   XMINLM=10.,
+ /
+ &NAMPHY1
+   ALBMIN=0.65,
+   ALCRIN=0.75,
+   GCGEL=0.00003,
+   GCGELS=0.00005,
+   GNEIMX=1.8,
+   GNEIMXS=1.8,
+   RCTVEG(3)=0.000012,
+   RCTVEG(4)=0.00001,
+ /
+ &NAMPHY2
+   FACRAF=3.8,
+   HTKERAF=20.,
+   LMULAF=.TRUE.,
+   LRAFTKE=.TRUE.,
+   LRAFTUR=.TRUE.,
+   XDAMP=1.,
+   XMULAF=-1.85,
+ /
+ &NAMPHY3
+ /
+ &NAMPHYDS
+ /
+ &NAMPONG
+ /
+ &NAMPPC
+ /
+ &NAMPPVI
+ /
+ &NAMPRE
+ /
+ &NAMRAD15
+ /
+ &NAMRADCMEM
+ /
+ &NAMRCF
+ /
+ &NAMRCOEF
+ /
+ &NAMRES
+ /
+ &NAMRGRI
+ /
+ &NAMRINC
+ /
+ &NAMRIP
+    TSTEP=50.,
+    CSTOP='h2',
+ /
+ &NAMRIP0
+ /
+ &NAMRLX
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPSDT
+ /
+ &NAMSTA
+ /
+ &NAMSTOPH
+ /
+ &NAMSWE
+ /
+ &NAMTESTVAR
+ /
+ &NAMTHLIM
+ /
+ &NAMTOPH
+   ETCVIM=5000.,
+   ETNEBU=5000.,
+   ETPLUI=5000.,
+   XDRMTK=6.0D-7,
+   XDRMTP=800.,
+   XDRMUK=3.0D-7,
+   XDRMUP=800.,
+ /
+ &NAMTRAJP
+ /
+ &NAMTRANS
+ /
+ &NAMTRANS0
+ /
+ &NAMTS
+ /
+ &NAMVAR
+ /
+ &NAMVARBC
+ /
+ &NAMVARBC_AIREP
+ /
+ &NAMVARBC_ALLSKY
+ /
+ &NAMVARBC_GBRAD
+ /
+ &NAMVARBC_RAD
+ /
+ &NAMVARBC_SFCOBS
+ /
+ &NAMVARBC_TCWV
+ /
+ &NAMVARBC_TO3
+ /
+ &NAMVAREPS
+ /
+ &NAMVDF
+ /
+ &NAMVDOZ
+ /
+ &NAMVOLCANO
+ /
+ &NAMVRTL
+ /
+ &NAMVV0
+ /
+ &NAMVV1
+ /
+ &NAMVWRK
+ /
+ &NAMWAVELETJB
+ /
+ &NAMXFU
+   LXCLP=.TRUE.,
+   LXCLS=.TRUE.,
+   LXFU=.TRUE.,
+   LXNEBPA=.TRUE.,
+   LXNEBTT=.TRUE.,
+   LXNUVCLS=.TRUE.,
+   LXPLS=.TRUE.,
+   LXPLSG=.TRUE.,
+   LXPLSH=.TRUE.,
+   LXQCLS=.TRUE.,
+   LXR=.TRUE.,
+   LXSOIL=.FALSE.,
+   LXTHW=.TRUE.,
+   LXTRT=.TRUE.,
+   LXTTCLS=.TRUE.,
+   LXXDIAGH=.TRUE.,
+   LXXGST=.TRUE.,
+   NFRRAZ=72,
+   NRAZTS(0)=0,
+ /
+ &NAM_CANAPE
+ /
+ &NAM_DISTRIBUTED_VECTORS
+ /
+ &NAPHLC
+ /
+ &NEMCT0
+ /
+ &NEMDIM
+ /
+ &NEMDYN
+ /
+ &NEMELBC0A
+   LESPCPL=.TRUE.,
+   NBICNHX=2,
+   NBICOP=2,
+   NBICOT=2,
+   NBICOU=2,
+   NBICPD=2,
+   NBICVD=2,
+   NECRIPL=1,
+ /
+ &NEMELBC0B
+   NEFRSPCPL=1,
+   NEK0=20,
+   NEK1=30,
+   NEN1=4,
+   NEN2=8,
+   SPNUDDIV=0.01,
+   SPNUDQ=0.,
+   SPNUDT=0.01,
+   SPNUDVOR=0.01,
+   TEFRCL=3600.,
+ /
+ &NEMFPEZO
+ /
+ &NEMGEO
+ /
+ &NEMJK
+ /
+ &NEMVAR
+ /
+ &NEMWAVELET
+ /
+ &NAETLDIAG
+ /
+ &NAMMETHOX
+ /
+ &NAMSPP
+ /
+ &NAMACV
+ /
+ &NAMFPOBJ
+ /
+ &NAMNORGWD
+ /
+ &NAMTRAJ
+ /
+ &NAMSATSIM
+ /
+ &NAMDVISI
+ /
+ &NAMNUDGLH
+ /
+ &NAMPERTPAR
+ /
+FIN
+/bin/cat fort.4
+
+/bin/cat <<FIN > EXSEG1.nam
+ &NAM_DIAG_ISBAN
+   LPGD=.TRUE.,
+   LSURF_MISC_BUDGET=.TRUE.,
+ /
+ &NAM_DIAG_SURFN
+   LCOEF=.TRUE.,
+   LSURF_BUDGET=.TRUE.,
+   N2M=2,
+ /
+ &NAM_ISBAN
+   CSCOND='NP89',
+ /
+ &NAM_REPROD_OPER
+   LREPROD_OPER=.TRUE.,
+ /
+ &NAM_SEAFLUXN
+   CSEA_FLUX='ECUME',
+   LPWG=.FALSE.,
+   LPRECIP=.FALSE.,
+   LPWEBB=.FALSE.,
+ /
+ &NAM_SSON
+   CROUGH='Z01D',
+   XFRACZ0=5.,
+   LDSV=.FALSE.,
+ /
+ &NAM_SURF_ATM
+   XRIMAX=0.2,
+   LNOSOF=.TRUE.,
+ /
+ &NAM_SURF_CSTS
+   XZ0SN=0.01,
+   XZ0HSN=0.001,
+   XEMISSN=0.99,
+ /
+ &NAM_WRITE_DIAG_SURFN
+   LPROVAR_TO_DIAG=.FALSE.,
+   LSELECT=.TRUE.,
+CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS',
+ /
+ &NAM_WRITE_SURF_ATM
+   LNOWRITE_TEXFILE=.TRUE.,
+ /
+FIN
+/bin/cat EXSEG1.nam
+
+#      *****************************************
+#      *  Acquisition du fichier de demarrage  *
+#      *****************************************
+
+echo
+for hh in 0 1 2 3 4 5 6 ; do
+  N=`expr $hh / 1 `
+  set -x
+  ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N}
+  set +x
+done
+set -x
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx
+ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin .
+ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim
+ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx
+ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat .
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat .
+ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz
+
+#      ***************
+#      *  Chargement *
+#      ***************
+
+echo
+set -x
+\ln -s $LOADIR/MASTERODB MASTER
+set +x
+if ldd MASTER | grep openmpi > /dev/null; then
+  #On est sur PC
+  MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}')
+  MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC"
+  GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1
+  export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions
+  export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions
+else
+  #On est sur HPC
+  #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD"
+  NNODES=$SLURM_JOB_NUM_NODES
+  MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES))
+  MPI_TASKS=$SLURM_NTASKS
+  MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --"
+  export OMP_STACKSIZE=4G
+  export KMP_STACKSIZE=4G
+  export KMP_MONITOR_STACKSIZE=4G
+  export DR_HOOK=1
+  export DR_HOOK_IGNORE_SIGNALS=-1
+  export DR_HOOK_SILENT=1
+  export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+  export MPL_MBX_SIZE=2048000000
+  export EC_PROFILE_HEAP=0
+  export EC_PROFILE_MEM=0
+  export EC_MPI_ATEXIT=0
+  export EC_MEMINFO=0
+  export OPENBLAS_NUM_THREADS=1
+  export MKL_CBWR="AUTO,STRICT"
+  export MKL_NUM_THREADS=1
+  export MKL_DEBUG_CPU_TYPE=5
+  export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions
+fi
+echo $MPIRUN
+set +x
+if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi
+
+#      ***************
+#      *  Execution  *
+#      ***************
+
+echo
+echo OMP_NUM_THREADS=$OMP_NUM_THREADS
+set -x
+ulimit -s unlimited
+$MPIRUN $PWD/MASTER >lola
+set +x
+echo
+##if [ -f lola ] ; then
+##  echo;echo Standard output :;echo;cat lola
+##fi
+##if [ -f stderr.* ] ; then
+##  for file in stderr.* ; do
+##    echo;echo $file :;cat $file
+##  done
+##fi
+##if [ -f stdout.* ] ; then
+##echo;echo stdout :;echo;cat stdout.*
+##fi
+##if [ -a NODE.001_01 ] ; then
+##  for file in NODE* ; do
+##    echo;echo Listing $file;echo
+##    cat $file
+##  done
+##fi
+##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then
+### Top 25 for each MPI task :
+##  for file in drhook.prof.* ; do
+##    echo;echo $file :;head -38 $file
+##  done
+##fi
+#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl
+
+#      *******************
+#      *  Sauvegardes    *
+#      *******************
+
+ls
+#if [ -f PFFPOS000+0000 ] ; then
+#  cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID
+#fi
+cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/
+/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001*
+/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00*
+/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz)
+
+#      ****************
+#      *  Epilogue    *
+#      ****************
+
+ls -ltr | grep -v "\->"
+echo Wait_queue :
+ls -ltr $TMPWAIT
+cd $TMPDIR
+\rm -rf rundir.$$
+\rm -rf wait_queue.$$
+date
+set +x
diff --git a/tools/conf_tests/small_3D_alt6/aro48t3.sh b/tools/conf_tests/small_3D_alt6/aro48t3.sh
new file mode 100755
index 0000000000000000000000000000000000000000..bca3e00b79dd3afa64a65ca49e6d86d6d97a1f95
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt6/aro48t3.sh
@@ -0,0 +1,1209 @@
+#!/bin/bash
+#SBATCH -n 4
+#SBATCH --mem=20000
+#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR
+#SBATCH -t 00:10:00
+#SBATCH -N 1
+#SBATCH -p normal256
+
+#The MYLIB variable must contain the gmkpack pack name
+#The TESTDIR variable must contain the test directory
+#Results will be stored in the local directory
+
+#Other environment varaibles that can be set:
+#OUTPUTDIR
+
+date
+
+OUTPUTDIR=${OUTPUTDIR:-$PWD}
+case=riette2
+#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script
+rekchemin=$TESTDIR
+
+NPROC=4
+NSTRIN=$NPROC
+NSTROUT=1
+NPRTRW_NPRTRV=""
+NPRTRW_NPRTRV="  NPRTRW=$NPROC,
+  NPRTRV=1,"
+export OMP_NUM_THREADS=1
+
+#MYLIB=48t1_main.01%jpdup
+
+export DR_HOOK=1
+#export DR_HOOK_IGNORE_SIGNALS=-1
+export DR_HOOK_NOT_MPI=1
+export DR_HOOK_SILENT=1
+export DR_HOOK_OPT=
+
+export EC_PROFILE_HEAP=0
+export EC_PROFILE_MEM=0
+export EC_MPI_ATEXIT=0
+export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+export EC_MEMINFO=0
+export TVSEARCHPATH=$SOURCE
+
+HOMEPACK=${HOMEPACK:=$HOME/pack}
+SOURCE=$HOMEPACK/$MYLIB/src/local
+LOADIR=$HOMEPACK/$MYLIB/bin
+
+TMPDIR=${TMPDIR:=$HOME/tmp}
+TMPLOC=$TMPDIR/rundir.$$
+TMPWAIT=$TMPDIR/wait_queue.$$
+mkdir $TMPWAIT
+mkdir $TMPLOC
+cd $TMPLOC
+
+export RTTOV_COEFDIR=$PWD
+
+#      **************************
+#      *  Saisie des NAMELISTS  *
+#      **************************
+
+CNMEXP='FPOS'
+
+echo
+/bin/cat <<FIN > fort.4
+ &NACIETEO
+ /
+ &NACOBS
+ /
+ &NACTAN
+ /
+ &NACTEX
+ /
+ &NACVEG
+ /
+ &NADOCK
+ /
+ &NAEAEM7
+ /
+ &NAEAER
+ /
+ &NAECOAPHY
+ /
+ &NAEPHLI
+ /
+ &NAEPHY
+ /
+ &NAERAD
+   LRRTM=.TRUE.,
+   LSRTM=.FALSE.,
+   NAER=1,
+   NICEOPT=3,
+   NLIQOPT=3,
+   NOVLP=6,
+   NOZOCL=2,
+   NRADFR=18,
+   NRADIP=3,
+   NRADLP=2,
+   NSW=6,
+   RLWINHF=1,
+   RRE2DE=0.64952,
+   RSWINHF=1,
+ /
+ &NAERCLI
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMAFN
+   GFP_CLSG%CLNAME='SURFACCGRAUPEL',
+   GFP_CLSP%CLNAME='SURFACCPLUIE',
+   GFP_CLSS%CLNAME='SURFACCNEIGE',
+   GFP_SFIS%IBITS=16,
+   GFP_ST%CLNAME='SURFTEMPERATURE',
+   GFP_ST%IANO=0,
+   GFP_ST%IBITS=12,
+   GFP_X10U%CLNAME='CLSVENT.ZONAL',
+   GFP_X10U%IANO=0,
+   GFP_X10U%IBITS=12,
+   GFP_X10V%CLNAME='CLSVENT.MERIDIEN',
+   GFP_X10V%IANO=0,
+   GFP_X10V%IBITS=12,
+   GFP_X2RH%CLNAME='CLSHUMI.RELATIVE',
+   GFP_X2RH%IANO=0,
+   GFP_X2RH%IBITS=12,
+   GFP_X2T%CLNAME='CLSTEMPERATURE',
+   GFP_X2T%IANO=1,
+   GFP_XCCC%IBITS=8,
+   GFP_XHCC%IBITS=8,
+   GFP_XLCC%IBITS=8,
+   GFP_XLSG%CLNAME='SURFINSGRAUPEL',
+   GFP_XLSP%CLNAME='SURFINSPLUIE',
+   GFP_XLSS%CLNAME='SURFINSNEIGE',
+   GFP_XMCC%IBITS=8,
+   GFP_XN2T%IBITS=12,
+   GFP_XTCC%IBITS=8,
+   GFP_XUGST%CLNAME='CLSU.RAF60M.XFU',
+   GFP_XUGST%IANO=0,
+   GFP_XUGST%IBITS=12,
+   GFP_XVGST%CLNAME='CLSV.RAF60M.XFU',
+   GFP_XVGST%IANO=0,
+   GFP_XVGST%IBITS=12,
+   GFP_XX2T%IBITS=12,
+   GFP_XXDIAGH%IBITS=12,
+   TFP_ABS%ZFK=32.,
+   TFP_CLF%IBITS=6,
+   TFP_EDR%CLNAME='EDR',
+   TFP_EDR%IBITS=16,
+   TFP_EDR%IGRIB=136,
+   TFP_GR%IBITS=12,
+   TFP_HL%IBITS=12,
+   TFP_HTB%IBITS=16,
+   TFP_HTB%LLGP=.TRUE.,
+   TFP_HU%IBITS=12,
+   TFP_MSAT9C2%IBITS=12,
+   TFP_MSAT9C6%IBITS=12,
+   TFP_MSLNH%IBITS=12,
+   TFP_PV%ZFK=64.,
+   TFP_RCLS%IBITS=12,
+   TFP_RR%IBITS=12,
+   TFP_SN%IBITS=12,
+   TFP_T%IBITS=12,
+   TFP_TCLS%IBITS=12,
+   TFP_TH%IBITS=12,
+   TFP_THPW%IBITS=12,
+   TFP_THV%IBITS=12,
+   TFP_TN%IBITS=12,
+   TFP_TWV%IBITS=12,
+   TFP_TX%IBITS=12,
+   TFP_U%IBITS=12,
+   TFP_V%IBITS=12,
+   TFP_VOR%ZFK=32.,
+   TFP_VV%ZFK=32.,
+ /
+ &NAMARG
+   CNMEXP='${CNMEXP}',
+   LECMWF=.FALSE.,
+   LELAM=.TRUE.,
+   LSLAG=.TRUE.,
+   NCONF=1,
+   NSUPERSEDE=1,
+ /
+ &NAMARPHY
+   LKFBCONV=.FALSE.,
+   LKFBD=.FALSE.,
+   LKFBS=.FALSE.,
+   LMFSHAL=.TRUE.,
+   LMICRO=.TRUE.,
+   LMPA=.TRUE.,
+   LMSE=.TRUE.,
+   LTURB=.TRUE.,
+ /
+ &NAMCA
+ /
+ &NAMCAPE
+ /
+ &NAMCFU
+   LCUMFU=.TRUE.,
+   LFPLS=.TRUE.,
+   LFPLSG=.TRUE.,
+   LFR=.TRUE.,
+   LFRRC=.TRUE.,
+   LFSF=.TRUE.,
+   LNEBPAR=.TRUE.,
+   LNEBTT=.TRUE.,
+   LRAYD=.TRUE.,
+   LRAYS=.TRUE.,
+ /
+ &NAMCHEM
+ /
+ &NAMCHET
+ /
+ &NAMCHK
+ /
+ &NAMCLA
+ /
+ &NAMCLDP
+ /
+ &NAMCLI
+ /
+ &NAMCLOP15
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LNHEE=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   LSPRT=.TRUE.,
+   LTWOTL=.TRUE.,
+   NFPOS=1,
+   NFRSDI=18,
+   NSDITS(0)=0,
+   NFRHIS=72,
+   NHISTS(0)=0,
+   NFRPOS=72,
+   NPOSTS(0)=0,
+   NFRSFXHIS=72,
+   NSFXHISTS(0)=0,
+   NFRDHFD=72,
+   NDHFDTS(0)=0,
+ /
+ &NAMCT1
+   LRFILAF=.FALSE.,
+   N1HIS=1,
+   N1POS=1,
+   N1RES=0,
+   N1SDI=1,
+   N1SFXHIS=1,
+   N1GDI=0,
+ /
+ &NAMCUMF
+ /
+ &NAMCUMFS
+ /
+ &NAMCVER
+ /
+ &NAMCVMNH
+ /
+ &NAMDDH
+   LDDH_OMP=.TRUE.,
+   LHDDOP=.TRUE.,
+   LHDHKS=.TRUE.,
+   LHDEFD=.TRUE.,
+   LFLEXDIA=.TRUE.,
+   BDEDDH(1,1)=3,
+   BDEDDH(2,1)=1,
+   BDEDDH(3,1)=358.8
+   BDEDDH(4,1)=45.1
+   BDEDDH(5,1)=360.3
+   BDEDDH(6,1)=44.5
+ /
+ &NAMDFI
+ /
+ &NAMDIM
+   NPROMA=-50,
+ /
+ &NAMDIMO
+ /
+ &NAMDIM_TRAJ
+ /
+ &NAMDPHY
+ /
+ &NAMDPRECIPS
+ /
+ &NAMDYN
+   LADVF=.TRUE.,
+   LQMPD=.FALSE.,
+   LQMT=.FALSE.,
+   LQMVD=.FALSE.,
+   LRHDI_LASTITERPC=.TRUE.,
+   NITMP=4,
+   NSITER=1,
+   NSPDLAG=3,
+   NSVDLAG=3,
+   NTLAG=3,
+   NVLAG=3,
+   NWLAG=3,
+   RDAMPDIV=20.,
+   RDAMPPD=20.,
+   RDAMPQ=0.,
+   RDAMPT=0.,
+   RDAMPVD=20.,
+   RDAMPVOR=20.,
+   REPS1=0.,
+   REPS2=0.,
+   REPSM1=0.,
+   REPSM2=0.,
+   REPSP1=0.,
+   SDRED=1.,
+   SIPR=90000.,
+   SITR=350.,
+   SITRA=100.,
+   SLHDA0=0.25,
+   SLHDD00=0.000065,
+   VESL=0.05,
+   XIDT=0.,
+   ZSLHDP1=1.7,
+   ZSLHDP3=0.6,
+ /
+ &NAMDYNA
+   LCOMADH=.TRUE.,
+   LCOMADV=.FALSE.,
+   LCOMAD_GFL=.TRUE.,
+   LCOMAD_SP=.TRUE.,
+   LCOMAD_SPD=.TRUE.,
+   LCOMAD_SVD=.TRUE.,
+   LCOMAD_T=.TRUE.,
+   LCOMAD_W=.TRUE.,
+   LGWADV=.TRUE.,
+   LNESC=.TRUE.,
+   LPC_CHEAP=.TRUE.,
+   LPC_FULL=.TRUE.,
+   LRDBBC=.FALSE.,
+   LSETTLS=.FALSE.,
+   LSETTLST=.TRUE.,
+   LSLHD_GFL=.TRUE.,
+   LSLHD_OLD=.FALSE.,
+   LSLHD_SPD=.FALSE.,
+   LSLHD_SVD=.FALSE.,
+   LSLHD_T=.FALSE.,
+   LSLHD_W=.FALSE.,
+   ND4SYS=2,
+   NDLNPR=1,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+ /
+ &NAMDYNCORE
+ /
+ &NAMEMIS_CONF
+ /
+ &NAMENKF
+ /
+ &NAMFA
+   CMODEL='OUTPUTID',
+   LEXTERN=.TRUE.,
+   LSUPPDATE=.FALSE.,
+   NBITCS=-1,
+   NBITPG=-1,
+   NSTRON=-1,
+ /
+ &NAMFAINIT
+   JPXTRO=2000,
+ /
+ &NAMFPC
+   CFP2DF(1)='SURFPRESSION',
+   CFP2DF(2)='MSL_NHPRESSURE',
+   CFP2DF(3)='SURFTOT.WAT.VAPO',
+   CFP2DF(4)='SURFISOTPW0.MALT',
+   CFP2DF(5)='SURFCAPE.POS.F00',
+   CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(8)='SURFREFLECT.MAX',
+   CFP2DF(9)='SURFISOTPW1.MALT',
+   CFP2DF(10)='SURFISOTPW2.MALT',
+   CFP3DF(1)='GEOPOTENTIEL',
+   CFP3DF(2)='TEMPERATURE',
+   CFP3DF(3)='VENT_ZONAL',
+   CFP3DF(4)='VENT_MERIDIEN',
+   CFP3DF(5)='HUMI_RELATIVE',
+   CFP3DF(6)='THETA_PRIM_W',
+   CFP3DF(7)='PRESSURE',
+   CFP3DF(8)='ABS_VORTICITY',
+   CFP3DF(9)='VITESSE_VERTICALE',
+   CFP3DF(10)='TEMPE_POTENT',
+   CFP3DF(11)='POT_VORTICIT',
+   CFP3DF(12)='SIM_REFLECTI',
+   CFP3DF(13)='RAIN',
+   CFP3DF(14)='SNOW',
+   CFP3DF(15)='GRAUPEL',
+   CFP3DF(16)='ICE_CRYSTAL',
+   CFP3DF(17)='CLOUD_WATER',
+   CFP3DF(18)='VERT.VELOCIT',
+   CFP3DF(19)='DIVERGENCE',
+   CFP3DF(20)='THETA_VIRTUA',
+   CFP3DF(21)='TKE',
+   CFP3DF(22)='CLOUD_FRACTI',
+   CFP3DF(23)='ISOT_ALTIT',
+   CFP3DF(24)='EDR',
+   CFPCFU(1)='SURFTENS.TOTA.ZO',
+   CFPCFU(2)='SURFTENS.TOTA.ME',
+   CFPCFU(3)='SURFACCPLUIE',
+   CFPCFU(4)='SURFACCNEIGE',
+   CFPCFU(5)='SURFACCGRAUPEL',
+   CFPCFU(6)='SOMMFLU.RAY.SOLA',
+   CFPCFU(7)='SURFFLU.RAY.SOLA',
+   CFPCFU(8)='SOMMFLU.RAY.THER',
+   CFPCFU(9)='SURFFLU.RAY.THER',
+   CFPCFU(10)='SURFFLU.LAT.MTOT',
+   CFPCFU(11)='SURFFLU.MTOTA.NE',
+   CFPCFU(12)='SURFFLU.CHA.SENS',
+   CFPCFU(13)='SURFRAYT SOLA DE',
+   CFPCFU(14)='SURFRAYT THER DE',
+   CFPCFU(15)='SURFRAYT SOL CL',
+   CFPCFU(16)='SURFRAYT THER CL',
+   CFPCFU(17)='SURFRAYT DIR SUR',
+   CFPDOM(1)='FRANGP0025',
+   CFPFMT='LALON',
+   CFPPHY(1)='SURFTEMPERATURE',
+   CFPPHY(2)='INTSURFGEOPOTENT',
+   CFPPHY(3)='SURFRESERV.NEIGE',
+   CFPXFU(1)='CLSTEMPERATURE',
+   CFPXFU(2)='CLSHUMI.RELATIVE',
+   CFPXFU(3)='CLSVENT.ZONAL',
+   CFPXFU(4)='CLSVENT.MERIDIEN',
+   CFPXFU(5)='SURFNEBUL.TOTALE',
+   CFPXFU(6)='SURFNEBUL.HAUTE',
+   CFPXFU(7)='SURFNEBUL.MOYENN',
+   CFPXFU(8)='SURFNEBUL.BASSE',
+   CFPXFU(9)='CLSMAXI.TEMPERAT',
+   CFPXFU(10)='CLSMINI.TEMPERAT',
+   CFPXFU(11)='CLPMHAUT.MOD.XFU',
+   CFPXFU(12)='SURFDIAGHAIL',
+   LCRITSNOWTEMP=.FALSE.,
+   LFPCAPEX=.TRUE.,
+   LFPMOIS=.TRUE.,
+   LFPPACKING=.FALSE.,
+   LWIDER_DOM=.TRUE.,
+   L_READ_MODEL_DATE=.TRUE.,
+   NFITI=1,
+   NFITV=1,
+   NFPCAPE=5,
+   NFPCLI=1,
+   NFPGRIB=1,
+   NFPINPHY=4,
+   NITERPV=8,
+   RENTRA=0.0001,
+   RFP3H(1)=10.,
+   RFP3H(2)=20.,
+   RFP3H(3)=35.,
+   RFP3H(4)=50.,
+   RFP3H(5)=75.,
+   RFP3H(6)=100.,
+   RFP3H(7)=150.,
+   RFP3H(8)=200.,
+   RFP3H(9)=250.,
+   RFP3H(10)=375.,
+   RFP3H(11)=500.,
+   RFP3H(12)=625.,
+   RFP3H(13)=750.,
+   RFP3H(14)=875.,
+   RFP3H(15)=1000.,
+   RFP3H(16)=1125.,
+   RFP3H(17)=1250.,
+   RFP3H(18)=1375.,
+   RFP3H(19)=1500.,
+   RFP3H(20)=1750.,
+   RFP3H(21)=2000.,
+   RFP3H(22)=2250.,
+   RFP3H(23)=2500.,
+   RFP3H(24)=2750.,
+   RFP3H(25)=3000.,
+   RFP3I(1)=-273.15,
+   RFP3I(2)=-263.15,
+   RFP3I(3)=-261.15,
+   RFP3I(4)=-253.15,
+   RFP3P(1)=10000.,
+   RFP3P(2)=12500.,
+   RFP3P(3)=15000.,
+   RFP3P(4)=17500.,
+   RFP3P(5)=20000.,
+   RFP3P(6)=22500.,
+   RFP3P(7)=25000.,
+   RFP3P(8)=27500.,
+   RFP3P(9)=30000.,
+   RFP3P(10)=35000.,
+   RFP3P(11)=40000.,
+   RFP3P(12)=45000.,
+   RFP3P(13)=50000.,
+   RFP3P(14)=55000.,
+   RFP3P(15)=60000.,
+   RFP3P(16)=65000.,
+   RFP3P(17)=70000.,
+   RFP3P(18)=75000.,
+   RFP3P(19)=80000.,
+   RFP3P(20)=85000.,
+   RFP3P(21)=90000.,
+   RFP3P(22)=92500.,
+   RFP3P(23)=95000.,
+   RFP3P(24)=100000.,
+   RFP3PV(1)=0.0000015,
+   RFP3PV(2)=0.000002,
+   RFPCD2=5.,
+   RFPCSAB=50.,
+   RFPVCAP=7000.,
+ /
+ &NAMFPD
+   NLAT(1)=41,
+   NLON(1)=41,
+   RLONC(1)=-0.71,
+   RLATC(1)=44.8,
+   RDELX(1)=0.025,
+   RDELY(1)=0.025,
+ /
+ &NAMFPDY2
+ /
+ &NAMFPDYF
+ /
+ &NAMFPDYH
+ /
+ &NAMFPDYI
+ /
+ &NAMFPDYP
+ /
+ &NAMFPDYS
+ /
+ &NAMFPDYT
+ /
+ &NAMFPDYV
+ /
+ &NAMFPF
+   NFMAX(1)=60,
+   NFMAX(2)=80,
+ /
+ &NAMFPG
+   NFPDISTRIB=1,
+ /
+ &NAMFPIOS
+ /
+ &NAMFPMOVE
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+ /
+ &NAMGFL
+   NGFL_EZDIAG=4,
+   YEZDIAG_NL(1)%CNAME='EZDIAG01',
+   YEZDIAG_NL(1)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(2)%CNAME='EZDIAG02',
+   YEZDIAG_NL(2)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(3)%CNAME='EZDIAG03',
+   YEZDIAG_NL(3)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(4)%CNAME='INPRRTOT3D',
+   YEZDIAG_NL(4)%LREQOUT=.TRUE.,
+   YG_NL%LQM=.TRUE.,
+   YG_NL%LSLHD=.TRUE.,
+   YG_NL%NCOUPLING=-1,
+   YG_NL%NREQIN=1,
+   YG_NL%REFVALC=0.,
+   YIRAD_NL%LGP=.TRUE.,
+   YI_NL%LQM=.TRUE.,
+   YI_NL%LSLHD=.TRUE.,
+   YI_NL%NCOUPLING=-1,
+   YI_NL%NREQIN=1,
+   YI_NL%REFVALC=0.,
+   YLRAD_NL%LGP=.TRUE.,
+   YL_NL%LQM=.TRUE.,
+   YL_NL%LSLHD=.TRUE.,
+   YL_NL%NCOUPLING=-1,
+   YL_NL%NREQIN=1,
+   YL_NL%REFVALC=0.,
+   YQ_NL%LCOMAD=.TRUE.,
+   YQ_NL%LQM=.TRUE.,
+   YQ_NL%LSLHD=.FALSE.,
+   YQ_NL%NREQIN=1,
+   YR_NL%LQM=.TRUE.,
+   YR_NL%LSLHD=.TRUE.,
+   YR_NL%NCOUPLING=-1,
+   YR_NL%NREQIN=1,
+   YR_NL%REFVALC=0.,
+   YS_NL%LQM=.TRUE.,
+   YS_NL%LSLHD=.TRUE.,
+   YS_NL%NCOUPLING=-1,
+   YS_NL%NREQIN=1,
+   YS_NL%REFVALC=0.,
+   YTKE_NL%NCOUPLING=0,
+   YTKE_NL%NREQIN=1,
+ /
+ &NAMGRIB
+ /
+ &NAMGWD
+ /
+ &NAMGWDIAG
+ /
+ &NAMGWWMS
+ /
+ &NAMIAU
+   ALPHAIAU=0.5,
+   LIAU=.FALSE.,
+   TSTARTIAU=1800,
+   TSTOPIAU=5340,
+ /
+ &NAMICE
+ /
+ &NAMINI
+   LDFI=.FALSE.,
+ /
+ &NAMINTFLEX
+ /
+ &NAMIOMI
+ /
+ &NAMIOS
+ /
+ &NAMIO_SERV
+   NIO_SERV_BUF_MAXSIZE=20,
+   NIO_SERV_METHOD=2,
+   NMSG_LEVEL_CLIENT=0,
+   NMSG_LEVEL_SERVER=0,
+   NPROCESS_LEVEL=5,
+   NPROC_IO=0,
+ /
+ &NAMJBCODES
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMOBS
+ /
+ &NAMONEDVAR
+ /
+ &NAMOOPS
+ /
+ &NAMOPH
+   CFNHWF='ECHIS',
+   LINC=.TRUE.,
+   NTIMEFMT=1,
+ /
+ &NAMOPTCMEM
+ /
+ &NAMPAR0
+   LOPT_SCALAR=.TRUE.,
+   NPRINTLEV=1,
+   LMPOFF=.FALSE.,
+   MBX_SIZE=2048000000,
+   MP_TYPE=2,
+   NOUTPUT=1,
+   NPROC=$NPROC,
+$NPRTRW_NPRTRV
+ /
+ &NAMPAR1
+   LEQ_REGIONS=.FALSE.,
+   LSLONDEM=.TRUE.,
+   LSPLIT=.TRUE.,
+   LSYNC_SLCOM=.FALSE.,
+   LSYNC_TRANS=.FALSE.,
+   L_GATHERV_WRGP=.FALSE.,
+   NCOMBFLEN=1800000,
+   NSTRIN=$NSTRIN,
+   NSTROUT=$NSTROUT,
+ /
+ &NAMPARAR
+   CMF_UPDRAFT='RAHA'
+   CMF_CLOUD='BIGA'
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   CMICRO='ICE3',
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LCRIAUTI=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LFPREC3D=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LOLSMC=.TRUE.,
+   LOSEDIC=.TRUE.,
+   LOSIGMAS=.TRUE.,
+   LOSUBG_COND=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   NPRINTFR=10000,
+   NPTP=1,
+   RCRIAUTC=0.001,
+   RCRIAUTI=0.0002,
+   RT0CRIAUTI=-5.,
+   VSIGQSAT=0.02,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+ /
+ &NAMPHMSE
+   LPGDFWR=.FALSE.,
+ /
+ &NAMPHY
+   LAERODES=.TRUE.,
+   LAEROLAN=.TRUE.,
+   LAEROSEA=.TRUE.,
+   LAEROSOO=.TRUE.,
+   LEDR=.TRUE.,
+   LMPHYS=.TRUE.,
+   LO3ABC=.TRUE.,
+   LRAYFM=.TRUE.,
+ /
+ &NAMPHY0
+   ALMAV=300.,
+   BEDIFV=0.05,
+   ECMNP=3000.,
+   GCCSV=0.,
+   GCVADS=0.8,
+   GCVALFA=0.000045,
+   GCVBETA=0.2,
+   GCVMLT=0.00016,
+   GCVNU=0.000025,
+   GCVPSI=1.,
+   GCVPSIE=1.,
+   GDDEVA=0.25,
+   GDDSDE=0.5,
+   GWDCD=6.,
+   HUCOE=0.5,
+   HUTIL=1.8,
+   QSSC=400.,
+   QSSUSC=0.75,
+   QSSUSS=0.4,
+   QSSUSV=250.,
+   QSUSXC=0.0002,
+   QSUSXS=0.0003,
+   QXRAL=130.,
+   QXRDEL=0.49,
+   QXRHX=0.99,
+   QXRR=0.25,
+   RCVEVAP=0.25,
+   REFLKUO=5000.,
+   REVGSL=15.,
+   SCO=-20.,
+   TDDGP=0.8,
+   TENTR=0.0000025,
+   TENTRX=0.00008,
+   TUDGP=0.8,
+   UHDIFV=0.0008,
+   USURIC=0.175,
+   USURICE=0.5,
+   USURICL=1.,
+   USURID=0.1,
+   USURIDE=0.25,
+   VZ0CM=0.00015,
+   XMAXLM=5000.,
+   XMINLM=10.,
+ /
+ &NAMPHY1
+   ALBMIN=0.65,
+   ALCRIN=0.75,
+   GCGEL=0.00003,
+   GCGELS=0.00005,
+   GNEIMX=1.8,
+   GNEIMXS=1.8,
+   RCTVEG(3)=0.000012,
+   RCTVEG(4)=0.00001,
+ /
+ &NAMPHY2
+   FACRAF=3.8,
+   HTKERAF=20.,
+   LMULAF=.TRUE.,
+   LRAFTKE=.TRUE.,
+   LRAFTUR=.TRUE.,
+   XDAMP=1.,
+   XMULAF=-1.85,
+ /
+ &NAMPHY3
+ /
+ &NAMPHYDS
+ /
+ &NAMPONG
+ /
+ &NAMPPC
+ /
+ &NAMPPVI
+ /
+ &NAMPRE
+ /
+ &NAMRAD15
+ /
+ &NAMRADCMEM
+ /
+ &NAMRCF
+ /
+ &NAMRCOEF
+ /
+ &NAMRES
+ /
+ &NAMRGRI
+ /
+ &NAMRINC
+ /
+ &NAMRIP
+    TSTEP=50.,
+    CSTOP='h2',
+ /
+ &NAMRIP0
+ /
+ &NAMRLX
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPSDT
+ /
+ &NAMSTA
+ /
+ &NAMSTOPH
+ /
+ &NAMSWE
+ /
+ &NAMTESTVAR
+ /
+ &NAMTHLIM
+ /
+ &NAMTOPH
+   ETCVIM=5000.,
+   ETNEBU=5000.,
+   ETPLUI=5000.,
+   XDRMTK=6.0D-7,
+   XDRMTP=800.,
+   XDRMUK=3.0D-7,
+   XDRMUP=800.,
+ /
+ &NAMTRAJP
+ /
+ &NAMTRANS
+ /
+ &NAMTRANS0
+ /
+ &NAMTS
+ /
+ &NAMVAR
+ /
+ &NAMVARBC
+ /
+ &NAMVARBC_AIREP
+ /
+ &NAMVARBC_ALLSKY
+ /
+ &NAMVARBC_GBRAD
+ /
+ &NAMVARBC_RAD
+ /
+ &NAMVARBC_SFCOBS
+ /
+ &NAMVARBC_TCWV
+ /
+ &NAMVARBC_TO3
+ /
+ &NAMVAREPS
+ /
+ &NAMVDF
+ /
+ &NAMVDOZ
+ /
+ &NAMVOLCANO
+ /
+ &NAMVRTL
+ /
+ &NAMVV0
+ /
+ &NAMVV1
+ /
+ &NAMVWRK
+ /
+ &NAMWAVELETJB
+ /
+ &NAMXFU
+   LXCLP=.TRUE.,
+   LXCLS=.TRUE.,
+   LXFU=.TRUE.,
+   LXNEBPA=.TRUE.,
+   LXNEBTT=.TRUE.,
+   LXNUVCLS=.TRUE.,
+   LXPLS=.TRUE.,
+   LXPLSG=.TRUE.,
+   LXQCLS=.TRUE.,
+   LXR=.TRUE.,
+   LXSOIL=.FALSE.,
+   LXTHW=.TRUE.,
+   LXTRT=.TRUE.,
+   LXTTCLS=.TRUE.,
+   LXXDIAGH=.TRUE.,
+   LXXGST=.TRUE.,
+   NFRRAZ=72,
+   NRAZTS(0)=0,
+ /
+ &NAM_CANAPE
+ /
+ &NAM_DISTRIBUTED_VECTORS
+ /
+ &NAPHLC
+ /
+ &NEMCT0
+ /
+ &NEMDIM
+ /
+ &NEMDYN
+ /
+ &NEMELBC0A
+   LESPCPL=.TRUE.,
+   NBICNHX=2,
+   NBICOP=2,
+   NBICOT=2,
+   NBICOU=2,
+   NBICPD=2,
+   NBICVD=2,
+   NECRIPL=1,
+ /
+ &NEMELBC0B
+   NEFRSPCPL=1,
+   NEK0=20,
+   NEK1=30,
+   NEN1=4,
+   NEN2=8,
+   SPNUDDIV=0.01,
+   SPNUDQ=0.,
+   SPNUDT=0.01,
+   SPNUDVOR=0.01,
+   TEFRCL=3600.,
+ /
+ &NEMFPEZO
+ /
+ &NEMGEO
+ /
+ &NEMJK
+ /
+ &NEMVAR
+ /
+ &NEMWAVELET
+ /
+ &NAETLDIAG
+ /
+ &NAMMETHOX
+ /
+ &NAMSPP
+ /
+ &NAMACV
+ /
+ &NAMFPOBJ
+ /
+ &NAMNORGWD
+ /
+ &NAMTRAJ
+ /
+ &NAMSATSIM
+ /
+ &NAMDVISI
+ /
+ &NAMNUDGLH
+ /
+ &NAMPERTPAR
+ /
+FIN
+/bin/cat fort.4
+
+/bin/cat <<FIN > EXSEG1.nam
+ &NAM_DIAG_ISBAN
+   LPGD=.TRUE.,
+   LSURF_MISC_BUDGET=.TRUE.,
+ /
+ &NAM_DIAG_SURFN
+   LCOEF=.TRUE.,
+   LSURF_BUDGET=.TRUE.,
+   N2M=2,
+ /
+ &NAM_ISBAN
+   CSCOND='NP89',
+ /
+ &NAM_REPROD_OPER
+   LREPROD_OPER=.TRUE.,
+ /
+ &NAM_SEAFLUXN
+   CSEA_FLUX='ECUME',
+   LPWG=.FALSE.,
+   LPRECIP=.FALSE.,
+   LPWEBB=.FALSE.,
+ /
+ &NAM_SSON
+   CROUGH='Z01D',
+   XFRACZ0=5.,
+   LDSV=.FALSE.,
+ /
+ &NAM_SURF_ATM
+   XRIMAX=0.2,
+   LNOSOF=.TRUE.,
+ /
+ &NAM_SURF_CSTS
+   XZ0SN=0.01,
+   XZ0HSN=0.001,
+   XEMISSN=0.99,
+ /
+ &NAM_WRITE_DIAG_SURFN
+   LPROVAR_TO_DIAG=.FALSE.,
+   LSELECT=.TRUE.,
+CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS',
+ /
+ &NAM_WRITE_SURF_ATM
+   LNOWRITE_TEXFILE=.TRUE.,
+ /
+FIN
+/bin/cat EXSEG1.nam
+
+#      *****************************************
+#      *  Acquisition du fichier de demarrage  *
+#      *****************************************
+
+echo
+for hh in 0 1 2 3 4 5 6 ; do
+  N=`expr $hh / 1 `
+  set -x
+  ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N}
+  set +x
+done
+set -x
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx
+ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin .
+ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim
+ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx
+ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat .
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat .
+ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz
+
+#      ***************
+#      *  Chargement *
+#      ***************
+
+echo
+set -x
+\ln -s $LOADIR/MASTERODB MASTER
+set +x
+if ldd MASTER | grep openmpi > /dev/null; then
+  #On est sur PC
+  MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}')
+  MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC"
+  GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1
+  export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions
+  export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions
+else
+  #On est sur HPC
+  #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD"
+  NNODES=$SLURM_JOB_NUM_NODES
+  MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES))
+  MPI_TASKS=$SLURM_NTASKS
+  MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --"
+  export OMP_STACKSIZE=4G
+  export KMP_STACKSIZE=4G
+  export KMP_MONITOR_STACKSIZE=4G
+  export DR_HOOK=1
+  export DR_HOOK_IGNORE_SIGNALS=-1
+  export DR_HOOK_SILENT=1
+  export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+  export MPL_MBX_SIZE=2048000000
+  export EC_PROFILE_HEAP=0
+  export EC_PROFILE_MEM=0
+  export EC_MPI_ATEXIT=0
+  export EC_MEMINFO=0
+  export OPENBLAS_NUM_THREADS=1
+  export MKL_CBWR="AUTO,STRICT"
+  export MKL_NUM_THREADS=1
+  export MKL_DEBUG_CPU_TYPE=5
+  export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions
+fi
+echo $MPIRUN
+set +x
+if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi
+
+#      ***************
+#      *  Execution  *
+#      ***************
+
+echo
+echo OMP_NUM_THREADS=$OMP_NUM_THREADS
+set -x
+ulimit -s unlimited
+$MPIRUN $PWD/MASTER >lola
+set +x
+echo
+##if [ -f lola ] ; then
+##  echo;echo Standard output :;echo;cat lola
+##fi
+##if [ -f stderr.* ] ; then
+##  for file in stderr.* ; do
+##    echo;echo $file :;cat $file
+##  done
+##fi
+##if [ -f stdout.* ] ; then
+##echo;echo stdout :;echo;cat stdout.*
+##fi
+##if [ -a NODE.001_01 ] ; then
+##  for file in NODE* ; do
+##    echo;echo Listing $file;echo
+##    cat $file
+##  done
+##fi
+##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then
+### Top 25 for each MPI task :
+##  for file in drhook.prof.* ; do
+##    echo;echo $file :;head -38 $file
+##  done
+##fi
+#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl
+
+#      *******************
+#      *  Sauvegardes    *
+#      *******************
+
+ls
+#if [ -f PFFPOS000+0000 ] ; then
+#  cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID
+#fi
+cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/
+/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001*
+/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00*
+/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz)
+
+#      ****************
+#      *  Epilogue    *
+#      ****************
+
+ls -ltr | grep -v "\->"
+echo Wait_queue :
+ls -ltr $TMPWAIT
+cd $TMPDIR
+\rm -rf rundir.$$
+\rm -rf wait_queue.$$
+date
+set +x
diff --git a/tools/conf_tests/small_3D_alt7/aro48t3.sh b/tools/conf_tests/small_3D_alt7/aro48t3.sh
new file mode 100755
index 0000000000000000000000000000000000000000..b16a272001a2d2ee87613977c6cb648eb5ee2ba3
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt7/aro48t3.sh
@@ -0,0 +1,1209 @@
+#!/bin/bash
+#SBATCH -n 4
+#SBATCH --mem=20000
+#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR
+#SBATCH -t 00:10:00
+#SBATCH -N 1
+#SBATCH -p normal256
+
+#The MYLIB variable must contain the gmkpack pack name
+#The TESTDIR variable must contain the test directory
+#Results will be stored in the local directory
+
+#Other environment varaibles that can be set:
+#OUTPUTDIR
+
+date
+
+OUTPUTDIR=${OUTPUTDIR:-$PWD}
+case=riette2
+#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script
+rekchemin=$TESTDIR
+
+NPROC=4
+NSTRIN=$NPROC
+NSTROUT=1
+NPRTRW_NPRTRV=""
+NPRTRW_NPRTRV="  NPRTRW=$NPROC,
+  NPRTRV=1,"
+export OMP_NUM_THREADS=1
+
+#MYLIB=48t1_main.01%jpdup
+
+export DR_HOOK=1
+#export DR_HOOK_IGNORE_SIGNALS=-1
+export DR_HOOK_NOT_MPI=1
+export DR_HOOK_SILENT=1
+export DR_HOOK_OPT=
+
+export EC_PROFILE_HEAP=0
+export EC_PROFILE_MEM=0
+export EC_MPI_ATEXIT=0
+export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+export EC_MEMINFO=0
+export TVSEARCHPATH=$SOURCE
+
+HOMEPACK=${HOMEPACK:=$HOME/pack}
+SOURCE=$HOMEPACK/$MYLIB/src/local
+LOADIR=$HOMEPACK/$MYLIB/bin
+
+TMPDIR=${TMPDIR:=$HOME/tmp}
+TMPLOC=$TMPDIR/rundir.$$
+TMPWAIT=$TMPDIR/wait_queue.$$
+mkdir $TMPWAIT
+mkdir $TMPLOC
+cd $TMPLOC
+
+export RTTOV_COEFDIR=$PWD
+
+#      **************************
+#      *  Saisie des NAMELISTS  *
+#      **************************
+
+CNMEXP='FPOS'
+
+echo
+/bin/cat <<FIN > fort.4
+ &NACIETEO
+ /
+ &NACOBS
+ /
+ &NACTAN
+ /
+ &NACTEX
+ /
+ &NACVEG
+ /
+ &NADOCK
+ /
+ &NAEAEM7
+ /
+ &NAEAER
+ /
+ &NAECOAPHY
+ /
+ &NAEPHLI
+ /
+ &NAEPHY
+ /
+ &NAERAD
+   LRRTM=.TRUE.,
+   LSRTM=.FALSE.,
+   NAER=1,
+   NICEOPT=3,
+   NLIQOPT=3,
+   NOVLP=6,
+   NOZOCL=2,
+   NRADFR=18,
+   NRADIP=3,
+   NRADLP=2,
+   NSW=6,
+   RLWINHF=1,
+   RRE2DE=0.64952,
+   RSWINHF=1,
+ /
+ &NAERCLI
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMAFN
+   GFP_CLSG%CLNAME='SURFACCGRAUPEL',
+   GFP_CLSP%CLNAME='SURFACCPLUIE',
+   GFP_CLSS%CLNAME='SURFACCNEIGE',
+   GFP_SFIS%IBITS=16,
+   GFP_ST%CLNAME='SURFTEMPERATURE',
+   GFP_ST%IANO=0,
+   GFP_ST%IBITS=12,
+   GFP_X10U%CLNAME='CLSVENT.ZONAL',
+   GFP_X10U%IANO=0,
+   GFP_X10U%IBITS=12,
+   GFP_X10V%CLNAME='CLSVENT.MERIDIEN',
+   GFP_X10V%IANO=0,
+   GFP_X10V%IBITS=12,
+   GFP_X2RH%CLNAME='CLSHUMI.RELATIVE',
+   GFP_X2RH%IANO=0,
+   GFP_X2RH%IBITS=12,
+   GFP_X2T%CLNAME='CLSTEMPERATURE',
+   GFP_X2T%IANO=1,
+   GFP_XCCC%IBITS=8,
+   GFP_XHCC%IBITS=8,
+   GFP_XLCC%IBITS=8,
+   GFP_XLSG%CLNAME='SURFINSGRAUPEL',
+   GFP_XLSP%CLNAME='SURFINSPLUIE',
+   GFP_XLSS%CLNAME='SURFINSNEIGE',
+   GFP_XMCC%IBITS=8,
+   GFP_XN2T%IBITS=12,
+   GFP_XTCC%IBITS=8,
+   GFP_XUGST%CLNAME='CLSU.RAF60M.XFU',
+   GFP_XUGST%IANO=0,
+   GFP_XUGST%IBITS=12,
+   GFP_XVGST%CLNAME='CLSV.RAF60M.XFU',
+   GFP_XVGST%IANO=0,
+   GFP_XVGST%IBITS=12,
+   GFP_XX2T%IBITS=12,
+   GFP_XXDIAGH%IBITS=12,
+   TFP_ABS%ZFK=32.,
+   TFP_CLF%IBITS=6,
+   TFP_EDR%CLNAME='EDR',
+   TFP_EDR%IBITS=16,
+   TFP_EDR%IGRIB=136,
+   TFP_GR%IBITS=12,
+   TFP_HL%IBITS=12,
+   TFP_HTB%IBITS=16,
+   TFP_HTB%LLGP=.TRUE.,
+   TFP_HU%IBITS=12,
+   TFP_MSAT9C2%IBITS=12,
+   TFP_MSAT9C6%IBITS=12,
+   TFP_MSLNH%IBITS=12,
+   TFP_PV%ZFK=64.,
+   TFP_RCLS%IBITS=12,
+   TFP_RR%IBITS=12,
+   TFP_SN%IBITS=12,
+   TFP_T%IBITS=12,
+   TFP_TCLS%IBITS=12,
+   TFP_TH%IBITS=12,
+   TFP_THPW%IBITS=12,
+   TFP_THV%IBITS=12,
+   TFP_TN%IBITS=12,
+   TFP_TWV%IBITS=12,
+   TFP_TX%IBITS=12,
+   TFP_U%IBITS=12,
+   TFP_V%IBITS=12,
+   TFP_VOR%ZFK=32.,
+   TFP_VV%ZFK=32.,
+ /
+ &NAMARG
+   CNMEXP='${CNMEXP}',
+   LECMWF=.FALSE.,
+   LELAM=.TRUE.,
+   LSLAG=.TRUE.,
+   NCONF=1,
+   NSUPERSEDE=1,
+ /
+ &NAMARPHY
+   LKFBCONV=.FALSE.,
+   LKFBD=.FALSE.,
+   LKFBS=.FALSE.,
+   LMFSHAL=.TRUE.,
+   LMICRO=.TRUE.,
+   LMPA=.TRUE.,
+   LMSE=.TRUE.,
+   LTURB=.TRUE.,
+ /
+ &NAMCA
+ /
+ &NAMCAPE
+ /
+ &NAMCFU
+   LCUMFU=.TRUE.,
+   LFPLS=.TRUE.,
+   LFPLSG=.TRUE.,
+   LFR=.TRUE.,
+   LFRRC=.TRUE.,
+   LFSF=.TRUE.,
+   LNEBPAR=.TRUE.,
+   LNEBTT=.TRUE.,
+   LRAYD=.TRUE.,
+   LRAYS=.TRUE.,
+ /
+ &NAMCHEM
+ /
+ &NAMCHET
+ /
+ &NAMCHK
+ /
+ &NAMCLA
+ /
+ &NAMCLDP
+ /
+ &NAMCLI
+ /
+ &NAMCLOP15
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LNHEE=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   LSPRT=.TRUE.,
+   LTWOTL=.TRUE.,
+   NFPOS=1,
+   NFRSDI=18,
+   NSDITS(0)=0,
+   NFRHIS=72,
+   NHISTS(0)=0,
+   NFRPOS=72,
+   NPOSTS(0)=0,
+   NFRSFXHIS=72,
+   NSFXHISTS(0)=0,
+   NFRDHFD=72,
+   NDHFDTS(0)=0,
+ /
+ &NAMCT1
+   LRFILAF=.FALSE.,
+   N1HIS=1,
+   N1POS=1,
+   N1RES=0,
+   N1SDI=1,
+   N1SFXHIS=1,
+   N1GDI=0,
+ /
+ &NAMCUMF
+ /
+ &NAMCUMFS
+ /
+ &NAMCVER
+ /
+ &NAMCVMNH
+ /
+ &NAMDDH
+   LDDH_OMP=.TRUE.,
+   LHDDOP=.TRUE.,
+   LHDHKS=.TRUE.,
+   LHDEFD=.TRUE.,
+   LFLEXDIA=.TRUE.,
+   BDEDDH(1,1)=3,
+   BDEDDH(2,1)=1,
+   BDEDDH(3,1)=358.8
+   BDEDDH(4,1)=45.1
+   BDEDDH(5,1)=360.3
+   BDEDDH(6,1)=44.5
+ /
+ &NAMDFI
+ /
+ &NAMDIM
+   NPROMA=-50,
+ /
+ &NAMDIMO
+ /
+ &NAMDIM_TRAJ
+ /
+ &NAMDPHY
+ /
+ &NAMDPRECIPS
+ /
+ &NAMDYN
+   LADVF=.TRUE.,
+   LQMPD=.FALSE.,
+   LQMT=.FALSE.,
+   LQMVD=.FALSE.,
+   LRHDI_LASTITERPC=.TRUE.,
+   NITMP=4,
+   NSITER=1,
+   NSPDLAG=3,
+   NSVDLAG=3,
+   NTLAG=3,
+   NVLAG=3,
+   NWLAG=3,
+   RDAMPDIV=20.,
+   RDAMPPD=20.,
+   RDAMPQ=0.,
+   RDAMPT=0.,
+   RDAMPVD=20.,
+   RDAMPVOR=20.,
+   REPS1=0.,
+   REPS2=0.,
+   REPSM1=0.,
+   REPSM2=0.,
+   REPSP1=0.,
+   SDRED=1.,
+   SIPR=90000.,
+   SITR=350.,
+   SITRA=100.,
+   SLHDA0=0.25,
+   SLHDD00=0.000065,
+   VESL=0.05,
+   XIDT=0.,
+   ZSLHDP1=1.7,
+   ZSLHDP3=0.6,
+ /
+ &NAMDYNA
+   LCOMADH=.TRUE.,
+   LCOMADV=.FALSE.,
+   LCOMAD_GFL=.TRUE.,
+   LCOMAD_SP=.TRUE.,
+   LCOMAD_SPD=.TRUE.,
+   LCOMAD_SVD=.TRUE.,
+   LCOMAD_T=.TRUE.,
+   LCOMAD_W=.TRUE.,
+   LGWADV=.TRUE.,
+   LNESC=.TRUE.,
+   LPC_CHEAP=.TRUE.,
+   LPC_FULL=.TRUE.,
+   LRDBBC=.FALSE.,
+   LSETTLS=.FALSE.,
+   LSETTLST=.TRUE.,
+   LSLHD_GFL=.TRUE.,
+   LSLHD_OLD=.FALSE.,
+   LSLHD_SPD=.FALSE.,
+   LSLHD_SVD=.FALSE.,
+   LSLHD_T=.FALSE.,
+   LSLHD_W=.FALSE.,
+   ND4SYS=2,
+   NDLNPR=1,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+ /
+ &NAMDYNCORE
+ /
+ &NAMEMIS_CONF
+ /
+ &NAMENKF
+ /
+ &NAMFA
+   CMODEL='OUTPUTID',
+   LEXTERN=.TRUE.,
+   LSUPPDATE=.FALSE.,
+   NBITCS=-1,
+   NBITPG=-1,
+   NSTRON=-1,
+ /
+ &NAMFAINIT
+   JPXTRO=2000,
+ /
+ &NAMFPC
+   CFP2DF(1)='SURFPRESSION',
+   CFP2DF(2)='MSL_NHPRESSURE',
+   CFP2DF(3)='SURFTOT.WAT.VAPO',
+   CFP2DF(4)='SURFISOTPW0.MALT',
+   CFP2DF(5)='SURFCAPE.POS.F00',
+   CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(8)='SURFREFLECT.MAX',
+   CFP2DF(9)='SURFISOTPW1.MALT',
+   CFP2DF(10)='SURFISOTPW2.MALT',
+   CFP3DF(1)='GEOPOTENTIEL',
+   CFP3DF(2)='TEMPERATURE',
+   CFP3DF(3)='VENT_ZONAL',
+   CFP3DF(4)='VENT_MERIDIEN',
+   CFP3DF(5)='HUMI_RELATIVE',
+   CFP3DF(6)='THETA_PRIM_W',
+   CFP3DF(7)='PRESSURE',
+   CFP3DF(8)='ABS_VORTICITY',
+   CFP3DF(9)='VITESSE_VERTICALE',
+   CFP3DF(10)='TEMPE_POTENT',
+   CFP3DF(11)='POT_VORTICIT',
+   CFP3DF(12)='SIM_REFLECTI',
+   CFP3DF(13)='RAIN',
+   CFP3DF(14)='SNOW',
+   CFP3DF(15)='GRAUPEL',
+   CFP3DF(16)='ICE_CRYSTAL',
+   CFP3DF(17)='CLOUD_WATER',
+   CFP3DF(18)='VERT.VELOCIT',
+   CFP3DF(19)='DIVERGENCE',
+   CFP3DF(20)='THETA_VIRTUA',
+   CFP3DF(21)='TKE',
+   CFP3DF(22)='CLOUD_FRACTI',
+   CFP3DF(23)='ISOT_ALTIT',
+   CFP3DF(24)='EDR',
+   CFPCFU(1)='SURFTENS.TOTA.ZO',
+   CFPCFU(2)='SURFTENS.TOTA.ME',
+   CFPCFU(3)='SURFACCPLUIE',
+   CFPCFU(4)='SURFACCNEIGE',
+   CFPCFU(5)='SURFACCGRAUPEL',
+   CFPCFU(6)='SOMMFLU.RAY.SOLA',
+   CFPCFU(7)='SURFFLU.RAY.SOLA',
+   CFPCFU(8)='SOMMFLU.RAY.THER',
+   CFPCFU(9)='SURFFLU.RAY.THER',
+   CFPCFU(10)='SURFFLU.LAT.MTOT',
+   CFPCFU(11)='SURFFLU.MTOTA.NE',
+   CFPCFU(12)='SURFFLU.CHA.SENS',
+   CFPCFU(13)='SURFRAYT SOLA DE',
+   CFPCFU(14)='SURFRAYT THER DE',
+   CFPCFU(15)='SURFRAYT SOL CL',
+   CFPCFU(16)='SURFRAYT THER CL',
+   CFPCFU(17)='SURFRAYT DIR SUR',
+   CFPDOM(1)='FRANGP0025',
+   CFPFMT='LALON',
+   CFPPHY(1)='SURFTEMPERATURE',
+   CFPPHY(2)='INTSURFGEOPOTENT',
+   CFPPHY(3)='SURFRESERV.NEIGE',
+   CFPXFU(1)='CLSTEMPERATURE',
+   CFPXFU(2)='CLSHUMI.RELATIVE',
+   CFPXFU(3)='CLSVENT.ZONAL',
+   CFPXFU(4)='CLSVENT.MERIDIEN',
+   CFPXFU(5)='SURFNEBUL.TOTALE',
+   CFPXFU(6)='SURFNEBUL.HAUTE',
+   CFPXFU(7)='SURFNEBUL.MOYENN',
+   CFPXFU(8)='SURFNEBUL.BASSE',
+   CFPXFU(9)='CLSMAXI.TEMPERAT',
+   CFPXFU(10)='CLSMINI.TEMPERAT',
+   CFPXFU(11)='CLPMHAUT.MOD.XFU',
+   CFPXFU(12)='SURFDIAGHAIL',
+   LCRITSNOWTEMP=.FALSE.,
+   LFPCAPEX=.TRUE.,
+   LFPMOIS=.TRUE.,
+   LFPPACKING=.FALSE.,
+   LWIDER_DOM=.TRUE.,
+   L_READ_MODEL_DATE=.TRUE.,
+   NFITI=1,
+   NFITV=1,
+   NFPCAPE=5,
+   NFPCLI=1,
+   NFPGRIB=1,
+   NFPINPHY=4,
+   NITERPV=8,
+   RENTRA=0.0001,
+   RFP3H(1)=10.,
+   RFP3H(2)=20.,
+   RFP3H(3)=35.,
+   RFP3H(4)=50.,
+   RFP3H(5)=75.,
+   RFP3H(6)=100.,
+   RFP3H(7)=150.,
+   RFP3H(8)=200.,
+   RFP3H(9)=250.,
+   RFP3H(10)=375.,
+   RFP3H(11)=500.,
+   RFP3H(12)=625.,
+   RFP3H(13)=750.,
+   RFP3H(14)=875.,
+   RFP3H(15)=1000.,
+   RFP3H(16)=1125.,
+   RFP3H(17)=1250.,
+   RFP3H(18)=1375.,
+   RFP3H(19)=1500.,
+   RFP3H(20)=1750.,
+   RFP3H(21)=2000.,
+   RFP3H(22)=2250.,
+   RFP3H(23)=2500.,
+   RFP3H(24)=2750.,
+   RFP3H(25)=3000.,
+   RFP3I(1)=-273.15,
+   RFP3I(2)=-263.15,
+   RFP3I(3)=-261.15,
+   RFP3I(4)=-253.15,
+   RFP3P(1)=10000.,
+   RFP3P(2)=12500.,
+   RFP3P(3)=15000.,
+   RFP3P(4)=17500.,
+   RFP3P(5)=20000.,
+   RFP3P(6)=22500.,
+   RFP3P(7)=25000.,
+   RFP3P(8)=27500.,
+   RFP3P(9)=30000.,
+   RFP3P(10)=35000.,
+   RFP3P(11)=40000.,
+   RFP3P(12)=45000.,
+   RFP3P(13)=50000.,
+   RFP3P(14)=55000.,
+   RFP3P(15)=60000.,
+   RFP3P(16)=65000.,
+   RFP3P(17)=70000.,
+   RFP3P(18)=75000.,
+   RFP3P(19)=80000.,
+   RFP3P(20)=85000.,
+   RFP3P(21)=90000.,
+   RFP3P(22)=92500.,
+   RFP3P(23)=95000.,
+   RFP3P(24)=100000.,
+   RFP3PV(1)=0.0000015,
+   RFP3PV(2)=0.000002,
+   RFPCD2=5.,
+   RFPCSAB=50.,
+   RFPVCAP=7000.,
+ /
+ &NAMFPD
+   NLAT(1)=41,
+   NLON(1)=41,
+   RLONC(1)=-0.71,
+   RLATC(1)=44.8,
+   RDELX(1)=0.025,
+   RDELY(1)=0.025,
+ /
+ &NAMFPDY2
+ /
+ &NAMFPDYF
+ /
+ &NAMFPDYH
+ /
+ &NAMFPDYI
+ /
+ &NAMFPDYP
+ /
+ &NAMFPDYS
+ /
+ &NAMFPDYT
+ /
+ &NAMFPDYV
+ /
+ &NAMFPF
+   NFMAX(1)=60,
+   NFMAX(2)=80,
+ /
+ &NAMFPG
+   NFPDISTRIB=1,
+ /
+ &NAMFPIOS
+ /
+ &NAMFPMOVE
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+ /
+ &NAMGFL
+   NGFL_EZDIAG=4,
+   YEZDIAG_NL(1)%CNAME='EZDIAG01',
+   YEZDIAG_NL(1)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(2)%CNAME='EZDIAG02',
+   YEZDIAG_NL(2)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(3)%CNAME='EZDIAG03',
+   YEZDIAG_NL(3)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(4)%CNAME='INPRRTOT3D',
+   YEZDIAG_NL(4)%LREQOUT=.TRUE.,
+   YG_NL%LQM=.TRUE.,
+   YG_NL%LSLHD=.TRUE.,
+   YG_NL%NCOUPLING=-1,
+   YG_NL%NREQIN=1,
+   YG_NL%REFVALC=0.,
+   YIRAD_NL%LGP=.TRUE.,
+   YI_NL%LQM=.TRUE.,
+   YI_NL%LSLHD=.TRUE.,
+   YI_NL%NCOUPLING=-1,
+   YI_NL%NREQIN=1,
+   YI_NL%REFVALC=0.,
+   YLRAD_NL%LGP=.TRUE.,
+   YL_NL%LQM=.TRUE.,
+   YL_NL%LSLHD=.TRUE.,
+   YL_NL%NCOUPLING=-1,
+   YL_NL%NREQIN=1,
+   YL_NL%REFVALC=0.,
+   YQ_NL%LCOMAD=.TRUE.,
+   YQ_NL%LQM=.TRUE.,
+   YQ_NL%LSLHD=.FALSE.,
+   YQ_NL%NREQIN=1,
+   YR_NL%LQM=.TRUE.,
+   YR_NL%LSLHD=.TRUE.,
+   YR_NL%NCOUPLING=-1,
+   YR_NL%NREQIN=1,
+   YR_NL%REFVALC=0.,
+   YS_NL%LQM=.TRUE.,
+   YS_NL%LSLHD=.TRUE.,
+   YS_NL%NCOUPLING=-1,
+   YS_NL%NREQIN=1,
+   YS_NL%REFVALC=0.,
+   YTKE_NL%NCOUPLING=0,
+   YTKE_NL%NREQIN=1,
+ /
+ &NAMGRIB
+ /
+ &NAMGWD
+ /
+ &NAMGWDIAG
+ /
+ &NAMGWWMS
+ /
+ &NAMIAU
+   ALPHAIAU=0.5,
+   LIAU=.FALSE.,
+   TSTARTIAU=1800,
+   TSTOPIAU=5340,
+ /
+ &NAMICE
+ /
+ &NAMINI
+   LDFI=.FALSE.,
+ /
+ &NAMINTFLEX
+ /
+ &NAMIOMI
+ /
+ &NAMIOS
+ /
+ &NAMIO_SERV
+   NIO_SERV_BUF_MAXSIZE=20,
+   NIO_SERV_METHOD=2,
+   NMSG_LEVEL_CLIENT=0,
+   NMSG_LEVEL_SERVER=0,
+   NPROCESS_LEVEL=5,
+   NPROC_IO=0,
+ /
+ &NAMJBCODES
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMOBS
+ /
+ &NAMONEDVAR
+ /
+ &NAMOOPS
+ /
+ &NAMOPH
+   CFNHWF='ECHIS',
+   LINC=.TRUE.,
+   NTIMEFMT=1,
+ /
+ &NAMOPTCMEM
+ /
+ &NAMPAR0
+   LOPT_SCALAR=.TRUE.,
+   NPRINTLEV=1,
+   LMPOFF=.FALSE.,
+   MBX_SIZE=2048000000,
+   MP_TYPE=2,
+   NOUTPUT=1,
+   NPROC=$NPROC,
+$NPRTRW_NPRTRV
+ /
+ &NAMPAR1
+   LEQ_REGIONS=.FALSE.,
+   LSLONDEM=.TRUE.,
+   LSPLIT=.TRUE.,
+   LSYNC_SLCOM=.FALSE.,
+   LSYNC_TRANS=.FALSE.,
+   L_GATHERV_WRGP=.FALSE.,
+   NCOMBFLEN=1800000,
+   NSTRIN=$NSTRIN,
+   NSTROUT=$NSTROUT,
+ /
+ &NAMPARAR
+   CMF_UPDRAFT='EDKF'
+   CMF_CLOUD='STAT'
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   CMICRO='ICE3',
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LCRIAUTI=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LFPREC3D=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LOLSMC=.TRUE.,
+   LOSEDIC=.TRUE.,
+   LOSIGMAS=.FALSE.,
+   LOSUBG_COND=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   NPRINTFR=10000,
+   NPTP=1,
+   RCRIAUTC=0.001,
+   RCRIAUTI=0.0002,
+   RT0CRIAUTI=-5.,
+   VSIGQSAT=0.02,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+ /
+ &NAMPHMSE
+   LPGDFWR=.FALSE.,
+ /
+ &NAMPHY
+   LAERODES=.TRUE.,
+   LAEROLAN=.TRUE.,
+   LAEROSEA=.TRUE.,
+   LAEROSOO=.TRUE.,
+   LEDR=.TRUE.,
+   LMPHYS=.TRUE.,
+   LO3ABC=.TRUE.,
+   LRAYFM=.TRUE.,
+ /
+ &NAMPHY0
+   ALMAV=300.,
+   BEDIFV=0.05,
+   ECMNP=3000.,
+   GCCSV=0.,
+   GCVADS=0.8,
+   GCVALFA=0.000045,
+   GCVBETA=0.2,
+   GCVMLT=0.00016,
+   GCVNU=0.000025,
+   GCVPSI=1.,
+   GCVPSIE=1.,
+   GDDEVA=0.25,
+   GDDSDE=0.5,
+   GWDCD=6.,
+   HUCOE=0.5,
+   HUTIL=1.8,
+   QSSC=400.,
+   QSSUSC=0.75,
+   QSSUSS=0.4,
+   QSSUSV=250.,
+   QSUSXC=0.0002,
+   QSUSXS=0.0003,
+   QXRAL=130.,
+   QXRDEL=0.49,
+   QXRHX=0.99,
+   QXRR=0.25,
+   RCVEVAP=0.25,
+   REFLKUO=5000.,
+   REVGSL=15.,
+   SCO=-20.,
+   TDDGP=0.8,
+   TENTR=0.0000025,
+   TENTRX=0.00008,
+   TUDGP=0.8,
+   UHDIFV=0.0008,
+   USURIC=0.175,
+   USURICE=0.5,
+   USURICL=1.,
+   USURID=0.1,
+   USURIDE=0.25,
+   VZ0CM=0.00015,
+   XMAXLM=5000.,
+   XMINLM=10.,
+ /
+ &NAMPHY1
+   ALBMIN=0.65,
+   ALCRIN=0.75,
+   GCGEL=0.00003,
+   GCGELS=0.00005,
+   GNEIMX=1.8,
+   GNEIMXS=1.8,
+   RCTVEG(3)=0.000012,
+   RCTVEG(4)=0.00001,
+ /
+ &NAMPHY2
+   FACRAF=3.8,
+   HTKERAF=20.,
+   LMULAF=.TRUE.,
+   LRAFTKE=.TRUE.,
+   LRAFTUR=.TRUE.,
+   XDAMP=1.,
+   XMULAF=-1.85,
+ /
+ &NAMPHY3
+ /
+ &NAMPHYDS
+ /
+ &NAMPONG
+ /
+ &NAMPPC
+ /
+ &NAMPPVI
+ /
+ &NAMPRE
+ /
+ &NAMRAD15
+ /
+ &NAMRADCMEM
+ /
+ &NAMRCF
+ /
+ &NAMRCOEF
+ /
+ &NAMRES
+ /
+ &NAMRGRI
+ /
+ &NAMRINC
+ /
+ &NAMRIP
+    TSTEP=50.,
+    CSTOP='h2',
+ /
+ &NAMRIP0
+ /
+ &NAMRLX
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPSDT
+ /
+ &NAMSTA
+ /
+ &NAMSTOPH
+ /
+ &NAMSWE
+ /
+ &NAMTESTVAR
+ /
+ &NAMTHLIM
+ /
+ &NAMTOPH
+   ETCVIM=5000.,
+   ETNEBU=5000.,
+   ETPLUI=5000.,
+   XDRMTK=6.0D-7,
+   XDRMTP=800.,
+   XDRMUK=3.0D-7,
+   XDRMUP=800.,
+ /
+ &NAMTRAJP
+ /
+ &NAMTRANS
+ /
+ &NAMTRANS0
+ /
+ &NAMTS
+ /
+ &NAMVAR
+ /
+ &NAMVARBC
+ /
+ &NAMVARBC_AIREP
+ /
+ &NAMVARBC_ALLSKY
+ /
+ &NAMVARBC_GBRAD
+ /
+ &NAMVARBC_RAD
+ /
+ &NAMVARBC_SFCOBS
+ /
+ &NAMVARBC_TCWV
+ /
+ &NAMVARBC_TO3
+ /
+ &NAMVAREPS
+ /
+ &NAMVDF
+ /
+ &NAMVDOZ
+ /
+ &NAMVOLCANO
+ /
+ &NAMVRTL
+ /
+ &NAMVV0
+ /
+ &NAMVV1
+ /
+ &NAMVWRK
+ /
+ &NAMWAVELETJB
+ /
+ &NAMXFU
+   LXCLP=.TRUE.,
+   LXCLS=.TRUE.,
+   LXFU=.TRUE.,
+   LXNEBPA=.TRUE.,
+   LXNEBTT=.TRUE.,
+   LXNUVCLS=.TRUE.,
+   LXPLS=.TRUE.,
+   LXPLSG=.TRUE.,
+   LXQCLS=.TRUE.,
+   LXR=.TRUE.,
+   LXSOIL=.FALSE.,
+   LXTHW=.TRUE.,
+   LXTRT=.TRUE.,
+   LXTTCLS=.TRUE.,
+   LXXDIAGH=.TRUE.,
+   LXXGST=.TRUE.,
+   NFRRAZ=72,
+   NRAZTS(0)=0,
+ /
+ &NAM_CANAPE
+ /
+ &NAM_DISTRIBUTED_VECTORS
+ /
+ &NAPHLC
+ /
+ &NEMCT0
+ /
+ &NEMDIM
+ /
+ &NEMDYN
+ /
+ &NEMELBC0A
+   LESPCPL=.TRUE.,
+   NBICNHX=2,
+   NBICOP=2,
+   NBICOT=2,
+   NBICOU=2,
+   NBICPD=2,
+   NBICVD=2,
+   NECRIPL=1,
+ /
+ &NEMELBC0B
+   NEFRSPCPL=1,
+   NEK0=20,
+   NEK1=30,
+   NEN1=4,
+   NEN2=8,
+   SPNUDDIV=0.01,
+   SPNUDQ=0.,
+   SPNUDT=0.01,
+   SPNUDVOR=0.01,
+   TEFRCL=3600.,
+ /
+ &NEMFPEZO
+ /
+ &NEMGEO
+ /
+ &NEMJK
+ /
+ &NEMVAR
+ /
+ &NEMWAVELET
+ /
+ &NAETLDIAG
+ /
+ &NAMMETHOX
+ /
+ &NAMSPP
+ /
+ &NAMACV
+ /
+ &NAMFPOBJ
+ /
+ &NAMNORGWD
+ /
+ &NAMTRAJ
+ /
+ &NAMSATSIM
+ /
+ &NAMDVISI
+ /
+ &NAMNUDGLH
+ /
+ &NAMPERTPAR
+ /
+FIN
+/bin/cat fort.4
+
+/bin/cat <<FIN > EXSEG1.nam
+ &NAM_DIAG_ISBAN
+   LPGD=.TRUE.,
+   LSURF_MISC_BUDGET=.TRUE.,
+ /
+ &NAM_DIAG_SURFN
+   LCOEF=.TRUE.,
+   LSURF_BUDGET=.TRUE.,
+   N2M=2,
+ /
+ &NAM_ISBAN
+   CSCOND='NP89',
+ /
+ &NAM_REPROD_OPER
+   LREPROD_OPER=.TRUE.,
+ /
+ &NAM_SEAFLUXN
+   CSEA_FLUX='ECUME',
+   LPWG=.FALSE.,
+   LPRECIP=.FALSE.,
+   LPWEBB=.FALSE.,
+ /
+ &NAM_SSON
+   CROUGH='Z01D',
+   XFRACZ0=5.,
+   LDSV=.FALSE.,
+ /
+ &NAM_SURF_ATM
+   XRIMAX=0.2,
+   LNOSOF=.TRUE.,
+ /
+ &NAM_SURF_CSTS
+   XZ0SN=0.01,
+   XZ0HSN=0.001,
+   XEMISSN=0.99,
+ /
+ &NAM_WRITE_DIAG_SURFN
+   LPROVAR_TO_DIAG=.FALSE.,
+   LSELECT=.TRUE.,
+CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS',
+ /
+ &NAM_WRITE_SURF_ATM
+   LNOWRITE_TEXFILE=.TRUE.,
+ /
+FIN
+/bin/cat EXSEG1.nam
+
+#      *****************************************
+#      *  Acquisition du fichier de demarrage  *
+#      *****************************************
+
+echo
+for hh in 0 1 2 3 4 5 6 ; do
+  N=`expr $hh / 1 `
+  set -x
+  ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N}
+  set +x
+done
+set -x
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx
+ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin .
+ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim
+ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx
+ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat .
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat .
+ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz
+
+#      ***************
+#      *  Chargement *
+#      ***************
+
+echo
+set -x
+\ln -s $LOADIR/MASTERODB MASTER
+set +x
+if ldd MASTER | grep openmpi > /dev/null; then
+  #On est sur PC
+  MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}')
+  MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC"
+  GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1
+  export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions
+  export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions
+else
+  #On est sur HPC
+  #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD"
+  NNODES=$SLURM_JOB_NUM_NODES
+  MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES))
+  MPI_TASKS=$SLURM_NTASKS
+  MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --"
+  export OMP_STACKSIZE=4G
+  export KMP_STACKSIZE=4G
+  export KMP_MONITOR_STACKSIZE=4G
+  export DR_HOOK=1
+  export DR_HOOK_IGNORE_SIGNALS=-1
+  export DR_HOOK_SILENT=1
+  export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+  export MPL_MBX_SIZE=2048000000
+  export EC_PROFILE_HEAP=0
+  export EC_PROFILE_MEM=0
+  export EC_MPI_ATEXIT=0
+  export EC_MEMINFO=0
+  export OPENBLAS_NUM_THREADS=1
+  export MKL_CBWR="AUTO,STRICT"
+  export MKL_NUM_THREADS=1
+  export MKL_DEBUG_CPU_TYPE=5
+  export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions
+fi
+echo $MPIRUN
+set +x
+if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi
+
+#      ***************
+#      *  Execution  *
+#      ***************
+
+echo
+echo OMP_NUM_THREADS=$OMP_NUM_THREADS
+set -x
+ulimit -s unlimited
+$MPIRUN $PWD/MASTER >lola
+set +x
+echo
+##if [ -f lola ] ; then
+##  echo;echo Standard output :;echo;cat lola
+##fi
+##if [ -f stderr.* ] ; then
+##  for file in stderr.* ; do
+##    echo;echo $file :;cat $file
+##  done
+##fi
+##if [ -f stdout.* ] ; then
+##echo;echo stdout :;echo;cat stdout.*
+##fi
+##if [ -a NODE.001_01 ] ; then
+##  for file in NODE* ; do
+##    echo;echo Listing $file;echo
+##    cat $file
+##  done
+##fi
+##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then
+### Top 25 for each MPI task :
+##  for file in drhook.prof.* ; do
+##    echo;echo $file :;head -38 $file
+##  done
+##fi
+#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl
+
+#      *******************
+#      *  Sauvegardes    *
+#      *******************
+
+ls
+#if [ -f PFFPOS000+0000 ] ; then
+#  cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID
+#fi
+cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/
+/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001*
+/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00*
+/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz)
+
+#      ****************
+#      *  Epilogue    *
+#      ****************
+
+ls -ltr | grep -v "\->"
+echo Wait_queue :
+ls -ltr $TMPWAIT
+cd $TMPDIR
+\rm -rf rundir.$$
+\rm -rf wait_queue.$$
+date
+set +x
diff --git a/tools/conf_tests/small_3D_alt8/aro48t3.sh b/tools/conf_tests/small_3D_alt8/aro48t3.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c0b50410dbfb71c2982e2a467283b7b17620368d
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt8/aro48t3.sh
@@ -0,0 +1,1208 @@
+#!/bin/bash
+#SBATCH -n 4
+#SBATCH --mem=20000
+#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR
+#SBATCH -t 00:10:00
+#SBATCH -N 1
+#SBATCH -p normal256
+
+#The MYLIB variable must contain the gmkpack pack name
+#The TESTDIR variable must contain the test directory
+#Results will be stored in the local directory
+
+#Other environment varaibles that can be set:
+#OUTPUTDIR
+
+date
+
+OUTPUTDIR=${OUTPUTDIR:-$PWD}
+case=riette2
+#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script
+rekchemin=$TESTDIR
+
+NPROC=4
+NSTRIN=$NPROC
+NSTROUT=1
+NPRTRW_NPRTRV=""
+NPRTRW_NPRTRV="  NPRTRW=$NPROC,
+  NPRTRV=1,"
+export OMP_NUM_THREADS=1
+
+#MYLIB=48t1_main.01%jpdup
+
+export DR_HOOK=1
+#export DR_HOOK_IGNORE_SIGNALS=-1
+export DR_HOOK_NOT_MPI=1
+export DR_HOOK_SILENT=1
+export DR_HOOK_OPT=
+
+export EC_PROFILE_HEAP=0
+export EC_PROFILE_MEM=0
+export EC_MPI_ATEXIT=0
+export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+export EC_MEMINFO=0
+export TVSEARCHPATH=$SOURCE
+
+HOMEPACK=${HOMEPACK:=$HOME/pack}
+SOURCE=$HOMEPACK/$MYLIB/src/local
+LOADIR=$HOMEPACK/$MYLIB/bin
+
+TMPDIR=${TMPDIR:=$HOME/tmp}
+TMPLOC=$TMPDIR/rundir.$$
+TMPWAIT=$TMPDIR/wait_queue.$$
+mkdir $TMPWAIT
+mkdir $TMPLOC
+cd $TMPLOC
+
+export RTTOV_COEFDIR=$PWD
+
+#      **************************
+#      *  Saisie des NAMELISTS  *
+#      **************************
+
+CNMEXP='FPOS'
+
+echo
+/bin/cat <<FIN > fort.4
+ &NACIETEO
+ /
+ &NACOBS
+ /
+ &NACTAN
+ /
+ &NACTEX
+ /
+ &NACVEG
+ /
+ &NADOCK
+ /
+ &NAEAEM7
+ /
+ &NAEAER
+ /
+ &NAECOAPHY
+ /
+ &NAEPHLI
+ /
+ &NAEPHY
+ /
+ &NAERAD
+   LRRTM=.TRUE.,
+   LSRTM=.FALSE.,
+   NAER=1,
+   NICEOPT=3,
+   NLIQOPT=3,
+   NOVLP=6,
+   NOZOCL=2,
+   NRADFR=18,
+   NRADIP=3,
+   NRADLP=2,
+   NSW=6,
+   RLWINHF=1,
+   RRE2DE=0.64952,
+   RSWINHF=1,
+ /
+ &NAERCLI
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMAFN
+   GFP_CLSG%CLNAME='SURFACCGRAUPEL',
+   GFP_CLSP%CLNAME='SURFACCPLUIE',
+   GFP_CLSS%CLNAME='SURFACCNEIGE',
+   GFP_SFIS%IBITS=16,
+   GFP_ST%CLNAME='SURFTEMPERATURE',
+   GFP_ST%IANO=0,
+   GFP_ST%IBITS=12,
+   GFP_X10U%CLNAME='CLSVENT.ZONAL',
+   GFP_X10U%IANO=0,
+   GFP_X10U%IBITS=12,
+   GFP_X10V%CLNAME='CLSVENT.MERIDIEN',
+   GFP_X10V%IANO=0,
+   GFP_X10V%IBITS=12,
+   GFP_X2RH%CLNAME='CLSHUMI.RELATIVE',
+   GFP_X2RH%IANO=0,
+   GFP_X2RH%IBITS=12,
+   GFP_X2T%CLNAME='CLSTEMPERATURE',
+   GFP_X2T%IANO=1,
+   GFP_XCCC%IBITS=8,
+   GFP_XHCC%IBITS=8,
+   GFP_XLCC%IBITS=8,
+   GFP_XLSG%CLNAME='SURFINSGRAUPEL',
+   GFP_XLSP%CLNAME='SURFINSPLUIE',
+   GFP_XLSS%CLNAME='SURFINSNEIGE',
+   GFP_XMCC%IBITS=8,
+   GFP_XN2T%IBITS=12,
+   GFP_XTCC%IBITS=8,
+   GFP_XUGST%CLNAME='CLSU.RAF60M.XFU',
+   GFP_XUGST%IANO=0,
+   GFP_XUGST%IBITS=12,
+   GFP_XVGST%CLNAME='CLSV.RAF60M.XFU',
+   GFP_XVGST%IANO=0,
+   GFP_XVGST%IBITS=12,
+   GFP_XX2T%IBITS=12,
+   GFP_XXDIAGH%IBITS=12,
+   TFP_ABS%ZFK=32.,
+   TFP_CLF%IBITS=6,
+   TFP_EDR%CLNAME='EDR',
+   TFP_EDR%IBITS=16,
+   TFP_EDR%IGRIB=136,
+   TFP_GR%IBITS=12,
+   TFP_HL%IBITS=12,
+   TFP_HTB%IBITS=16,
+   TFP_HTB%LLGP=.TRUE.,
+   TFP_HU%IBITS=12,
+   TFP_MSAT9C2%IBITS=12,
+   TFP_MSAT9C6%IBITS=12,
+   TFP_MSLNH%IBITS=12,
+   TFP_PV%ZFK=64.,
+   TFP_RCLS%IBITS=12,
+   TFP_RR%IBITS=12,
+   TFP_SN%IBITS=12,
+   TFP_T%IBITS=12,
+   TFP_TCLS%IBITS=12,
+   TFP_TH%IBITS=12,
+   TFP_THPW%IBITS=12,
+   TFP_THV%IBITS=12,
+   TFP_TN%IBITS=12,
+   TFP_TWV%IBITS=12,
+   TFP_TX%IBITS=12,
+   TFP_U%IBITS=12,
+   TFP_V%IBITS=12,
+   TFP_VOR%ZFK=32.,
+   TFP_VV%ZFK=32.,
+ /
+ &NAMARG
+   CNMEXP='${CNMEXP}',
+   LECMWF=.FALSE.,
+   LELAM=.TRUE.,
+   LSLAG=.TRUE.,
+   NCONF=1,
+   NSUPERSEDE=1,
+ /
+ &NAMARPHY
+   LKFBCONV=.FALSE.,
+   LKFBD=.FALSE.,
+   LKFBS=.FALSE.,
+   LMFSHAL=.TRUE.,
+   LMICRO=.TRUE.,
+   LMPA=.TRUE.,
+   LMSE=.TRUE.,
+   LTURB=.TRUE.,
+ /
+ &NAMCA
+ /
+ &NAMCAPE
+ /
+ &NAMCFU
+   LCUMFU=.TRUE.,
+   LFPLS=.TRUE.,
+   LFPLSG=.TRUE.,
+   LFR=.TRUE.,
+   LFRRC=.TRUE.,
+   LFSF=.TRUE.,
+   LNEBPAR=.TRUE.,
+   LNEBTT=.TRUE.,
+   LRAYD=.TRUE.,
+   LRAYS=.TRUE.,
+ /
+ &NAMCHEM
+ /
+ &NAMCHET
+ /
+ &NAMCHK
+ /
+ &NAMCLA
+ /
+ &NAMCLDP
+ /
+ &NAMCLI
+ /
+ &NAMCLOP15
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LNHEE=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   LSPRT=.TRUE.,
+   LTWOTL=.TRUE.,
+   NFPOS=1,
+   NFRSDI=18,
+   NSDITS(0)=0,
+   NFRHIS=72,
+   NHISTS(0)=0,
+   NFRPOS=72,
+   NPOSTS(0)=0,
+   NFRSFXHIS=72,
+   NSFXHISTS(0)=0,
+   NFRDHFD=72,
+   NDHFDTS(0)=0,
+ /
+ &NAMCT1
+   LRFILAF=.FALSE.,
+   N1HIS=1,
+   N1POS=1,
+   N1RES=0,
+   N1SDI=1,
+   N1SFXHIS=1,
+   N1GDI=0,
+ /
+ &NAMCUMF
+ /
+ &NAMCUMFS
+ /
+ &NAMCVER
+ /
+ &NAMCVMNH
+ /
+ &NAMDDH
+   LDDH_OMP=.TRUE.,
+   LHDDOP=.TRUE.,
+   LHDHKS=.TRUE.,
+   LHDEFD=.TRUE.,
+   LFLEXDIA=.TRUE.,
+   BDEDDH(1,1)=3,
+   BDEDDH(2,1)=1,
+   BDEDDH(3,1)=358.8
+   BDEDDH(4,1)=45.1
+   BDEDDH(5,1)=360.3
+   BDEDDH(6,1)=44.5
+ /
+ &NAMDFI
+ /
+ &NAMDIM
+   NPROMA=-50,
+ /
+ &NAMDIMO
+ /
+ &NAMDIM_TRAJ
+ /
+ &NAMDPHY
+ /
+ &NAMDPRECIPS
+ /
+ &NAMDYN
+   LADVF=.TRUE.,
+   LQMPD=.FALSE.,
+   LQMT=.FALSE.,
+   LQMVD=.FALSE.,
+   LRHDI_LASTITERPC=.TRUE.,
+   NITMP=4,
+   NSITER=1,
+   NSPDLAG=3,
+   NSVDLAG=3,
+   NTLAG=3,
+   NVLAG=3,
+   NWLAG=3,
+   RDAMPDIV=20.,
+   RDAMPPD=20.,
+   RDAMPQ=0.,
+   RDAMPT=0.,
+   RDAMPVD=20.,
+   RDAMPVOR=20.,
+   REPS1=0.,
+   REPS2=0.,
+   REPSM1=0.,
+   REPSM2=0.,
+   REPSP1=0.,
+   SDRED=1.,
+   SIPR=90000.,
+   SITR=350.,
+   SITRA=100.,
+   SLHDA0=0.25,
+   SLHDD00=0.000065,
+   VESL=0.05,
+   XIDT=0.,
+   ZSLHDP1=1.7,
+   ZSLHDP3=0.6,
+ /
+ &NAMDYNA
+   LCOMADH=.TRUE.,
+   LCOMADV=.FALSE.,
+   LCOMAD_GFL=.TRUE.,
+   LCOMAD_SP=.TRUE.,
+   LCOMAD_SPD=.TRUE.,
+   LCOMAD_SVD=.TRUE.,
+   LCOMAD_T=.TRUE.,
+   LCOMAD_W=.TRUE.,
+   LGWADV=.TRUE.,
+   LNESC=.TRUE.,
+   LPC_CHEAP=.TRUE.,
+   LPC_FULL=.TRUE.,
+   LRDBBC=.FALSE.,
+   LSETTLS=.FALSE.,
+   LSETTLST=.TRUE.,
+   LSLHD_GFL=.TRUE.,
+   LSLHD_OLD=.FALSE.,
+   LSLHD_SPD=.FALSE.,
+   LSLHD_SVD=.FALSE.,
+   LSLHD_T=.FALSE.,
+   LSLHD_W=.FALSE.,
+   ND4SYS=2,
+   NDLNPR=1,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+ /
+ &NAMDYNCORE
+ /
+ &NAMEMIS_CONF
+ /
+ &NAMENKF
+ /
+ &NAMFA
+   CMODEL='OUTPUTID',
+   LEXTERN=.TRUE.,
+   LSUPPDATE=.FALSE.,
+   NBITCS=-1,
+   NBITPG=-1,
+   NSTRON=-1,
+ /
+ &NAMFAINIT
+   JPXTRO=2000,
+ /
+ &NAMFPC
+   CFP2DF(1)='SURFPRESSION',
+   CFP2DF(2)='MSL_NHPRESSURE',
+   CFP2DF(3)='SURFTOT.WAT.VAPO',
+   CFP2DF(4)='SURFISOTPW0.MALT',
+   CFP2DF(5)='SURFCAPE.POS.F00',
+   CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(8)='SURFREFLECT.MAX',
+   CFP2DF(9)='SURFISOTPW1.MALT',
+   CFP2DF(10)='SURFISOTPW2.MALT',
+   CFP3DF(1)='GEOPOTENTIEL',
+   CFP3DF(2)='TEMPERATURE',
+   CFP3DF(3)='VENT_ZONAL',
+   CFP3DF(4)='VENT_MERIDIEN',
+   CFP3DF(5)='HUMI_RELATIVE',
+   CFP3DF(6)='THETA_PRIM_W',
+   CFP3DF(7)='PRESSURE',
+   CFP3DF(8)='ABS_VORTICITY',
+   CFP3DF(9)='VITESSE_VERTICALE',
+   CFP3DF(10)='TEMPE_POTENT',
+   CFP3DF(11)='POT_VORTICIT',
+   CFP3DF(12)='SIM_REFLECTI',
+   CFP3DF(13)='RAIN',
+   CFP3DF(14)='SNOW',
+   CFP3DF(15)='GRAUPEL',
+   CFP3DF(16)='ICE_CRYSTAL',
+   CFP3DF(17)='CLOUD_WATER',
+   CFP3DF(18)='VERT.VELOCIT',
+   CFP3DF(19)='DIVERGENCE',
+   CFP3DF(20)='THETA_VIRTUA',
+   CFP3DF(21)='TKE',
+   CFP3DF(22)='CLOUD_FRACTI',
+   CFP3DF(23)='ISOT_ALTIT',
+   CFP3DF(24)='EDR',
+   CFPCFU(1)='SURFTENS.TOTA.ZO',
+   CFPCFU(2)='SURFTENS.TOTA.ME',
+   CFPCFU(3)='SURFACCPLUIE',
+   CFPCFU(4)='SURFACCNEIGE',
+   CFPCFU(5)='SURFACCGRAUPEL',
+   CFPCFU(6)='SOMMFLU.RAY.SOLA',
+   CFPCFU(7)='SURFFLU.RAY.SOLA',
+   CFPCFU(8)='SOMMFLU.RAY.THER',
+   CFPCFU(9)='SURFFLU.RAY.THER',
+   CFPCFU(10)='SURFFLU.LAT.MTOT',
+   CFPCFU(11)='SURFFLU.MTOTA.NE',
+   CFPCFU(12)='SURFFLU.CHA.SENS',
+   CFPCFU(13)='SURFRAYT SOLA DE',
+   CFPCFU(14)='SURFRAYT THER DE',
+   CFPCFU(15)='SURFRAYT SOL CL',
+   CFPCFU(16)='SURFRAYT THER CL',
+   CFPCFU(17)='SURFRAYT DIR SUR',
+   CFPDOM(1)='FRANGP0025',
+   CFPFMT='LALON',
+   CFPPHY(1)='SURFTEMPERATURE',
+   CFPPHY(2)='INTSURFGEOPOTENT',
+   CFPPHY(3)='SURFRESERV.NEIGE',
+   CFPXFU(1)='CLSTEMPERATURE',
+   CFPXFU(2)='CLSHUMI.RELATIVE',
+   CFPXFU(3)='CLSVENT.ZONAL',
+   CFPXFU(4)='CLSVENT.MERIDIEN',
+   CFPXFU(5)='SURFNEBUL.TOTALE',
+   CFPXFU(6)='SURFNEBUL.HAUTE',
+   CFPXFU(7)='SURFNEBUL.MOYENN',
+   CFPXFU(8)='SURFNEBUL.BASSE',
+   CFPXFU(9)='CLSMAXI.TEMPERAT',
+   CFPXFU(10)='CLSMINI.TEMPERAT',
+   CFPXFU(11)='CLPMHAUT.MOD.XFU',
+   CFPXFU(12)='SURFDIAGHAIL',
+   LCRITSNOWTEMP=.FALSE.,
+   LFPCAPEX=.TRUE.,
+   LFPMOIS=.TRUE.,
+   LFPPACKING=.FALSE.,
+   LWIDER_DOM=.TRUE.,
+   L_READ_MODEL_DATE=.TRUE.,
+   NFITI=1,
+   NFITV=1,
+   NFPCAPE=5,
+   NFPCLI=1,
+   NFPGRIB=1,
+   NFPINPHY=4,
+   NITERPV=8,
+   RENTRA=0.0001,
+   RFP3H(1)=10.,
+   RFP3H(2)=20.,
+   RFP3H(3)=35.,
+   RFP3H(4)=50.,
+   RFP3H(5)=75.,
+   RFP3H(6)=100.,
+   RFP3H(7)=150.,
+   RFP3H(8)=200.,
+   RFP3H(9)=250.,
+   RFP3H(10)=375.,
+   RFP3H(11)=500.,
+   RFP3H(12)=625.,
+   RFP3H(13)=750.,
+   RFP3H(14)=875.,
+   RFP3H(15)=1000.,
+   RFP3H(16)=1125.,
+   RFP3H(17)=1250.,
+   RFP3H(18)=1375.,
+   RFP3H(19)=1500.,
+   RFP3H(20)=1750.,
+   RFP3H(21)=2000.,
+   RFP3H(22)=2250.,
+   RFP3H(23)=2500.,
+   RFP3H(24)=2750.,
+   RFP3H(25)=3000.,
+   RFP3I(1)=-273.15,
+   RFP3I(2)=-263.15,
+   RFP3I(3)=-261.15,
+   RFP3I(4)=-253.15,
+   RFP3P(1)=10000.,
+   RFP3P(2)=12500.,
+   RFP3P(3)=15000.,
+   RFP3P(4)=17500.,
+   RFP3P(5)=20000.,
+   RFP3P(6)=22500.,
+   RFP3P(7)=25000.,
+   RFP3P(8)=27500.,
+   RFP3P(9)=30000.,
+   RFP3P(10)=35000.,
+   RFP3P(11)=40000.,
+   RFP3P(12)=45000.,
+   RFP3P(13)=50000.,
+   RFP3P(14)=55000.,
+   RFP3P(15)=60000.,
+   RFP3P(16)=65000.,
+   RFP3P(17)=70000.,
+   RFP3P(18)=75000.,
+   RFP3P(19)=80000.,
+   RFP3P(20)=85000.,
+   RFP3P(21)=90000.,
+   RFP3P(22)=92500.,
+   RFP3P(23)=95000.,
+   RFP3P(24)=100000.,
+   RFP3PV(1)=0.0000015,
+   RFP3PV(2)=0.000002,
+   RFPCD2=5.,
+   RFPCSAB=50.,
+   RFPVCAP=7000.,
+ /
+ &NAMFPD
+   NLAT(1)=41,
+   NLON(1)=41,
+   RLONC(1)=-0.71,
+   RLATC(1)=44.8,
+   RDELX(1)=0.025,
+   RDELY(1)=0.025,
+ /
+ &NAMFPDY2
+ /
+ &NAMFPDYF
+ /
+ &NAMFPDYH
+ /
+ &NAMFPDYI
+ /
+ &NAMFPDYP
+ /
+ &NAMFPDYS
+ /
+ &NAMFPDYT
+ /
+ &NAMFPDYV
+ /
+ &NAMFPF
+   NFMAX(1)=60,
+   NFMAX(2)=80,
+ /
+ &NAMFPG
+   NFPDISTRIB=1,
+ /
+ &NAMFPIOS
+ /
+ &NAMFPMOVE
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+ /
+ &NAMGFL
+   NGFL_EZDIAG=4,
+   YEZDIAG_NL(1)%CNAME='EZDIAG01',
+   YEZDIAG_NL(1)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(2)%CNAME='EZDIAG02',
+   YEZDIAG_NL(2)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(3)%CNAME='EZDIAG03',
+   YEZDIAG_NL(3)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(4)%CNAME='INPRRTOT3D',
+   YEZDIAG_NL(4)%LREQOUT=.TRUE.,
+   YG_NL%LQM=.TRUE.,
+   YG_NL%LSLHD=.TRUE.,
+   YG_NL%NCOUPLING=-1,
+   YG_NL%NREQIN=1,
+   YG_NL%REFVALC=0.,
+   YIRAD_NL%LGP=.TRUE.,
+   YI_NL%LQM=.TRUE.,
+   YI_NL%LSLHD=.TRUE.,
+   YI_NL%NCOUPLING=-1,
+   YI_NL%NREQIN=1,
+   YI_NL%REFVALC=0.,
+   YLRAD_NL%LGP=.TRUE.,
+   YL_NL%LQM=.TRUE.,
+   YL_NL%LSLHD=.TRUE.,
+   YL_NL%NCOUPLING=-1,
+   YL_NL%NREQIN=1,
+   YL_NL%REFVALC=0.,
+   YQ_NL%LCOMAD=.TRUE.,
+   YQ_NL%LQM=.TRUE.,
+   YQ_NL%LSLHD=.FALSE.,
+   YQ_NL%NREQIN=1,
+   YR_NL%LQM=.TRUE.,
+   YR_NL%LSLHD=.TRUE.,
+   YR_NL%NCOUPLING=-1,
+   YR_NL%NREQIN=1,
+   YR_NL%REFVALC=0.,
+   YS_NL%LQM=.TRUE.,
+   YS_NL%LSLHD=.TRUE.,
+   YS_NL%NCOUPLING=-1,
+   YS_NL%NREQIN=1,
+   YS_NL%REFVALC=0.,
+   YTKE_NL%NCOUPLING=0,
+   YTKE_NL%NREQIN=1,
+ /
+ &NAMGRIB
+ /
+ &NAMGWD
+ /
+ &NAMGWDIAG
+ /
+ &NAMGWWMS
+ /
+ &NAMIAU
+   ALPHAIAU=0.5,
+   LIAU=.FALSE.,
+   TSTARTIAU=1800,
+   TSTOPIAU=5340,
+ /
+ &NAMICE
+ /
+ &NAMINI
+   LDFI=.FALSE.,
+ /
+ &NAMINTFLEX
+ /
+ &NAMIOMI
+ /
+ &NAMIOS
+ /
+ &NAMIO_SERV
+   NIO_SERV_BUF_MAXSIZE=20,
+   NIO_SERV_METHOD=2,
+   NMSG_LEVEL_CLIENT=0,
+   NMSG_LEVEL_SERVER=0,
+   NPROCESS_LEVEL=5,
+   NPROC_IO=0,
+ /
+ &NAMJBCODES
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMOBS
+ /
+ &NAMONEDVAR
+ /
+ &NAMOOPS
+ /
+ &NAMOPH
+   CFNHWF='ECHIS',
+   LINC=.TRUE.,
+   NTIMEFMT=1,
+ /
+ &NAMOPTCMEM
+ /
+ &NAMPAR0
+   LOPT_SCALAR=.TRUE.,
+   NPRINTLEV=1,
+   LMPOFF=.FALSE.,
+   MBX_SIZE=2048000000,
+   MP_TYPE=2,
+   NOUTPUT=1,
+   NPROC=$NPROC,
+$NPRTRW_NPRTRV
+ /
+ &NAMPAR1
+   LEQ_REGIONS=.FALSE.,
+   LSLONDEM=.TRUE.,
+   LSPLIT=.TRUE.,
+   LSYNC_SLCOM=.FALSE.,
+   LSYNC_TRANS=.FALSE.,
+   L_GATHERV_WRGP=.FALSE.,
+   NCOMBFLEN=1800000,
+   NSTRIN=$NSTRIN,
+   NSTROUT=$NSTROUT,
+ /
+ &NAMPARAR
+   CMF_UPDRAFT='RHCJ'
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   CMICRO='ICE3',
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LCRIAUTI=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LFPREC3D=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LOLSMC=.TRUE.,
+   LOSEDIC=.TRUE.,
+   LOSIGMAS=.TRUE.,
+   LOSUBG_COND=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   NPRINTFR=10000,
+   NPTP=1,
+   RCRIAUTC=0.001,
+   RCRIAUTI=0.0002,
+   RT0CRIAUTI=-5.,
+   VSIGQSAT=0.02,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+ /
+ &NAMPHMSE
+   LPGDFWR=.FALSE.,
+ /
+ &NAMPHY
+   LAERODES=.TRUE.,
+   LAEROLAN=.TRUE.,
+   LAEROSEA=.TRUE.,
+   LAEROSOO=.TRUE.,
+   LEDR=.TRUE.,
+   LMPHYS=.TRUE.,
+   LO3ABC=.TRUE.,
+   LRAYFM=.TRUE.,
+ /
+ &NAMPHY0
+   ALMAV=300.,
+   BEDIFV=0.05,
+   ECMNP=3000.,
+   GCCSV=0.,
+   GCVADS=0.8,
+   GCVALFA=0.000045,
+   GCVBETA=0.2,
+   GCVMLT=0.00016,
+   GCVNU=0.000025,
+   GCVPSI=1.,
+   GCVPSIE=1.,
+   GDDEVA=0.25,
+   GDDSDE=0.5,
+   GWDCD=6.,
+   HUCOE=0.5,
+   HUTIL=1.8,
+   QSSC=400.,
+   QSSUSC=0.75,
+   QSSUSS=0.4,
+   QSSUSV=250.,
+   QSUSXC=0.0002,
+   QSUSXS=0.0003,
+   QXRAL=130.,
+   QXRDEL=0.49,
+   QXRHX=0.99,
+   QXRR=0.25,
+   RCVEVAP=0.25,
+   REFLKUO=5000.,
+   REVGSL=15.,
+   SCO=-20.,
+   TDDGP=0.8,
+   TENTR=0.0000025,
+   TENTRX=0.00008,
+   TUDGP=0.8,
+   UHDIFV=0.0008,
+   USURIC=0.175,
+   USURICE=0.5,
+   USURICL=1.,
+   USURID=0.1,
+   USURIDE=0.25,
+   VZ0CM=0.00015,
+   XMAXLM=5000.,
+   XMINLM=10.,
+ /
+ &NAMPHY1
+   ALBMIN=0.65,
+   ALCRIN=0.75,
+   GCGEL=0.00003,
+   GCGELS=0.00005,
+   GNEIMX=1.8,
+   GNEIMXS=1.8,
+   RCTVEG(3)=0.000012,
+   RCTVEG(4)=0.00001,
+ /
+ &NAMPHY2
+   FACRAF=3.8,
+   HTKERAF=20.,
+   LMULAF=.TRUE.,
+   LRAFTKE=.TRUE.,
+   LRAFTUR=.TRUE.,
+   XDAMP=1.,
+   XMULAF=-1.85,
+ /
+ &NAMPHY3
+ /
+ &NAMPHYDS
+ /
+ &NAMPONG
+ /
+ &NAMPPC
+ /
+ &NAMPPVI
+ /
+ &NAMPRE
+ /
+ &NAMRAD15
+ /
+ &NAMRADCMEM
+ /
+ &NAMRCF
+ /
+ &NAMRCOEF
+ /
+ &NAMRES
+ /
+ &NAMRGRI
+ /
+ &NAMRINC
+ /
+ &NAMRIP
+    TSTEP=50.,
+    CSTOP='h2',
+ /
+ &NAMRIP0
+ /
+ &NAMRLX
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPSDT
+ /
+ &NAMSTA
+ /
+ &NAMSTOPH
+ /
+ &NAMSWE
+ /
+ &NAMTESTVAR
+ /
+ &NAMTHLIM
+ /
+ &NAMTOPH
+   ETCVIM=5000.,
+   ETNEBU=5000.,
+   ETPLUI=5000.,
+   XDRMTK=6.0D-7,
+   XDRMTP=800.,
+   XDRMUK=3.0D-7,
+   XDRMUP=800.,
+ /
+ &NAMTRAJP
+ /
+ &NAMTRANS
+ /
+ &NAMTRANS0
+ /
+ &NAMTS
+ /
+ &NAMVAR
+ /
+ &NAMVARBC
+ /
+ &NAMVARBC_AIREP
+ /
+ &NAMVARBC_ALLSKY
+ /
+ &NAMVARBC_GBRAD
+ /
+ &NAMVARBC_RAD
+ /
+ &NAMVARBC_SFCOBS
+ /
+ &NAMVARBC_TCWV
+ /
+ &NAMVARBC_TO3
+ /
+ &NAMVAREPS
+ /
+ &NAMVDF
+ /
+ &NAMVDOZ
+ /
+ &NAMVOLCANO
+ /
+ &NAMVRTL
+ /
+ &NAMVV0
+ /
+ &NAMVV1
+ /
+ &NAMVWRK
+ /
+ &NAMWAVELETJB
+ /
+ &NAMXFU
+   LXCLP=.TRUE.,
+   LXCLS=.TRUE.,
+   LXFU=.TRUE.,
+   LXNEBPA=.TRUE.,
+   LXNEBTT=.TRUE.,
+   LXNUVCLS=.TRUE.,
+   LXPLS=.TRUE.,
+   LXPLSG=.TRUE.,
+   LXQCLS=.TRUE.,
+   LXR=.TRUE.,
+   LXSOIL=.FALSE.,
+   LXTHW=.TRUE.,
+   LXTRT=.TRUE.,
+   LXTTCLS=.TRUE.,
+   LXXDIAGH=.TRUE.,
+   LXXGST=.TRUE.,
+   NFRRAZ=72,
+   NRAZTS(0)=0,
+ /
+ &NAM_CANAPE
+ /
+ &NAM_DISTRIBUTED_VECTORS
+ /
+ &NAPHLC
+ /
+ &NEMCT0
+ /
+ &NEMDIM
+ /
+ &NEMDYN
+ /
+ &NEMELBC0A
+   LESPCPL=.TRUE.,
+   NBICNHX=2,
+   NBICOP=2,
+   NBICOT=2,
+   NBICOU=2,
+   NBICPD=2,
+   NBICVD=2,
+   NECRIPL=1,
+ /
+ &NEMELBC0B
+   NEFRSPCPL=1,
+   NEK0=20,
+   NEK1=30,
+   NEN1=4,
+   NEN2=8,
+   SPNUDDIV=0.01,
+   SPNUDQ=0.,
+   SPNUDT=0.01,
+   SPNUDVOR=0.01,
+   TEFRCL=3600.,
+ /
+ &NEMFPEZO
+ /
+ &NEMGEO
+ /
+ &NEMJK
+ /
+ &NEMVAR
+ /
+ &NEMWAVELET
+ /
+ &NAETLDIAG
+ /
+ &NAMMETHOX
+ /
+ &NAMSPP
+ /
+ &NAMACV
+ /
+ &NAMFPOBJ
+ /
+ &NAMNORGWD
+ /
+ &NAMTRAJ
+ /
+ &NAMSATSIM
+ /
+ &NAMDVISI
+ /
+ &NAMNUDGLH
+ /
+ &NAMPERTPAR
+ /
+FIN
+/bin/cat fort.4
+
+/bin/cat <<FIN > EXSEG1.nam
+ &NAM_DIAG_ISBAN
+   LPGD=.TRUE.,
+   LSURF_MISC_BUDGET=.TRUE.,
+ /
+ &NAM_DIAG_SURFN
+   LCOEF=.TRUE.,
+   LSURF_BUDGET=.TRUE.,
+   N2M=2,
+ /
+ &NAM_ISBAN
+   CSCOND='NP89',
+ /
+ &NAM_REPROD_OPER
+   LREPROD_OPER=.TRUE.,
+ /
+ &NAM_SEAFLUXN
+   CSEA_FLUX='ECUME',
+   LPWG=.FALSE.,
+   LPRECIP=.FALSE.,
+   LPWEBB=.FALSE.,
+ /
+ &NAM_SSON
+   CROUGH='Z01D',
+   XFRACZ0=5.,
+   LDSV=.FALSE.,
+ /
+ &NAM_SURF_ATM
+   XRIMAX=0.2,
+   LNOSOF=.TRUE.,
+ /
+ &NAM_SURF_CSTS
+   XZ0SN=0.01,
+   XZ0HSN=0.001,
+   XEMISSN=0.99,
+ /
+ &NAM_WRITE_DIAG_SURFN
+   LPROVAR_TO_DIAG=.FALSE.,
+   LSELECT=.TRUE.,
+CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS',
+ /
+ &NAM_WRITE_SURF_ATM
+   LNOWRITE_TEXFILE=.TRUE.,
+ /
+FIN
+/bin/cat EXSEG1.nam
+
+#      *****************************************
+#      *  Acquisition du fichier de demarrage  *
+#      *****************************************
+
+echo
+for hh in 0 1 2 3 4 5 6 ; do
+  N=`expr $hh / 1 `
+  set -x
+  ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N}
+  set +x
+done
+set -x
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx
+ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin .
+ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim
+ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx
+ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat .
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat .
+ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz
+
+#      ***************
+#      *  Chargement *
+#      ***************
+
+echo
+set -x
+\ln -s $LOADIR/MASTERODB MASTER
+set +x
+if ldd MASTER | grep openmpi > /dev/null; then
+  #On est sur PC
+  MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}')
+  MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC"
+  GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1
+  export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions
+  export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions
+else
+  #On est sur HPC
+  #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD"
+  NNODES=$SLURM_JOB_NUM_NODES
+  MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES))
+  MPI_TASKS=$SLURM_NTASKS
+  MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --"
+  export OMP_STACKSIZE=4G
+  export KMP_STACKSIZE=4G
+  export KMP_MONITOR_STACKSIZE=4G
+  export DR_HOOK=1
+  export DR_HOOK_IGNORE_SIGNALS=-1
+  export DR_HOOK_SILENT=1
+  export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+  export MPL_MBX_SIZE=2048000000
+  export EC_PROFILE_HEAP=0
+  export EC_PROFILE_MEM=0
+  export EC_MPI_ATEXIT=0
+  export EC_MEMINFO=0
+  export OPENBLAS_NUM_THREADS=1
+  export MKL_CBWR="AUTO,STRICT"
+  export MKL_NUM_THREADS=1
+  export MKL_DEBUG_CPU_TYPE=5
+  export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions
+fi
+echo $MPIRUN
+set +x
+if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi
+
+#      ***************
+#      *  Execution  *
+#      ***************
+
+echo
+echo OMP_NUM_THREADS=$OMP_NUM_THREADS
+set -x
+ulimit -s unlimited
+$MPIRUN $PWD/MASTER >lola
+set +x
+echo
+##if [ -f lola ] ; then
+##  echo;echo Standard output :;echo;cat lola
+##fi
+##if [ -f stderr.* ] ; then
+##  for file in stderr.* ; do
+##    echo;echo $file :;cat $file
+##  done
+##fi
+##if [ -f stdout.* ] ; then
+##echo;echo stdout :;echo;cat stdout.*
+##fi
+##if [ -a NODE.001_01 ] ; then
+##  for file in NODE* ; do
+##    echo;echo Listing $file;echo
+##    cat $file
+##  done
+##fi
+##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then
+### Top 25 for each MPI task :
+##  for file in drhook.prof.* ; do
+##    echo;echo $file :;head -38 $file
+##  done
+##fi
+#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl
+
+#      *******************
+#      *  Sauvegardes    *
+#      *******************
+
+ls
+#if [ -f PFFPOS000+0000 ] ; then
+#  cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID
+#fi
+cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/
+/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001*
+/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00*
+/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz)
+
+#      ****************
+#      *  Epilogue    *
+#      ****************
+
+ls -ltr | grep -v "\->"
+echo Wait_queue :
+ls -ltr $TMPWAIT
+cd $TMPDIR
+\rm -rf rundir.$$
+\rm -rf wait_queue.$$
+date
+set +x
diff --git a/tools/conf_tests/small_3D_alt9/aro48t3.sh b/tools/conf_tests/small_3D_alt9/aro48t3.sh
new file mode 100755
index 0000000000000000000000000000000000000000..17f57ddd295284e51821673472c1e856382967d1
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt9/aro48t3.sh
@@ -0,0 +1,1208 @@
+#!/bin/bash
+#SBATCH -n 4
+#SBATCH --mem=20000
+#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR
+#SBATCH -t 00:10:00
+#SBATCH -N 1
+#SBATCH -p normal256
+
+#The MYLIB varibale must contain the gmkpack pack name
+#The TESTDIR variable must contain the test directory
+#Results will be stored in the local directory
+
+#Other environment varaibles that can be set:
+#OUTPUTDIR
+
+date
+
+OUTPUTDIR=${OUTPUTDIR:-$PWD}
+case=riette2
+#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script
+rekchemin=$TESTDIR
+
+NPROC=4
+NSTRIN=$NPROC
+NSTROUT=1
+NPRTRW_NPRTRV=""
+NPRTRW_NPRTRV="  NPRTRW=$NPROC,
+  NPRTRV=1,"
+export OMP_NUM_THREADS=1
+
+#MYLIB=48t1_main.01%jpdup
+
+export DR_HOOK=1
+#export DR_HOOK_IGNORE_SIGNALS=-1
+export DR_HOOK_NOT_MPI=1
+export DR_HOOK_SILENT=1
+export DR_HOOK_OPT=
+
+export EC_PROFILE_HEAP=0
+export EC_PROFILE_MEM=0
+export EC_MPI_ATEXIT=0
+export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+export EC_MEMINFO=0
+export TVSEARCHPATH=$SOURCE
+
+HOMEPACK=${HOMEPACK:=$HOME/pack}
+SOURCE=$HOMEPACK/$MYLIB/src/local
+LOADIR=$HOMEPACK/$MYLIB/bin
+
+TMPDIR=${TMPDIR:=$HOME/tmp}
+TMPLOC=$TMPDIR/rundir.$$
+TMPWAIT=$TMPDIR/wait_queue.$$
+mkdir $TMPWAIT
+mkdir $TMPLOC
+cd $TMPLOC
+
+export RTTOV_COEFDIR=$PWD
+
+#      **************************
+#      *  Saisie des NAMELISTS  *
+#      **************************
+
+CNMEXP='FPOS'
+
+echo
+/bin/cat <<FIN > fort.4
+ &NACIETEO
+ /
+ &NACOBS
+ /
+ &NACTAN
+ /
+ &NACTEX
+ /
+ &NACVEG
+ /
+ &NADOCK
+ /
+ &NAEAEM7
+ /
+ &NAEAER
+ /
+ &NAECOAPHY
+ /
+ &NAEPHLI
+ /
+ &NAEPHY
+ /
+ &NAERAD
+   LRRTM=.TRUE.,
+   LSRTM=.FALSE.,
+   NAER=1,
+   NICEOPT=3,
+   NLIQOPT=3,
+   NOVLP=6,
+   NOZOCL=2,
+   NRADFR=18,
+   NRADIP=3,
+   NRADLP=2,
+   NSW=6,
+   RLWINHF=1,
+   RRE2DE=0.64952,
+   RSWINHF=1,
+ /
+ &NAERCLI
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMAFN
+   GFP_CLSG%CLNAME='SURFACCGRAUPEL',
+   GFP_CLSP%CLNAME='SURFACCPLUIE',
+   GFP_CLSS%CLNAME='SURFACCNEIGE',
+   GFP_SFIS%IBITS=16,
+   GFP_ST%CLNAME='SURFTEMPERATURE',
+   GFP_ST%IANO=0,
+   GFP_ST%IBITS=12,
+   GFP_X10U%CLNAME='CLSVENT.ZONAL',
+   GFP_X10U%IANO=0,
+   GFP_X10U%IBITS=12,
+   GFP_X10V%CLNAME='CLSVENT.MERIDIEN',
+   GFP_X10V%IANO=0,
+   GFP_X10V%IBITS=12,
+   GFP_X2RH%CLNAME='CLSHUMI.RELATIVE',
+   GFP_X2RH%IANO=0,
+   GFP_X2RH%IBITS=12,
+   GFP_X2T%CLNAME='CLSTEMPERATURE',
+   GFP_X2T%IANO=1,
+   GFP_XCCC%IBITS=8,
+   GFP_XHCC%IBITS=8,
+   GFP_XLCC%IBITS=8,
+   GFP_XLSG%CLNAME='SURFINSGRAUPEL',
+   GFP_XLSP%CLNAME='SURFINSPLUIE',
+   GFP_XLSS%CLNAME='SURFINSNEIGE',
+   GFP_XMCC%IBITS=8,
+   GFP_XN2T%IBITS=12,
+   GFP_XTCC%IBITS=8,
+   GFP_XUGST%CLNAME='CLSU.RAF60M.XFU',
+   GFP_XUGST%IANO=0,
+   GFP_XUGST%IBITS=12,
+   GFP_XVGST%CLNAME='CLSV.RAF60M.XFU',
+   GFP_XVGST%IANO=0,
+   GFP_XVGST%IBITS=12,
+   GFP_XX2T%IBITS=12,
+   GFP_XXDIAGH%IBITS=12,
+   TFP_ABS%ZFK=32.,
+   TFP_CLF%IBITS=6,
+   TFP_EDR%CLNAME='EDR',
+   TFP_EDR%IBITS=16,
+   TFP_EDR%IGRIB=136,
+   TFP_GR%IBITS=12,
+   TFP_HL%IBITS=12,
+   TFP_HTB%IBITS=16,
+   TFP_HTB%LLGP=.TRUE.,
+   TFP_HU%IBITS=12,
+   TFP_MSAT9C2%IBITS=12,
+   TFP_MSAT9C6%IBITS=12,
+   TFP_MSLNH%IBITS=12,
+   TFP_PV%ZFK=64.,
+   TFP_RCLS%IBITS=12,
+   TFP_RR%IBITS=12,
+   TFP_SN%IBITS=12,
+   TFP_T%IBITS=12,
+   TFP_TCLS%IBITS=12,
+   TFP_TH%IBITS=12,
+   TFP_THPW%IBITS=12,
+   TFP_THV%IBITS=12,
+   TFP_TN%IBITS=12,
+   TFP_TWV%IBITS=12,
+   TFP_TX%IBITS=12,
+   TFP_U%IBITS=12,
+   TFP_V%IBITS=12,
+   TFP_VOR%ZFK=32.,
+   TFP_VV%ZFK=32.,
+ /
+ &NAMARG
+   CNMEXP='${CNMEXP}',
+   LECMWF=.FALSE.,
+   LELAM=.TRUE.,
+   LSLAG=.TRUE.,
+   NCONF=1,
+   NSUPERSEDE=1,
+ /
+ &NAMARPHY
+   LKFBCONV=.FALSE.,
+   LKFBD=.FALSE.,
+   LKFBS=.FALSE.,
+   LMFSHAL=.TRUE.,
+   LMICRO=.TRUE.,
+   LMPA=.TRUE.,
+   LMSE=.TRUE.,
+   LTURB=.TRUE.,
+ /
+ &NAMCA
+ /
+ &NAMCAPE
+ /
+ &NAMCFU
+   LCUMFU=.TRUE.,
+   LFPLS=.TRUE.,
+   LFPLSG=.TRUE.,
+   LFR=.TRUE.,
+   LFRRC=.TRUE.,
+   LFSF=.TRUE.,
+   LNEBPAR=.TRUE.,
+   LNEBTT=.TRUE.,
+   LRAYD=.TRUE.,
+   LRAYS=.TRUE.,
+ /
+ &NAMCHEM
+ /
+ &NAMCHET
+ /
+ &NAMCHK
+ /
+ &NAMCLA
+ /
+ &NAMCLDP
+ /
+ &NAMCLI
+ /
+ &NAMCLOP15
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LNHEE=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   LSPRT=.TRUE.,
+   LTWOTL=.TRUE.,
+   NFPOS=1,
+   NFRSDI=18,
+   NSDITS(0)=0,
+   NFRHIS=72,
+   NHISTS(0)=0,
+   NFRPOS=72,
+   NPOSTS(0)=0,
+   NFRSFXHIS=72,
+   NSFXHISTS(0)=0,
+   NFRDHFD=72,
+   NDHFDTS(0)=0,
+ /
+ &NAMCT1
+   LRFILAF=.FALSE.,
+   N1HIS=1,
+   N1POS=1,
+   N1RES=0,
+   N1SDI=1,
+   N1SFXHIS=1,
+   N1GDI=0,
+ /
+ &NAMCUMF
+ /
+ &NAMCUMFS
+ /
+ &NAMCVER
+ /
+ &NAMCVMNH
+ /
+ &NAMDDH
+   LDDH_OMP=.TRUE.,
+   LHDDOP=.TRUE.,
+   LHDHKS=.TRUE.,
+   LHDEFD=.TRUE.,
+   LFLEXDIA=.TRUE.,
+   BDEDDH(1,1)=3,
+   BDEDDH(2,1)=1,
+   BDEDDH(3,1)=358.8
+   BDEDDH(4,1)=45.1
+   BDEDDH(5,1)=360.3
+   BDEDDH(6,1)=44.5
+ /
+ &NAMDFI
+ /
+ &NAMDIM
+   NPROMA=-50,
+ /
+ &NAMDIMO
+ /
+ &NAMDIM_TRAJ
+ /
+ &NAMDPHY
+ /
+ &NAMDPRECIPS
+ /
+ &NAMDYN
+   LADVF=.TRUE.,
+   LQMPD=.FALSE.,
+   LQMT=.FALSE.,
+   LQMVD=.FALSE.,
+   LRHDI_LASTITERPC=.TRUE.,
+   NITMP=4,
+   NSITER=1,
+   NSPDLAG=3,
+   NSVDLAG=3,
+   NTLAG=3,
+   NVLAG=3,
+   NWLAG=3,
+   RDAMPDIV=20.,
+   RDAMPPD=20.,
+   RDAMPQ=0.,
+   RDAMPT=0.,
+   RDAMPVD=20.,
+   RDAMPVOR=20.,
+   REPS1=0.,
+   REPS2=0.,
+   REPSM1=0.,
+   REPSM2=0.,
+   REPSP1=0.,
+   SDRED=1.,
+   SIPR=90000.,
+   SITR=350.,
+   SITRA=100.,
+   SLHDA0=0.25,
+   SLHDD00=0.000065,
+   VESL=0.05,
+   XIDT=0.,
+   ZSLHDP1=1.7,
+   ZSLHDP3=0.6,
+ /
+ &NAMDYNA
+   LCOMADH=.TRUE.,
+   LCOMADV=.FALSE.,
+   LCOMAD_GFL=.TRUE.,
+   LCOMAD_SP=.TRUE.,
+   LCOMAD_SPD=.TRUE.,
+   LCOMAD_SVD=.TRUE.,
+   LCOMAD_T=.TRUE.,
+   LCOMAD_W=.TRUE.,
+   LGWADV=.TRUE.,
+   LNESC=.TRUE.,
+   LPC_CHEAP=.TRUE.,
+   LPC_FULL=.TRUE.,
+   LRDBBC=.FALSE.,
+   LSETTLS=.FALSE.,
+   LSETTLST=.TRUE.,
+   LSLHD_GFL=.TRUE.,
+   LSLHD_OLD=.FALSE.,
+   LSLHD_SPD=.FALSE.,
+   LSLHD_SVD=.FALSE.,
+   LSLHD_T=.FALSE.,
+   LSLHD_W=.FALSE.,
+   ND4SYS=2,
+   NDLNPR=1,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+ /
+ &NAMDYNCORE
+ /
+ &NAMEMIS_CONF
+ /
+ &NAMENKF
+ /
+ &NAMFA
+   CMODEL='OUTPUTID',
+   LEXTERN=.TRUE.,
+   LSUPPDATE=.FALSE.,
+   NBITCS=-1,
+   NBITPG=-1,
+   NSTRON=-1,
+ /
+ &NAMFAINIT
+   JPXTRO=2000,
+ /
+ &NAMFPC
+   CFP2DF(1)='SURFPRESSION',
+   CFP2DF(2)='MSL_NHPRESSURE',
+   CFP2DF(3)='SURFTOT.WAT.VAPO',
+   CFP2DF(4)='SURFISOTPW0.MALT',
+   CFP2DF(5)='SURFCAPE.POS.F00',
+   CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(8)='SURFREFLECT.MAX',
+   CFP2DF(9)='SURFISOTPW1.MALT',
+   CFP2DF(10)='SURFISOTPW2.MALT',
+   CFP3DF(1)='GEOPOTENTIEL',
+   CFP3DF(2)='TEMPERATURE',
+   CFP3DF(3)='VENT_ZONAL',
+   CFP3DF(4)='VENT_MERIDIEN',
+   CFP3DF(5)='HUMI_RELATIVE',
+   CFP3DF(6)='THETA_PRIM_W',
+   CFP3DF(7)='PRESSURE',
+   CFP3DF(8)='ABS_VORTICITY',
+   CFP3DF(9)='VITESSE_VERTICALE',
+   CFP3DF(10)='TEMPE_POTENT',
+   CFP3DF(11)='POT_VORTICIT',
+   CFP3DF(12)='SIM_REFLECTI',
+   CFP3DF(13)='RAIN',
+   CFP3DF(14)='SNOW',
+   CFP3DF(15)='GRAUPEL',
+   CFP3DF(16)='ICE_CRYSTAL',
+   CFP3DF(17)='CLOUD_WATER',
+   CFP3DF(18)='VERT.VELOCIT',
+   CFP3DF(19)='DIVERGENCE',
+   CFP3DF(20)='THETA_VIRTUA',
+   CFP3DF(21)='TKE',
+   CFP3DF(22)='CLOUD_FRACTI',
+   CFP3DF(23)='ISOT_ALTIT',
+   CFP3DF(24)='EDR',
+   CFPCFU(1)='SURFTENS.TOTA.ZO',
+   CFPCFU(2)='SURFTENS.TOTA.ME',
+   CFPCFU(3)='SURFACCPLUIE',
+   CFPCFU(4)='SURFACCNEIGE',
+   CFPCFU(5)='SURFACCGRAUPEL',
+   CFPCFU(6)='SOMMFLU.RAY.SOLA',
+   CFPCFU(7)='SURFFLU.RAY.SOLA',
+   CFPCFU(8)='SOMMFLU.RAY.THER',
+   CFPCFU(9)='SURFFLU.RAY.THER',
+   CFPCFU(10)='SURFFLU.LAT.MTOT',
+   CFPCFU(11)='SURFFLU.MTOTA.NE',
+   CFPCFU(12)='SURFFLU.CHA.SENS',
+   CFPCFU(13)='SURFRAYT SOLA DE',
+   CFPCFU(14)='SURFRAYT THER DE',
+   CFPCFU(15)='SURFRAYT SOL CL',
+   CFPCFU(16)='SURFRAYT THER CL',
+   CFPCFU(17)='SURFRAYT DIR SUR',
+   CFPDOM(1)='FRANGP0025',
+   CFPFMT='LALON',
+   CFPPHY(1)='SURFTEMPERATURE',
+   CFPPHY(2)='INTSURFGEOPOTENT',
+   CFPPHY(3)='SURFRESERV.NEIGE',
+   CFPXFU(1)='CLSTEMPERATURE',
+   CFPXFU(2)='CLSHUMI.RELATIVE',
+   CFPXFU(3)='CLSVENT.ZONAL',
+   CFPXFU(4)='CLSVENT.MERIDIEN',
+   CFPXFU(5)='SURFNEBUL.TOTALE',
+   CFPXFU(6)='SURFNEBUL.HAUTE',
+   CFPXFU(7)='SURFNEBUL.MOYENN',
+   CFPXFU(8)='SURFNEBUL.BASSE',
+   CFPXFU(9)='CLSMAXI.TEMPERAT',
+   CFPXFU(10)='CLSMINI.TEMPERAT',
+   CFPXFU(11)='CLPMHAUT.MOD.XFU',
+   CFPXFU(12)='SURFDIAGHAIL',
+   LCRITSNOWTEMP=.FALSE.,
+   LFPCAPEX=.TRUE.,
+   LFPMOIS=.TRUE.,
+   LFPPACKING=.FALSE.,
+   LWIDER_DOM=.TRUE.,
+   L_READ_MODEL_DATE=.TRUE.,
+   NFITI=1,
+   NFITV=1,
+   NFPCAPE=5,
+   NFPCLI=1,
+   NFPGRIB=1,
+   NFPINPHY=4,
+   NITERPV=8,
+   RENTRA=0.0001,
+   RFP3H(1)=10.,
+   RFP3H(2)=20.,
+   RFP3H(3)=35.,
+   RFP3H(4)=50.,
+   RFP3H(5)=75.,
+   RFP3H(6)=100.,
+   RFP3H(7)=150.,
+   RFP3H(8)=200.,
+   RFP3H(9)=250.,
+   RFP3H(10)=375.,
+   RFP3H(11)=500.,
+   RFP3H(12)=625.,
+   RFP3H(13)=750.,
+   RFP3H(14)=875.,
+   RFP3H(15)=1000.,
+   RFP3H(16)=1125.,
+   RFP3H(17)=1250.,
+   RFP3H(18)=1375.,
+   RFP3H(19)=1500.,
+   RFP3H(20)=1750.,
+   RFP3H(21)=2000.,
+   RFP3H(22)=2250.,
+   RFP3H(23)=2500.,
+   RFP3H(24)=2750.,
+   RFP3H(25)=3000.,
+   RFP3I(1)=-273.15,
+   RFP3I(2)=-263.15,
+   RFP3I(3)=-261.15,
+   RFP3I(4)=-253.15,
+   RFP3P(1)=10000.,
+   RFP3P(2)=12500.,
+   RFP3P(3)=15000.,
+   RFP3P(4)=17500.,
+   RFP3P(5)=20000.,
+   RFP3P(6)=22500.,
+   RFP3P(7)=25000.,
+   RFP3P(8)=27500.,
+   RFP3P(9)=30000.,
+   RFP3P(10)=35000.,
+   RFP3P(11)=40000.,
+   RFP3P(12)=45000.,
+   RFP3P(13)=50000.,
+   RFP3P(14)=55000.,
+   RFP3P(15)=60000.,
+   RFP3P(16)=65000.,
+   RFP3P(17)=70000.,
+   RFP3P(18)=75000.,
+   RFP3P(19)=80000.,
+   RFP3P(20)=85000.,
+   RFP3P(21)=90000.,
+   RFP3P(22)=92500.,
+   RFP3P(23)=95000.,
+   RFP3P(24)=100000.,
+   RFP3PV(1)=0.0000015,
+   RFP3PV(2)=0.000002,
+   RFPCD2=5.,
+   RFPCSAB=50.,
+   RFPVCAP=7000.,
+ /
+ &NAMFPD
+   NLAT(1)=41,
+   NLON(1)=41,
+   RLONC(1)=-0.71,
+   RLATC(1)=44.8,
+   RDELX(1)=0.025,
+   RDELY(1)=0.025,
+ /
+ &NAMFPDY2
+ /
+ &NAMFPDYF
+ /
+ &NAMFPDYH
+ /
+ &NAMFPDYI
+ /
+ &NAMFPDYP
+ /
+ &NAMFPDYS
+ /
+ &NAMFPDYT
+ /
+ &NAMFPDYV
+ /
+ &NAMFPF
+   NFMAX(1)=60,
+   NFMAX(2)=80,
+ /
+ &NAMFPG
+   NFPDISTRIB=1,
+ /
+ &NAMFPIOS
+ /
+ &NAMFPMOVE
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+ /
+ &NAMGFL
+   NGFL_EZDIAG=4,
+   YEZDIAG_NL(1)%CNAME='EZDIAG01',
+   YEZDIAG_NL(1)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(2)%CNAME='EZDIAG02',
+   YEZDIAG_NL(2)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(3)%CNAME='EZDIAG03',
+   YEZDIAG_NL(3)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(4)%CNAME='INPRRTOT3D',
+   YEZDIAG_NL(4)%LREQOUT=.TRUE.,
+   YG_NL%LQM=.TRUE.,
+   YG_NL%LSLHD=.TRUE.,
+   YG_NL%NCOUPLING=-1,
+   YG_NL%NREQIN=1,
+   YG_NL%REFVALC=0.,
+   YIRAD_NL%LGP=.TRUE.,
+   YI_NL%LQM=.TRUE.,
+   YI_NL%LSLHD=.TRUE.,
+   YI_NL%NCOUPLING=-1,
+   YI_NL%NREQIN=1,
+   YI_NL%REFVALC=0.,
+   YLRAD_NL%LGP=.TRUE.,
+   YL_NL%LQM=.TRUE.,
+   YL_NL%LSLHD=.TRUE.,
+   YL_NL%NCOUPLING=-1,
+   YL_NL%NREQIN=1,
+   YL_NL%REFVALC=0.,
+   YQ_NL%LCOMAD=.TRUE.,
+   YQ_NL%LQM=.TRUE.,
+   YQ_NL%LSLHD=.FALSE.,
+   YQ_NL%NREQIN=1,
+   YR_NL%LQM=.TRUE.,
+   YR_NL%LSLHD=.TRUE.,
+   YR_NL%NCOUPLING=-1,
+   YR_NL%NREQIN=1,
+   YR_NL%REFVALC=0.,
+   YS_NL%LQM=.TRUE.,
+   YS_NL%LSLHD=.TRUE.,
+   YS_NL%NCOUPLING=-1,
+   YS_NL%NREQIN=1,
+   YS_NL%REFVALC=0.,
+   YTKE_NL%NCOUPLING=0,
+   YTKE_NL%NREQIN=1,
+ /
+ &NAMGRIB
+ /
+ &NAMGWD
+ /
+ &NAMGWDIAG
+ /
+ &NAMGWWMS
+ /
+ &NAMIAU
+   ALPHAIAU=0.5,
+   LIAU=.FALSE.,
+   TSTARTIAU=1800,
+   TSTOPIAU=5340,
+ /
+ &NAMICE
+ /
+ &NAMINI
+   LDFI=.FALSE.,
+ /
+ &NAMINTFLEX
+ /
+ &NAMIOMI
+ /
+ &NAMIOS
+ /
+ &NAMIO_SERV
+   NIO_SERV_BUF_MAXSIZE=20,
+   NIO_SERV_METHOD=2,
+   NMSG_LEVEL_CLIENT=0,
+   NMSG_LEVEL_SERVER=0,
+   NPROCESS_LEVEL=5,
+   NPROC_IO=0,
+ /
+ &NAMJBCODES
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMOBS
+ /
+ &NAMONEDVAR
+ /
+ &NAMOOPS
+ /
+ &NAMOPH
+   CFNHWF='ECHIS',
+   LINC=.TRUE.,
+   NTIMEFMT=1,
+ /
+ &NAMOPTCMEM
+ /
+ &NAMPAR0
+   LOPT_SCALAR=.TRUE.,
+   NPRINTLEV=1,
+   LMPOFF=.FALSE.,
+   MBX_SIZE=2048000000,
+   MP_TYPE=2,
+   NOUTPUT=1,
+   NPROC=$NPROC,
+$NPRTRW_NPRTRV
+ /
+ &NAMPAR1
+   LEQ_REGIONS=.FALSE.,
+   LSLONDEM=.TRUE.,
+   LSPLIT=.TRUE.,
+   LSYNC_SLCOM=.FALSE.,
+   LSYNC_TRANS=.FALSE.,
+   L_GATHERV_WRGP=.FALSE.,
+   NCOMBFLEN=1800000,
+   NSTRIN=$NSTRIN,
+   NSTROUT=$NSTROUT,
+ /
+ &NAMPARAR
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   CMICRO='OLD3',
+   LOCND2=.TRUE.,
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LCRIAUTI=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LFPREC3D=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LOLSMC=.TRUE.,
+   LOSEDIC=.TRUE.,
+   LOSIGMAS=.TRUE.,
+   LOSUBG_COND=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   NPRINTFR=10000,
+   NPTP=1,
+   RCRIAUTC=0.001,
+   RCRIAUTI=0.0002,
+   RT0CRIAUTI=-5.,
+   VSIGQSAT=0.02,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+ /
+ &NAMPHMSE
+   LPGDFWR=.FALSE.,
+ /
+ &NAMPHY
+   LAERODES=.TRUE.,
+   LAEROLAN=.TRUE.,
+   LAEROSEA=.TRUE.,
+   LAEROSOO=.TRUE.,
+   LEDR=.TRUE.,
+   LMPHYS=.TRUE.,
+   LO3ABC=.TRUE.,
+   LRAYFM=.TRUE.,
+ /
+ &NAMPHY0
+   ALMAV=300.,
+   BEDIFV=0.05,
+   ECMNP=3000.,
+   GCCSV=0.,
+   GCVADS=0.8,
+   GCVALFA=0.000045,
+   GCVBETA=0.2,
+   GCVMLT=0.00016,
+   GCVNU=0.000025,
+   GCVPSI=1.,
+   GCVPSIE=1.,
+   GDDEVA=0.25,
+   GDDSDE=0.5,
+   GWDCD=6.,
+   HUCOE=0.5,
+   HUTIL=1.8,
+   QSSC=400.,
+   QSSUSC=0.75,
+   QSSUSS=0.4,
+   QSSUSV=250.,
+   QSUSXC=0.0002,
+   QSUSXS=0.0003,
+   QXRAL=130.,
+   QXRDEL=0.49,
+   QXRHX=0.99,
+   QXRR=0.25,
+   RCVEVAP=0.25,
+   REFLKUO=5000.,
+   REVGSL=15.,
+   SCO=-20.,
+   TDDGP=0.8,
+   TENTR=0.0000025,
+   TENTRX=0.00008,
+   TUDGP=0.8,
+   UHDIFV=0.0008,
+   USURIC=0.175,
+   USURICE=0.5,
+   USURICL=1.,
+   USURID=0.1,
+   USURIDE=0.25,
+   VZ0CM=0.00015,
+   XMAXLM=5000.,
+   XMINLM=10.,
+ /
+ &NAMPHY1
+   ALBMIN=0.65,
+   ALCRIN=0.75,
+   GCGEL=0.00003,
+   GCGELS=0.00005,
+   GNEIMX=1.8,
+   GNEIMXS=1.8,
+   RCTVEG(3)=0.000012,
+   RCTVEG(4)=0.00001,
+ /
+ &NAMPHY2
+   FACRAF=3.8,
+   HTKERAF=20.,
+   LMULAF=.TRUE.,
+   LRAFTKE=.TRUE.,
+   LRAFTUR=.TRUE.,
+   XDAMP=1.,
+   XMULAF=-1.85,
+ /
+ &NAMPHY3
+ /
+ &NAMPHYDS
+ /
+ &NAMPONG
+ /
+ &NAMPPC
+ /
+ &NAMPPVI
+ /
+ &NAMPRE
+ /
+ &NAMRAD15
+ /
+ &NAMRADCMEM
+ /
+ &NAMRCF
+ /
+ &NAMRCOEF
+ /
+ &NAMRES
+ /
+ &NAMRGRI
+ /
+ &NAMRINC
+ /
+ &NAMRIP
+    TSTEP=50.,
+    CSTOP='h2',
+ /
+ &NAMRIP0
+ /
+ &NAMRLX
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPSDT
+ /
+ &NAMSTA
+ /
+ &NAMSTOPH
+ /
+ &NAMSWE
+ /
+ &NAMTESTVAR
+ /
+ &NAMTHLIM
+ /
+ &NAMTOPH
+   ETCVIM=5000.,
+   ETNEBU=5000.,
+   ETPLUI=5000.,
+   XDRMTK=6.0D-7,
+   XDRMTP=800.,
+   XDRMUK=3.0D-7,
+   XDRMUP=800.,
+ /
+ &NAMTRAJP
+ /
+ &NAMTRANS
+ /
+ &NAMTRANS0
+ /
+ &NAMTS
+ /
+ &NAMVAR
+ /
+ &NAMVARBC
+ /
+ &NAMVARBC_AIREP
+ /
+ &NAMVARBC_ALLSKY
+ /
+ &NAMVARBC_GBRAD
+ /
+ &NAMVARBC_RAD
+ /
+ &NAMVARBC_SFCOBS
+ /
+ &NAMVARBC_TCWV
+ /
+ &NAMVARBC_TO3
+ /
+ &NAMVAREPS
+ /
+ &NAMVDF
+ /
+ &NAMVDOZ
+ /
+ &NAMVOLCANO
+ /
+ &NAMVRTL
+ /
+ &NAMVV0
+ /
+ &NAMVV1
+ /
+ &NAMVWRK
+ /
+ &NAMWAVELETJB
+ /
+ &NAMXFU
+   LXCLP=.TRUE.,
+   LXCLS=.TRUE.,
+   LXFU=.TRUE.,
+   LXNEBPA=.TRUE.,
+   LXNEBTT=.TRUE.,
+   LXNUVCLS=.TRUE.,
+   LXPLS=.TRUE.,
+   LXPLSG=.TRUE.,
+   LXQCLS=.TRUE.,
+   LXR=.TRUE.,
+   LXSOIL=.FALSE.,
+   LXTHW=.TRUE.,
+   LXTRT=.TRUE.,
+   LXTTCLS=.TRUE.,
+   LXXDIAGH=.TRUE.,
+   LXXGST=.TRUE.,
+   NFRRAZ=72,
+   NRAZTS(0)=0,
+ /
+ &NAM_CANAPE
+ /
+ &NAM_DISTRIBUTED_VECTORS
+ /
+ &NAPHLC
+ /
+ &NEMCT0
+ /
+ &NEMDIM
+ /
+ &NEMDYN
+ /
+ &NEMELBC0A
+   LESPCPL=.TRUE.,
+   NBICNHX=2,
+   NBICOP=2,
+   NBICOT=2,
+   NBICOU=2,
+   NBICPD=2,
+   NBICVD=2,
+   NECRIPL=1,
+ /
+ &NEMELBC0B
+   NEFRSPCPL=1,
+   NEK0=20,
+   NEK1=30,
+   NEN1=4,
+   NEN2=8,
+   SPNUDDIV=0.01,
+   SPNUDQ=0.,
+   SPNUDT=0.01,
+   SPNUDVOR=0.01,
+   TEFRCL=3600.,
+ /
+ &NEMFPEZO
+ /
+ &NEMGEO
+ /
+ &NEMJK
+ /
+ &NEMVAR
+ /
+ &NEMWAVELET
+ /
+ &NAETLDIAG
+ /
+ &NAMMETHOX
+ /
+ &NAMSPP
+ /
+ &NAMACV
+ /
+ &NAMFPOBJ
+ /
+ &NAMNORGWD
+ /
+ &NAMTRAJ
+ /
+ &NAMSATSIM
+ /
+ &NAMDVISI
+ /
+ &NAMNUDGLH
+ /
+ &NAMPERTPAR
+ /
+FIN
+/bin/cat fort.4
+
+/bin/cat <<FIN > EXSEG1.nam
+ &NAM_DIAG_ISBAN
+   LPGD=.TRUE.,
+   LSURF_MISC_BUDGET=.TRUE.,
+ /
+ &NAM_DIAG_SURFN
+   LCOEF=.TRUE.,
+   LSURF_BUDGET=.TRUE.,
+   N2M=2,
+ /
+ &NAM_ISBAN
+   CSCOND='NP89',
+ /
+ &NAM_REPROD_OPER
+   LREPROD_OPER=.TRUE.,
+ /
+ &NAM_SEAFLUXN
+   CSEA_FLUX='ECUME',
+   LPWG=.FALSE.,
+   LPRECIP=.FALSE.,
+   LPWEBB=.FALSE.,
+ /
+ &NAM_SSON
+   CROUGH='Z01D',
+   XFRACZ0=5.,
+   LDSV=.FALSE.,
+ /
+ &NAM_SURF_ATM
+   XRIMAX=0.2,
+   LNOSOF=.TRUE.,
+ /
+ &NAM_SURF_CSTS
+   XZ0SN=0.01,
+   XZ0HSN=0.001,
+   XEMISSN=0.99,
+ /
+ &NAM_WRITE_DIAG_SURFN
+   LPROVAR_TO_DIAG=.FALSE.,
+   LSELECT=.TRUE.,
+CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS',
+ /
+ &NAM_WRITE_SURF_ATM
+   LNOWRITE_TEXFILE=.TRUE.,
+ /
+FIN
+/bin/cat EXSEG1.nam
+
+#      *****************************************
+#      *  Acquisition du fichier de demarrage  *
+#      *****************************************
+
+echo
+for hh in 0 1 2 3 4 5 6 ; do
+  N=`expr $hh / 1 `
+  set -x
+  ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N}
+  set +x
+done
+set -x
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx
+ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin .
+ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim
+ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx
+ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat .
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat .
+ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz
+
+#      ***************
+#      *  Chargement *
+#      ***************
+
+echo
+set -x
+\ln -s $LOADIR/MASTERODB MASTER
+set +x
+if ldd MASTER | grep openmpi > /dev/null; then
+  #On est sur PC
+  MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}')
+  MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC"
+  GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1
+  export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions
+  export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions
+else
+  #On est sur HPC
+  #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD"
+  NNODES=$SLURM_JOB_NUM_NODES
+  MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES))
+  MPI_TASKS=$SLURM_NTASKS
+  MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --"
+  export OMP_STACKSIZE=4G
+  export KMP_STACKSIZE=4G
+  export KMP_MONITOR_STACKSIZE=4G
+  export DR_HOOK=1
+  export DR_HOOK_IGNORE_SIGNALS=-1
+  export DR_HOOK_SILENT=1
+  export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+  export MPL_MBX_SIZE=2048000000
+  export EC_PROFILE_HEAP=0
+  export EC_PROFILE_MEM=0
+  export EC_MPI_ATEXIT=0
+  export EC_MEMINFO=0
+  export OPENBLAS_NUM_THREADS=1
+  export MKL_CBWR="AUTO,STRICT"
+  export MKL_NUM_THREADS=1
+  export MKL_DEBUG_CPU_TYPE=5
+  export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions
+fi
+echo $MPIRUN
+set +x
+if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi
+
+#      ***************
+#      *  Execution  *
+#      ***************
+
+echo
+echo OMP_NUM_THREADS=$OMP_NUM_THREADS
+set -x
+ulimit -s unlimited
+$MPIRUN $PWD/MASTER >lola
+set +x
+echo
+##if [ -f lola ] ; then
+##  echo;echo Standard output :;echo;cat lola
+##fi
+##if [ -f stderr.* ] ; then
+##  for file in stderr.* ; do
+##    echo;echo $file :;cat $file
+##  done
+##fi
+##if [ -f stdout.* ] ; then
+##echo;echo stdout :;echo;cat stdout.*
+##fi
+##if [ -a NODE.001_01 ] ; then
+##  for file in NODE* ; do
+##    echo;echo Listing $file;echo
+##    cat $file
+##  done
+##fi
+##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then
+### Top 25 for each MPI task :
+##  for file in drhook.prof.* ; do
+##    echo;echo $file :;head -38 $file
+##  done
+##fi
+#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl
+
+#      *******************
+#      *  Sauvegardes    *
+#      *******************
+
+ls
+#if [ -f PFFPOS000+0000 ] ; then
+#  cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID
+#fi
+cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/
+/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001*
+/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00*
+/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz)
+
+#      ****************
+#      *  Epilogue    *
+#      ****************
+
+ls -ltr | grep -v "\->"
+echo Wait_queue :
+ls -ltr $TMPWAIT
+cd $TMPDIR
+\rm -rf rundir.$$
+\rm -rf wait_queue.$$
+date
+set +x
diff --git a/tools/conf_tests/small_3D_np1/aro48t3.sh b/tools/conf_tests/small_3D_np1/aro48t3.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a833e9977afcafae3b60e863f478557e7d97e7be
--- /dev/null
+++ b/tools/conf_tests/small_3D_np1/aro48t3.sh
@@ -0,0 +1,1207 @@
+#!/bin/bash
+#SBATCH -n 1
+#SBATCH --mem=20000
+#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR
+#SBATCH -t 00:10:00
+#SBATCH -N 1
+#SBATCH -p normal256
+
+#The MYLIB variable must contain the gmkpack pack name
+#The TESTDIR variable must contain the test directory
+#Results will be stored in the local directory
+
+#Other environment varaibles that can be set:
+#OUTPUTDIR
+
+date
+
+OUTPUTDIR=${OUTPUTDIR:-$PWD}
+case=riette2
+#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script
+rekchemin=$TESTDIR
+
+NPROC=1
+NSTRIN=$NPROC
+NSTROUT=1
+NPRTRW_NPRTRV=""
+NPRTRW_NPRTRV="  NPRTRW=$NPROC,
+  NPRTRV=1,"
+export OMP_NUM_THREADS=1
+
+#MYLIB=48t1_main.01%jpdup
+
+export DR_HOOK=1
+#export DR_HOOK_IGNORE_SIGNALS=-1
+export DR_HOOK_NOT_MPI=1
+export DR_HOOK_SILENT=1
+export DR_HOOK_OPT=
+
+export EC_PROFILE_HEAP=0
+export EC_PROFILE_MEM=0
+export EC_MPI_ATEXIT=0
+export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+export EC_MEMINFO=0
+export TVSEARCHPATH=$SOURCE
+
+HOMEPACK=${HOMEPACK:=$HOME/pack}
+SOURCE=$HOMEPACK/$MYLIB/src/local
+LOADIR=$HOMEPACK/$MYLIB/bin
+
+TMPDIR=${TMPDIR:=$HOME/tmp}
+TMPLOC=$TMPDIR/rundir.$$
+TMPWAIT=$TMPDIR/wait_queue.$$
+mkdir $TMPWAIT
+mkdir $TMPLOC
+cd $TMPLOC
+
+export RTTOV_COEFDIR=$PWD
+
+#      **************************
+#      *  Saisie des NAMELISTS  *
+#      **************************
+
+CNMEXP='FPOS'
+
+echo
+/bin/cat <<FIN > fort.4
+ &NACIETEO
+ /
+ &NACOBS
+ /
+ &NACTAN
+ /
+ &NACTEX
+ /
+ &NACVEG
+ /
+ &NADOCK
+ /
+ &NAEAEM7
+ /
+ &NAEAER
+ /
+ &NAECOAPHY
+ /
+ &NAEPHLI
+ /
+ &NAEPHY
+ /
+ &NAERAD
+   LRRTM=.TRUE.,
+   LSRTM=.FALSE.,
+   NAER=1,
+   NICEOPT=3,
+   NLIQOPT=3,
+   NOVLP=6,
+   NOZOCL=2,
+   NRADFR=18,
+   NRADIP=3,
+   NRADLP=2,
+   NSW=6,
+   RLWINHF=1,
+   RRE2DE=0.64952,
+   RSWINHF=1,
+ /
+ &NAERCLI
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMAFN
+   GFP_CLSG%CLNAME='SURFACCGRAUPEL',
+   GFP_CLSP%CLNAME='SURFACCPLUIE',
+   GFP_CLSS%CLNAME='SURFACCNEIGE',
+   GFP_SFIS%IBITS=16,
+   GFP_ST%CLNAME='SURFTEMPERATURE',
+   GFP_ST%IANO=0,
+   GFP_ST%IBITS=12,
+   GFP_X10U%CLNAME='CLSVENT.ZONAL',
+   GFP_X10U%IANO=0,
+   GFP_X10U%IBITS=12,
+   GFP_X10V%CLNAME='CLSVENT.MERIDIEN',
+   GFP_X10V%IANO=0,
+   GFP_X10V%IBITS=12,
+   GFP_X2RH%CLNAME='CLSHUMI.RELATIVE',
+   GFP_X2RH%IANO=0,
+   GFP_X2RH%IBITS=12,
+   GFP_X2T%CLNAME='CLSTEMPERATURE',
+   GFP_X2T%IANO=1,
+   GFP_XCCC%IBITS=8,
+   GFP_XHCC%IBITS=8,
+   GFP_XLCC%IBITS=8,
+   GFP_XLSG%CLNAME='SURFINSGRAUPEL',
+   GFP_XLSP%CLNAME='SURFINSPLUIE',
+   GFP_XLSS%CLNAME='SURFINSNEIGE',
+   GFP_XMCC%IBITS=8,
+   GFP_XN2T%IBITS=12,
+   GFP_XTCC%IBITS=8,
+   GFP_XUGST%CLNAME='CLSU.RAF60M.XFU',
+   GFP_XUGST%IANO=0,
+   GFP_XUGST%IBITS=12,
+   GFP_XVGST%CLNAME='CLSV.RAF60M.XFU',
+   GFP_XVGST%IANO=0,
+   GFP_XVGST%IBITS=12,
+   GFP_XX2T%IBITS=12,
+   GFP_XXDIAGH%IBITS=12,
+   TFP_ABS%ZFK=32.,
+   TFP_CLF%IBITS=6,
+   TFP_EDR%CLNAME='EDR',
+   TFP_EDR%IBITS=16,
+   TFP_EDR%IGRIB=136,
+   TFP_GR%IBITS=12,
+   TFP_HL%IBITS=12,
+   TFP_HTB%IBITS=16,
+   TFP_HTB%LLGP=.TRUE.,
+   TFP_HU%IBITS=12,
+   TFP_MSAT9C2%IBITS=12,
+   TFP_MSAT9C6%IBITS=12,
+   TFP_MSLNH%IBITS=12,
+   TFP_PV%ZFK=64.,
+   TFP_RCLS%IBITS=12,
+   TFP_RR%IBITS=12,
+   TFP_SN%IBITS=12,
+   TFP_T%IBITS=12,
+   TFP_TCLS%IBITS=12,
+   TFP_TH%IBITS=12,
+   TFP_THPW%IBITS=12,
+   TFP_THV%IBITS=12,
+   TFP_TN%IBITS=12,
+   TFP_TWV%IBITS=12,
+   TFP_TX%IBITS=12,
+   TFP_U%IBITS=12,
+   TFP_V%IBITS=12,
+   TFP_VOR%ZFK=32.,
+   TFP_VV%ZFK=32.,
+ /
+ &NAMARG
+   CNMEXP='${CNMEXP}',
+   LECMWF=.FALSE.,
+   LELAM=.TRUE.,
+   LSLAG=.TRUE.,
+   NCONF=1,
+   NSUPERSEDE=1,
+ /
+ &NAMARPHY
+   LKFBCONV=.FALSE.,
+   LKFBD=.FALSE.,
+   LKFBS=.FALSE.,
+   LMFSHAL=.TRUE.,
+   LMICRO=.TRUE.,
+   LMPA=.TRUE.,
+   LMSE=.TRUE.,
+   LTURB=.TRUE.,
+ /
+ &NAMCA
+ /
+ &NAMCAPE
+ /
+ &NAMCFU
+   LCUMFU=.TRUE.,
+   LFPLS=.TRUE.,
+   LFPLSG=.TRUE.,
+   LFR=.TRUE.,
+   LFRRC=.TRUE.,
+   LFSF=.TRUE.,
+   LNEBPAR=.TRUE.,
+   LNEBTT=.TRUE.,
+   LRAYD=.TRUE.,
+   LRAYS=.TRUE.,
+ /
+ &NAMCHEM
+ /
+ &NAMCHET
+ /
+ &NAMCHK
+ /
+ &NAMCLA
+ /
+ &NAMCLDP
+ /
+ &NAMCLI
+ /
+ &NAMCLOP15
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LNHEE=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   LSPRT=.TRUE.,
+   LTWOTL=.TRUE.,
+   NFPOS=1,
+   NFRSDI=18,
+   NSDITS(0)=0,
+   NFRHIS=72,
+   NHISTS(0)=0,
+   NFRPOS=72,
+   NPOSTS(0)=0,
+   NFRSFXHIS=72,
+   NSFXHISTS(0)=0,
+   NFRDHFD=72,
+   NDHFDTS(0)=0,
+ /
+ &NAMCT1
+   LRFILAF=.FALSE.,
+   N1HIS=1,
+   N1POS=1,
+   N1RES=0,
+   N1SDI=1,
+   N1SFXHIS=1,
+   N1GDI=0,
+ /
+ &NAMCUMF
+ /
+ &NAMCUMFS
+ /
+ &NAMCVER
+ /
+ &NAMCVMNH
+ /
+ &NAMDDH
+   LDDH_OMP=.TRUE.,
+   LHDDOP=.TRUE.,
+   LHDHKS=.TRUE.,
+   LHDEFD=.TRUE.,
+   LFLEXDIA=.TRUE.,
+   BDEDDH(1,1)=3,
+   BDEDDH(2,1)=1,
+   BDEDDH(3,1)=358.8
+   BDEDDH(4,1)=45.1
+   BDEDDH(5,1)=360.3
+   BDEDDH(6,1)=44.5
+ /
+ &NAMDFI
+ /
+ &NAMDIM
+   NPROMA=-50,
+ /
+ &NAMDIMO
+ /
+ &NAMDIM_TRAJ
+ /
+ &NAMDPHY
+ /
+ &NAMDPRECIPS
+ /
+ &NAMDYN
+   LADVF=.TRUE.,
+   LQMPD=.FALSE.,
+   LQMT=.FALSE.,
+   LQMVD=.FALSE.,
+   LRHDI_LASTITERPC=.TRUE.,
+   NITMP=4,
+   NSITER=1,
+   NSPDLAG=3,
+   NSVDLAG=3,
+   NTLAG=3,
+   NVLAG=3,
+   NWLAG=3,
+   RDAMPDIV=20.,
+   RDAMPPD=20.,
+   RDAMPQ=0.,
+   RDAMPT=0.,
+   RDAMPVD=20.,
+   RDAMPVOR=20.,
+   REPS1=0.,
+   REPS2=0.,
+   REPSM1=0.,
+   REPSM2=0.,
+   REPSP1=0.,
+   SDRED=1.,
+   SIPR=90000.,
+   SITR=350.,
+   SITRA=100.,
+   SLHDA0=0.25,
+   SLHDD00=0.000065,
+   VESL=0.05,
+   XIDT=0.,
+   ZSLHDP1=1.7,
+   ZSLHDP3=0.6,
+ /
+ &NAMDYNA
+   LCOMADH=.TRUE.,
+   LCOMADV=.FALSE.,
+   LCOMAD_GFL=.TRUE.,
+   LCOMAD_SP=.TRUE.,
+   LCOMAD_SPD=.TRUE.,
+   LCOMAD_SVD=.TRUE.,
+   LCOMAD_T=.TRUE.,
+   LCOMAD_W=.TRUE.,
+   LGWADV=.TRUE.,
+   LNESC=.TRUE.,
+   LPC_CHEAP=.TRUE.,
+   LPC_FULL=.TRUE.,
+   LRDBBC=.FALSE.,
+   LSETTLS=.FALSE.,
+   LSETTLST=.TRUE.,
+   LSLHD_GFL=.TRUE.,
+   LSLHD_OLD=.FALSE.,
+   LSLHD_SPD=.FALSE.,
+   LSLHD_SVD=.FALSE.,
+   LSLHD_T=.FALSE.,
+   LSLHD_W=.FALSE.,
+   ND4SYS=2,
+   NDLNPR=1,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+ /
+ &NAMDYNCORE
+ /
+ &NAMEMIS_CONF
+ /
+ &NAMENKF
+ /
+ &NAMFA
+   CMODEL='OUTPUTID',
+   LEXTERN=.TRUE.,
+   LSUPPDATE=.FALSE.,
+   NBITCS=-1,
+   NBITPG=-1,
+   NSTRON=-1,
+ /
+ &NAMFAINIT
+   JPXTRO=2000,
+ /
+ &NAMFPC
+   CFP2DF(1)='SURFPRESSION',
+   CFP2DF(2)='MSL_NHPRESSURE',
+   CFP2DF(3)='SURFTOT.WAT.VAPO',
+   CFP2DF(4)='SURFISOTPW0.MALT',
+   CFP2DF(5)='SURFCAPE.POS.F00',
+   CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(8)='SURFREFLECT.MAX',
+   CFP2DF(9)='SURFISOTPW1.MALT',
+   CFP2DF(10)='SURFISOTPW2.MALT',
+   CFP3DF(1)='GEOPOTENTIEL',
+   CFP3DF(2)='TEMPERATURE',
+   CFP3DF(3)='VENT_ZONAL',
+   CFP3DF(4)='VENT_MERIDIEN',
+   CFP3DF(5)='HUMI_RELATIVE',
+   CFP3DF(6)='THETA_PRIM_W',
+   CFP3DF(7)='PRESSURE',
+   CFP3DF(8)='ABS_VORTICITY',
+   CFP3DF(9)='VITESSE_VERTICALE',
+   CFP3DF(10)='TEMPE_POTENT',
+   CFP3DF(11)='POT_VORTICIT',
+   CFP3DF(12)='SIM_REFLECTI',
+   CFP3DF(13)='RAIN',
+   CFP3DF(14)='SNOW',
+   CFP3DF(15)='GRAUPEL',
+   CFP3DF(16)='ICE_CRYSTAL',
+   CFP3DF(17)='CLOUD_WATER',
+   CFP3DF(18)='VERT.VELOCIT',
+   CFP3DF(19)='DIVERGENCE',
+   CFP3DF(20)='THETA_VIRTUA',
+   CFP3DF(21)='TKE',
+   CFP3DF(22)='CLOUD_FRACTI',
+   CFP3DF(23)='ISOT_ALTIT',
+   CFP3DF(24)='EDR',
+   CFPCFU(1)='SURFTENS.TOTA.ZO',
+   CFPCFU(2)='SURFTENS.TOTA.ME',
+   CFPCFU(3)='SURFACCPLUIE',
+   CFPCFU(4)='SURFACCNEIGE',
+   CFPCFU(5)='SURFACCGRAUPEL',
+   CFPCFU(6)='SOMMFLU.RAY.SOLA',
+   CFPCFU(7)='SURFFLU.RAY.SOLA',
+   CFPCFU(8)='SOMMFLU.RAY.THER',
+   CFPCFU(9)='SURFFLU.RAY.THER',
+   CFPCFU(10)='SURFFLU.LAT.MTOT',
+   CFPCFU(11)='SURFFLU.MTOTA.NE',
+   CFPCFU(12)='SURFFLU.CHA.SENS',
+   CFPCFU(13)='SURFRAYT SOLA DE',
+   CFPCFU(14)='SURFRAYT THER DE',
+   CFPCFU(15)='SURFRAYT SOL CL',
+   CFPCFU(16)='SURFRAYT THER CL',
+   CFPCFU(17)='SURFRAYT DIR SUR',
+   CFPDOM(1)='FRANGP0025',
+   CFPFMT='LALON',
+   CFPPHY(1)='SURFTEMPERATURE',
+   CFPPHY(2)='INTSURFGEOPOTENT',
+   CFPPHY(3)='SURFRESERV.NEIGE',
+   CFPXFU(1)='CLSTEMPERATURE',
+   CFPXFU(2)='CLSHUMI.RELATIVE',
+   CFPXFU(3)='CLSVENT.ZONAL',
+   CFPXFU(4)='CLSVENT.MERIDIEN',
+   CFPXFU(5)='SURFNEBUL.TOTALE',
+   CFPXFU(6)='SURFNEBUL.HAUTE',
+   CFPXFU(7)='SURFNEBUL.MOYENN',
+   CFPXFU(8)='SURFNEBUL.BASSE',
+   CFPXFU(9)='CLSMAXI.TEMPERAT',
+   CFPXFU(10)='CLSMINI.TEMPERAT',
+   CFPXFU(11)='CLPMHAUT.MOD.XFU',
+   CFPXFU(12)='SURFDIAGHAIL',
+   LCRITSNOWTEMP=.FALSE.,
+   LFPCAPEX=.TRUE.,
+   LFPMOIS=.TRUE.,
+   LFPPACKING=.FALSE.,
+   LWIDER_DOM=.TRUE.,
+   L_READ_MODEL_DATE=.TRUE.,
+   NFITI=1,
+   NFITV=1,
+   NFPCAPE=5,
+   NFPCLI=1,
+   NFPGRIB=1,
+   NFPINPHY=4,
+   NITERPV=8,
+   RENTRA=0.0001,
+   RFP3H(1)=10.,
+   RFP3H(2)=20.,
+   RFP3H(3)=35.,
+   RFP3H(4)=50.,
+   RFP3H(5)=75.,
+   RFP3H(6)=100.,
+   RFP3H(7)=150.,
+   RFP3H(8)=200.,
+   RFP3H(9)=250.,
+   RFP3H(10)=375.,
+   RFP3H(11)=500.,
+   RFP3H(12)=625.,
+   RFP3H(13)=750.,
+   RFP3H(14)=875.,
+   RFP3H(15)=1000.,
+   RFP3H(16)=1125.,
+   RFP3H(17)=1250.,
+   RFP3H(18)=1375.,
+   RFP3H(19)=1500.,
+   RFP3H(20)=1750.,
+   RFP3H(21)=2000.,
+   RFP3H(22)=2250.,
+   RFP3H(23)=2500.,
+   RFP3H(24)=2750.,
+   RFP3H(25)=3000.,
+   RFP3I(1)=-273.15,
+   RFP3I(2)=-263.15,
+   RFP3I(3)=-261.15,
+   RFP3I(4)=-253.15,
+   RFP3P(1)=10000.,
+   RFP3P(2)=12500.,
+   RFP3P(3)=15000.,
+   RFP3P(4)=17500.,
+   RFP3P(5)=20000.,
+   RFP3P(6)=22500.,
+   RFP3P(7)=25000.,
+   RFP3P(8)=27500.,
+   RFP3P(9)=30000.,
+   RFP3P(10)=35000.,
+   RFP3P(11)=40000.,
+   RFP3P(12)=45000.,
+   RFP3P(13)=50000.,
+   RFP3P(14)=55000.,
+   RFP3P(15)=60000.,
+   RFP3P(16)=65000.,
+   RFP3P(17)=70000.,
+   RFP3P(18)=75000.,
+   RFP3P(19)=80000.,
+   RFP3P(20)=85000.,
+   RFP3P(21)=90000.,
+   RFP3P(22)=92500.,
+   RFP3P(23)=95000.,
+   RFP3P(24)=100000.,
+   RFP3PV(1)=0.0000015,
+   RFP3PV(2)=0.000002,
+   RFPCD2=5.,
+   RFPCSAB=50.,
+   RFPVCAP=7000.,
+ /
+ &NAMFPD
+   NLAT(1)=41,
+   NLON(1)=41,
+   RLONC(1)=-0.71,
+   RLATC(1)=44.8,
+   RDELX(1)=0.025,
+   RDELY(1)=0.025,
+ /
+ &NAMFPDY2
+ /
+ &NAMFPDYF
+ /
+ &NAMFPDYH
+ /
+ &NAMFPDYI
+ /
+ &NAMFPDYP
+ /
+ &NAMFPDYS
+ /
+ &NAMFPDYT
+ /
+ &NAMFPDYV
+ /
+ &NAMFPF
+   NFMAX(1)=60,
+   NFMAX(2)=80,
+ /
+ &NAMFPG
+   NFPDISTRIB=1,
+ /
+ &NAMFPIOS
+ /
+ &NAMFPMOVE
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+ /
+ &NAMGFL
+   NGFL_EZDIAG=4,
+   YEZDIAG_NL(1)%CNAME='EZDIAG01',
+   YEZDIAG_NL(1)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(2)%CNAME='EZDIAG02',
+   YEZDIAG_NL(2)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(3)%CNAME='EZDIAG03',
+   YEZDIAG_NL(3)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(4)%CNAME='INPRRTOT3D',
+   YEZDIAG_NL(4)%LREQOUT=.TRUE.,
+   YG_NL%LQM=.TRUE.,
+   YG_NL%LSLHD=.TRUE.,
+   YG_NL%NCOUPLING=-1,
+   YG_NL%NREQIN=1,
+   YG_NL%REFVALC=0.,
+   YIRAD_NL%LGP=.TRUE.,
+   YI_NL%LQM=.TRUE.,
+   YI_NL%LSLHD=.TRUE.,
+   YI_NL%NCOUPLING=-1,
+   YI_NL%NREQIN=1,
+   YI_NL%REFVALC=0.,
+   YLRAD_NL%LGP=.TRUE.,
+   YL_NL%LQM=.TRUE.,
+   YL_NL%LSLHD=.TRUE.,
+   YL_NL%NCOUPLING=-1,
+   YL_NL%NREQIN=1,
+   YL_NL%REFVALC=0.,
+   YQ_NL%LCOMAD=.TRUE.,
+   YQ_NL%LQM=.TRUE.,
+   YQ_NL%LSLHD=.FALSE.,
+   YQ_NL%NREQIN=1,
+   YR_NL%LQM=.TRUE.,
+   YR_NL%LSLHD=.TRUE.,
+   YR_NL%NCOUPLING=-1,
+   YR_NL%NREQIN=1,
+   YR_NL%REFVALC=0.,
+   YS_NL%LQM=.TRUE.,
+   YS_NL%LSLHD=.TRUE.,
+   YS_NL%NCOUPLING=-1,
+   YS_NL%NREQIN=1,
+   YS_NL%REFVALC=0.,
+   YTKE_NL%NCOUPLING=0,
+   YTKE_NL%NREQIN=1,
+ /
+ &NAMGRIB
+ /
+ &NAMGWD
+ /
+ &NAMGWDIAG
+ /
+ &NAMGWWMS
+ /
+ &NAMIAU
+   ALPHAIAU=0.5,
+   LIAU=.FALSE.,
+   TSTARTIAU=1800,
+   TSTOPIAU=5340,
+ /
+ &NAMICE
+ /
+ &NAMINI
+   LDFI=.FALSE.,
+ /
+ &NAMINTFLEX
+ /
+ &NAMIOMI
+ /
+ &NAMIOS
+ /
+ &NAMIO_SERV
+   NIO_SERV_BUF_MAXSIZE=20,
+   NIO_SERV_METHOD=2,
+   NMSG_LEVEL_CLIENT=0,
+   NMSG_LEVEL_SERVER=0,
+   NPROCESS_LEVEL=5,
+   NPROC_IO=0,
+ /
+ &NAMJBCODES
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMOBS
+ /
+ &NAMONEDVAR
+ /
+ &NAMOOPS
+ /
+ &NAMOPH
+   CFNHWF='ECHIS',
+   LINC=.TRUE.,
+   NTIMEFMT=1,
+ /
+ &NAMOPTCMEM
+ /
+ &NAMPAR0
+   LOPT_SCALAR=.TRUE.,
+   NPRINTLEV=1,
+   LMPOFF=.FALSE.,
+   MBX_SIZE=2048000000,
+   MP_TYPE=2,
+   NOUTPUT=1,
+   NPROC=$NPROC,
+$NPRTRW_NPRTRV
+ /
+ &NAMPAR1
+   LEQ_REGIONS=.FALSE.,
+   LSLONDEM=.TRUE.,
+   LSPLIT=.TRUE.,
+   LSYNC_SLCOM=.FALSE.,
+   LSYNC_TRANS=.FALSE.,
+   L_GATHERV_WRGP=.FALSE.,
+   NCOMBFLEN=1800000,
+   NSTRIN=$NSTRIN,
+   NSTROUT=$NSTROUT,
+ /
+ &NAMPARAR
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   CMICRO='ICE3',
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LCRIAUTI=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LFPREC3D=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LOLSMC=.TRUE.,
+   LOSEDIC=.TRUE.,
+   LOSIGMAS=.TRUE.,
+   LOSUBG_COND=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   NPRINTFR=10000,
+   NPTP=1,
+   RCRIAUTC=0.001,
+   RCRIAUTI=0.0002,
+   RT0CRIAUTI=-5.,
+   VSIGQSAT=0.02,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+ /
+ &NAMPHMSE
+   LPGDFWR=.FALSE.,
+ /
+ &NAMPHY
+   LAERODES=.TRUE.,
+   LAEROLAN=.TRUE.,
+   LAEROSEA=.TRUE.,
+   LAEROSOO=.TRUE.,
+   LEDR=.TRUE.,
+   LMPHYS=.TRUE.,
+   LO3ABC=.TRUE.,
+   LRAYFM=.TRUE.,
+ /
+ &NAMPHY0
+   ALMAV=300.,
+   BEDIFV=0.05,
+   ECMNP=3000.,
+   GCCSV=0.,
+   GCVADS=0.8,
+   GCVALFA=0.000045,
+   GCVBETA=0.2,
+   GCVMLT=0.00016,
+   GCVNU=0.000025,
+   GCVPSI=1.,
+   GCVPSIE=1.,
+   GDDEVA=0.25,
+   GDDSDE=0.5,
+   GWDCD=6.,
+   HUCOE=0.5,
+   HUTIL=1.8,
+   QSSC=400.,
+   QSSUSC=0.75,
+   QSSUSS=0.4,
+   QSSUSV=250.,
+   QSUSXC=0.0002,
+   QSUSXS=0.0003,
+   QXRAL=130.,
+   QXRDEL=0.49,
+   QXRHX=0.99,
+   QXRR=0.25,
+   RCVEVAP=0.25,
+   REFLKUO=5000.,
+   REVGSL=15.,
+   SCO=-20.,
+   TDDGP=0.8,
+   TENTR=0.0000025,
+   TENTRX=0.00008,
+   TUDGP=0.8,
+   UHDIFV=0.0008,
+   USURIC=0.175,
+   USURICE=0.5,
+   USURICL=1.,
+   USURID=0.1,
+   USURIDE=0.25,
+   VZ0CM=0.00015,
+   XMAXLM=5000.,
+   XMINLM=10.,
+ /
+ &NAMPHY1
+   ALBMIN=0.65,
+   ALCRIN=0.75,
+   GCGEL=0.00003,
+   GCGELS=0.00005,
+   GNEIMX=1.8,
+   GNEIMXS=1.8,
+   RCTVEG(3)=0.000012,
+   RCTVEG(4)=0.00001,
+ /
+ &NAMPHY2
+   FACRAF=3.8,
+   HTKERAF=20.,
+   LMULAF=.TRUE.,
+   LRAFTKE=.TRUE.,
+   LRAFTUR=.TRUE.,
+   XDAMP=1.,
+   XMULAF=-1.85,
+ /
+ &NAMPHY3
+ /
+ &NAMPHYDS
+ /
+ &NAMPONG
+ /
+ &NAMPPC
+ /
+ &NAMPPVI
+ /
+ &NAMPRE
+ /
+ &NAMRAD15
+ /
+ &NAMRADCMEM
+ /
+ &NAMRCF
+ /
+ &NAMRCOEF
+ /
+ &NAMRES
+ /
+ &NAMRGRI
+ /
+ &NAMRINC
+ /
+ &NAMRIP
+    TSTEP=50.,
+    CSTOP='h2',
+ /
+ &NAMRIP0
+ /
+ &NAMRLX
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPSDT
+ /
+ &NAMSTA
+ /
+ &NAMSTOPH
+ /
+ &NAMSWE
+ /
+ &NAMTESTVAR
+ /
+ &NAMTHLIM
+ /
+ &NAMTOPH
+   ETCVIM=5000.,
+   ETNEBU=5000.,
+   ETPLUI=5000.,
+   XDRMTK=6.0D-7,
+   XDRMTP=800.,
+   XDRMUK=3.0D-7,
+   XDRMUP=800.,
+ /
+ &NAMTRAJP
+ /
+ &NAMTRANS
+ /
+ &NAMTRANS0
+ /
+ &NAMTS
+ /
+ &NAMVAR
+ /
+ &NAMVARBC
+ /
+ &NAMVARBC_AIREP
+ /
+ &NAMVARBC_ALLSKY
+ /
+ &NAMVARBC_GBRAD
+ /
+ &NAMVARBC_RAD
+ /
+ &NAMVARBC_SFCOBS
+ /
+ &NAMVARBC_TCWV
+ /
+ &NAMVARBC_TO3
+ /
+ &NAMVAREPS
+ /
+ &NAMVDF
+ /
+ &NAMVDOZ
+ /
+ &NAMVOLCANO
+ /
+ &NAMVRTL
+ /
+ &NAMVV0
+ /
+ &NAMVV1
+ /
+ &NAMVWRK
+ /
+ &NAMWAVELETJB
+ /
+ &NAMXFU
+   LXCLP=.TRUE.,
+   LXCLS=.TRUE.,
+   LXFU=.TRUE.,
+   LXNEBPA=.TRUE.,
+   LXNEBTT=.TRUE.,
+   LXNUVCLS=.TRUE.,
+   LXPLS=.TRUE.,
+   LXPLSG=.TRUE.,
+   LXQCLS=.TRUE.,
+   LXR=.TRUE.,
+   LXSOIL=.FALSE.,
+   LXTHW=.TRUE.,
+   LXTRT=.TRUE.,
+   LXTTCLS=.TRUE.,
+   LXXDIAGH=.TRUE.,
+   LXXGST=.TRUE.,
+   NFRRAZ=72,
+   NRAZTS(0)=0,
+ /
+ &NAM_CANAPE
+ /
+ &NAM_DISTRIBUTED_VECTORS
+ /
+ &NAPHLC
+ /
+ &NEMCT0
+ /
+ &NEMDIM
+ /
+ &NEMDYN
+ /
+ &NEMELBC0A
+   LESPCPL=.TRUE.,
+   NBICNHX=2,
+   NBICOP=2,
+   NBICOT=2,
+   NBICOU=2,
+   NBICPD=2,
+   NBICVD=2,
+   NECRIPL=1,
+ /
+ &NEMELBC0B
+   NEFRSPCPL=1,
+   NEK0=20,
+   NEK1=30,
+   NEN1=4,
+   NEN2=8,
+   SPNUDDIV=0.01,
+   SPNUDQ=0.,
+   SPNUDT=0.01,
+   SPNUDVOR=0.01,
+   TEFRCL=3600.,
+ /
+ &NEMFPEZO
+ /
+ &NEMGEO
+ /
+ &NEMJK
+ /
+ &NEMVAR
+ /
+ &NEMWAVELET
+ /
+ &NAETLDIAG
+ /
+ &NAMMETHOX
+ /
+ &NAMSPP
+ /
+ &NAMACV
+ /
+ &NAMFPOBJ
+ /
+ &NAMNORGWD
+ /
+ &NAMTRAJ
+ /
+ &NAMSATSIM
+ /
+ &NAMDVISI
+ /
+ &NAMNUDGLH
+ /
+ &NAMPERTPAR
+ /
+FIN
+/bin/cat fort.4
+
+/bin/cat <<FIN > EXSEG1.nam
+ &NAM_DIAG_ISBAN
+   LPGD=.TRUE.,
+   LSURF_MISC_BUDGET=.TRUE.,
+ /
+ &NAM_DIAG_SURFN
+   LCOEF=.TRUE.,
+   LSURF_BUDGET=.TRUE.,
+   N2M=2,
+ /
+ &NAM_ISBAN
+   CSCOND='NP89',
+ /
+ &NAM_REPROD_OPER
+   LREPROD_OPER=.TRUE.,
+ /
+ &NAM_SEAFLUXN
+   CSEA_FLUX='ECUME',
+   LPWG=.FALSE.,
+   LPRECIP=.FALSE.,
+   LPWEBB=.FALSE.,
+ /
+ &NAM_SSON
+   CROUGH='Z01D',
+   XFRACZ0=5.,
+   LDSV=.FALSE.,
+ /
+ &NAM_SURF_ATM
+   XRIMAX=0.2,
+   LNOSOF=.TRUE.,
+ /
+ &NAM_SURF_CSTS
+   XZ0SN=0.01,
+   XZ0HSN=0.001,
+   XEMISSN=0.99,
+ /
+ &NAM_WRITE_DIAG_SURFN
+   LPROVAR_TO_DIAG=.FALSE.,
+   LSELECT=.TRUE.,
+CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS',
+ /
+ &NAM_WRITE_SURF_ATM
+   LNOWRITE_TEXFILE=.TRUE.,
+ /
+FIN
+/bin/cat EXSEG1.nam
+
+#      *****************************************
+#      *  Acquisition du fichier de demarrage  *
+#      *****************************************
+
+echo
+for hh in 0 1 2 3 4 5 6 ; do
+  N=`expr $hh / 1 `
+  set -x
+  ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N}
+  set +x
+done
+set -x
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx
+ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin .
+ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim
+ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx
+ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat .
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat .
+ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz
+
+#      ***************
+#      *  Chargement *
+#      ***************
+
+echo
+set -x
+\ln -s $LOADIR/MASTERODB MASTER
+set +x
+if ldd MASTER | grep openmpi > /dev/null; then
+  #On est sur PC
+  MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}')
+  MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC"
+  GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1
+  export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions
+  export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions
+else
+  #On est sur HPC
+  #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD"
+  NNODES=$SLURM_JOB_NUM_NODES
+  MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES))
+  MPI_TASKS=$SLURM_NTASKS
+  MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --"
+  export OMP_STACKSIZE=4G
+  export KMP_STACKSIZE=4G
+  export KMP_MONITOR_STACKSIZE=4G
+  export DR_HOOK=1
+  export DR_HOOK_IGNORE_SIGNALS=-1
+  export DR_HOOK_SILENT=1
+  export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+  export MPL_MBX_SIZE=2048000000
+  export EC_PROFILE_HEAP=0
+  export EC_PROFILE_MEM=0
+  export EC_MPI_ATEXIT=0
+  export EC_MEMINFO=0
+  export OPENBLAS_NUM_THREADS=1
+  export MKL_CBWR="AUTO,STRICT"
+  export MKL_NUM_THREADS=1
+  export MKL_DEBUG_CPU_TYPE=5
+  export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions
+fi
+echo $MPIRUN
+set +x
+if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi
+
+#      ***************
+#      *  Execution  *
+#      ***************
+
+echo
+echo OMP_NUM_THREADS=$OMP_NUM_THREADS
+set -x
+ulimit -s unlimited
+$MPIRUN $PWD/MASTER >lola
+set +x
+echo
+##if [ -f lola ] ; then
+##  echo;echo Standard output :;echo;cat lola
+##fi
+##if [ -f stderr.* ] ; then
+##  for file in stderr.* ; do
+##    echo;echo $file :;cat $file
+##  done
+##fi
+##if [ -f stdout.* ] ; then
+##echo;echo stdout :;echo;cat stdout.*
+##fi
+##if [ -a NODE.001_01 ] ; then
+##  for file in NODE* ; do
+##    echo;echo Listing $file;echo
+##    cat $file
+##  done
+##fi
+##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then
+### Top 25 for each MPI task :
+##  for file in drhook.prof.* ; do
+##    echo;echo $file :;head -38 $file
+##  done
+##fi
+#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl
+
+#      *******************
+#      *  Sauvegardes    *
+#      *******************
+
+ls
+#if [ -f PFFPOS000+0000 ] ; then
+#  cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID
+#fi
+cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/
+/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001*
+/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00*
+/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz)
+
+#      ****************
+#      *  Epilogue    *
+#      ****************
+
+ls -ltr | grep -v "\->"
+echo Wait_queue :
+ls -ltr $TMPWAIT
+cd $TMPDIR
+\rm -rf rundir.$$
+\rm -rf wait_queue.$$
+date
+set +x
diff --git a/tools/conf_tests/small_3D_np2/aro48t3.sh b/tools/conf_tests/small_3D_np2/aro48t3.sh
new file mode 100755
index 0000000000000000000000000000000000000000..1ac4893258e7cacee0c355d797df31896c182137
--- /dev/null
+++ b/tools/conf_tests/small_3D_np2/aro48t3.sh
@@ -0,0 +1,1207 @@
+#!/bin/bash
+#SBATCH -n 2
+#SBATCH --mem=20000
+#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR
+#SBATCH -t 00:10:00
+#SBATCH -N 1
+#SBATCH -p normal256
+
+#The MYLIB varibale must contain the gmkpack pack name
+#The TESTDIR variable must contain the test directory
+#Results will be stored in the local directory
+
+#Other environment varaibles that can be set:
+#OUTPUTDIR
+
+date
+
+OUTPUTDIR=${OUTPUTDIR:-$PWD}
+case=riette2
+#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script
+rekchemin=$TESTDIR
+
+NPROC=2
+NSTRIN=$NPROC
+NSTROUT=1
+NPRTRW_NPRTRV=""
+NPRTRW_NPRTRV="  NPRTRW=$NPROC,
+  NPRTRV=1,"
+export OMP_NUM_THREADS=1
+
+#MYLIB=48t1_main.01%jpdup
+
+export DR_HOOK=1
+#export DR_HOOK_IGNORE_SIGNALS=-1
+export DR_HOOK_NOT_MPI=1
+export DR_HOOK_SILENT=1
+export DR_HOOK_OPT=
+
+export EC_PROFILE_HEAP=0
+export EC_PROFILE_MEM=0
+export EC_MPI_ATEXIT=0
+export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+export EC_MEMINFO=0
+export TVSEARCHPATH=$SOURCE
+
+HOMEPACK=${HOMEPACK:=$HOME/pack}
+SOURCE=$HOMEPACK/$MYLIB/src/local
+LOADIR=$HOMEPACK/$MYLIB/bin
+
+TMPDIR=${TMPDIR:=$HOME/tmp}
+TMPLOC=$TMPDIR/rundir.$$
+TMPWAIT=$TMPDIR/wait_queue.$$
+mkdir $TMPWAIT
+mkdir $TMPLOC
+cd $TMPLOC
+
+export RTTOV_COEFDIR=$PWD
+
+#      **************************
+#      *  Saisie des NAMELISTS  *
+#      **************************
+
+CNMEXP='FPOS'
+
+echo
+/bin/cat <<FIN > fort.4
+ &NACIETEO
+ /
+ &NACOBS
+ /
+ &NACTAN
+ /
+ &NACTEX
+ /
+ &NACVEG
+ /
+ &NADOCK
+ /
+ &NAEAEM7
+ /
+ &NAEAER
+ /
+ &NAECOAPHY
+ /
+ &NAEPHLI
+ /
+ &NAEPHY
+ /
+ &NAERAD
+   LRRTM=.TRUE.,
+   LSRTM=.FALSE.,
+   NAER=1,
+   NICEOPT=3,
+   NLIQOPT=3,
+   NOVLP=6,
+   NOZOCL=2,
+   NRADFR=18,
+   NRADIP=3,
+   NRADLP=2,
+   NSW=6,
+   RLWINHF=1,
+   RRE2DE=0.64952,
+   RSWINHF=1,
+ /
+ &NAERCLI
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMAFN
+   GFP_CLSG%CLNAME='SURFACCGRAUPEL',
+   GFP_CLSP%CLNAME='SURFACCPLUIE',
+   GFP_CLSS%CLNAME='SURFACCNEIGE',
+   GFP_SFIS%IBITS=16,
+   GFP_ST%CLNAME='SURFTEMPERATURE',
+   GFP_ST%IANO=0,
+   GFP_ST%IBITS=12,
+   GFP_X10U%CLNAME='CLSVENT.ZONAL',
+   GFP_X10U%IANO=0,
+   GFP_X10U%IBITS=12,
+   GFP_X10V%CLNAME='CLSVENT.MERIDIEN',
+   GFP_X10V%IANO=0,
+   GFP_X10V%IBITS=12,
+   GFP_X2RH%CLNAME='CLSHUMI.RELATIVE',
+   GFP_X2RH%IANO=0,
+   GFP_X2RH%IBITS=12,
+   GFP_X2T%CLNAME='CLSTEMPERATURE',
+   GFP_X2T%IANO=1,
+   GFP_XCCC%IBITS=8,
+   GFP_XHCC%IBITS=8,
+   GFP_XLCC%IBITS=8,
+   GFP_XLSG%CLNAME='SURFINSGRAUPEL',
+   GFP_XLSP%CLNAME='SURFINSPLUIE',
+   GFP_XLSS%CLNAME='SURFINSNEIGE',
+   GFP_XMCC%IBITS=8,
+   GFP_XN2T%IBITS=12,
+   GFP_XTCC%IBITS=8,
+   GFP_XUGST%CLNAME='CLSU.RAF60M.XFU',
+   GFP_XUGST%IANO=0,
+   GFP_XUGST%IBITS=12,
+   GFP_XVGST%CLNAME='CLSV.RAF60M.XFU',
+   GFP_XVGST%IANO=0,
+   GFP_XVGST%IBITS=12,
+   GFP_XX2T%IBITS=12,
+   GFP_XXDIAGH%IBITS=12,
+   TFP_ABS%ZFK=32.,
+   TFP_CLF%IBITS=6,
+   TFP_EDR%CLNAME='EDR',
+   TFP_EDR%IBITS=16,
+   TFP_EDR%IGRIB=136,
+   TFP_GR%IBITS=12,
+   TFP_HL%IBITS=12,
+   TFP_HTB%IBITS=16,
+   TFP_HTB%LLGP=.TRUE.,
+   TFP_HU%IBITS=12,
+   TFP_MSAT9C2%IBITS=12,
+   TFP_MSAT9C6%IBITS=12,
+   TFP_MSLNH%IBITS=12,
+   TFP_PV%ZFK=64.,
+   TFP_RCLS%IBITS=12,
+   TFP_RR%IBITS=12,
+   TFP_SN%IBITS=12,
+   TFP_T%IBITS=12,
+   TFP_TCLS%IBITS=12,
+   TFP_TH%IBITS=12,
+   TFP_THPW%IBITS=12,
+   TFP_THV%IBITS=12,
+   TFP_TN%IBITS=12,
+   TFP_TWV%IBITS=12,
+   TFP_TX%IBITS=12,
+   TFP_U%IBITS=12,
+   TFP_V%IBITS=12,
+   TFP_VOR%ZFK=32.,
+   TFP_VV%ZFK=32.,
+ /
+ &NAMARG
+   CNMEXP='${CNMEXP}',
+   LECMWF=.FALSE.,
+   LELAM=.TRUE.,
+   LSLAG=.TRUE.,
+   NCONF=1,
+   NSUPERSEDE=1,
+ /
+ &NAMARPHY
+   LKFBCONV=.FALSE.,
+   LKFBD=.FALSE.,
+   LKFBS=.FALSE.,
+   LMFSHAL=.TRUE.,
+   LMICRO=.TRUE.,
+   LMPA=.TRUE.,
+   LMSE=.TRUE.,
+   LTURB=.TRUE.,
+ /
+ &NAMCA
+ /
+ &NAMCAPE
+ /
+ &NAMCFU
+   LCUMFU=.TRUE.,
+   LFPLS=.TRUE.,
+   LFPLSG=.TRUE.,
+   LFR=.TRUE.,
+   LFRRC=.TRUE.,
+   LFSF=.TRUE.,
+   LNEBPAR=.TRUE.,
+   LNEBTT=.TRUE.,
+   LRAYD=.TRUE.,
+   LRAYS=.TRUE.,
+ /
+ &NAMCHEM
+ /
+ &NAMCHET
+ /
+ &NAMCHK
+ /
+ &NAMCLA
+ /
+ &NAMCLDP
+ /
+ &NAMCLI
+ /
+ &NAMCLOP15
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LNHEE=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   LSPRT=.TRUE.,
+   LTWOTL=.TRUE.,
+   NFPOS=1,
+   NFRSDI=18,
+   NSDITS(0)=0,
+   NFRHIS=72,
+   NHISTS(0)=0,
+   NFRPOS=72,
+   NPOSTS(0)=0,
+   NFRSFXHIS=72,
+   NSFXHISTS(0)=0,
+   NFRDHFD=72,
+   NDHFDTS(0)=0,
+ /
+ &NAMCT1
+   LRFILAF=.FALSE.,
+   N1HIS=1,
+   N1POS=1,
+   N1RES=0,
+   N1SDI=1,
+   N1SFXHIS=1,
+   N1GDI=0,
+ /
+ &NAMCUMF
+ /
+ &NAMCUMFS
+ /
+ &NAMCVER
+ /
+ &NAMCVMNH
+ /
+ &NAMDDH
+   LDDH_OMP=.TRUE.,
+   LHDDOP=.TRUE.,
+   LHDHKS=.TRUE.,
+   LHDEFD=.TRUE.,
+   LFLEXDIA=.TRUE.,
+   BDEDDH(1,1)=3,
+   BDEDDH(2,1)=1,
+   BDEDDH(3,1)=358.8
+   BDEDDH(4,1)=45.1
+   BDEDDH(5,1)=360.3
+   BDEDDH(6,1)=44.5
+ /
+ &NAMDFI
+ /
+ &NAMDIM
+   NPROMA=-50,
+ /
+ &NAMDIMO
+ /
+ &NAMDIM_TRAJ
+ /
+ &NAMDPHY
+ /
+ &NAMDPRECIPS
+ /
+ &NAMDYN
+   LADVF=.TRUE.,
+   LQMPD=.FALSE.,
+   LQMT=.FALSE.,
+   LQMVD=.FALSE.,
+   LRHDI_LASTITERPC=.TRUE.,
+   NITMP=4,
+   NSITER=1,
+   NSPDLAG=3,
+   NSVDLAG=3,
+   NTLAG=3,
+   NVLAG=3,
+   NWLAG=3,
+   RDAMPDIV=20.,
+   RDAMPPD=20.,
+   RDAMPQ=0.,
+   RDAMPT=0.,
+   RDAMPVD=20.,
+   RDAMPVOR=20.,
+   REPS1=0.,
+   REPS2=0.,
+   REPSM1=0.,
+   REPSM2=0.,
+   REPSP1=0.,
+   SDRED=1.,
+   SIPR=90000.,
+   SITR=350.,
+   SITRA=100.,
+   SLHDA0=0.25,
+   SLHDD00=0.000065,
+   VESL=0.05,
+   XIDT=0.,
+   ZSLHDP1=1.7,
+   ZSLHDP3=0.6,
+ /
+ &NAMDYNA
+   LCOMADH=.TRUE.,
+   LCOMADV=.FALSE.,
+   LCOMAD_GFL=.TRUE.,
+   LCOMAD_SP=.TRUE.,
+   LCOMAD_SPD=.TRUE.,
+   LCOMAD_SVD=.TRUE.,
+   LCOMAD_T=.TRUE.,
+   LCOMAD_W=.TRUE.,
+   LGWADV=.TRUE.,
+   LNESC=.TRUE.,
+   LPC_CHEAP=.TRUE.,
+   LPC_FULL=.TRUE.,
+   LRDBBC=.FALSE.,
+   LSETTLS=.FALSE.,
+   LSETTLST=.TRUE.,
+   LSLHD_GFL=.TRUE.,
+   LSLHD_OLD=.FALSE.,
+   LSLHD_SPD=.FALSE.,
+   LSLHD_SVD=.FALSE.,
+   LSLHD_T=.FALSE.,
+   LSLHD_W=.FALSE.,
+   ND4SYS=2,
+   NDLNPR=1,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+ /
+ &NAMDYNCORE
+ /
+ &NAMEMIS_CONF
+ /
+ &NAMENKF
+ /
+ &NAMFA
+   CMODEL='OUTPUTID',
+   LEXTERN=.TRUE.,
+   LSUPPDATE=.FALSE.,
+   NBITCS=-1,
+   NBITPG=-1,
+   NSTRON=-1,
+ /
+ &NAMFAINIT
+   JPXTRO=2000,
+ /
+ &NAMFPC
+   CFP2DF(1)='SURFPRESSION',
+   CFP2DF(2)='MSL_NHPRESSURE',
+   CFP2DF(3)='SURFTOT.WAT.VAPO',
+   CFP2DF(4)='SURFISOTPW0.MALT',
+   CFP2DF(5)='SURFCAPE.POS.F00',
+   CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS',
+   CFP2DF(8)='SURFREFLECT.MAX',
+   CFP2DF(9)='SURFISOTPW1.MALT',
+   CFP2DF(10)='SURFISOTPW2.MALT',
+   CFP3DF(1)='GEOPOTENTIEL',
+   CFP3DF(2)='TEMPERATURE',
+   CFP3DF(3)='VENT_ZONAL',
+   CFP3DF(4)='VENT_MERIDIEN',
+   CFP3DF(5)='HUMI_RELATIVE',
+   CFP3DF(6)='THETA_PRIM_W',
+   CFP3DF(7)='PRESSURE',
+   CFP3DF(8)='ABS_VORTICITY',
+   CFP3DF(9)='VITESSE_VERTICALE',
+   CFP3DF(10)='TEMPE_POTENT',
+   CFP3DF(11)='POT_VORTICIT',
+   CFP3DF(12)='SIM_REFLECTI',
+   CFP3DF(13)='RAIN',
+   CFP3DF(14)='SNOW',
+   CFP3DF(15)='GRAUPEL',
+   CFP3DF(16)='ICE_CRYSTAL',
+   CFP3DF(17)='CLOUD_WATER',
+   CFP3DF(18)='VERT.VELOCIT',
+   CFP3DF(19)='DIVERGENCE',
+   CFP3DF(20)='THETA_VIRTUA',
+   CFP3DF(21)='TKE',
+   CFP3DF(22)='CLOUD_FRACTI',
+   CFP3DF(23)='ISOT_ALTIT',
+   CFP3DF(24)='EDR',
+   CFPCFU(1)='SURFTENS.TOTA.ZO',
+   CFPCFU(2)='SURFTENS.TOTA.ME',
+   CFPCFU(3)='SURFACCPLUIE',
+   CFPCFU(4)='SURFACCNEIGE',
+   CFPCFU(5)='SURFACCGRAUPEL',
+   CFPCFU(6)='SOMMFLU.RAY.SOLA',
+   CFPCFU(7)='SURFFLU.RAY.SOLA',
+   CFPCFU(8)='SOMMFLU.RAY.THER',
+   CFPCFU(9)='SURFFLU.RAY.THER',
+   CFPCFU(10)='SURFFLU.LAT.MTOT',
+   CFPCFU(11)='SURFFLU.MTOTA.NE',
+   CFPCFU(12)='SURFFLU.CHA.SENS',
+   CFPCFU(13)='SURFRAYT SOLA DE',
+   CFPCFU(14)='SURFRAYT THER DE',
+   CFPCFU(15)='SURFRAYT SOL CL',
+   CFPCFU(16)='SURFRAYT THER CL',
+   CFPCFU(17)='SURFRAYT DIR SUR',
+   CFPDOM(1)='FRANGP0025',
+   CFPFMT='LALON',
+   CFPPHY(1)='SURFTEMPERATURE',
+   CFPPHY(2)='INTSURFGEOPOTENT',
+   CFPPHY(3)='SURFRESERV.NEIGE',
+   CFPXFU(1)='CLSTEMPERATURE',
+   CFPXFU(2)='CLSHUMI.RELATIVE',
+   CFPXFU(3)='CLSVENT.ZONAL',
+   CFPXFU(4)='CLSVENT.MERIDIEN',
+   CFPXFU(5)='SURFNEBUL.TOTALE',
+   CFPXFU(6)='SURFNEBUL.HAUTE',
+   CFPXFU(7)='SURFNEBUL.MOYENN',
+   CFPXFU(8)='SURFNEBUL.BASSE',
+   CFPXFU(9)='CLSMAXI.TEMPERAT',
+   CFPXFU(10)='CLSMINI.TEMPERAT',
+   CFPXFU(11)='CLPMHAUT.MOD.XFU',
+   CFPXFU(12)='SURFDIAGHAIL',
+   LCRITSNOWTEMP=.FALSE.,
+   LFPCAPEX=.TRUE.,
+   LFPMOIS=.TRUE.,
+   LFPPACKING=.FALSE.,
+   LWIDER_DOM=.TRUE.,
+   L_READ_MODEL_DATE=.TRUE.,
+   NFITI=1,
+   NFITV=1,
+   NFPCAPE=5,
+   NFPCLI=1,
+   NFPGRIB=1,
+   NFPINPHY=4,
+   NITERPV=8,
+   RENTRA=0.0001,
+   RFP3H(1)=10.,
+   RFP3H(2)=20.,
+   RFP3H(3)=35.,
+   RFP3H(4)=50.,
+   RFP3H(5)=75.,
+   RFP3H(6)=100.,
+   RFP3H(7)=150.,
+   RFP3H(8)=200.,
+   RFP3H(9)=250.,
+   RFP3H(10)=375.,
+   RFP3H(11)=500.,
+   RFP3H(12)=625.,
+   RFP3H(13)=750.,
+   RFP3H(14)=875.,
+   RFP3H(15)=1000.,
+   RFP3H(16)=1125.,
+   RFP3H(17)=1250.,
+   RFP3H(18)=1375.,
+   RFP3H(19)=1500.,
+   RFP3H(20)=1750.,
+   RFP3H(21)=2000.,
+   RFP3H(22)=2250.,
+   RFP3H(23)=2500.,
+   RFP3H(24)=2750.,
+   RFP3H(25)=3000.,
+   RFP3I(1)=-273.15,
+   RFP3I(2)=-263.15,
+   RFP3I(3)=-261.15,
+   RFP3I(4)=-253.15,
+   RFP3P(1)=10000.,
+   RFP3P(2)=12500.,
+   RFP3P(3)=15000.,
+   RFP3P(4)=17500.,
+   RFP3P(5)=20000.,
+   RFP3P(6)=22500.,
+   RFP3P(7)=25000.,
+   RFP3P(8)=27500.,
+   RFP3P(9)=30000.,
+   RFP3P(10)=35000.,
+   RFP3P(11)=40000.,
+   RFP3P(12)=45000.,
+   RFP3P(13)=50000.,
+   RFP3P(14)=55000.,
+   RFP3P(15)=60000.,
+   RFP3P(16)=65000.,
+   RFP3P(17)=70000.,
+   RFP3P(18)=75000.,
+   RFP3P(19)=80000.,
+   RFP3P(20)=85000.,
+   RFP3P(21)=90000.,
+   RFP3P(22)=92500.,
+   RFP3P(23)=95000.,
+   RFP3P(24)=100000.,
+   RFP3PV(1)=0.0000015,
+   RFP3PV(2)=0.000002,
+   RFPCD2=5.,
+   RFPCSAB=50.,
+   RFPVCAP=7000.,
+ /
+ &NAMFPD
+   NLAT(1)=41,
+   NLON(1)=41,
+   RLONC(1)=-0.71,
+   RLATC(1)=44.8,
+   RDELX(1)=0.025,
+   RDELY(1)=0.025,
+ /
+ &NAMFPDY2
+ /
+ &NAMFPDYF
+ /
+ &NAMFPDYH
+ /
+ &NAMFPDYI
+ /
+ &NAMFPDYP
+ /
+ &NAMFPDYS
+ /
+ &NAMFPDYT
+ /
+ &NAMFPDYV
+ /
+ &NAMFPF
+   NFMAX(1)=60,
+   NFMAX(2)=80,
+ /
+ &NAMFPG
+   NFPDISTRIB=1,
+ /
+ &NAMFPIOS
+ /
+ &NAMFPMOVE
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+ /
+ &NAMGFL
+   NGFL_EZDIAG=4,
+   YEZDIAG_NL(1)%CNAME='EZDIAG01',
+   YEZDIAG_NL(1)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(2)%CNAME='EZDIAG02',
+   YEZDIAG_NL(2)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(3)%CNAME='EZDIAG03',
+   YEZDIAG_NL(3)%LREQOUT=.FALSE.,
+   YEZDIAG_NL(4)%CNAME='INPRRTOT3D',
+   YEZDIAG_NL(4)%LREQOUT=.TRUE.,
+   YG_NL%LQM=.TRUE.,
+   YG_NL%LSLHD=.TRUE.,
+   YG_NL%NCOUPLING=-1,
+   YG_NL%NREQIN=1,
+   YG_NL%REFVALC=0.,
+   YIRAD_NL%LGP=.TRUE.,
+   YI_NL%LQM=.TRUE.,
+   YI_NL%LSLHD=.TRUE.,
+   YI_NL%NCOUPLING=-1,
+   YI_NL%NREQIN=1,
+   YI_NL%REFVALC=0.,
+   YLRAD_NL%LGP=.TRUE.,
+   YL_NL%LQM=.TRUE.,
+   YL_NL%LSLHD=.TRUE.,
+   YL_NL%NCOUPLING=-1,
+   YL_NL%NREQIN=1,
+   YL_NL%REFVALC=0.,
+   YQ_NL%LCOMAD=.TRUE.,
+   YQ_NL%LQM=.TRUE.,
+   YQ_NL%LSLHD=.FALSE.,
+   YQ_NL%NREQIN=1,
+   YR_NL%LQM=.TRUE.,
+   YR_NL%LSLHD=.TRUE.,
+   YR_NL%NCOUPLING=-1,
+   YR_NL%NREQIN=1,
+   YR_NL%REFVALC=0.,
+   YS_NL%LQM=.TRUE.,
+   YS_NL%LSLHD=.TRUE.,
+   YS_NL%NCOUPLING=-1,
+   YS_NL%NREQIN=1,
+   YS_NL%REFVALC=0.,
+   YTKE_NL%NCOUPLING=0,
+   YTKE_NL%NREQIN=1,
+ /
+ &NAMGRIB
+ /
+ &NAMGWD
+ /
+ &NAMGWDIAG
+ /
+ &NAMGWWMS
+ /
+ &NAMIAU
+   ALPHAIAU=0.5,
+   LIAU=.FALSE.,
+   TSTARTIAU=1800,
+   TSTOPIAU=5340,
+ /
+ &NAMICE
+ /
+ &NAMINI
+   LDFI=.FALSE.,
+ /
+ &NAMINTFLEX
+ /
+ &NAMIOMI
+ /
+ &NAMIOS
+ /
+ &NAMIO_SERV
+   NIO_SERV_BUF_MAXSIZE=20,
+   NIO_SERV_METHOD=2,
+   NMSG_LEVEL_CLIENT=0,
+   NMSG_LEVEL_SERVER=0,
+   NPROCESS_LEVEL=5,
+   NPROC_IO=0,
+ /
+ &NAMJBCODES
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMOBS
+ /
+ &NAMONEDVAR
+ /
+ &NAMOOPS
+ /
+ &NAMOPH
+   CFNHWF='ECHIS',
+   LINC=.TRUE.,
+   NTIMEFMT=1,
+ /
+ &NAMOPTCMEM
+ /
+ &NAMPAR0
+   LOPT_SCALAR=.TRUE.,
+   NPRINTLEV=1,
+   LMPOFF=.FALSE.,
+   MBX_SIZE=2048000000,
+   MP_TYPE=2,
+   NOUTPUT=1,
+   NPROC=$NPROC,
+$NPRTRW_NPRTRV
+ /
+ &NAMPAR1
+   LEQ_REGIONS=.FALSE.,
+   LSLONDEM=.TRUE.,
+   LSPLIT=.TRUE.,
+   LSYNC_SLCOM=.FALSE.,
+   LSYNC_TRANS=.FALSE.,
+   L_GATHERV_WRGP=.FALSE.,
+   NCOMBFLEN=1800000,
+   NSTRIN=$NSTRIN,
+   NSTROUT=$NSTROUT,
+ /
+ &NAMPARAR
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   CMICRO='ICE3',
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LCRIAUTI=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LFPREC3D=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LOLSMC=.TRUE.,
+   LOSEDIC=.TRUE.,
+   LOSIGMAS=.TRUE.,
+   LOSUBG_COND=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   NPRINTFR=10000,
+   NPTP=1,
+   RCRIAUTC=0.001,
+   RCRIAUTI=0.0002,
+   RT0CRIAUTI=-5.,
+   VSIGQSAT=0.02,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+ /
+ &NAMPHMSE
+   LPGDFWR=.FALSE.,
+ /
+ &NAMPHY
+   LAERODES=.TRUE.,
+   LAEROLAN=.TRUE.,
+   LAEROSEA=.TRUE.,
+   LAEROSOO=.TRUE.,
+   LEDR=.TRUE.,
+   LMPHYS=.TRUE.,
+   LO3ABC=.TRUE.,
+   LRAYFM=.TRUE.,
+ /
+ &NAMPHY0
+   ALMAV=300.,
+   BEDIFV=0.05,
+   ECMNP=3000.,
+   GCCSV=0.,
+   GCVADS=0.8,
+   GCVALFA=0.000045,
+   GCVBETA=0.2,
+   GCVMLT=0.00016,
+   GCVNU=0.000025,
+   GCVPSI=1.,
+   GCVPSIE=1.,
+   GDDEVA=0.25,
+   GDDSDE=0.5,
+   GWDCD=6.,
+   HUCOE=0.5,
+   HUTIL=1.8,
+   QSSC=400.,
+   QSSUSC=0.75,
+   QSSUSS=0.4,
+   QSSUSV=250.,
+   QSUSXC=0.0002,
+   QSUSXS=0.0003,
+   QXRAL=130.,
+   QXRDEL=0.49,
+   QXRHX=0.99,
+   QXRR=0.25,
+   RCVEVAP=0.25,
+   REFLKUO=5000.,
+   REVGSL=15.,
+   SCO=-20.,
+   TDDGP=0.8,
+   TENTR=0.0000025,
+   TENTRX=0.00008,
+   TUDGP=0.8,
+   UHDIFV=0.0008,
+   USURIC=0.175,
+   USURICE=0.5,
+   USURICL=1.,
+   USURID=0.1,
+   USURIDE=0.25,
+   VZ0CM=0.00015,
+   XMAXLM=5000.,
+   XMINLM=10.,
+ /
+ &NAMPHY1
+   ALBMIN=0.65,
+   ALCRIN=0.75,
+   GCGEL=0.00003,
+   GCGELS=0.00005,
+   GNEIMX=1.8,
+   GNEIMXS=1.8,
+   RCTVEG(3)=0.000012,
+   RCTVEG(4)=0.00001,
+ /
+ &NAMPHY2
+   FACRAF=3.8,
+   HTKERAF=20.,
+   LMULAF=.TRUE.,
+   LRAFTKE=.TRUE.,
+   LRAFTUR=.TRUE.,
+   XDAMP=1.,
+   XMULAF=-1.85,
+ /
+ &NAMPHY3
+ /
+ &NAMPHYDS
+ /
+ &NAMPONG
+ /
+ &NAMPPC
+ /
+ &NAMPPVI
+ /
+ &NAMPRE
+ /
+ &NAMRAD15
+ /
+ &NAMRADCMEM
+ /
+ &NAMRCF
+ /
+ &NAMRCOEF
+ /
+ &NAMRES
+ /
+ &NAMRGRI
+ /
+ &NAMRINC
+ /
+ &NAMRIP
+    TSTEP=50.,
+    CSTOP='h2',
+ /
+ &NAMRIP0
+ /
+ &NAMRLX
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPSDT
+ /
+ &NAMSTA
+ /
+ &NAMSTOPH
+ /
+ &NAMSWE
+ /
+ &NAMTESTVAR
+ /
+ &NAMTHLIM
+ /
+ &NAMTOPH
+   ETCVIM=5000.,
+   ETNEBU=5000.,
+   ETPLUI=5000.,
+   XDRMTK=6.0D-7,
+   XDRMTP=800.,
+   XDRMUK=3.0D-7,
+   XDRMUP=800.,
+ /
+ &NAMTRAJP
+ /
+ &NAMTRANS
+ /
+ &NAMTRANS0
+ /
+ &NAMTS
+ /
+ &NAMVAR
+ /
+ &NAMVARBC
+ /
+ &NAMVARBC_AIREP
+ /
+ &NAMVARBC_ALLSKY
+ /
+ &NAMVARBC_GBRAD
+ /
+ &NAMVARBC_RAD
+ /
+ &NAMVARBC_SFCOBS
+ /
+ &NAMVARBC_TCWV
+ /
+ &NAMVARBC_TO3
+ /
+ &NAMVAREPS
+ /
+ &NAMVDF
+ /
+ &NAMVDOZ
+ /
+ &NAMVOLCANO
+ /
+ &NAMVRTL
+ /
+ &NAMVV0
+ /
+ &NAMVV1
+ /
+ &NAMVWRK
+ /
+ &NAMWAVELETJB
+ /
+ &NAMXFU
+   LXCLP=.TRUE.,
+   LXCLS=.TRUE.,
+   LXFU=.TRUE.,
+   LXNEBPA=.TRUE.,
+   LXNEBTT=.TRUE.,
+   LXNUVCLS=.TRUE.,
+   LXPLS=.TRUE.,
+   LXPLSG=.TRUE.,
+   LXQCLS=.TRUE.,
+   LXR=.TRUE.,
+   LXSOIL=.FALSE.,
+   LXTHW=.TRUE.,
+   LXTRT=.TRUE.,
+   LXTTCLS=.TRUE.,
+   LXXDIAGH=.TRUE.,
+   LXXGST=.TRUE.,
+   NFRRAZ=72,
+   NRAZTS(0)=0,
+ /
+ &NAM_CANAPE
+ /
+ &NAM_DISTRIBUTED_VECTORS
+ /
+ &NAPHLC
+ /
+ &NEMCT0
+ /
+ &NEMDIM
+ /
+ &NEMDYN
+ /
+ &NEMELBC0A
+   LESPCPL=.TRUE.,
+   NBICNHX=2,
+   NBICOP=2,
+   NBICOT=2,
+   NBICOU=2,
+   NBICPD=2,
+   NBICVD=2,
+   NECRIPL=1,
+ /
+ &NEMELBC0B
+   NEFRSPCPL=1,
+   NEK0=20,
+   NEK1=30,
+   NEN1=4,
+   NEN2=8,
+   SPNUDDIV=0.01,
+   SPNUDQ=0.,
+   SPNUDT=0.01,
+   SPNUDVOR=0.01,
+   TEFRCL=3600.,
+ /
+ &NEMFPEZO
+ /
+ &NEMGEO
+ /
+ &NEMJK
+ /
+ &NEMVAR
+ /
+ &NEMWAVELET
+ /
+ &NAETLDIAG
+ /
+ &NAMMETHOX
+ /
+ &NAMSPP
+ /
+ &NAMACV
+ /
+ &NAMFPOBJ
+ /
+ &NAMNORGWD
+ /
+ &NAMTRAJ
+ /
+ &NAMSATSIM
+ /
+ &NAMDVISI
+ /
+ &NAMNUDGLH
+ /
+ &NAMPERTPAR
+ /
+FIN
+/bin/cat fort.4
+
+/bin/cat <<FIN > EXSEG1.nam
+ &NAM_DIAG_ISBAN
+   LPGD=.TRUE.,
+   LSURF_MISC_BUDGET=.TRUE.,
+ /
+ &NAM_DIAG_SURFN
+   LCOEF=.TRUE.,
+   LSURF_BUDGET=.TRUE.,
+   N2M=2,
+ /
+ &NAM_ISBAN
+   CSCOND='NP89',
+ /
+ &NAM_REPROD_OPER
+   LREPROD_OPER=.TRUE.,
+ /
+ &NAM_SEAFLUXN
+   CSEA_FLUX='ECUME',
+   LPWG=.FALSE.,
+   LPRECIP=.FALSE.,
+   LPWEBB=.FALSE.,
+ /
+ &NAM_SSON
+   CROUGH='Z01D',
+   XFRACZ0=5.,
+   LDSV=.FALSE.,
+ /
+ &NAM_SURF_ATM
+   XRIMAX=0.2,
+   LNOSOF=.TRUE.,
+ /
+ &NAM_SURF_CSTS
+   XZ0SN=0.01,
+   XZ0HSN=0.001,
+   XEMISSN=0.99,
+ /
+ &NAM_WRITE_DIAG_SURFN
+   LPROVAR_TO_DIAG=.FALSE.,
+   LSELECT=.TRUE.,
+CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS',
+ /
+ &NAM_WRITE_SURF_ATM
+   LNOWRITE_TEXFILE=.TRUE.,
+ /
+FIN
+/bin/cat EXSEG1.nam
+
+#      *****************************************
+#      *  Acquisition du fichier de demarrage  *
+#      *****************************************
+
+echo
+for hh in 0 1 2 3 4 5 6 ; do
+  N=`expr $hh / 1 `
+  set -x
+  ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N}
+  set +x
+done
+set -x
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT
+ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx
+ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin .
+ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin .
+ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim
+ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx
+ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat .
+ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat .
+ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz
+
+#      ***************
+#      *  Chargement *
+#      ***************
+
+echo
+set -x
+\ln -s $LOADIR/MASTERODB MASTER
+set +x
+if ldd MASTER | grep openmpi > /dev/null; then
+  #On est sur PC
+  MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}')
+  MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC"
+  GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null)
+  export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1
+  export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions
+  export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions
+else
+  #On est sur HPC
+  #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD"
+  NNODES=$SLURM_JOB_NUM_NODES
+  MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES))
+  MPI_TASKS=$SLURM_NTASKS
+  MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --"
+  export OMP_STACKSIZE=4G
+  export KMP_STACKSIZE=4G
+  export KMP_MONITOR_STACKSIZE=4G
+  export DR_HOOK=1
+  export DR_HOOK_IGNORE_SIGNALS=-1
+  export DR_HOOK_SILENT=1
+  export DR_HOOK_SHOW_PROCESS_OPTIONS=0
+  export MPL_MBX_SIZE=2048000000
+  export EC_PROFILE_HEAP=0
+  export EC_PROFILE_MEM=0
+  export EC_MPI_ATEXIT=0
+  export EC_MEMINFO=0
+  export OPENBLAS_NUM_THREADS=1
+  export MKL_CBWR="AUTO,STRICT"
+  export MKL_NUM_THREADS=1
+  export MKL_DEBUG_CPU_TYPE=5
+  export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1
+  export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions
+fi
+echo $MPIRUN
+set +x
+if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi
+
+#      ***************
+#      *  Execution  *
+#      ***************
+
+echo
+echo OMP_NUM_THREADS=$OMP_NUM_THREADS
+set -x
+ulimit -s unlimited
+$MPIRUN $PWD/MASTER >lola
+set +x
+echo
+##if [ -f lola ] ; then
+##  echo;echo Standard output :;echo;cat lola
+##fi
+##if [ -f stderr.* ] ; then
+##  for file in stderr.* ; do
+##    echo;echo $file :;cat $file
+##  done
+##fi
+##if [ -f stdout.* ] ; then
+##echo;echo stdout :;echo;cat stdout.*
+##fi
+##if [ -a NODE.001_01 ] ; then
+##  for file in NODE* ; do
+##    echo;echo Listing $file;echo
+##    cat $file
+##  done
+##fi
+##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then
+### Top 25 for each MPI task :
+##  for file in drhook.prof.* ; do
+##    echo;echo $file :;head -38 $file
+##  done
+##fi
+#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl
+
+#      *******************
+#      *  Sauvegardes    *
+#      *******************
+
+ls
+#if [ -f PFFPOS000+0000 ] ; then
+#  cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID
+#fi
+cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/
+/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001*
+/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00*
+/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz)
+
+#      ****************
+#      *  Epilogue    *
+#      ****************
+
+ls -ltr | grep -v "\->"
+echo Wait_queue :
+ls -ltr $TMPWAIT
+cd $TMPDIR
+\rm -rf rundir.$$
+\rm -rf wait_queue.$$
+date
+set +x