diff --git a/src/arome/aux/mode_budget_phy.F90 b/src/arome/aux/mode_budget_phy.F90
index d2881a9679bcbf83eaa50a3fc3503bf7f5cfaf50..cb081ae07d3b3a281252c107079290a03a2c3741 100644
--- a/src/arome/aux/mode_budget_phy.F90
+++ b/src/arome/aux/mode_budget_phy.F90
@@ -77,8 +77,7 @@ USE MODDB_INTBUDGET, ONLY:TVARSM
 END SUBROUTINE BUDGET_STORE_ADD
 
       SUBROUTINE BUDGET_DDH(PVARS,KBUDN,HBUVAR,YDDDH, YDLDDH, YDMDDH, LDISDIFF)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #####################################
 !
 !!   BUDGET - routine to call the BUDGET routine for AROME.
@@ -165,7 +164,7 @@ CHARACTER (LEN=4) :: CLPROC
 CHARACTER (LEN=11) :: CLDDH
 LOGICAL :: LISDIFF
 
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('BUDGET_DDH',0,ZHOOK_HANDLE)
 
 IF (PRESENT(LDISDIFF)) THEN
diff --git a/src/arome/aux/mode_fill_dimphyexn.F90 b/src/arome/aux/mode_fill_dimphyexn.F90
index 9771b9e919610f980e0e2e6e63c9affe43879a42..8dd7a361068e8e3df6a7d916541fb5594b79c11a 100644
--- a/src/arome/aux/mode_fill_dimphyexn.F90
+++ b/src/arome/aux/mode_fill_dimphyexn.F90
@@ -35,8 +35,7 @@ SUBROUTINE FILL_DIMPHYEX(YDDIMPHYEX, KIT, KJT, KKT, KVEXT, KIE)
 !             ------------
 !
 USE MODD_DIMPHYEX,   ONLY: DIMPHYEX_t
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -50,7 +49,7 @@ INTEGER, INTENT(IN) :: KIE ! Index of the last horizontal point to consider
 !
 !*       0.2  declaration of local variables
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !-------------------------------------------------------------------------------
 !
 IF (LHOOK) CALL DR_HOOK('FILL_DIMPHYEX', 0, ZHOOK_HANDLE)
diff --git a/src/arome/conv/convect_chem_transport.F90 b/src/arome/conv/convect_chem_transport.F90
index b5030c5b70947c34bde2dfad0ae40d63efa668e1..b23868532afee32267eaab698789fcaac405cecb 100644
--- a/src/arome/conv/convect_chem_transport.F90
+++ b/src/arome/conv/convect_chem_transport.F90
@@ -1,11 +1,10 @@
 !     ######spl
-      SUBROUTINE CONVECT_CHEM_TRANSPORT( KLON, KLEV, KCH, PCH1, PCH1C,       &
+      SUBROUTINE CONVECT_CHEM_TRANSPORT( CVPEXT, D, NSV, KCH, PCH1, PCH1C, &
                                          KDPL, KPBL, KLCL, KCTL, KLFS, KDBL, &
                                          PUMF, PUER, PUDR, PDMF, PDER, PDDR, &
                                          PTIMEC, PDXDY, PMIXF, PLMASS, PWSUB,&
                                          KFTSTEPS )
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ########################################################################
 !
 !!**** Compute  modified chemical tracer values due to convective event
@@ -50,74 +49,81 @@
 !              ------------
 !
 USE MODD_CST, ONLY : XG
-USE MODD_CONVPAREXT, ONLY : JCVEXB, JCVEXT
-USE MODD_NSV,  ONLY : NSV_LGBEG,NSV_LGEND
+USE MODD_CONVPAREXT, ONLY : CONVPAREXT
+USE MODD_NSV,  ONLY : NSV_T
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
 !
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
-INTEGER,                INTENT(IN) :: KLON     ! horizontal dimension
-INTEGER,                INTENT(IN) :: KLEV     ! vertical dimension
+TYPE(CONVPAREXT),       INTENT(IN) :: CVPEXT
+TYPE(DIMPHYEX_T),       INTENT(IN) :: D
+TYPE(NSV_T),            INTENT(IN) :: NSV
 INTEGER,                INTENT(IN) :: KCH      ! number of passive tracers
 !
-REAL,DIMENSION(KLON,KLEV,KCH),INTENT(IN) :: PCH1 ! grid scale tracer concentr.
-REAL,DIMENSION(KLON,KLEV,KCH),INTENT(OUT):: PCH1C! conv adjusted tracer concntr.
-!
-INTEGER, DIMENSION(KLON), INTENT(IN) :: KDPL   ! index for departure level
-INTEGER, DIMENSION(KLON), INTENT(IN) :: KPBL   ! index for top of source layer
-INTEGER, DIMENSION(KLON), INTENT(IN) :: KLCL   ! index lifting condens. level
-INTEGER, DIMENSION(KLON), INTENT(IN) :: KCTL   ! index for cloud top level
-INTEGER, DIMENSION(KLON), INTENT(IN) :: KLFS   ! index for level of free sink
-INTEGER, DIMENSION(KLON), INTENT(IN) :: KDBL   ! index for downdraft base level
-!
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PUMF ! updraft mass flux (kg/s)
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PUER ! updraft entrainment (kg/s)
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PUDR ! updraft detrainment (kg/s)
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PDMF ! downdraft mass flux (kg/s)
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PDER ! downdraft entrainment (kg/s)
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PDDR ! downdraft detrainment (kg/s)
-!
-REAL, DIMENSION(KLON),     INTENT(IN) :: PTIMEC! convection time step
-REAL, DIMENSION(KLON),     INTENT(IN) :: PDXDY ! grid area (m^2)
-REAL, DIMENSION(KLON),     INTENT(IN) :: PMIXF ! mixed fraction at LFS
-REAL, DIMENSION(KLON,KLEV),INTENT(IN) :: PLMASS! mass of model layer (kg)
-REAL, DIMENSION(KLON,KLEV),INTENT(IN) :: PWSUB ! envir. compensating subsidence(Pa/s)
+REAL,DIMENSION(D%NIT,D%NKT,KCH),INTENT(IN) :: PCH1 ! grid scale tracer concentr.
+REAL,DIMENSION(D%NIT,D%NKT,KCH),INTENT(OUT):: PCH1C! conv adjusted tracer concntr.
+!
+INTEGER, DIMENSION(D%NIT), INTENT(IN) :: KDPL   ! index for departure level
+INTEGER, DIMENSION(D%NIT), INTENT(IN) :: KPBL   ! index for top of source layer
+INTEGER, DIMENSION(D%NIT), INTENT(IN) :: KLCL   ! index lifting condens. level
+INTEGER, DIMENSION(D%NIT), INTENT(IN) :: KCTL   ! index for cloud top level
+INTEGER, DIMENSION(D%NIT), INTENT(IN) :: KLFS   ! index for level of free sink
+INTEGER, DIMENSION(D%NIT), INTENT(IN) :: KDBL   ! index for downdraft base level
+!
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PUMF ! updraft mass flux (kg/s)
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PUER ! updraft entrainment (kg/s)
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PUDR ! updraft detrainment (kg/s)
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PDMF ! downdraft mass flux (kg/s)
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PDER ! downdraft entrainment (kg/s)
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PDDR ! downdraft detrainment (kg/s)
+!
+REAL, DIMENSION(D%NIT),     INTENT(IN) :: PTIMEC! convection time step
+REAL,                      INTENT(IN) :: PDXDY ! grid area (m^2)
+REAL, DIMENSION(D%NIT),     INTENT(IN) :: PMIXF ! mixed fraction at LFS
+REAL, DIMENSION(D%NIT,D%NKT),INTENT(IN) :: PLMASS! mass of model layer (kg)
+REAL, DIMENSION(D%NIT,D%NKT),INTENT(IN) :: PWSUB ! envir. compensating subsidence(Pa/s)
 INTEGER,                INTENT(IN) :: KFTSTEPS  ! maximum fractional time steps
 !
 !
 !*       0.2   Declarations of local variables :
 !
 INTEGER :: INCH1          ! number of chemical tracers
-INTEGER :: IIE, IKB, IKE  ! horizontal + vertical loop bounds
+INTEGER :: IKB, IKE  ! horizontal + vertical loop bounds
 INTEGER :: IKS            ! vertical dimension
 INTEGER :: JI             ! horizontal loop index
 INTEGER :: JK, JKP        ! vertical loop index
 INTEGER :: JN             ! chemical tracer loop index
 INTEGER :: JSTEP          ! fractional time loop index
-INTEGER :: JKLD, JKLP, JKMAX ! loop index for levels
+INTEGER :: JKLD, JKLP, JKMIN, JKMAX, JKMAX2 ! loop index for levels
 !
-REAL, DIMENSION(KLON,KLEV)     :: ZOMG ! compensat. subsidence (Pa/s)
-REAL, DIMENSION(KLON,KLEV,KCH) :: ZUCH1, ZDCH1 ! updraft/downdraft values
-REAL, DIMENSION(KLON)          :: ZTIMEC  ! fractional convective time step
-REAL, DIMENSION(KLON,KLEV)     :: ZTIMC! 2D work array for ZTIMEC
-REAL, DIMENSION(KLON,KLEV,KCH) :: ZCH1MFIN, ZCH1MFOUT
+REAL, DIMENSION(D%NIT,D%NKT)     :: ZOMG ! compensat. subsidence (Pa/s)
+REAL, DIMENSION(D%NIT,D%NKT,KCH) :: ZUCH1, ZDCH1 ! updraft/downdraft values
+REAL, DIMENSION(D%NIT)          :: ZTIMEC  ! fractional convective time step
+REAL, DIMENSION(D%NIT,D%NKT)     :: ZTIMC! 2D work array for ZTIMEC
+REAL, DIMENSION(D%NIT,D%NKT,KCH) :: ZCH1MFIN, ZCH1MFOUT
                                    ! work arrays for environm. compensat. mass
-REAL, DIMENSION(KLON,KCH)      :: ZWORK1, ZWORK2, ZWORK3
+REAL, DIMENSION(D%NIT,KCH)      :: ZWORK1, ZWORK2, ZWORK3
 !
 !-------------------------------------------------------------------------------
 !
 !*       0.3   Compute loop bounds
 !              -------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('CONVECT_CHEM_TRANSPORT',0,ZHOOK_HANDLE)
 INCH1  = KCH
-IIE    = KLON
-IKB    = 1 + JCVEXB
-IKS    = KLEV
-IKE    = KLEV - JCVEXT
-JKMAX  = MAXVAL( KCTL(:) )
+IKB    = 1 + CVPEXT%JCVEXB
+IKS    = D%NKT
+IKE    = D%NKT - CVPEXT%JCVEXT
+JKMAX  = 0
+JKMIN  = 999999999
+DO JI=D%NIB, D%NIE
+  JKMIN = MIN(JKMIN, KDPL(JI))
+  JKMAX = MAX(JKMAX, KCTL(JI))
+ENDDO
+
 !
 !
 !*      2.      Updraft computations
@@ -128,24 +134,26 @@ ZUCH1(:,:,:) = 0.
 !*      2.1     Initialization  at LCL
 !               ----------------------------------
 !
-DO JI = 1, IIE
-    JKLD = KDPL(JI)
-    JKLP = KPBL(JI)
-    ZWORK1(JI,:) = .5 * ( PCH1(JI,JKLD,:) + PCH1(JI,JKLP,:) )
+DO JI = D%NIB, D%NIE
+    DO JN = 1, INCH1
+      JKLD = KDPL(JI)
+      JKLP = KPBL(JI)
+      ZWORK1(JI,JN) = .5 * ( PCH1(JI,JKLD,JN) + PCH1(JI,JKLP,JN) )
+    ENDDO
 END DO
 !
 !*      2.2     Final updraft loop
 !               ------------------
 !
-DO JK = MINVAL( KDPL(:) ), JKMAX
+DO JK = JKMIN, JKMAX
 JKP = JK + 1
 !
     DO JN = 1, INCH1
-     DO JI = 1, IIE
-       IF ( KDPL(JI) <= JK .AND. KLCL(JI) > JK )                             &
+     DO JI = D%NIB, D%NIE
+       IF ( KDPL(JI) <= JK .AND. MIN(KLCL(JI), KCTL(JI)) > JK )                             &
             ZUCH1(JI,JK,JN) = ZWORK1(JI,JN)
 !
-       IF ( KLCL(JI) - 1 <= JK .AND. KCTL(JI) > JK ) THEN
+       IF ( MIN(KLCL(JI), KCTL(JI)) - 1 <= JK .AND. KCTL(JI) > JK ) THEN
            ZUCH1(JI,JKP,JN) = ZUCH1(JI,JK,JN)
                             !if you have reactive i.e. non-passive tracers
                             ! update their values here and add the corresponding
@@ -167,20 +175,30 @@ ZDCH1(:,:,:) = 0.
 !*      3.1     Initialization at the LFS
 !               -------------------------
 !
-ZWORK1(:,:) = SPREAD( PMIXF(:), DIM=2, NCOPIES=INCH1 )
-DO JI = 1, IIE
+DO JI=1,D%NIE
+DO JK=1,INCH1
+ZWORK1(JI,JK) = PMIXF(JI)
+ENDDO
+ENDDO
+DO JI = D%NIB, D%NIE
+    DO JN = 1, INCH1
      JK = KLFS(JI)
-     ZDCH1(JI,JK,:) = ZWORK1(JI,:) * PCH1(JI,JK,:) +                          &
-                                       ( 1. - ZWORK1(JI,:) ) * ZUCH1(JI,JK,:)
+     ZDCH1(JI,JK,JN) = ZWORK1(JI,JN) * PCH1(JI,JK,JN) +                          &
+                                       ( 1. - ZWORK1(JI,JN) ) * ZUCH1(JI,JK,JN)
+    ENDDO
 END DO
 !
 !*      3.2     Final downdraft loop
 !               --------------------
 !
-DO JK = MAXVAL( KLFS(:) ), IKB + 1, -1
+JKMAX2 = 0
+DO JI=D%NIB, D%NIE
+  JKMAX2 = MAX(JKMAX2, KLFS(JI))
+ENDDO
+DO JK = JKMAX2, IKB + 1, -1
 JKP = JK - 1
     DO JN = 1, INCH1
-    DO JI = 1, IIE
+    DO JI = D%NIB, D%NIE
       IF ( JK <= KLFS(JI) .AND. JKP >= KDBL(JI) ) THEN
        ZDCH1(JI,JKP,JN) = ( ZDCH1(JI,JK,JN) * PDMF(JI,JK) -              &
                             PCH1(JI,JK,JN) *  PDER(JI,JKP) ) /           &
@@ -194,25 +212,39 @@ END DO
 !*      4.      Final closure (environmental) computations
 !               ------------------------------------------
 !
-PCH1C(:,IKB:IKE,:) = PCH1(:,IKB:IKE,:) ! initialize adjusted envir. values
+PCH1C(D%NIB:D%NIE,IKB:IKE,1:KCH) = PCH1(D%NIB:D%NIE,IKB:IKE,1:KCH) ! initialize adjusted envir. values
 !
 DO JK = IKB, IKE
-   ZOMG(:,JK) = PWSUB(:,JK) * PDXDY(:) / XG ! environmental subsidence
+  DO JI=D%NIB,D%NIE
+    ZOMG(JI,JK) = PWSUB(JI,JK) * PDXDY / XG ! environmental subsidence
+  ENDDO
 END DO
 !
-ZTIMEC(:) = PTIMEC(:) / REAL( KFTSTEPS ) ! adjust  fractional time step
-                                         ! to be an integer multiple of PTIMEC
-WHERE ( PTIMEC(:) < 1. ) ZTIMEC(:) = 0.
-ZTIMC(:,:)= SPREAD( ZTIMEC(:), DIM=2, NCOPIES=IKS )
-!
-ZCH1MFIN(:,:,:)   = 0.
-ZCH1MFOUT(:,:,:)  = 0.
+DO JI=D%NIB,D%NIE
+  ZTIMEC(JI) = PTIMEC(JI) / REAL( KFTSTEPS ) ! adjust  fractional time step
+ENDDO                                    ! to be an integer multiple of PTIMEC
+
+DO JI=D%NIB,D%NIE
+  IF(PTIMEC(JI) < 1.) ZTIMEC(JI) = 0
+ENDDO
+DO JI=1,D%NIE
+DO JK=1,IKS
+  ZTIMC(JI,JK) = ZTIMEC(JI)
+ENDDO
+ENDDO
+!
+ZCH1MFIN(D%NIB:D%NIE,1:D%NKT,1:KCH)   = 0.
+ZCH1MFOUT(D%NIB:D%NIE,1:D%NKT,1:KCH)  = 0.
 !
 DO JSTEP = 1, KFTSTEPS ! Enter the fractional time step loop
 !
       DO JK = IKB + 1, JKMAX
           JKP = MAX( IKB + 1, JK - 1 )
-          ZWORK3(:,:) = SPREAD( ZOMG(:,JK), DIM=2, NCOPIES=INCH1 )
+          DO JI=1,D%NIE
+          DO JN=1,INCH1
+            ZWORK3(JI,JN) = ZOMG(JI,JK)
+          ENDDO
+          ENDDO
           ZWORK1(:,:) = SIGN( 1., ZWORK3(:,:) )
           ZWORK2(:,:) = 0.5 * ( 1. + ZWORK1(:,:) )
           ZWORK1(:,:) = 0.5 * ( 1. - ZWORK1(:,:) )
@@ -224,16 +256,18 @@ DO JSTEP = 1, KFTSTEPS ! Enter the fractional time step loop
 !
       DO JN = 1, INCH1
        DO JK = IKB + 1, JKMAX
-         PCH1C(:,JK,JN) = PCH1C(:,JK,JN) + ZTIMC(:,JK) / PLMASS(:,JK) *  (    &
-                      ZCH1MFIN(:,JK,JN) + PUDR(:,JK) * ZUCH1(:,JK,JN) +       &
-                      PDDR(:,JK) * ZDCH1(:,JK,JN) - ZCH1MFOUT(:,JK,JN) -      &
-                      ( PUER(:,JK) + PDER(:,JK) ) * PCH1(:,JK,JN)    )
-         IF(JN < NSV_LGBEG .OR. JN>NSV_LGEND-1) THEN
-           PCH1C(:,JK,JN) = MAX( 0., PCH1C(:,JK,JN) )
-         ELSE
-           ! no tendency for horizontal Lagrangian variables
-           PCH1C(:,JK,JN) = PCH1(:,JK,JN)
-         END IF
+         DO JI=D%NIB,D%NIE
+           PCH1C(JI,JK,JN) = PCH1C(JI,JK,JN) + ZTIMC(JI,JK) / PLMASS(JI,JK) *  (    &
+                        ZCH1MFIN(JI,JK,JN) + PUDR(JI,JK) * ZUCH1(JI,JK,JN) +       &
+                        PDDR(JI,JK) * ZDCH1(JI,JK,JN) - ZCH1MFOUT(JI,JK,JN) -      &
+                        ( PUER(JI,JK) + PDER(JI,JK) ) * PCH1(JI,JK,JN)    )
+           IF(JN < NSV%NSV_LGBEG .OR. JN>NSV%NSV_LGEND-1) THEN
+             PCH1C(JI,JK,JN) = MAX( 0., PCH1C(JI,JK,JN) )
+           ELSE
+             ! no tendency for horizontal Lagrangian variables
+             PCH1C(JI,JK,JN) = PCH1(JI,JK,JN)
+           END IF
+         ENDDO
        END DO
       END DO
 !
diff --git a/src/arome/conv/convect_chem_transport.h b/src/arome/conv/convect_chem_transport.h
new file mode 100644
index 0000000000000000000000000000000000000000..19efece81e5fd9feae8e32d9d34b509f4204d276
--- /dev/null
+++ b/src/arome/conv/convect_chem_transport.h
@@ -0,0 +1,39 @@
+INTERFACE
+
+SUBROUTINE CONVECT_CHEM_TRANSPORT( CVPEXT, D, NSV, KCH, PCH1, PCH1C, &
+KDPL, KPBL, KLCL, KCTL, KLFS, KDBL, &
+PUMF, PUER, PUDR, PDMF, PDER, PDDR, &
+PTIMEC, PDXDY, PMIXF, PLMASS, PWSUB,&
+KFTSTEPS )
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE MODD_CST, ONLY : XG
+USE MODD_CONVPAREXT, ONLY : CONVPAREXT
+USE MODD_NSV,  ONLY : NSV_T
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
+TYPE(CONVPAREXT),       INTENT(IN) :: CVPEXT
+TYPE(DIMPHYEX_T),       INTENT(IN) :: D
+TYPE(NSV_T),            INTENT(IN) :: NSV
+INTEGER,                INTENT(IN) :: KCH
+REAL,DIMENSION(D%NIT,D%NKT,KCH),INTENT(IN) :: PCH1
+REAL,DIMENSION(D%NIT,D%NKT,KCH),INTENT(OUT):: PCH1C
+INTEGER, DIMENSION(D%NIT), INTENT(IN) :: KDPL
+INTEGER, DIMENSION(D%NIT), INTENT(IN) :: KPBL
+INTEGER, DIMENSION(D%NIT), INTENT(IN) :: KLCL
+INTEGER, DIMENSION(D%NIT), INTENT(IN) :: KCTL
+INTEGER, DIMENSION(D%NIT), INTENT(IN) :: KLFS
+INTEGER, DIMENSION(D%NIT), INTENT(IN) :: KDBL
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PUMF
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PUER
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PUDR
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PDMF
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PDER
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PDDR
+REAL, DIMENSION(D%NIT),     INTENT(IN) :: PTIMEC
+REAL,                      INTENT(IN) :: PDXDY
+REAL, DIMENSION(D%NIT),     INTENT(IN) :: PMIXF
+REAL, DIMENSION(D%NIT,D%NKT),INTENT(IN) :: PLMASS
+REAL, DIMENSION(D%NIT,D%NKT),INTENT(IN) :: PWSUB
+INTEGER,                INTENT(IN) :: KFTSTEPS
+END SUBROUTINE CONVECT_CHEM_TRANSPORT
+
+END INTERFACE
diff --git a/src/arome/conv/convect_closure.F90 b/src/arome/conv/convect_closure.F90
index 6ee605af504ff8b7f7c138e8913626ef3eac6dbd..7912c2bf16444ddbfe4dd84aed77db4f388fd9d5 100644
--- a/src/arome/conv/convect_closure.F90
+++ b/src/arome/conv/convect_closure.F90
@@ -11,8 +11,7 @@
                                  PCAPE, PTIMEC,                              &
                                  KFTSTEPS,                                   &
                                  PDTEVRF, PPRLFLX, PPRSFLX                   )
-     USE PARKIND1, ONLY : JPRB
-     USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+     USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !    #########################################################################
 !
 !!**** Uses modified Fritsch-Chappell closure
@@ -211,7 +210,7 @@ LOGICAL, DIMENSION(KLON,KLEV) :: GWORK4    ! work array
 !               ----------------------------
 !
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('CONVECT_CLOSURE',0,ZHOOK_HANDLE)
 PSPR(:)   = 0.
 ZTIMC(:,:) = 0.
diff --git a/src/arome/conv/convect_closure_adjust.F90 b/src/arome/conv/convect_closure_adjust.F90
index 44ec30977339a26cf07fb52a53436d8364b8b048..3e25822f8e5b27856e901200e1e1a9e8465ec6db 100644
--- a/src/arome/conv/convect_closure_adjust.F90
+++ b/src/arome/conv/convect_closure_adjust.F90
@@ -5,8 +5,7 @@
                                         PPRMELT, PZPRMELT, PDTEVR, PZDTEVR,    &
                                         PTPR, PZTPR,                           &
                                         PPRLFLX, PZPRLFL, PPRSFLX, PZPRSFL     )
-     USE PARKIND1, ONLY : JPRB
-     USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+     USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !    ###########################################################################
 !
 !!**** Uses closure adjustment factor to adjust mass flux and to modify
@@ -103,7 +102,7 @@ INTEGER :: JK                       ! vertical loop index
 !*       0.3   Compute loop bounds
 !              -------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('CONVECT_CLOSURE_ADJUST',0,ZHOOK_HANDLE)
 IKB  = 1 + JCVEXB
 IKE  = KLEV - JCVEXT
diff --git a/src/arome/conv/convect_closure_adjust_shal.F90 b/src/arome/conv/convect_closure_adjust_shal.F90
index 4b5447ab1f8344e31dd1fa0a0bd880a96672ee04..04fc6d91532ee527608e691f37eb5e3124c22230 100644
--- a/src/arome/conv/convect_closure_adjust_shal.F90
+++ b/src/arome/conv/convect_closure_adjust_shal.F90
@@ -1,8 +1,7 @@
 !     ######spl
-     SUBROUTINE CONVECT_CLOSURE_ADJUST_SHAL( KLON, KLEV, PADJ,                      &
+     SUBROUTINE CONVECT_CLOSURE_ADJUST_SHAL( CVPEXT, D, PADJ,        &
                                              PUMF, PZUMF, PUER, PZUER, PUDR, PZUDR  )
-     USE PARKIND1, ONLY : JPRB
-     USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+     USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !    ################################################################################
 !
 !!**** Uses closure adjustment factor to adjust mass flux and to modify
@@ -52,30 +51,31 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CONVPAREXT, ONLY : JCVEXB, JCVEXT
+USE MODD_CONVPAREXT, ONLY : CONVPAREXT
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
 !
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
 !
-INTEGER,                    INTENT(IN) :: KLON     ! horizontal dimension
-INTEGER,                    INTENT(IN) :: KLEV     ! vertical dimension
-REAL, DIMENSION(KLON),      INTENT(IN) :: PADJ     ! mass adjustment factor
+TYPE(CONVPAREXT),           INTENT(IN) :: CVPEXT
+TYPE(DIMPHYEX_T),           INTENT(IN) :: D
+REAL, DIMENSION(D%NIT),      INTENT(IN) :: PADJ     ! mass adjustment factor
 !
 !
-REAL, DIMENSION(KLON,KLEV), INTENT(INOUT) :: PUMF  ! updraft mass flux (kg/s)
-REAL, DIMENSION(KLON,KLEV), INTENT(INOUT) :: PZUMF ! initial value of  "
-REAL, DIMENSION(KLON,KLEV), INTENT(INOUT) :: PUER  ! updraft entrainment (kg/s)
-REAL, DIMENSION(KLON,KLEV), INTENT(INOUT) :: PZUER ! initial value of  "
-REAL, DIMENSION(KLON,KLEV), INTENT(INOUT) :: PUDR  ! updraft detrainment (kg/s)
-REAL, DIMENSION(KLON,KLEV), INTENT(INOUT) :: PZUDR ! initial value of  "
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) :: PUMF  ! updraft mass flux (kg/s)
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) :: PZUMF ! initial value of  "
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) :: PUER  ! updraft entrainment (kg/s)
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) :: PZUER ! initial value of  "
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) :: PUDR  ! updraft detrainment (kg/s)
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) :: PZUDR ! initial value of  "
 !
 !
 !*       0.2   Declarations of local variables :
 !
 INTEGER :: IKB, IKE                 ! vert. loop bounds
-INTEGER :: JK                       ! vertical loop index
+INTEGER :: JK, JI                   ! vertical loop index
 !
 !
 !-------------------------------------------------------------------------------
@@ -83,10 +83,10 @@ INTEGER :: JK                       ! vertical loop index
 !*       0.3   Compute loop bounds
 !              -------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('CONVECT_CLOSURE_ADJUST_SHAL',0,ZHOOK_HANDLE)
-IKB  = 1 + JCVEXB
-IKE  = KLEV - JCVEXT
+IKB  = 1 + CVPEXT%JCVEXB
+IKE  = D%NKT - CVPEXT%JCVEXT
 !
 !
 !*       1.     Adjust mass flux by the factor PADJ to converge to
@@ -94,9 +94,11 @@ IKE  = KLEV - JCVEXT
 !               ----------------------------------------------------
 !
      DO JK = IKB + 1, IKE
-          PUMF(:,JK)  = PZUMF(:,JK)   * PADJ(:)
-          PUER(:,JK)  = PZUER(:,JK)   * PADJ(:)
-          PUDR(:,JK)  = PZUDR(:,JK)   * PADJ(:)
+       DO JI = D%NIB, D%NIE
+          PUMF(JI,JK)  = PZUMF(JI,JK)   * PADJ(JI)
+          PUER(JI,JK)  = PZUER(JI,JK)   * PADJ(JI)
+          PUDR(JI,JK)  = PZUDR(JI,JK)   * PADJ(JI)
+        ENDDO
      END DO
 !
 IF (LHOOK) CALL DR_HOOK('CONVECT_CLOSURE_ADJUST_SHAL',1,ZHOOK_HANDLE)
diff --git a/src/arome/conv/convect_closure_adjust_shal.h b/src/arome/conv/convect_closure_adjust_shal.h
new file mode 100644
index 0000000000000000000000000000000000000000..e9787fb445884c558f51750d7b3c2399a46f391f
--- /dev/null
+++ b/src/arome/conv/convect_closure_adjust_shal.h
@@ -0,0 +1,19 @@
+INTERFACE
+
+SUBROUTINE CONVECT_CLOSURE_ADJUST_SHAL( CVPEXT, D, PADJ,        &
+PUMF, PZUMF, PUER, PZUER, PUDR, PZUDR  )
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE MODD_CONVPAREXT, ONLY : CONVPAREXT
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
+TYPE(CONVPAREXT),           INTENT(IN) :: CVPEXT
+TYPE(DIMPHYEX_T),           INTENT(IN) :: D
+REAL, DIMENSION(D%NIT),      INTENT(IN) :: PADJ
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) :: PUMF
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) :: PZUMF
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) :: PUER
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) :: PZUER
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) :: PUDR
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT) :: PZUDR
+END SUBROUTINE CONVECT_CLOSURE_ADJUST_SHAL
+
+END INTERFACE
diff --git a/src/arome/conv/convect_closure_shal.F90 b/src/arome/conv/convect_closure_shal.F90
index cfae7f68451336695eba5ac7d1de960004aac616..2416a57dc54e58ff1f0c718221848a916a5a7429 100644
--- a/src/arome/conv/convect_closure_shal.F90
+++ b/src/arome/conv/convect_closure_shal.F90
@@ -1,13 +1,12 @@
 !     ######spl
-     SUBROUTINE CONVECT_CLOSURE_SHAL( KLON, KLEV,                                 &
-                                      PPRES, PDPRES, PZ, PDXDY, PLMASS,           &
+     SUBROUTINE CONVECT_CLOSURE_SHAL( CVP_SHAL, CVPEXT, CST, D,         &
+                                      PPRES, PDPRES, PZ, PLMASS,           &
                                       PTHL, PTH, PRW, PRC, PRI, OTRIG1,           &
                                       PTHC, PRWC, PRCC, PRIC, PWSUB,              &
                                       KLCL, KDPL, KPBL, KCTL,                     &
                                       PUMF, PUER, PUDR, PUTHL, PURW,              &
                                       PURC, PURI, PCAPE, PTIMEC, KFTSTEPS         )
-     USE PARKIND1, ONLY : JPRB
-     USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+     USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !    ##############################################################################
 !
 !!**** Uses modified Fritsch-Chappell closure
@@ -76,60 +75,62 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-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
+USE MODD_CST, ONLY : CST_T
+USE MODD_CONVPAR_SHAL, ONLY : CONVPAR_SHAL
+USE MODD_CONVPAREXT, ONLY : CONVPAREXT
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
 !
 !
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
-INTEGER,                   INTENT(IN) :: KLON   ! horizontal dimension
-INTEGER,                   INTENT(IN) :: KLEV   ! vertical dimension
-INTEGER, DIMENSION(KLON),  INTENT(IN) :: KLCL   ! index lifting condens. level
-INTEGER, DIMENSION(KLON),  INTENT(IN) :: KCTL   ! index for cloud top level
-INTEGER, DIMENSION(KLON),  INTENT(IN) :: KDPL   ! index for departure level
-INTEGER, DIMENSION(KLON),  INTENT(IN) :: KPBL   ! index for top of source layer
-REAL, DIMENSION(KLON),  INTENT(INOUT) :: PTIMEC ! convection time step
-REAL, DIMENSION(KLON),     INTENT(IN) :: PDXDY  ! grid area (m^2)
-REAL, DIMENSION(KLON,KLEV),INTENT(IN) :: PTHL   ! grid scale enthalpy (J/kg)
-REAL, DIMENSION(KLON,KLEV),INTENT(IN) :: PTH    ! grid scale theta
-REAL, DIMENSION(KLON,KLEV),INTENT(IN) :: PRW    ! grid scale total water
+TYPE(CONVPAR_SHAL)                         ,INTENT(IN)     :: CVP_SHAL
+TYPE(CONVPAREXT)                           ,INTENT(IN)     :: CVPEXT
+TYPE(CST_T)                                ,INTENT(IN)     :: CST
+TYPE(DIMPHYEX_T)                           ,INTENT(IN)     :: D
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PPRES  ! pressure (P)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PDPRES ! pressure difference between
+                                                 ! bottom and top of layer (Pa)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PZ     ! height of model layer (m)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PLMASS ! mass of model layer (kg)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PTHL   ! grid scale enthalpy (J/kg)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PTH    ! grid scale theta
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PRW    ! grid scale total water
                                                 ! mixing ratio
-REAL, DIMENSION(KLON,KLEV),INTENT(IN) :: PRC    ! grid scale r_c
-REAL, DIMENSION(KLON,KLEV),INTENT(IN) :: PRI    ! grid scale r_i
-LOGICAL, DIMENSION(KLON),  INTENT(IN) :: OTRIG1 ! logical to keep trace of
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PRC    ! grid scale r_c
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PRI    ! grid scale r_i
+LOGICAL            ,DIMENSION(D%NIT)       ,INTENT(IN)     :: OTRIG1 ! logical to keep trace of
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(OUT)    :: PTHC  ! conv. adj. grid scale theta
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(OUT)    :: PRWC  ! conv. adj. grid scale r_w
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(OUT)    :: PRCC  ! conv. adj. grid scale r_c
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(OUT)    :: PRIC  ! conv. adj. grid scale r_i
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(OUT)    :: PWSUB ! envir. compensating subsidence(Pa/s)
+INTEGER            ,DIMENSION(D%NIT)       ,INTENT(IN)     :: KLCL   ! index lifting condens. level
+INTEGER            ,DIMENSION(D%NIT)       ,INTENT(IN)     :: KDPL   ! index for departure level
+INTEGER            ,DIMENSION(D%NIT)       ,INTENT(IN)     :: KPBL   ! index for top of source layer
+INTEGER            ,DIMENSION(D%NIT)       ,INTENT(IN)     :: KCTL   ! index for cloud top level
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(INOUT)  :: PUMF  ! updraft mass flux (kg/s)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(INOUT)  :: PUER  ! updraft entrainment (kg/s)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(INOUT)  :: PUDR  ! updraft detrainment (kg/s)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PUTHL  ! updraft enthalpy (J/kg)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PURW   ! updraft total water (kg/kg)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PURC   ! updraft cloud water (kg/kg)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PURI   ! updraft cloud ice   (kg/kg)
+REAL               ,DIMENSION(D%NIT)       ,INTENT(IN)     :: PCAPE  ! available potent. energy
+REAL               ,DIMENSION(D%NIT)       ,INTENT(INOUT)  :: PTIMEC ! convection time step
                                                 ! convective arrays modified in UPDRAFT
 !
 !
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PPRES  ! pressure (P)
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PDPRES ! pressure difference between
-                                                 ! bottom and top of layer (Pa)
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PLMASS ! mass of model layer (kg)
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PZ     ! height of model layer (m)
-REAL, DIMENSION(KLON),     INTENT(IN)  :: PCAPE  ! available potent. energy
-INTEGER,                INTENT(OUT)   :: KFTSTEPS! maximum of fract time steps
+INTEGER                                    ,INTENT(OUT)    :: KFTSTEPS! maximum of fract time steps
                                                  ! only used for chemical tracers
 !
 !
-REAL, DIMENSION(KLON,KLEV), INTENT(INOUT):: PUMF  ! updraft mass flux (kg/s)
-REAL, DIMENSION(KLON,KLEV), INTENT(INOUT):: PUER  ! updraft entrainment (kg/s)
-REAL, DIMENSION(KLON,KLEV), INTENT(INOUT):: PUDR  ! updraft detrainment (kg/s)
-REAL, DIMENSION(KLON,KLEV), INTENT(IN)  :: PUTHL  ! updraft enthalpy (J/kg)
-REAL, DIMENSION(KLON,KLEV), INTENT(IN)  :: PURW   ! updraft total water (kg/kg)
-REAL, DIMENSION(KLON,KLEV), INTENT(IN)  :: PURC   ! updraft cloud water (kg/kg)
-REAL, DIMENSION(KLON,KLEV), INTENT(IN)  :: PURI   ! updraft cloud ice   (kg/kg)
 !
-REAL, DIMENSION(KLON,KLEV), INTENT(OUT)  :: PTHC  ! conv. adj. grid scale theta
-REAL, DIMENSION(KLON,KLEV), INTENT(OUT)  :: PRWC  ! conv. adj. grid scale r_w
-REAL, DIMENSION(KLON,KLEV), INTENT(OUT)  :: PRCC  ! conv. adj. grid scale r_c
-REAL, DIMENSION(KLON,KLEV), INTENT(OUT)  :: PRIC  ! conv. adj. grid scale r_i
-REAL, DIMENSION(KLON,KLEV), INTENT(OUT)  :: PWSUB ! envir. compensating subsidence(Pa/s)
 !
 !*       0.2   Declarations of local variables :
 !
-INTEGER :: IIE, IKB, IKE  ! horizontal + vertical loop bounds
+INTEGER :: IKB, IKE  ! horizontal + vertical loop bounds
 INTEGER :: IKS            ! vertical dimension
 INTEGER :: JK, JKP, JKMAX ! vertical loop index
 INTEGER :: JI             ! horizontal loop index
@@ -137,39 +138,39 @@ INTEGER :: JITER          ! iteration loop index
 INTEGER :: JSTEP          ! fractional time loop index
 REAL    :: ZCPORD, ZRDOCP ! C_pd / R_d, R_d / C_pd
 !
-REAL, DIMENSION(KLON,KLEV) :: ZTHLC       ! convectively adjusted
+REAL, DIMENSION(D%NIT,D%NKT) :: ZTHLC       ! convectively adjusted
                                           ! grid scale enthalpy
-REAL, DIMENSION(KLON,KLEV) :: ZOMG        ! conv. environm. subsidence (Pa/s)
-REAL, DIMENSION(KLON,KLEV) :: ZUMF        ! non-adjusted updraft mass flux
-REAL, DIMENSION(KLON,KLEV) :: ZUER        !   "     updraft  entrainm. rate
-REAL, DIMENSION(KLON,KLEV) :: ZUDR        !   "     updraft  detrainm. rate
-REAL, DIMENSION(KLON)     :: ZADJ         ! mass adjustment factor
-REAL, DIMENSION(KLON)     :: ZADJMAX      ! limit value for ZADJ
-REAL, DIMENSION(KLON)     :: ZCAPE        ! new CAPE after adjustment
-REAL, DIMENSION(KLON)     :: ZTIMEC       ! fractional convective time step
-REAL, DIMENSION(KLON,KLEV):: ZTIMC        ! 2D work array for ZTIMEC
-!
-REAL, DIMENSION(KLON)     :: ZTHLCL       ! new  theta at LCL
-REAL, DIMENSION(KLON)     :: ZRVLCL       ! new  r_v at LCL
-REAL, DIMENSION(KLON)     :: ZZLCL        ! height of LCL
-REAL, DIMENSION(KLON)     :: ZTLCL        ! temperature at LCL
-REAL, DIMENSION(KLON)     :: ZTELCL       ! envir. temper. at LCL
-REAL, DIMENSION(KLON)     :: ZTHEUL       ! theta_e for undilute ascent
-REAL, DIMENSION(KLON)     :: ZTHES1, ZTHES2! saturation environm. theta_e
-REAL, DIMENSION(KLON,KLEV) :: ZTHMFIN, ZTHMFOUT, ZRWMFIN, ZRWMFOUT
-REAL, DIMENSION(KLON,KLEV) :: ZRCMFIN, ZRCMFOUT, ZRIMFIN, ZRIMFOUT
+REAL, DIMENSION(D%NIT,D%NKT) :: ZOMG        ! conv. environm. subsidence (Pa/s)
+REAL, DIMENSION(D%NIT,D%NKT) :: ZUMF        ! non-adjusted updraft mass flux
+REAL, DIMENSION(D%NIT,D%NKT) :: ZUER        !   "     updraft  entrainm. rate
+REAL, DIMENSION(D%NIT,D%NKT) :: ZUDR        !   "     updraft  detrainm. rate
+REAL, DIMENSION(D%NIT)     :: ZADJ         ! mass adjustment factor
+REAL, DIMENSION(D%NIT)     :: ZADJMAX      ! limit value for ZADJ
+REAL, DIMENSION(D%NIT)     :: ZCAPE        ! new CAPE after adjustment
+REAL, DIMENSION(D%NIT)     :: ZTIMEC       ! fractional convective time step
+REAL, DIMENSION(D%NIT,D%NKT):: ZTIMC        ! 2D work array for ZTIMEC
+!
+REAL, DIMENSION(D%NIT)     :: ZTHLCL       ! new  theta at LCL
+REAL, DIMENSION(D%NIT)     :: ZRVLCL       ! new  r_v at LCL
+REAL, DIMENSION(D%NIT)     :: ZZLCL        ! height of LCL
+REAL, DIMENSION(D%NIT)     :: ZTLCL        ! temperature at LCL
+REAL, DIMENSION(D%NIT)     :: ZTELCL       ! envir. temper. at LCL
+REAL, DIMENSION(D%NIT)     :: ZTHEUL       ! theta_e for undilute ascent
+REAL, DIMENSION(D%NIT)     :: ZTHES1, ZTHES2! saturation environm. theta_e
+REAL, DIMENSION(D%NIT,D%NKT) :: ZTHMFIN, ZTHMFOUT, ZRWMFIN, ZRWMFOUT
+REAL, DIMENSION(D%NIT,D%NKT) :: ZRCMFIN, ZRCMFOUT, ZRIMFIN, ZRIMFOUT
                                     ! work arrays for environm. compensat. mass flux
-REAL, DIMENSION(KLON)     :: ZPI          ! (P/P00)**R_d/C_pd
-REAL, DIMENSION(KLON)     :: ZLV          ! latent heat of vaporisation
-REAL, DIMENSION(KLON)     :: ZLS          ! latent heat of sublimation
-REAL, DIMENSION(KLON)     :: ZCPH         ! specific heat C_ph
-INTEGER, DIMENSION(KLON)  :: ITSTEP       ! fractional convective time step
-INTEGER, DIMENSION(KLON)  :: ICOUNT       ! timestep counter
-INTEGER, DIMENSION(KLON)  :: ILCL         ! index lifting condens. level
-INTEGER, DIMENSION(KLON)  :: IWORK1       ! work array
-REAL, DIMENSION(KLON)     :: ZWORK1, ZWORK2, ZWORK3, ZWORK4, ZWORK5
-LOGICAL, DIMENSION(KLON)  :: GWORK1, GWORK3! work arrays
-LOGICAL, DIMENSION(KLON,KLEV) :: GWORK4    ! work array
+REAL, DIMENSION(D%NIT)     :: ZPI          ! (P/P00)**R_d/C_pd
+REAL, DIMENSION(D%NIT)     :: ZLV          ! latent heat of vaporisation
+REAL, DIMENSION(D%NIT)     :: ZLS          ! latent heat of sublimation
+REAL, DIMENSION(D%NIT)     :: ZCPH         ! specific heat C_ph
+INTEGER, DIMENSION(D%NIT)  :: ITSTEP       ! fractional convective time step
+INTEGER, DIMENSION(D%NIT)  :: ICOUNT       ! timestep counter
+INTEGER, DIMENSION(D%NIT)  :: ILCL         ! index lifting condens. level
+INTEGER, DIMENSION(D%NIT)  :: IWORK1       ! work array
+REAL, DIMENSION(D%NIT)     :: ZWORK1, ZWORK2, ZWORK3, ZWORK4, ZWORK5
+LOGICAL, DIMENSION(D%NIT)  :: GWORK1, GWORK3! work arrays
+LOGICAL, DIMENSION(D%NIT,D%NKT) :: GWORK4    ! work array
 !
 !
 !-------------------------------------------------------------------------------
@@ -178,7 +179,10 @@ LOGICAL, DIMENSION(KLON,KLEV) :: GWORK4    ! work array
 !               ----------------------------
 !
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
+
+#include "convect_closure_adjust_shal.h"
+
 IF (LHOOK) CALL DR_HOOK('CONVECT_CLOSURE_SHAL',0,ZHOOK_HANDLE)
 ZTIMC(:,:) = 0.
 ZTHES2(:) = 0.
@@ -186,28 +190,27 @@ ZWORK1(:) = 0.
 ZWORK2(:) = 0.
 ZWORK3(:) = 0.
 ZWORK4(:) = 0.
-ZWORK5(:) = 0.
 GWORK1(:) = .FALSE.
 GWORK3(:) = .FALSE.
 GWORK4(:,:) = .FALSE.
 ILCL(:)   = KLCL(:)
 !
-ZCPORD    = XCPD / XRD
-ZRDOCP    = XRD / XCPD
+ZCPORD    = CST%XCPD / CST%XRD
+ZRDOCP    = CST%XRD / CST%XCPD
 !
 ZADJ(:)   = 1.
 ZWORK5(:) = 1.
-WHERE( .NOT. OTRIG1(:) ) ZWORK5(:) = 0.
+DO JI=D%NIB,D%NIE
+  IF (.NOT. OTRIG1(JI)) ZWORK5 = 0
+ENDDO
 !
 !
 !*       0.3   Compute loop bounds
 !              -------------------
 !
-IIE    = KLON
-IKB    = 1 + JCVEXB
-IKS    = KLEV
-IKE    = KLEV - JCVEXT
-!JKMAX  = MAXVAL( KCTL(:) )
+IKB    = 1 + CVPEXT%JCVEXB
+IKS    = D%NKT
+IKE    = D%NKT - CVPEXT%JCVEXT
 JKMAX=IKE
 !
 !
@@ -228,27 +231,30 @@ PWSUB(:,:) = 0.
 !
 ZADJMAX(:) = 1000.
 IWORK1(:) = ILCL(:)
-!JKP = MINVAL( KDPL(:) )
 JKP=IKB
 DO JK = JKP, IKE
-  DO JI = 1, IIE
-    IF( JK > KDPL(JI) .AND. JK <= IWORK1(JI) ) THEN
+  DO JI = D%NIB, D%NIE
+    IF( JK > KDPL(JI))THEN
+            IF(JK <= IWORK1(JI) ) THEN
         ZWORK1(JI)  = PLMASS(JI,JK) / ( ( PUER(JI,JK) + 1.E-5 ) * PTIMEC(JI) )
         ZADJMAX(JI) = MIN( ZADJMAX(JI), ZWORK1(JI) )
     END IF
+    END IF
   END DO
 END DO
 !
 !
-GWORK1(:) = OTRIG1(:)  ! logical array to limit adjustment to not definitively
-                       ! adjusted columns
+GWORK1(D%NIB:D%NIE) = OTRIG1(D%NIB:D%NIE)  ! logical array to limit adjustment to not definitively
+                                           ! adjusted columns
 !
 DO JK = IKB, IKE
-  ZTHLC(:,JK) = PTHL(:,JK) ! initialize adjusted envir. values
-  PRWC(:,JK)  = PRW(:,JK)
-  PRCC(:,JK)  = PRC(:,JK)
-  PRIC(:,JK)  = PRI(:,JK)
-  PTHC(:,JK)  = PTH(:,JK)
+  DO JI=D%NIB, D%NIE
+    ZTHLC(JI,JK) = PTHL(JI,JK) ! initialize adjusted envir. values
+    PRWC(JI,JK)  = PRW(JI,JK)
+    PRCC(JI,JK)  = MAX(0., PRC(JI,JK))
+    PRIC(JI,JK)  = MAX(0., PRI(JI,JK))
+    PTHC(JI,JK)  = PTH(JI,JK)
+  ENDDO
 END DO
 !
 !
@@ -256,14 +262,23 @@ END DO
 DO JITER = 1, 4  ! Enter adjustment loop to assure that all CAPE is
                  ! removed within the advective time interval TIMEC
 !
-     ZTIMEC(:) = PTIMEC(:)
-     GWORK4(:,:)   = SPREAD( GWORK1(:), DIM=2, NCOPIES=IKS )
-     WHERE( GWORK4(:,:) ) PWSUB(:,:) = 0.
-     ZOMG(:,:)=0.
+     ZTIMEC(D%NIB:D%NIE) = PTIMEC(D%NIB:D%NIE)
+     DO JI=1, D%NIE
+     DO JK=1, IKS
+       GWORK4(JI,JK) = GWORK1(JI)
+     ENDDO
+     ENDDO
+     DO JK = IKB, IKE
+       DO JI=D%NIB, D%NIE
+       IF(GWORK4(JI,JK))PWSUB(JI,JK) = 0.
+       ENDDO
+     END DO
+     ZOMG(D%NIB:D%NIE,1:D%NKT)=0.
 !
      DO JK = IKB + 1, JKMAX
            JKP = MAX( IKB + 1, JK - 1 )
-           WHERE ( GWORK1(:) .AND. JK <= KCTL(:) )
+           DO JI=D%NIB,D%NIE
+             IF(GWORK1(JI) .AND. JK <= KCTL(JI)) THEN
 !
 !
 !*       4.     Determine vertical velocity at top and bottom of each layer
@@ -271,9 +286,9 @@ DO JITER = 1, 4  ! Enter adjustment loop to assure that all CAPE is
 !               ---------------------------------------------------------------
               ! we compute here Domega/Dp = - g rho Dw/Dz = 1/Dt
 !
-             ZWORK1(:)   = - ( PUER(:,JKP) - PUDR(:,JKP) ) / PLMASS(:,JKP)
+               ZWORK1(JI)   = - ( PUER(JI,JKP) - PUDR(JI,JKP) ) / PLMASS(JI,JKP)
 !
-             PWSUB(:,JK) = PWSUB(:,JKP) - PDPRES(:,JK-1) * ZWORK1(:)
+               PWSUB(JI,JK) = PWSUB(JI,JKP) - PDPRES(JI,JK-1) * ZWORK1(JI)
               ! we use PDPRES(JK-1) and not JKP in order to have zero subsidence
               ! at the first layer
 !
@@ -282,23 +297,28 @@ DO JITER = 1, 4  ! Enter adjustment loop to assure that all CAPE is
 !               mass conservation reasons one must split full time step PTIMEC)
 !               ---------------------------------------------------------------
 !
-             ZWORK1(:) = XSTABT * PDPRES(:,JKP) / ( ABS( PWSUB(:,JK) ) + 1.E-10 )
+               ZWORK1(JI) = CVP_SHAL%XSTABT * PDPRES(JI,JKP) / ( ABS( PWSUB(JI,JK) ) + 1.E-10 )
               ! the factor XSTABT is used for stability reasons
-             ZTIMEC(:) = MIN( ZTIMEC(:), ZWORK1(:) )
+               ZTIMEC(JI) = MIN( ZTIMEC(JI), ZWORK1(JI) )
 !
               ! transform vertical velocity in mass flux units
-             ZOMG(:,JK) = PWSUB(:,JK) * PDXDY(:) / XG
-         END WHERE
+               ZOMG(JI,JK) = PWSUB(JI,JK) * CVP_SHAL%XA25 / CST%XG
+             ENDIF
+           ENDDO
      END DO
 !
 !
-     WHERE( GWORK4(:,:) )
-           ZTHLC(:,:) = PTHL(:,:) ! reinitialize adjusted envir. values
-           PRWC(:,:)  = PRW(:,:)  ! when iteration criterium not attained
-           PRCC(:,:)  = PRC(:,:)
-           PRIC(:,:)  = PRI(:,:)
-           PTHC(:,:)  = PTH(:,:)
-     END WHERE
+     DO JK = IKB, IKE
+       DO JI=D%NIB, D%NIE
+         IF(GWORK4(JI,JK)) THEN
+           ZTHLC(JI,JK) = PTHL(JI,JK) ! reinitialize adjusted envir. values
+           PRWC(JI,JK)  = PRW(JI,JK)  ! when iteration criterium not attained
+           PRCC(JI,JK)  = MAX(0., PRC(JI,JK))
+           PRIC(JI,JK)  = MAX(0., PRI(JI,JK))
+           PTHC(JI,JK)  = PTH(JI,JK)
+         ENDIF
+       ENDDO
+     ENDDO
 !
 !
 !        6. Check for mass conservation, i.e. ZWORK1 > 1.E-2
@@ -306,36 +326,49 @@ DO JITER = 1, 4  ! Enter adjustment loop to assure that all CAPE is
 !           automatically become zero.
 !           ----------------------------------------------------
 !
-    DO JI = 1, IIE
+    DO JI = D%NIB, D%NIE
        JK=KCTL(JI)
        ZWORK1(JI) = PUDR(JI,JK) * PDPRES(JI,JK) / ( PLMASS(JI,JK) + .1 )    &
                                                             - PWSUB(JI,JK)
     END DO
-    WHERE( GWORK1(:) .AND. ABS( ZWORK1(:) ) - .01 > 0. )
-        GWORK1(:) = .FALSE.
-        PTIMEC(:) = 1.E-1
-        ZWORK5(:) = 0.
-    END WHERE
+    DO JI = D%NIB, D%NIE
+      IF(GWORK1(JI) .AND. ABS( ZWORK1(JI) ) - .01 > 0. ) THEN
+        GWORK1(JI) = .FALSE.
+        PTIMEC(JI) = 1.E-1
+        ZWORK5(JI) = 0.
+      ENDIF
+    ENDDO
     DO JK = IKB, IKE
         PWSUB(:,JK) = PWSUB(:,JK) * ZWORK5(:)
     END DO
-    GWORK4(:,1:IKB) = .FALSE.
-    GWORK4(:,IKE:IKS)   = .FALSE.
-!
-    ITSTEP(:) = INT( PTIMEC(:) / ZTIMEC(:) ) + 1
-    ZTIMEC(:) = PTIMEC(:) / REAL( ITSTEP(:) ) ! adjust  fractional time step
+    GWORK4(D%NIB:D%NIE,1:IKB) = .FALSE.
+    GWORK4(D%NIB:D%NIE,IKE:IKS)   = .FALSE.
+!
+    DO JI=D%NIB,D%NIE
+      ITSTEP(JI) = INT( PTIMEC(JI) / ZTIMEC(JI) ) + 1
+    ENDDO
+    DO JI=D%NIB,D%NIE
+      ZTIMEC(JI) = PTIMEC(JI) / REAL( ITSTEP(JI) ) ! adjust  fractional time step
+    ENDDO
                                            ! to be an integer multiple of PTIMEC
-    ZTIMC(:,:)= SPREAD( ZTIMEC(:), DIM=2, NCOPIES=IKS )
-    ICOUNT(:) = 0
+    DO JI=1, D%NIE
+    DO JK=1, IKS
+      ZTIMC(JI,JK) = ZTIMEC(JI)
+    ENDDO
+    ENDDO
+    ICOUNT(D%NIB:D%NIE) = 0
 !
 !
 !
-    KFTSTEPS = MAXVAL( ITSTEP(:) )
+    KFTSTEPS = 0
+    DO JI=D%NIB,D%NIE
+      KFTSTEPS = MAX(KFTSTEPS, ITSTEP(JI))
+    ENDDO
     DO JSTEP = 1, KFTSTEPS ! Enter the fractional time step loop here
 !
-            ICOUNT(:) = ICOUNT(:) + 1
+            ICOUNT(D%NIB:D%NIE) = ICOUNT(D%NIB:D%NIE) + 1
 !
-            GWORK3(:) =  ITSTEP(:) >= ICOUNT(:) .AND. GWORK1(:)
+            GWORK3(D%NIB:D%NIE) =  ITSTEP(D%NIB:D%NIE) >= ICOUNT(D%NIB:D%NIE) .AND. GWORK1(D%NIB:D%NIE)
 !
 !
 !*       7.     Assign enthalpy and r_w values at the top and bottom of each
@@ -352,11 +385,11 @@ DO JITER = 1, 4  ! Enter adjustment loop to assure that all CAPE is
              ZRIMFOUT(:,:)  = 0.
 !
          DO JK = IKB + 1, JKMAX
-           DO JI = 1, IIE
+           DO JI = D%NIB, D%NIE
               GWORK4(JI,JK) = GWORK3(JI) .AND. JK <= KCTL(JI)
            END DO
            JKP = MAX( IKB + 1, JK - 1 )
-           DO JI = 1, IIE
+           DO JI = D%NIB, D%NIE
            IF ( GWORK3(JI) ) THEN
 !
                ZWORK1(JI)       = SIGN( 1., ZOMG(JI,JK) )
@@ -372,7 +405,7 @@ DO JITER = 1, 4  ! Enter adjustment loop to assure that all CAPE is
                ZRIMFOUT(JI,JK)  =   ZOMG(JI,JK) * PRIC(JI,JK)  * ZWORK2(JI)
            END IF
            END DO
-           DO JI = 1, IIE
+           DO JI = D%NIB, D%NIE
            IF ( GWORK3(JI) ) THEN
                ZTHMFIN(JI,JKP)  = ZTHMFIN(JI,JKP)  + ZTHMFOUT(JI,JK) * ZWORK2(JI)
                ZTHMFOUT(JI,JKP) = ZTHMFOUT(JI,JKP) + ZTHMFIN(JI,JK)  * ZWORK1(JI)
@@ -387,7 +420,9 @@ DO JITER = 1, 4  ! Enter adjustment loop to assure that all CAPE is
            END DO
          END DO
 !
-         WHERE ( GWORK4(:,:) )
+         DO JK = IKB, IKE
+           DO JI=D%NIB, D%NIE
+             IF(GWORK4(JI,JK)) THEN
 !
 !******************************************************************************
 !
@@ -396,23 +431,25 @@ DO JITER = 1, 4  ! Enter adjustment loop to assure that all CAPE is
 !               -----------------------------------------------------------------
 !
 !
-           ZTHLC(:,:) = ZTHLC(:,:) + ZTIMC(:,:) / PLMASS(:,:) * (      &
-                          ZTHMFIN(:,:) + PUDR(:,:) * PUTHL(:,:)        &
-                      - ZTHMFOUT(:,:) - PUER(:,:) * PTHL(:,:)   )
-           PRWC(:,:)  = PRWC(:,:) + ZTIMC(:,:) / PLMASS(:,:) *  (      &
-                          ZRWMFIN(:,:) + PUDR(:,:) * PURW(:,:)          &
-                      - ZRWMFOUT(:,:) - PUER(:,:) * PRW(:,:)    )
-           PRCC(:,:)  = PRCC(:,:) + ZTIMC(:,:) / PLMASS(:,:) *  (      &
-               ZRCMFIN(:,:) + PUDR(:,:) * PURC(:,:) - ZRCMFOUT(:,:) -  &
-                         PUER(:,:) * PRC(:,:)    )
-           PRIC(:,:)  = PRIC(:,:) + ZTIMC(:,:) / PLMASS(:,:) *  (      &
-               ZRIMFIN(:,:) + PUDR(:,:) * PURI(:,:) - ZRIMFOUT(:,:) -  &
-                         PUER(:,:) * PRI(:,:)    )
+           ZTHLC(JI,JK) = ZTHLC(JI,JK) + ZTIMC(JI,JK) / PLMASS(JI,JK) * (      &
+                          ZTHMFIN(JI,JK) + PUDR(JI,JK) * PUTHL(JI,JK)        &
+                      - ZTHMFOUT(JI,JK) - PUER(JI,JK) * PTHL(JI,JK)   )
+           PRWC(JI,JK)  = PRWC(JI,JK) + ZTIMC(JI,JK) / PLMASS(JI,JK) *  (      &
+                          ZRWMFIN(JI,JK) + PUDR(JI,JK) * PURW(JI,JK)          &
+                      - ZRWMFOUT(JI,JK) - PUER(JI,JK) * PRW(JI,JK)    )
+           PRCC(JI,JK)  = PRCC(JI,JK) + ZTIMC(JI,JK) / PLMASS(JI,JK) *  (      &
+               ZRCMFIN(JI,JK) + PUDR(JI,JK) * PURC(JI,JK) - ZRCMFOUT(JI,JK) -  &
+                         PUER(JI,JK) * MAX(0., PRC(JI,JK))    )
+           PRIC(JI,JK)  = PRIC(JI,JK) + ZTIMC(JI,JK) / PLMASS(JI,JK) *  (      &
+               ZRIMFIN(JI,JK) + PUDR(JI,JK) * PURI(JI,JK) - ZRIMFOUT(JI,JK) -  &
+                         PUER(JI,JK) * MAX(0., PRI(JI,JK))    )
 !
 !
 !******************************************************************************
 !
-         END WHERE
+             ENDIF
+           ENDDO
+         ENDDO
 !
     END DO ! Exit the fractional time step loop
 !
@@ -421,16 +458,16 @@ DO JITER = 1, 4  ! Enter adjustment loop to assure that all CAPE is
 !                  ----------------------------------------------
 !
       DO JK = IKB + 1, JKMAX
-         DO JI = 1, IIE
+         DO JI = D%NIB, D%NIE
          IF( GWORK1(JI) .AND. JK <= KCTL(JI) ) THEN
-           ZPI(JI)    = ( XP00 / PPRES(JI,JK) ) ** ZRDOCP
-           ZCPH(JI)   = XCPD + PRWC(JI,JK) * XCPV
+           ZPI(JI)    = ( CST%XP00 / PPRES(JI,JK) ) ** ZRDOCP
+           ZCPH(JI)   = CST%XCPD + PRWC(JI,JK) * CST%XCPV
            ZWORK2(JI) = PTH(JI,JK) / ZPI(JI)  ! first temperature estimate
-           ZLV(JI)    = XLVTT + ( XCPV - XCL ) * ( ZWORK2(JI) - XTT )
-           ZLS(JI)    = XLVTT + ( XCPV - XCI ) * ( ZWORK2(JI) - XTT )
+           ZLV(JI)    = CST%XLVTT + ( CST%XCPV - CST%XCL ) * ( ZWORK2(JI) - CST%XTT )
+           ZLS(JI)    = CST%XLVTT + ( CST%XCPV - CST%XCI ) * ( ZWORK2(JI) - CST%XTT )
              ! final linearized temperature
            ZWORK2(JI) = ( ZTHLC(JI,JK) + ZLV(JI) * PRCC(JI,JK) + ZLS(JI) * PRIC(JI,JK) &
-                       - (1. + PRWC(JI,JK) ) * XG * PZ(JI,JK) ) / ZCPH(JI)
+                       - (1. + PRWC(JI,JK) ) * CST%XG * PZ(JI,JK) ) / ZCPH(JI)
            ZWORK2(JI) = MAX( 180., MIN( 340., ZWORK2(JI) ) )
            PTHC(JI,JK)= ZWORK2(JI) * ZPI(JI) ! final adjusted envir. theta
          END IF
@@ -443,42 +480,42 @@ DO JITER = 1, 4  ! Enter adjustment loop to assure that all CAPE is
 !                           that in routine TRIGGER_FUNCT
 !                  ---------------------------------------------
 !
-      CALL CONVECT_CLOSURE_THRVLCL(  KLON, KLEV,                           &
+      CALL CONVECT_CLOSURE_THRVLCL(  CVPEXT, CST, D,     &
                                      PPRES, PTHC, PRWC, PZ, GWORK1,        &
                                      ZTHLCL, ZRVLCL, ZZLCL, ZTLCL, ZTELCL, &
                                      ILCL, KDPL, KPBL )
 !
 !
-       ZTLCL(:)  = MAX( 230., MIN( 335., ZTLCL(:) ) )  ! set some overflow bounds
-       ZTELCL(:) = MAX( 230., MIN( 335., ZTELCL(:) ) )
-       ZTHLCL(:) = MAX( 230., MIN( 345., ZTHLCL(:) ) )
-       ZRVLCL(:) = MAX(   0., MIN(   1., ZRVLCL(:) ) )
+       ZTLCL(D%NIB:D%NIE)  = MAX( 230., MIN( 335., ZTLCL(D%NIB:D%NIE) ) )  ! set some overflow bounds
+       ZTELCL(D%NIB:D%NIE) = MAX( 230., MIN( 335., ZTELCL(D%NIB:D%NIE) ) )
+       ZTHLCL(D%NIB:D%NIE) = MAX( 230., MIN( 345., ZTHLCL(D%NIB:D%NIE) ) )
+       ZRVLCL(D%NIB:D%NIE) = MAX(   0., MIN(   1., ZRVLCL(D%NIB:D%NIE) ) )
 !
 !
 !*         12.    Compute adjusted CAPE
 !                 ---------------------
 !
-       ZCAPE(:)  = 0.
-       ZPI(:)    = ZTHLCL(:) / ZTLCL(:)
-       ZPI(:)    = MAX( 0.95, MIN( 1.5, ZPI(:) ) )
-       ZWORK1(:) = XP00 / ZPI(:) ** ZCPORD ! pressure at LCL
+       ZCAPE(D%NIB:D%NIE)  = 0.
+       ZPI(D%NIB:D%NIE)    = ZTHLCL(D%NIB:D%NIE) / ZTLCL(D%NIB:D%NIE)
+       ZPI(D%NIB:D%NIE)    = MAX( 0.95, MIN( 1.5, ZPI(D%NIB:D%NIE) ) )
+       ZWORK1(D%NIB:D%NIE) = CST%XP00 / ZPI(D%NIB:D%NIE) ** ZCPORD ! pressure at LCL
 !
-       CALL CONVECT_SATMIXRATIO( KLON, ZWORK1, ZTELCL, ZWORK3, ZLV, ZLS, ZCPH )
-       ZWORK3(:) = MIN(   .1, MAX(   0., ZWORK3(:) ) )
+       CALL CONVECT_SATMIXRATIO( CST, D, ZWORK1, ZTELCL, ZWORK3, ZLV, ZLS, ZCPH )
+       ZWORK3(D%NIB:D%NIE) = MIN(   .1, MAX(   0., ZWORK3(D%NIB:D%NIE) ) )
 !
                 ! compute theta_e updraft undilute
-       ZTHEUL(:) = ZTLCL(:) * ZPI(:) ** ( 1. - 0.28 * ZRVLCL(:) )            &
-                                  * EXP( ( 3374.6525 / ZTLCL(:) - 2.5403 )   &
-                                  * ZRVLCL(:) * ( 1. + 0.81 * ZRVLCL(:) ) )
+       ZTHEUL(D%NIB:D%NIE) = ZTLCL(D%NIB:D%NIE) * ZPI(D%NIB:D%NIE) ** ( 1. - 0.28 * ZRVLCL(D%NIB:D%NIE) )            &
+                                  * EXP( ( 3374.6525 / ZTLCL(D%NIB:D%NIE) - 2.5403 )   &
+                                  * ZRVLCL(D%NIB:D%NIE) * ( 1. + 0.81 * ZRVLCL(D%NIB:D%NIE) ) )
 !
                 ! compute theta_e saturated environment at LCL
-       ZTHES1(:) = ZTELCL(:) * ZPI(:) ** ( 1. - 0.28 * ZWORK3(:) )           &
-                                  * EXP( ( 3374.6525 / ZTELCL(:) - 2.5403 )  &
-                                  * ZWORK3(:) * ( 1. + 0.81 * ZWORK3(:) ) )
+       ZTHES1(D%NIB:D%NIE) = ZTELCL(D%NIB:D%NIE) * ZPI(D%NIB:D%NIE) ** ( 1. - 0.28 * ZWORK3(D%NIB:D%NIE) )           &
+                                  * EXP( ( 3374.6525 / ZTELCL(D%NIB:D%NIE) - 2.5403 )  &
+                                  * ZWORK3(D%NIB:D%NIE) * ( 1. + 0.81 * ZWORK3(D%NIB:D%NIE) ) )
 !
       DO JK = IKB, JKMAX
         JKP = JK - 1
-        DO JI = 1, IIE
+        DO JI = D%NIB, D%NIE
           ZWORK4(JI) = 1.
           IF ( JK == ILCL(JI) ) ZWORK4(JI) = 0.
 !
@@ -487,14 +524,14 @@ DO JITER = 1, 4  ! Enter adjustment loop to assure that all CAPE is
 !
           GWORK3(JI)  = JK >= ILCL(JI) .AND. JK <= KCTL(JI) .AND. GWORK1(JI)
 !
-          ZPI(JI)     = ( XP00 / PPRES(JI,JK) ) ** ZRDOCP
+          ZPI(JI)     = ( CST%XP00 / PPRES(JI,JK) ) ** ZRDOCP
           ZWORK2(JI)  = PTHC(JI,JK) / ZPI(JI)
         END DO
 !
-        CALL CONVECT_SATMIXRATIO( KLON, PPRES(:,JK), ZWORK2, ZWORK3, ZLV, ZLS, ZCPH )
+        CALL CONVECT_SATMIXRATIO( CST, D, PPRES(:,JK), ZWORK2, ZWORK3, ZLV, ZLS, ZCPH )
 !
 !
-        DO JI = 1, IIE
+        DO JI = D%NIB, D%NIE
           IF ( GWORK3(JI) ) THEN
               ZTHES2(JI)  = ZWORK2(JI) * ZPI(JI) ** ( 1. - 0.28 * ZWORK3(JI) )   &
                                    * EXP( ( 3374.6525 / ZWORK2(JI) - 2.5403 ) &
@@ -503,7 +540,7 @@ DO JITER = 1, 4  ! Enter adjustment loop to assure that all CAPE is
               ZWORK3(JI)  = PZ(JI,JK) - PZ(JI,JKP) * ZWORK4(JI) -                &
                            ( 1. - ZWORK4(JI) ) * ZZLCL(JI)    ! level thickness
               ZWORK1(JI)  = ( 2. * ZTHEUL(JI) ) / ( ZTHES1(JI) + ZTHES2(JI) ) - 1.
-              ZCAPE(JI)   = ZCAPE(JI) + XG * ZWORK3(JI) * MAX( 0., ZWORK1(JI) )
+              ZCAPE(JI)   = ZCAPE(JI) + CST%XG * ZWORK3(JI) * MAX( 0., ZWORK1(JI) )
               ZTHES1(JI)  = ZTHES2(JI)
           END IF
         END DO
@@ -514,24 +551,33 @@ DO JITER = 1, 4  ! Enter adjustment loop to assure that all CAPE is
 !                  CAPE has been removed.
 !                  -------------------------------------------------
 !
-       WHERE ( GWORK1(:) )
-           ZWORK1(:) = MAX( PCAPE(:) - ZCAPE(:), 0.2 * PCAPE(:) )
-           ZWORK2(:) = ZCAPE(:) / ( PCAPE(:) + 1.E-8 )
+       DO JI=D%NIB,D%NIE
+         IF ( GWORK1(JI) ) THEN
+           ZWORK1(JI) = MAX( PCAPE(JI) - ZCAPE(JI), 0.2 * PCAPE(JI) )
+           ZWORK2(JI) = ZCAPE(JI) / ( PCAPE(JI) + 1.E-8 )
 !
-           GWORK1(:) = ZWORK2(:) > 0.2 .OR. ZCAPE(:) == 0. ! mask for adjustment
-       END WHERE
+           GWORK1(JI) = ZWORK2(JI) > 0.2 .OR. ZCAPE(JI) == 0. ! mask for adjustment
+         END IF
+       ENDDO
 !
-       WHERE ( ZCAPE(:) == 0. .AND. GWORK1(:) )  ZADJ(:) = ZADJ(:) * 0.5
-       WHERE ( ZCAPE(:) /= 0. .AND. GWORK1(:) )                              &
-               ZADJ(:) = ZADJ(:) * XSTABC * PCAPE(:) / ( ZWORK1(:) + 1.E-8 )
-       ZADJ(:) = MIN( ZADJ(:), ZADJMAX(:) )
+       DO JI=D%NIB,D%NIE
+         IF( ZCAPE(JI) == 0. .AND. GWORK1(JI) )  ZADJ(JI) = ZADJ(JI) * 0.5
+       ENDDO
+       DO JI=D%NIB,D%NIE
+         IF ( ZCAPE(JI) /= 0. .AND. GWORK1(JI) ) THEN
+               ZADJ(JI) = ZADJ(JI) * CVP_SHAL%XSTABC * PCAPE(JI) / ( ZWORK1(JI) + 1.E-8 )
+         ENDIF
+       ENDDO
+       DO JI=D%NIB,D%NIE
+         ZADJ(JI) = MIN( ZADJ(JI), ZADJMAX(JI) )
+       ENDDO
 !
 !
 !*         13.     Adjust mass flux by the factor ZADJ to converge to
 !                  specified degree of stabilization
 !                 ----------------------------------------------------
 !
-       CALL CONVECT_CLOSURE_ADJUST_SHAL( KLON, KLEV, ZADJ,                     &
+       CALL CONVECT_CLOSURE_ADJUST_SHAL( CVPEXT, D, ZADJ,&
                                          PUMF, ZUMF, PUER, ZUER, PUDR, ZUDR    )
 !
 !
@@ -544,9 +590,12 @@ END DO  ! end of big adjustment iteration loop
 !
         ! skip adj. total water array  to water vapor
 DO JK = IKB, IKE
-   PRWC(:,JK) = MAX( 0., PRWC(:,JK) - PRCC(:,JK) - PRIC(:,JK) )
+  DO JI=D%NIB,D%NIE
+    PRWC(JI,JK) = MAX( 0., PRWC(JI,JK) - PRCC(JI,JK) - PRIC(JI,JK) )
+  END DO
 END DO
 !
 !
 IF (LHOOK) CALL DR_HOOK('CONVECT_CLOSURE_SHAL',1,ZHOOK_HANDLE)
 END SUBROUTINE CONVECT_CLOSURE_SHAL
+
diff --git a/src/arome/conv/convect_closure_shal.h b/src/arome/conv/convect_closure_shal.h
new file mode 100644
index 0000000000000000000000000000000000000000..f293c258abcb49fc4988ec9e8c68fd7786c1c609
--- /dev/null
+++ b/src/arome/conv/convect_closure_shal.h
@@ -0,0 +1,50 @@
+INTERFACE
+
+SUBROUTINE CONVECT_CLOSURE_SHAL( CVP_SHAL, CVPEXT, CST, D,         &
+PPRES, PDPRES, PZ, PLMASS,           &
+PTHL, PTH, PRW, PRC, PRI, OTRIG1,           &
+PTHC, PRWC, PRCC, PRIC, PWSUB,              &
+KLCL, KDPL, KPBL, KCTL,                     &
+PUMF, PUER, PUDR, PUTHL, PURW,              &
+PURC, PURI, PCAPE, PTIMEC, KFTSTEPS         )
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE MODD_CST, ONLY : CST_T
+USE MODD_CONVPAR_SHAL, ONLY : CONVPAR_SHAL
+USE MODD_CONVPAREXT, ONLY : CONVPAREXT
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
+TYPE(CONVPAR_SHAL),        INTENT(IN) :: CVP_SHAL
+TYPE(CONVPAREXT),          INTENT(IN) :: CVPEXT
+TYPE(CST_T),               INTENT(IN) :: CST
+TYPE(DIMPHYEX_T),          INTENT(IN) :: D
+INTEGER, DIMENSION(D%NIT),  INTENT(IN) :: KLCL
+INTEGER, DIMENSION(D%NIT),  INTENT(IN) :: KCTL
+INTEGER, DIMENSION(D%NIT),  INTENT(IN) :: KDPL
+INTEGER, DIMENSION(D%NIT),  INTENT(IN) :: KPBL
+REAL, DIMENSION(D%NIT),  INTENT(INOUT) :: PTIMEC
+REAL, DIMENSION(D%NIT,D%NKT),INTENT(IN) :: PTHL
+REAL, DIMENSION(D%NIT,D%NKT),INTENT(IN) :: PTH
+REAL, DIMENSION(D%NIT,D%NKT),INTENT(IN) :: PRW
+REAL, DIMENSION(D%NIT,D%NKT),INTENT(IN) :: PRC
+REAL, DIMENSION(D%NIT,D%NKT),INTENT(IN) :: PRI
+LOGICAL, DIMENSION(D%NIT),  INTENT(IN) :: OTRIG1
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PPRES
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PDPRES
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PLMASS
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PZ
+REAL, DIMENSION(D%NIT),     INTENT(IN)  :: PCAPE
+INTEGER,                INTENT(OUT)   :: KFTSTEPS
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT):: PUMF
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT):: PUER
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(INOUT):: PUDR
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)  :: PUTHL
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)  :: PURW
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)  :: PURC
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN)  :: PURI
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)  :: PTHC
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)  :: PRWC
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)  :: PRCC
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)  :: PRIC
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT)  :: PWSUB
+END SUBROUTINE CONVECT_CLOSURE_SHAL
+
+END INTERFACE
diff --git a/src/arome/conv/convect_closure_thrvlcl.F90 b/src/arome/conv/convect_closure_thrvlcl.F90
index 1ad35ec7c6c345fa932d741782be648868b928be..860a26fcc3098d2add9e8a0ed9d77f9211cd947e 100644
--- a/src/arome/conv/convect_closure_thrvlcl.F90
+++ b/src/arome/conv/convect_closure_thrvlcl.F90
@@ -1,10 +1,9 @@
 !     ######spl
-      SUBROUTINE CONVECT_CLOSURE_THRVLCL( KLON, KLEV,                         &
+      SUBROUTINE CONVECT_CLOSURE_THRVLCL( CVPEXT, CST, D,          &
                                           PPRES, PTH, PRV, PZ, OWORK1,        &
                                          PTHLCL, PRVLCL, PZLCL, PTLCL, PTELCL,&
                                           KLCL, KDPL, KPBL )
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #########################################################################
 !
 !!**** Determine thermodynamic properties at new LCL
@@ -67,46 +66,49 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CST, ONLY : XRD, XRV, XCPD, XP00, XTT, XBETAW, XGAMW
-USE MODD_CONVPAREXT, ONLY : JCVEXB, JCVEXT
+USE MODD_CST, ONLY : CST_T
+USE MODD_CONVPAREXT, ONLY : CONVPAREXT
+USE MODD_CST, ONLY: CST_T
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
 !
 !
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
-INTEGER,                    INTENT(IN) :: KLON  ! horizontal dimension
-INTEGER,                    INTENT(IN) :: KLEV  ! vertical dimension
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PTH   ! theta
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PRV   ! vapor mixing ratio 
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PPRES ! pressure
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PZ    ! height of grid point (m)
-INTEGER, DIMENSION(KLON),   INTENT(IN) :: KDPL  ! contains vert. index of DPL
-INTEGER, DIMENSION(KLON),   INTENT(IN) :: KPBL  ! " vert. index of source layer top
-LOGICAL, DIMENSION(KLON),   INTENT(IN) :: OWORK1! logical mask 
-!
-REAL, DIMENSION(KLON),     INTENT(OUT):: PTHLCL ! theta at LCL
-REAL, DIMENSION(KLON),     INTENT(OUT):: PRVLCL ! vapor mixing ratio at  LCL
-REAL, DIMENSION(KLON),     INTENT(OUT):: PZLCL  ! height at LCL (m)
-REAL, DIMENSION(KLON),     INTENT(OUT):: PTLCL  ! temperature at LCL (m)
-REAL, DIMENSION(KLON),     INTENT(OUT):: PTELCL ! environm. temp. at LCL (K)
-INTEGER, DIMENSION(KLON),  INTENT(OUT):: KLCL   ! contains vert. index of LCL
+TYPE(CONVPAREXT)                         ,INTENT(IN)   :: CVPEXT
+TYPE(CST_T)                              ,INTENT(IN)   :: CST
+TYPE(DIMPHYEX_T)                         ,INTENT(IN)   :: D
+REAL             ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)   :: PPRES ! pressure
+REAL             ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)   :: PTH   ! theta
+REAL             ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)   :: PRV   ! vapor mixing ratio 
+REAL             ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)   :: PZ    ! height of grid point (m)
+LOGICAL          ,DIMENSION(D%NIT)       ,INTENT(IN)   :: OWORK1! logical mask 
+REAL             ,DIMENSION(D%NIT)       ,INTENT(OUT)  :: PTHLCL ! theta at LCL
+REAL             ,DIMENSION(D%NIT)       ,INTENT(OUT)  :: PRVLCL ! vapor mixing ratio at  LCL
+REAL             ,DIMENSION(D%NIT)       ,INTENT(OUT)  :: PZLCL  ! height at LCL (m)
+REAL             ,DIMENSION(D%NIT)       ,INTENT(OUT)  :: PTLCL  ! temperature at LCL (m)
+REAL             ,DIMENSION(D%NIT)       ,INTENT(OUT)  :: PTELCL ! environm. temp. at LCL (K)
+INTEGER          ,DIMENSION(D%NIT)       ,INTENT(OUT)  :: KLCL   ! contains vert. index of LCL
+INTEGER          ,DIMENSION(D%NIT)       ,INTENT(IN)   :: KDPL  ! contains vert. index of DPL
+INTEGER          ,DIMENSION(D%NIT)       ,INTENT(IN)   :: KPBL  ! " vert. index of source layer top
+!
 !
 !*       0.2   Declarations of local variables :
 !
 INTEGER :: JK, JKM, JKMIN, JKMAX      ! vertical loop index
 INTEGER :: JI                         ! horizontal loop index 
-INTEGER :: IIE, IKB, IKE              ! horizontal + vertical loop bounds
+INTEGER :: IKB, IKE              ! horizontal + vertical loop bounds
 REAL    :: ZEPS           ! R_d / R_v
 REAL    :: ZCPORD, ZRDOCP ! C_pd / R_d, R_d / C_pd
 !
-REAL, DIMENSION(KLON) :: ZPLCL    ! pressure at LCL
-REAL, DIMENSION(KLON) :: ZTMIX    ! mixed layer temperature
-REAL, DIMENSION(KLON) :: ZEVMIX   ! mixed layer water vapor pressure 
-REAL, DIMENSION(KLON) :: ZDPTHMIX, ZPRESMIX ! mixed layer depth and pressure
-REAL, DIMENSION(KLON) :: ZLV, ZCPH! specific heats of vaporisation, dry air
-REAL, DIMENSION(KLON) :: ZDP      ! pressure between LCL and model layer
-REAL, DIMENSION(KLON) :: ZWORK1, ZWORK2     ! work arrays
+REAL, DIMENSION(D%NIT) :: ZPLCL    ! pressure at LCL
+REAL, DIMENSION(D%NIT) :: ZTMIX    ! mixed layer temperature
+REAL, DIMENSION(D%NIT) :: ZEVMIX   ! mixed layer water vapor pressure 
+REAL, DIMENSION(D%NIT) :: ZDPTHMIX, ZPRESMIX ! mixed layer depth and pressure
+REAL, DIMENSION(D%NIT) :: ZLV, ZCPH! specific heats of vaporisation, dry air
+REAL, DIMENSION(D%NIT) :: ZDP      ! pressure between LCL and model layer
+REAL, DIMENSION(D%NIT) :: ZWORK1, ZWORK2     ! work arrays
 !
 !
 !-------------------------------------------------------------------------------
@@ -114,19 +116,18 @@ REAL, DIMENSION(KLON) :: ZWORK1, ZWORK2     ! work arrays
 !*       0.3    Compute array bounds
 !               --------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('CONVECT_CLOSURE_THRVLCL',0,ZHOOK_HANDLE)
-IIE = KLON
-IKB = 1 + JCVEXB 
-IKE = KLEV - JCVEXT 
+IKB = 1 + CVPEXT%JCVEXB 
+IKE = D%NKT - CVPEXT%JCVEXT 
 !
 !
 !*       1.     Initialize local variables
 !               --------------------------
 !
-ZEPS      = XRD / XRV
-ZCPORD    = XCPD / XRD
-ZRDOCP    = XRD / XCPD
+ZEPS      = CST%XRD / CST%XRV
+ZCPORD    = CST%XCPD / CST%XRD
+ZRDOCP    = CST%XRD / CST%XCPD
 !
 ZDPTHMIX(:) = 0.
 ZPRESMIX(:) = 0.
@@ -143,13 +144,11 @@ KLCL(:)     = IKB + 1
 !*       2.     Construct a mixed layer as in TRIGGER_FUNCT
 !               -------------------------------------------
 !
-     !JKMAX = MAXVAL( KPBL(:) )
-     !JKMIN = MINVAL( KDPL(:) )
      JKMAX=IKE
      JKMIN=IKB
      DO JK = IKB + 1, JKMAX
         JKM = JK + 1
-        DO JI = 1, IIE
+        DO JI = D%NIB, D%NIE
         IF ( JK >= KDPL(JI) .AND. JK <= KPBL(JI) ) THEN
 !           
             ZWORK1(JI)   = PPRES(JI,JK) - PPRES(JI,JKM)
@@ -163,71 +162,76 @@ KLCL(:)     = IKB + 1
      END DO
 !
 !
-WHERE ( OWORK1(:) )
+DO JI=D%NIB,D%NIE
+  IF ( OWORK1(JI) ) THEN
 !
-        ZPRESMIX(:) = ZPRESMIX(:) / ZDPTHMIX(:)
-        PTHLCL(:)   = PTHLCL(:)   / ZDPTHMIX(:)
-        PRVLCL(:)   = PRVLCL(:)   / ZDPTHMIX(:)
+        ZPRESMIX(JI) = ZPRESMIX(JI) / ZDPTHMIX(JI)
+        PTHLCL(JI)   = PTHLCL(JI)   / ZDPTHMIX(JI)
+        PRVLCL(JI)   = PRVLCL(JI)   / ZDPTHMIX(JI)
 !
 !*       3.1    Use an empirical direct solution ( Bolton formula )
 !               to determine temperature and pressure at LCL.
-!               Nota: the adiabatic saturation temperature is not
+!               NotaJI the adiabatic saturation temperature is not
 !                     equal to the dewpoint temperature
 !               --------------------------------------------------
 !
 !
-        ZTMIX(:)  = PTHLCL(:) * ( ZPRESMIX(:) / XP00 ) ** ZRDOCP
-        ZEVMIX(:) = PRVLCL(:) * ZPRESMIX(:) / ( PRVLCL(:) + ZEPS )
-        ZEVMIX(:) = MAX( 1.E-8, ZEVMIX(:) )
-        ZWORK1(:) = ALOG( ZEVMIX(:) / 613.3 )
+        ZTMIX(JI)  = PTHLCL(JI) * ( ZPRESMIX(JI) / CST%XP00 ) ** ZRDOCP
+        ZEVMIX(JI) = PRVLCL(JI) * ZPRESMIX(JI) / ( PRVLCL(JI) + ZEPS )
+        ZEVMIX(JI) = MAX( 1.E-8, ZEVMIX(JI) )
+        ZWORK1(JI) = ALOG( ZEVMIX(JI) / 613.3 )
               ! dewpoint temperature
-        ZWORK1(:) = ( 4780.8 - 32.19 * ZWORK1(:) ) / ( 17.502 - ZWORK1(:) ) 
+        ZWORK1(JI) = ( 4780.8 - 32.19 * ZWORK1(JI) ) / ( 17.502 - ZWORK1(JI) ) 
               ! adiabatic saturation temperature
-        PTLCL(:)  = ZWORK1(:) - ( .212 + 1.571E-3 * ( ZWORK1(:) - XTT )      &
-                  - 4.36E-4 * ( ZTMIX(:) - XTT ) ) * ( ZTMIX(:) - ZWORK1(:) )
-        PTLCL(:)  = MIN( PTLCL(:), ZTMIX(:) )
-        ZPLCL(:)  = XP00 * ( PTLCL(:) / PTHLCL(:) ) ** ZCPORD
+        PTLCL(JI)  = ZWORK1(JI) - ( .212 + 1.571E-3 * ( ZWORK1(JI) - CST%XTT )      &
+                  - 4.36E-4 * ( ZTMIX(JI) - CST%XTT ) ) * ( ZTMIX(JI) - ZWORK1(JI) )
+        PTLCL(JI)  = MIN( PTLCL(JI), ZTMIX(JI) )
+        ZPLCL(JI)  = CST%XP00 * ( PTLCL(JI) / PTHLCL(JI) ) ** ZCPORD
 !
-END WHERE
+  END IF
+ENDDO
 !
-     ZPLCL(:) = MIN( 2.E5, MAX( 10., ZPLCL(:) ) ) ! bound to avoid overflow
+     ZPLCL(D%NIB:D%NIE) = MIN( 2.E5, MAX( 10., ZPLCL(D%NIB:D%NIE) ) ) ! bound to avoid overflow
 !
 !
 !*       3.2    Correct PTLCL in order to be completely consistent
 !               with MNH saturation formula
 !               --------------------------------------------------
 !
-     CALL CONVECT_SATMIXRATIO( KLON, ZPLCL, PTLCL, ZWORK1, ZLV, ZWORK2, ZCPH )
-     WHERE( OWORK1(:) )
-        ZWORK2(:) = ZWORK1(:) / PTLCL(:) * ( XBETAW / PTLCL(:) - XGAMW ) ! dr_sat/dT
-        ZWORK2(:) = ( ZWORK1(:) - PRVLCL(:) ) /                              &
-                        ( 1. + ZLV(:) / ZCPH(:) * ZWORK2(:) ) 
-        PTLCL(:)  = PTLCL(:) - ZLV(:) / ZCPH(:) * ZWORK2(:)
-!
-     END WHERE
+     CALL CONVECT_SATMIXRATIO( CST, D, ZPLCL, PTLCL, ZWORK1, ZLV, ZWORK2, ZCPH )
+     DO JI=D%NIB,D%NIE
+       IF( OWORK1(JI) ) THEN
+        ZWORK2(JI) = ZWORK1(JI) / PTLCL(JI) * ( CST%XBETAW / PTLCL(JI) - CST%XGAMW ) ! dr_sat/dT
+        ZWORK2(JI) = ( ZWORK1(JI) - PRVLCL(JI) ) /                              &
+                        ( 1. + ZLV(JI) / ZCPH(JI) * ZWORK2(JI) ) 
+        PTLCL(JI)  = PTLCL(JI) - ZLV(JI) / ZCPH(JI) * ZWORK2(JI)
+       END IF
+     ENDDO
 !
 !
 !*       3.3    If PRVLCL is oversaturated set humidity and temperature
 !               to saturation values.
 !               -------------------------------------------------------
 !
-    CALL CONVECT_SATMIXRATIO( KLON, ZPRESMIX, ZTMIX, ZWORK1, ZLV, ZWORK2, ZCPH )
-     WHERE( OWORK1(:) .AND. PRVLCL(:) > ZWORK1(:) )
-        ZWORK2(:) = ZWORK1(:) / ZTMIX(:) * ( XBETAW / ZTMIX(:) - XGAMW ) ! dr_sat/dT
-        ZWORK2(:) = ( ZWORK1(:) - PRVLCL(:) ) /                              &
-                        ( 1. + ZLV(:) / ZCPH(:) * ZWORK2(:) )
-        PTLCL(:)  = ZTMIX(:) + ZLV(:) / ZCPH(:) * ZWORK2(:)
-        PRVLCL(:) = PRVLCL(:) - ZWORK2(:)
-        ZPLCL(:)  = ZPRESMIX(:)
-        PTHLCL(:) = PTLCL(:) * ( XP00 / ZPLCL(:) ) ** ZRDOCP
-     END WHERE
+    CALL CONVECT_SATMIXRATIO( CST, D, ZPRESMIX, ZTMIX, ZWORK1, ZLV, ZWORK2, ZCPH )
+    DO JI=D%NIB,D%NIE
+    IF( OWORK1(JI) .AND. PRVLCL(JI) > ZWORK1(JI) ) THEN
+        ZWORK2(JI) = ZWORK1(JI) / ZTMIX(JI) * ( CST%XBETAW / ZTMIX(JI) - CST%XGAMW ) ! dr_sat/dT
+        ZWORK2(JI) = ( ZWORK1(JI) - PRVLCL(JI) ) /                              &
+                        ( 1. + ZLV(JI) / ZCPH(JI) * ZWORK2(JI) )
+        PTLCL(JI)  = ZTMIX(JI) + ZLV(JI) / ZCPH(JI) * ZWORK2(JI)
+        PRVLCL(JI) = PRVLCL(JI) - ZWORK2(JI)
+        ZPLCL(JI)  = ZPRESMIX(JI)
+        PTHLCL(JI) = PTLCL(JI) * ( CST%XP00 / ZPLCL(JI) ) ** ZRDOCP
+      END IF
+    ENDDO
 !
 !
 !*        4.1   Determine  vertical loop index at the LCL 
 !               -----------------------------------------
 !
      DO JK = JKMIN, IKE - 1
-        DO JI = 1, IIE
+        DO JI = D%NIB, D%NIE
         IF ( ZPLCL(JI) <= PPRES(JI,JK) .AND. OWORK1(JI) ) THEN
             KLCL(JI)  = JK + 1
             PZLCL(JI) = PZ(JI,JK+1)
@@ -239,24 +243,27 @@ END WHERE
 !*        4.2   Estimate height and environmental temperature at LCL
 !               ----------------------------------------------------
 !
-    DO JI = 1, IIE
+    DO JI = D%NIB, D%NIE
         JK   = KLCL(JI)
         JKM  = JK - 1
         ZDP(JI)     = ALOG( ZPLCL(JI) / PPRES(JI,JKM) ) /                     &
                       ALOG( PPRES(JI,JK) / PPRES(JI,JKM) )
-        ZWORK1(JI)  = PTH(JI,JK)  * ( PPRES(JI,JK) / XP00 ) ** ZRDOCP
-        ZWORK2(JI)  = PTH(JI,JKM) * ( PPRES(JI,JKM) / XP00 ) ** ZRDOCP
+        ZWORK1(JI)  = PTH(JI,JK)  * ( PPRES(JI,JK) / CST%XP00 ) ** ZRDOCP
+        ZWORK2(JI)  = PTH(JI,JKM) * ( PPRES(JI,JKM) / CST%XP00 ) ** ZRDOCP
         ZWORK1(JI)  = ZWORK2(JI) + ( ZWORK1(JI) - ZWORK2(JI) ) * ZDP(JI) 
            ! we compute the precise value of the LCL
            ! The precise height is between the levels KLCL and KLCL-1.
         ZWORK2(JI) = PZ(JI,JKM) + ( PZ(JI,JK) - PZ(JI,JKM) ) * ZDP(JI)
     END DO
-    WHERE( OWORK1(:) )
-       PTELCL(:) = ZWORK1(:)
-       PZLCL(:)  = ZWORK2(:)
-    END WHERE
+    DO JI=D%NIB,D%NIE
+    IF( OWORK1(JI) ) THEN
+       PTELCL(JI) = ZWORK1(JI)
+       PZLCL(JI)  = ZWORK2(JI)
+    END IF
+    ENDDO
 !        
 !
 !
 IF (LHOOK) CALL DR_HOOK('CONVECT_CLOSURE_THRVLCL',1,ZHOOK_HANDLE)
 END SUBROUTINE CONVECT_CLOSURE_THRVLCL
+
diff --git a/src/arome/conv/convect_closure_thrvlcl.h b/src/arome/conv/convect_closure_thrvlcl.h
new file mode 100644
index 0000000000000000000000000000000000000000..5e3bd99819824d52e889ef5ff8922981c3fbd273
--- /dev/null
+++ b/src/arome/conv/convect_closure_thrvlcl.h
@@ -0,0 +1,30 @@
+INTERFACE
+
+SUBROUTINE CONVECT_CLOSURE_THRVLCL( CVPEXT, CST, D,          &
+PPRES, PTH, PRV, PZ, OWORK1,        &
+PTHLCL, PRVLCL, PZLCL, PTLCL, PTELCL,&
+KLCL, KDPL, KPBL )
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE MODD_CST, ONLY : CST_T
+USE MODD_CONVPAREXT, ONLY : CONVPAREXT
+USE MODD_CST, ONLY: CST_T
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
+TYPE(CONVPAREXT),           INTENT(IN) :: CVPEXT
+TYPE(CST_T),                INTENT(IN) :: CST
+TYPE(DIMPHYEX_T),           INTENT(IN) :: D
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PTH
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PRV
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PPRES
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PZ
+INTEGER, DIMENSION(D%NIT),   INTENT(IN) :: KDPL
+INTEGER, DIMENSION(D%NIT),   INTENT(IN) :: KPBL
+LOGICAL, DIMENSION(D%NIT),   INTENT(IN) :: OWORK1
+REAL, DIMENSION(D%NIT),     INTENT(OUT):: PTHLCL
+REAL, DIMENSION(D%NIT),     INTENT(OUT):: PRVLCL
+REAL, DIMENSION(D%NIT),     INTENT(OUT):: PZLCL
+REAL, DIMENSION(D%NIT),     INTENT(OUT):: PTLCL
+REAL, DIMENSION(D%NIT),     INTENT(OUT):: PTELCL
+INTEGER, DIMENSION(D%NIT),  INTENT(OUT):: KLCL
+END SUBROUTINE CONVECT_CLOSURE_THRVLCL
+
+END INTERFACE
diff --git a/src/arome/conv/convect_condens.F90 b/src/arome/conv/convect_condens.F90
index 1facb675f96a219b48f2be66e2253c170d1ed37e..99f1f6a137c8231383610b1ffedf8c28c24370c0 100644
--- a/src/arome/conv/convect_condens.F90
+++ b/src/arome/conv/convect_condens.F90
@@ -1,9 +1,8 @@
 !     ######spl
-      SUBROUTINE CONVECT_CONDENS( KLON,                                           &
-                                  KICE, PPRES, PTHL, PRW, PRCO, PRIO, PZ, OWORK1, &
+      SUBROUTINE CONVECT_CONDENS( CST, D, CONVPAR,                        &
+                                  KICE, PPRES, PTHL, PRW, PRCO, PRIO, PZ, &
                                   PT, PEW, PRC, PRI, PLV, PLS, PCPH   )
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #############################################################################
 !
 !!**** Compute temperature cloud and ice water content from enthalpy and r_w 
@@ -63,41 +62,43 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-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
+USE MODD_CST, ONLY : CST_T
+USE MODD_CONVPAR, ONLY : CONVPAR_T
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
 !
 !
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
-INTEGER, INTENT(IN)                :: KLON    ! horizontal loop index
-INTEGER, INTENT(IN)                :: KICE    ! flag for ice ( 1 = yes,
+TYPE(CST_T),              INTENT(IN) :: CST
+TYPE(DIMPHYEX_T),         INTENT(IN) :: D
+TYPE(CONVPAR_T),          INTENT(IN) :: CONVPAR
+INTEGER,                  INTENT(IN) :: KICE    ! flag for ice ( 1 = yes,
                                               !                0 = no ice )
-REAL, DIMENSION(KLON),   INTENT(IN) :: PPRES  ! pressure
-REAL, DIMENSION(KLON),   INTENT(IN) :: PTHL   ! enthalpy (J/kg)
-REAL, DIMENSION(KLON),   INTENT(IN) :: PRW    ! total water mixing ratio  
-REAL, DIMENSION(KLON),   INTENT(IN) :: PRCO   ! cloud water estimate (kg/kg)
-REAL, DIMENSION(KLON),   INTENT(IN) :: PRIO   ! cloud ice   estimate (kg/kg)
-REAL, DIMENSION(KLON),   INTENT(IN) :: PZ     ! level height (m)
-LOGICAL, DIMENSION(KLON),INTENT(IN) :: OWORK1 ! logical mask         
-!
-!
-REAL, DIMENSION(KLON),   INTENT(OUT):: PT     ! temperature   
-REAL, DIMENSION(KLON),   INTENT(OUT):: PRC    ! cloud water mixing ratio(kg/kg)
-REAL, DIMENSION(KLON),   INTENT(OUT):: PRI    ! cloud ice mixing ratio  (kg/kg)
-REAL, DIMENSION(KLON),   INTENT(OUT):: PLV    ! latent heat L_v    
-REAL, DIMENSION(KLON),   INTENT(OUT):: PLS    ! latent heat L_s  
-REAL, DIMENSION(KLON),   INTENT(OUT):: PCPH   ! specific heat C_ph   
-REAL, DIMENSION(KLON),   INTENT(OUT):: PEW    ! water saturation mixing ratio  
-!
-!*       0.2   Declarations of local variables KLON
-!
-INTEGER :: JITER          ! iteration index
+REAL, DIMENSION(D%NIT),   INTENT(IN) :: PPRES  ! pressure
+REAL, DIMENSION(D%NIT),   INTENT(IN) :: PTHL   ! enthalpy (J/kg)
+REAL, DIMENSION(D%NIT),   INTENT(IN) :: PRW    ! total water mixing ratio  
+REAL, DIMENSION(D%NIT),   INTENT(IN) :: PRCO   ! cloud water estimate (kg/kg)
+REAL, DIMENSION(D%NIT),   INTENT(IN) :: PRIO   ! cloud ice   estimate (kg/kg)
+REAL, DIMENSION(D%NIT),   INTENT(IN) :: PZ     ! level height (m)
+!
+!
+REAL, DIMENSION(D%NIT),   INTENT(OUT):: PT     ! temperature   
+REAL, DIMENSION(D%NIT),   INTENT(OUT):: PEW    ! water saturation mixing ratio  
+REAL, DIMENSION(D%NIT),   INTENT(OUT):: PRC    ! cloud water mixing ratio(kg/kg)
+REAL, DIMENSION(D%NIT),   INTENT(OUT):: PRI    ! cloud ice mixing ratio  (kg/kg)
+REAL, DIMENSION(D%NIT),   INTENT(OUT):: PLV    ! latent heat L_v    
+REAL, DIMENSION(D%NIT),   INTENT(OUT):: PLS    ! latent heat L_s  
+REAL, DIMENSION(D%NIT),   INTENT(OUT):: PCPH   ! specific heat C_ph   
+!
+!*       0.2   Declarations of local variables D%NIT
+!
+INTEGER :: JITER, JI      ! iteration index
 REAL    :: ZEPS           ! R_d / R_v
 !
-REAL, DIMENSION(KLON)    :: ZEI           ! ice saturation mixing ratio
-REAL, DIMENSION(KLON)    :: ZWORK1, ZWORK2, ZWORK3, ZT ! work arrays
+REAL, DIMENSION(D%NIT)    :: ZEI           ! ice saturation mixing ratio
+REAL, DIMENSION(D%NIT)    :: ZWORK1, ZWORK2, ZWORK3, ZT ! work arrays
 !
 !
 !-------------------------------------------------------------------------------
@@ -105,9 +106,9 @@ REAL, DIMENSION(KLON)    :: ZWORK1, ZWORK2, ZWORK3, ZT ! work arrays
 !*       1.     Initialize temperature and Exner function
 !               -----------------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('CONVECT_CONDENS',0,ZHOOK_HANDLE)
-ZEPS        = XRD / XRV
+ZEPS        = CST%XRD / CST%XRV
 !
 !
     ! Make a first temperature estimate, based e.g. on values of
@@ -115,35 +116,39 @@ ZEPS        = XRD / XRV
 !
       !! Note that the definition of ZCPH is not the same as used in
       !! routine CONVECT_SATMIXRATIO
-     PCPH(:)   = XCPD + XCPV * PRW(:)
-     ZWORK1(:) = ( 1. + PRW(:) ) * XG * PZ(:)
-     PT(:)     = ( PTHL(:) + PRCO(:) * XLVTT + PRIO(:) * XLSTT - ZWORK1(:) )   &
-                 / PCPH(:)
-     PT(:)     = MAX(180., MIN( 330., PT(:) ) ) ! set overflow bounds in
+  DO JI=D%NIB,D%NIE
+     PCPH(JI)   = CST%XCPD + CST%XCPV * PRW(JI)
+     ZWORK1(JI) = ( 1. + PRW(JI) ) * CST%XG * PZ(JI)
+     PT(JI)     = ( PTHL(JI) + PRCO(JI) * CST%XLVTT + PRIO(JI) * CST%XLSTT - ZWORK1(JI) )   &
+                 / PCPH(JI)
+     PT(JI)     = MAX(180., MIN( 330., PT(JI) ) ) ! set overflow bounds in
                                                     ! case that PTHL=0     
+  ENDDO
 !
 !
 !*       2.     Enter the iteration loop
 !               ------------------------
 !    
 DO JITER = 1,6
-     PEW(:) = EXP( XALPW - XBETAW / PT(:) - XGAMW * ALOG( PT(:) ) )
-     ZEI(:) = EXP( XALPI - XBETAI / PT(:) - XGAMI * ALOG( PT(:) ) )
-     PEW(:) = ZEPS * PEW(:) / ( PPRES(:) - PEW(:) )
-     ZEI(:) = ZEPS * ZEI(:) / ( PPRES(:) - ZEI(:) )    
-!
-     PLV(:)    = XLVTT + ( XCPV - XCL ) * ( PT(:) - XTT ) ! compute L_v
-     PLS(:)    = XLSTT + ( XCPV - XCI ) * ( PT(:) - XTT ) ! compute L_i
+  DO JI=D%NIB,D%NIE
+     PEW(JI) = EXP( CST%XALPW - CST%XBETAW / PT(JI) - CST%XGAMW * ALOG( PT(JI) ) )
+     ZEI(JI) = EXP( CST%XALPI - CST%XBETAI / PT(JI) - CST%XGAMI * ALOG( PT(JI) ) )
+     PEW(JI) = ZEPS * PEW(JI) / ( PPRES(JI) - PEW(JI) )
+     ZEI(JI) = ZEPS * ZEI(JI) / ( PPRES(JI) - ZEI(JI) )    
+!
+     PLV(JI)    = CST%XLVTT + ( CST%XCPV - CST%XCL ) * ( PT(JI) - CST%XTT ) ! compute L_v
+     PLS(JI)    = CST%XLSTT + ( CST%XCPV - CST%XCI ) * ( PT(JI) - CST%XTT ) ! compute L_i
 !    
-     ZWORK2(:) = ( XTFRZ1 - PT(:) ) / ( XTFRZ1 - XTFRZ2 ) ! freezing interval
-     ZWORK2(:) = MAX( 0., MIN(1., ZWORK2(:) ) ) * REAL( KICE )
-     ZWORK3(:) = ( 1. - ZWORK2(:) ) * PEW(:) + ZWORK2(:) * ZEI(:)
-     PRC(:)    = MAX( 0., ( 1. - ZWORK2(:) ) * ( PRW(:) - ZWORK3(:) ) )
-     PRI(:)    = MAX( 0.,  ZWORK2(:) * ( PRW(:) - ZWORK3(:) ) )
-     ZT(:)     = ( PTHL(:) + PRC(:) * PLV(:) + PRI(:) * PLS(:) - ZWORK1(:) )   &
-                 / PCPH(:)
-     PT(:) = PT(:) + ( ZT(:) - PT(:) ) * 0.4  ! force convergence
-     PT(:) = MAX( 175., MIN( 330., PT(:) ) )
+     ZWORK2(JI) = ( CONVPAR%XTFRZ1 - PT(JI) ) / ( CONVPAR%XTFRZ1 - CONVPAR%XTFRZ2 ) ! freezing interval
+     ZWORK2(JI) = MAX( 0., MIN(1., ZWORK2(JI) ) ) * REAL( KICE )
+     ZWORK3(JI) = ( 1. - ZWORK2(JI) ) * PEW(JI) + ZWORK2(JI) * ZEI(JI)
+     PRC(JI)    = MAX( 0., ( 1. - ZWORK2(JI) ) * ( PRW(JI) - ZWORK3(JI) ) )
+     PRI(JI)    = MAX( 0.,  ZWORK2(JI) * ( PRW(JI) - ZWORK3(JI) ) )
+     ZT(JI)     = ( PTHL(JI) + PRC(JI) * PLV(JI) + PRI(JI) * PLS(JI) - ZWORK1(JI) )   &
+                 / PCPH(JI)
+     PT(JI) = PT(JI) + ( ZT(JI) - PT(JI) ) * 0.4  ! force convergence
+     PT(JI) = MAX( 175., MIN( 330., PT(JI) ) )
+  END DO
 END DO
 !
 !
diff --git a/src/arome/conv/convect_condens.h b/src/arome/conv/convect_condens.h
new file mode 100644
index 0000000000000000000000000000000000000000..fdc0428e2afa9e1746e90d5ed4b05a6e59f3c8e4
--- /dev/null
+++ b/src/arome/conv/convect_condens.h
@@ -0,0 +1,29 @@
+INTERFACE
+
+SUBROUTINE CONVECT_CONDENS( CST, D, CONVPAR,                        &
+KICE, PPRES, PTHL, PRW, PRCO, PRIO, PZ, &
+PT, PEW, PRC, PRI, PLV, PLS, PCPH   )
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE MODD_CST, ONLY : CST_T
+USE MODD_CONVPAR, ONLY : CONVPAR_T
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
+TYPE(CST_T),              INTENT(IN) :: CST
+TYPE(DIMPHYEX_T),         INTENT(IN) :: D
+TYPE(CONVPAR_T),          INTENT(IN) :: CONVPAR
+INTEGER,                  INTENT(IN) :: KICE
+REAL, DIMENSION(D%NIT),   INTENT(IN) :: PPRES
+REAL, DIMENSION(D%NIT),   INTENT(IN) :: PTHL
+REAL, DIMENSION(D%NIT),   INTENT(IN) :: PRW
+REAL, DIMENSION(D%NIT),   INTENT(IN) :: PRCO
+REAL, DIMENSION(D%NIT),   INTENT(IN) :: PRIO
+REAL, DIMENSION(D%NIT),   INTENT(IN) :: PZ
+REAL, DIMENSION(D%NIT),   INTENT(OUT):: PT
+REAL, DIMENSION(D%NIT),   INTENT(OUT):: PRC
+REAL, DIMENSION(D%NIT),   INTENT(OUT):: PRI
+REAL, DIMENSION(D%NIT),   INTENT(OUT):: PLV
+REAL, DIMENSION(D%NIT),   INTENT(OUT):: PLS
+REAL, DIMENSION(D%NIT),   INTENT(OUT):: PCPH
+REAL, DIMENSION(D%NIT),   INTENT(OUT):: PEW
+END SUBROUTINE CONVECT_CONDENS
+
+END INTERFACE
diff --git a/src/arome/conv/convect_downdraft.F90 b/src/arome/conv/convect_downdraft.F90
index f5f25cda4d696c2fb6b2e92b8c1b47b1e9299a39..1193a6aeef77dccf3656b03b2b0066c40af3de2e 100644
--- a/src/arome/conv/convect_downdraft.F90
+++ b/src/arome/conv/convect_downdraft.F90
@@ -7,8 +7,7 @@
                                    PDMF, PDER, PDDR, PDTHL, PDRW,             &
                                    PMIXF, PDTEVR, KLFS, KDBL, KML,            &
                                    PDTEVRF )
-     USE PARKIND1, ONLY : JPRB
-     USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+     USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !    ##########################################################################
 !
 !!**** Compute downdraft properties from LFS to DBL.
@@ -146,7 +145,7 @@ LOGICAL, DIMENSION(KLON) :: GWORK1                         ! work array
 !        0.3    Set loop bounds
 !               ---------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('CONVECT_DOWNDRAFT',0,ZHOOK_HANDLE)
 IIE = KLON
 IKB = 1 + JCVEXB
diff --git a/src/arome/conv/convect_mixing_funct.F90 b/src/arome/conv/convect_mixing_funct.F90
index 6f2d951b8bfa4bd0f828562c390b4cc5715fd812..8c9cec2e723d175ba3b7ce13c127a1931911c0a4 100644
--- a/src/arome/conv/convect_mixing_funct.F90
+++ b/src/arome/conv/convect_mixing_funct.F90
@@ -1,8 +1,7 @@
 !     ######spl
-      SUBROUTINE CONVECT_MIXING_FUNCT( KLON,                &
+      SUBROUTINE CONVECT_MIXING_FUNCT( D,  &
                                        PMIXC, KMF, PER, PDR )
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #######################################################
 !
 !!**** Determine the area under the distribution function
@@ -48,6 +47,7 @@
 !!      Original    07/11/95
 !!   Last modified  04/10/97
 !-------------------------------------------------------------------------------
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
 !
 !*       0.    DECLARATIONS
 !              ------------
@@ -57,12 +57,12 @@ IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
-INTEGER,               INTENT(IN) :: KLON   ! horizontal dimension
-INTEGER,               INTENT(IN) :: KMF    ! switch for dist. function
-REAL, DIMENSION(KLON), INTENT(IN) :: PMIXC  ! critical mixed fraction
+TYPE(DIMPHYEX_T)                   ,INTENT(IN)   :: D
+REAL             ,DIMENSION(D%NIT) ,INTENT(IN)   :: PMIXC  ! critical mixed fraction
+INTEGER                            ,INTENT(IN)   :: KMF    ! switch for dist. function
 !
-REAL, DIMENSION(KLON), INTENT(OUT):: PER    ! normalized entrainment rate
-REAL, DIMENSION(KLON), INTENT(OUT):: PDR    ! normalized detrainment rate
+REAL             ,DIMENSION(D%NIT) ,INTENT(OUT)  :: PER    ! normalized entrainment rate
+REAL             ,DIMENSION(D%NIT) ,INTENT(OUT)  :: PDR    ! normalized detrainment rate
 !
 !*       0.2   Declarations of local variables :
 !
@@ -73,8 +73,9 @@ REAL    :: ZA1    = 0.4361836, ZA2 =-0.1201676    ! constants
 REAL    :: ZA3    = 0.9372980, ZT1 = 0.500498     ! constants
 REAL    :: ZE45   = 0.01111                       ! constant
 !
-REAL, DIMENSION(KLON) :: ZX, ZY, ZW1, ZW2         ! work variables
+REAL, DIMENSION(D%NIT) :: ZX, ZY, ZW1, ZW2         ! work variables
 REAL    :: ZW11
+INTEGER :: JI
 !
 !
 !-------------------------------------------------------------------------------
@@ -82,37 +83,42 @@ REAL    :: ZW11
 !       1.     Use gaussian function for KMF=1
 !              -------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('CONVECT_MIXING_FUNCT',0,ZHOOK_HANDLE)
 IF( KMF == 1 ) THEN
     ! ZX(:)  = ( PMIXC(:) - 0.5 ) / ZSIGMA
-      ZX(:)  = 6. * PMIXC(:) - 3.
-      ZW1(:) = 1. / ( 1.+ ZP * ABS ( ZX(:) ) )
-      ZY(:)  = EXP( -0.5 * ZX(:) * ZX(:) )
-      ZW2(:) = ZA1 * ZW1(:) + ZA2 * ZW1(:) * ZW1(:) +                   &
-               ZA3 * ZW1(:) * ZW1(:) * ZW1(:)
+      ZX(D%NIB:D%NIE)  = 6. * PMIXC(D%NIB:D%NIE) - 3.
+      ZW1(D%NIB:D%NIE) = 1. / ( 1.+ ZP * ABS ( ZX(D%NIB:D%NIE) ) )
+      ZY(D%NIB:D%NIE)  = EXP( -0.5 * ZX(D%NIB:D%NIE) * ZX(D%NIB:D%NIE) )
+      ZW2(D%NIB:D%NIE) = ZA1 * ZW1(D%NIB:D%NIE) + ZA2 * ZW1(D%NIB:D%NIE) * ZW1(D%NIB:D%NIE) +                   &
+               ZA3 * ZW1(D%NIB:D%NIE) * ZW1(D%NIB:D%NIE) * ZW1(D%NIB:D%NIE)
       ZW11   = ZA1 * ZT1 + ZA2 * ZT1 * ZT1 + ZA3 * ZT1 * ZT1 * ZT1
 ENDIF
 !
-WHERE ( KMF == 1 .AND. ZX(:) >= 0. )
-        PER(:) = ZSIGMA * ( 0.5 * ( ZSQRTP - ZE45 * ZW11                 &
-                 - ZY(:) * ZW2(:) ) + ZSIGMA * ( ZE45 - ZY(:) ) )        &
-                 - 0.5 * ZE45 * PMIXC(:) * PMIXC(:)
-        PDR(:) = ZSIGMA*( 0.5 * ( ZY(:) * ZW2(:) - ZE45 * ZW11   )       &
-                 + ZSIGMA * ( ZE45 - ZY(:) ) )                           &
-                 - ZE45 * ( 0.5 + 0.5 * PMIXC(:) * PMIXC(:) - PMIXC(:) )
-END WHERE
-WHERE ( KMF == 1 .AND. ZX(:) < 0. )
-        PER(:) = ZSIGMA*( 0.5 * ( ZY(:) * ZW2(:) - ZE45 * ZW11   )       &
-                 + ZSIGMA * ( ZE45 - ZY(:) ) )                           &
-                 - 0.5 * ZE45 * PMIXC(:) * PMIXC(:)
-        PDR(:) = ZSIGMA * ( 0.5 * ( ZSQRTP - ZE45 * ZW11 - ZY(:)         &
-                 * ZW2(:) ) + ZSIGMA * ( ZE45 - ZY(:) ) )                &
-                 - ZE45 * ( 0.5 + 0.5 * PMIXC(:) * PMIXC(:) - PMIXC(:) )
-END WHERE
-!
-      PER(:) = PER(:) * ZFE
-      PDR(:) = PDR(:) * ZFE
+DO JI=D%NIB, D%NIE
+  IF ( KMF == 1 .AND. ZX(JI) >= 0. ) THEN
+          PER(JI) = ZSIGMA * ( 0.5 * ( ZSQRTP - ZE45 * ZW11                 &
+                   - ZY(JI) * ZW2(JI) ) + ZSIGMA * ( ZE45 - ZY(JI) ) )        &
+                   - 0.5 * ZE45 * PMIXC(JI) * PMIXC(JI)
+          PDR(JI) = ZSIGMA*( 0.5 * ( ZY(JI) * ZW2(JI) - ZE45 * ZW11   )       &
+                   + ZSIGMA * ( ZE45 - ZY(JI) ) )                           &
+                   - ZE45 * ( 0.5 + 0.5 * PMIXC(JI) * PMIXC(JI) - PMIXC(JI) )
+  END IF
+ENDDO
+DO JI=D%NIB, D%NIE
+IF ( KMF == 1 .AND. ZX(JI) < 0. ) THEN
+        PER(JI) = ZSIGMA*( 0.5 * ( ZY(JI) * ZW2(JI) - ZE45 * ZW11   )       &
+                 + ZSIGMA * ( ZE45 - ZY(JI) ) )                           &
+                 - 0.5 * ZE45 * PMIXC(JI) * PMIXC(JI)
+        PDR(JI) = ZSIGMA * ( 0.5 * ( ZSQRTP - ZE45 * ZW11 - ZY(JI)         &
+                 * ZW2(JI) ) + ZSIGMA * ( ZE45 - ZY(JI) ) )                &
+                 - ZE45 * ( 0.5 + 0.5 * PMIXC(JI) * PMIXC(JI) - PMIXC(JI) )
+  END IF
+ENDDO
+
+!
+      PER(D%NIB:D%NIE) = PER(D%NIB:D%NIE) * ZFE
+      PDR(D%NIB:D%NIE) = PDR(D%NIB:D%NIE) * ZFE
 !
 !
 !       2.     Use triangular function KMF=2
@@ -123,3 +129,4 @@ END WHERE
 !
 IF (LHOOK) CALL DR_HOOK('CONVECT_MIXING_FUNCT',1,ZHOOK_HANDLE)
 END SUBROUTINE CONVECT_MIXING_FUNCT
+
diff --git a/src/arome/conv/convect_mixing_funct.h b/src/arome/conv/convect_mixing_funct.h
new file mode 100644
index 0000000000000000000000000000000000000000..dd7187f9c87a551143b1c46cb41d8e5afe9e8226
--- /dev/null
+++ b/src/arome/conv/convect_mixing_funct.h
@@ -0,0 +1,14 @@
+INTERFACE
+
+SUBROUTINE CONVECT_MIXING_FUNCT( D,  &
+PMIXC, KMF, PER, PDR )
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
+TYPE(DIMPHYEX_T),      INTENT(IN) :: D
+INTEGER,               INTENT(IN) :: KMF
+REAL, DIMENSION(D%NIT), INTENT(IN) :: PMIXC
+REAL, DIMENSION(D%NIT), INTENT(OUT):: PER
+REAL, DIMENSION(D%NIT), INTENT(OUT):: PDR
+END SUBROUTINE CONVECT_MIXING_FUNCT
+
+END INTERFACE
diff --git a/src/arome/conv/convect_precip_adjust.F90 b/src/arome/conv/convect_precip_adjust.F90
index 0285d09c6c2f8e47e550eede3eb3ccec3937cfc1..2c648a3d795be48b8f815e630f5c15984bfb1e62 100644
--- a/src/arome/conv/convect_precip_adjust.F90
+++ b/src/arome/conv/convect_precip_adjust.F90
@@ -6,8 +6,7 @@
                                         PPREF, PTPR, PMIXF, PDTEVR,        &
                                         KLFS, KDBL, KLCL, KCTL, KETL,      &
                                         PDTEVRF )
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ######################################################################
 !
 !!**** Adjust up- and downdraft mass fluxes to be consistent with the
@@ -114,7 +113,7 @@ REAL, DIMENSION(KLON)    :: ZWORK1, ZWORK2, ZWORK3,     &
 !        0.3   Set loop bounds
 !              ---------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('CONVECT_PRECIP_ADJUST',0,ZHOOK_HANDLE)
 IKB  = 1 + JCVEXB
 IKE  = KLEV - JCVEXT
diff --git a/src/arome/conv/convect_satmixratio.F90 b/src/arome/conv/convect_satmixratio.F90
index 0926cd7a39d2e9aec2a4339b9372719a4448a835..53c7ff88ed69e2f53ddcb8d776f66e8f11d664ac 100644
--- a/src/arome/conv/convect_satmixratio.F90
+++ b/src/arome/conv/convect_satmixratio.F90
@@ -1,8 +1,6 @@
 !     ######spl
-      SUBROUTINE CONVECT_SATMIXRATIO( KLON,                          &
-                                      PPRES, PT, PEW, PLV, PLS, PCPH )      
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      SUBROUTINE CONVECT_SATMIXRATIO(CST, D, PPRES, PT, PEW, PLV, PLS, PCPH)
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ################################################################
 !
 !!**** Compute vapor saturation mixing ratio over liquid water
@@ -52,7 +50,8 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CST, ONLY : XALPW, XBETAW, XCI, XCL, XCPD, XCPV, XGAMW, XLSTT, XLVTT, XRD, XRV, XTT
+USE MODD_CST, ONLY : CST_T
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
 !
 !
 IMPLICIT NONE
@@ -60,35 +59,36 @@ IMPLICIT NONE
 !*       0.1   Declarations of dummy arguments :
 !
 !
-INTEGER,                INTENT(IN) :: KLON    ! horizontal loop index
-REAL, DIMENSION(KLON),  INTENT(IN) :: PPRES   ! pressure
-REAL, DIMENSION(KLON),  INTENT(IN) :: PT      ! temperature   
+TYPE(CST_T),            INTENT(IN) :: CST
+TYPE(DIMPHYEX_T),       INTENT(IN) :: D
+REAL, DIMENSION(D%NIT),  INTENT(IN) :: PPRES   ! pressure
+REAL, DIMENSION(D%NIT),  INTENT(IN) :: PT      ! temperature   
 !
-REAL, DIMENSION(KLON),  INTENT(OUT):: PEW     ! vapor saturation mixing ratio
-REAL, DIMENSION(KLON),  INTENT(OUT):: PLV     ! latent heat L_v    
-REAL, DIMENSION(KLON),  INTENT(OUT):: PLS     ! latent heat L_s  
-REAL, DIMENSION(KLON),  INTENT(OUT):: PCPH    ! specific heat C_ph   
+REAL, DIMENSION(D%NIT),  INTENT(OUT):: PEW     ! vapor saturation mixing ratio
+REAL, DIMENSION(D%NIT),  INTENT(OUT):: PLV     ! latent heat L_v    
+REAL, DIMENSION(D%NIT),  INTENT(OUT):: PLS     ! latent heat L_s  
+REAL, DIMENSION(D%NIT),  INTENT(OUT):: PCPH    ! specific heat C_ph   
 !
 !*       0.2   Declarations of local variables :
 !
-REAL, DIMENSION(KLON)              :: ZT      ! temperature   
+REAL, DIMENSION(D%NIT)              :: ZT      ! temperature   
 REAL    :: ZEPS           ! R_d / R_v
 !
 !
 !-------------------------------------------------------------------------------
 !
-    REAL(KIND=JPRB) :: ZHOOK_HANDLE
+    REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
     IF (LHOOK) CALL DR_HOOK('CONVECT_SATMIXRATIO',0,ZHOOK_HANDLE)
-    ZEPS      = XRD / XRV
+    ZEPS      = CST%XRD / CST%XRV
 !
-    ZT(:)     = MIN( 400., MAX( PT(:), 10. ) ) ! overflow bound
-    PEW(:)    = EXP( XALPW - XBETAW / ZT(:) - XGAMW * ALOG( ZT(:) ) )
-    PEW(:)    = ZEPS * PEW(:) / ( PPRES(:) - PEW(:) )
+    ZT(D%NIB:D%NIE)     = MIN( 400., MAX( PT(D%NIB:D%NIE), 10. ) ) ! overflow bound
+    PEW(D%NIB:D%NIE)    = EXP( CST%XALPW - CST%XBETAW / ZT(D%NIB:D%NIE) - CST%XGAMW * ALOG( ZT(D%NIB:D%NIE) ) )
+    PEW(D%NIB:D%NIE)    = ZEPS * PEW(D%NIB:D%NIE) / ( PPRES(D%NIB:D%NIE) - PEW(D%NIB:D%NIE) )
 !
-    PLV(:)    = XLVTT + ( XCPV - XCL ) * ( ZT(:) - XTT ) ! compute L_v
-    PLS(:)    = XLSTT + ( XCPV - XCI ) * ( ZT(:) - XTT ) ! compute L_i
+    PLV(D%NIB:D%NIE)    = CST%XLVTT + ( CST%XCPV - CST%XCL ) * ( ZT(D%NIB:D%NIE) - CST%XTT ) ! compute L_v
+    PLS(D%NIB:D%NIE)    = CST%XLSTT + ( CST%XCPV - CST%XCI ) * ( ZT(D%NIB:D%NIE) - CST%XTT ) ! compute L_i
 !    
-    PCPH(:)   = XCPD + XCPV * PEW(:)                     ! compute C_ph 
+    PCPH(D%NIB:D%NIE)   = CST%XCPD + CST%XCPV * PEW(D%NIB:D%NIE)                     ! compute C_ph 
 !
 IF (LHOOK) CALL DR_HOOK('CONVECT_SATMIXRATIO',1,ZHOOK_HANDLE)
 END SUBROUTINE CONVECT_SATMIXRATIO
diff --git a/src/arome/conv/convect_satmixratio.h b/src/arome/conv/convect_satmixratio.h
new file mode 100644
index 0000000000000000000000000000000000000000..72263a7a6895644794945dbc78dab074aac6d749
--- /dev/null
+++ b/src/arome/conv/convect_satmixratio.h
@@ -0,0 +1,17 @@
+INTERFACE
+
+SUBROUTINE CONVECT_SATMIXRATIO(CST, D, PPRES, PT, PEW, PLV, PLS, PCPH)
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE MODD_CST, ONLY : CST_T
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
+TYPE(CST_T),            INTENT(IN) :: CST
+TYPE(DIMPHYEX_T),       INTENT(IN) :: D
+REAL, DIMENSION(D%NIT),  INTENT(IN) :: PPRES
+REAL, DIMENSION(D%NIT),  INTENT(IN) :: PT
+REAL, DIMENSION(D%NIT),  INTENT(OUT):: PEW
+REAL, DIMENSION(D%NIT),  INTENT(OUT):: PLV
+REAL, DIMENSION(D%NIT),  INTENT(OUT):: PLS
+REAL, DIMENSION(D%NIT),  INTENT(OUT):: PCPH
+END SUBROUTINE CONVECT_SATMIXRATIO
+
+END INTERFACE
diff --git a/src/arome/conv/convect_trigger_funct.F90 b/src/arome/conv/convect_trigger_funct.F90
index fd641fbb1d074593ceedf64fa9de1911b8521f7f..8b408bc88aa64cf328ed926ebfa54ea7b470037d 100644
--- a/src/arome/conv/convect_trigger_funct.F90
+++ b/src/arome/conv/convect_trigger_funct.F90
@@ -5,8 +5,7 @@
                                         PTHLCL, PTLCL, PRVLCL, PWLCL, PZLCL,  &
                                         PTHVELCL, KLCL, KDPL, KPBL, OTRIG,    &
                                         PCAPE )
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #########################################################################
 !
 !!**** Determine convective columns as well as the cloudy values of theta,
@@ -139,7 +138,7 @@ LOGICAL, DIMENSION(KLON) :: GWORK1                 ! work array
 !*       0.3    Compute array bounds
 !               --------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('CONVECT_TRIGGER_FUNCT',0,ZHOOK_HANDLE)
 IIE = KLON
 IKB = 1 + JCVEXB
diff --git a/src/arome/conv/convect_trigger_shal.F90 b/src/arome/conv/convect_trigger_shal.F90
index 9b09758085642eaebcc36435e3148a6a1fe494d9..8be349361d7810cfb90fa07401cefd0c88ba42ad 100644
--- a/src/arome/conv/convect_trigger_shal.F90
+++ b/src/arome/conv/convect_trigger_shal.F90
@@ -1,11 +1,10 @@
 !     ######spl
-      SUBROUTINE CONVECT_TRIGGER_SHAL(  KLON, KLEV,                           &
-                                        PPRES, PTH, PTHV, PTHES,              &
-                                        PRV, PW, PZ, PDXDY,PTKECLS,           &
-                                        PTHLCL, PTLCL, PRVLCL, PWLCL, PZLCL,  &
-                                        PTHVELCL, KLCL, KDPL, KPBL, OTRIG     )
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      SUBROUTINE CONVECT_TRIGGER_SHAL(  CVP_SHAL, CVPEXT, CST, D,  &
+                                        PPRES, PTH, PTHV, PTHES,             &
+                                        PRV, PW, PZ, PTKECLS,                &
+                                        PTHLCL, PTLCL, PRVLCL, PWLCL, PZLCL, &
+                                        PTHVELCL, KLCL, KDPL, KPBL, OTRIG)
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ########################################################################
 !
 !!**** Determine convective columns as well as the cloudy values of theta,
@@ -80,63 +79,65 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-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
+USE MODD_CST, ONLY : CST_T
+USE MODD_CONVPAR_SHAL, ONLY : CONVPAR_SHAL
+USE MODD_CONVPAREXT, ONLY : CONVPAREXT
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
 !
 !
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
-INTEGER, INTENT(IN)                   :: KLON      ! horizontal loop index
-INTEGER, INTENT(IN)                   :: KLEV      ! vertical loop index
-REAL, DIMENSION(KLON),     INTENT(IN) :: PDXDY     ! grid area
-REAL, DIMENSION(KLON),     INTENT(IN) :: PTKECLS   ! TKE CLS
-REAL, DIMENSION(KLON,KLEV),INTENT(IN) :: PTH, PTHV ! theta, theta_v
-REAL, DIMENSION(KLON,KLEV),INTENT(IN) :: PTHES     ! envir. satur. theta_e
-REAL, DIMENSION(KLON,KLEV),INTENT(IN) :: PRV       ! vapor mixing ratio
-REAL, DIMENSION(KLON,KLEV),INTENT(IN) :: PPRES     ! pressure
-REAL, DIMENSION(KLON,KLEV),INTENT(IN) :: PZ        ! height of grid point (m)
-REAL, DIMENSION(KLON,KLEV),INTENT(IN) :: PW        ! vertical velocity
-!
-REAL, DIMENSION(KLON),     INTENT(OUT):: PTHLCL    ! theta at LCL
-REAL, DIMENSION(KLON),     INTENT(OUT):: PTLCL     ! temp. at LCL
-REAL, DIMENSION(KLON),     INTENT(OUT):: PRVLCL    ! vapor mixing ratio at  LCL
-REAL, DIMENSION(KLON),     INTENT(OUT):: PWLCL     ! parcel velocity at  LCL
-REAL, DIMENSION(KLON),     INTENT(OUT):: PZLCL     ! height at LCL (m)
-REAL, DIMENSION(KLON),     INTENT(OUT):: PTHVELCL  ! environm. theta_v at LCL (K)
-LOGICAL, DIMENSION(KLON),  INTENT(OUT):: OTRIG     ! logical mask for convection
-INTEGER, DIMENSION(KLON),  INTENT(INOUT):: KLCL    ! contains vert. index of LCL
-INTEGER, DIMENSION(KLON),  INTENT(INOUT):: KDPL    ! contains vert. index of DPL
-INTEGER, DIMENSION(KLON),  INTENT(INOUT):: KPBL    ! contains index of source layer top
+TYPE(CONVPAR_SHAL)                         ,INTENT(IN)     :: CVP_SHAL
+TYPE(CONVPAREXT)                           ,INTENT(IN)     :: CVPEXT
+TYPE(CST_T)                                ,INTENT(IN)     :: CST
+TYPE(DIMPHYEX_T)                           ,INTENT(IN)     :: D
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PPRES     ! pressure
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PTH,PTHV ! theta, theta_v
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PTHES     ! envir. satur. theta_e
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PRV       ! vapor mixing ratio
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PW        ! vertical velocity
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PZ        ! height of grid point (m)
+REAL               ,DIMENSION(D%NIT)       ,INTENT(IN)     :: PTKECLS   ! TKE CLS
+!
+REAL               ,DIMENSION(D%NIT)       ,INTENT(OUT)    :: PTHLCL    ! theta at LCL
+REAL               ,DIMENSION(D%NIT)       ,INTENT(OUT)    :: PTLCL     ! temp. at LCL
+REAL               ,DIMENSION(D%NIT)       ,INTENT(OUT)    :: PRVLCL    ! vapor mixing ratio at  LCL
+REAL               ,DIMENSION(D%NIT)       ,INTENT(OUT)    :: PWLCL     ! parcel velocity at  LCL
+REAL               ,DIMENSION(D%NIT)       ,INTENT(OUT)    :: PZLCL     ! height at LCL (m)
+REAL               ,DIMENSION(D%NIT)       ,INTENT(OUT)    :: PTHVELCL  ! environm. theta_v at LCL (K)
+INTEGER            ,DIMENSION(D%NIT)       ,INTENT(INOUT)  :: KLCL    ! contains vert. index of LCL
+INTEGER            ,DIMENSION(D%NIT)       ,INTENT(INOUT)  :: KDPL    ! contains vert. index of DPL
+INTEGER            ,DIMENSION(D%NIT)       ,INTENT(INOUT)  :: KPBL    ! contains index of source layer top
+LOGICAL            ,DIMENSION(D%NIT)       ,INTENT(OUT)    :: OTRIG     ! logical mask for convection
 !
 !*       0.2   Declarations of local variables :
 !
-INTEGER :: JKK, JK, JKP, JKM, JKDL, JL, JKT, JT! vertical loop index
-INTEGER :: JI                                  ! horizontal loop index
-INTEGER :: IIE, IKB, IKE                       ! horizontal + vertical loop bounds
-REAL    :: ZEPS, ZEPSA                         ! R_d / R_v, R_v / R_d
-REAL    :: ZCPORD, ZRDOCP                      ! C_pd / R_d, R_d / C_pd
+INTEGER :: JKK, JK, JKM, JL, JT! vertical loop index
+INTEGER :: JI                  ! horizontal loop index
+INTEGER :: IKB, IKE            ! horizontal + vertical loop bounds
+REAL    :: ZEPS, ZEPSA         ! R_d / R_v, R_v / R_d
+REAL    :: ZCPORD, ZRDOCP      ! C_pd / R_d, R_d / C_pd
 !
-REAL, DIMENSION(KLON) :: ZTHLCL, ZTLCL, ZRVLCL, & ! locals for PTHLCL,PTLCL
+REAL, DIMENSION(D%NIT) :: ZTHLCL, ZTLCL, ZRVLCL, & ! locals for PTHLCL,PTLCL
                                ZWLCL,  ZZLCL, ZTHVELCL  ! PRVLCL, ....
-INTEGER, DIMENSION(KLON) :: IDPL, IPBL, ILCL      ! locals for KDPL, ...
-REAL, DIMENSION(KLON) :: ZPLCL    ! pressure at LCL
-REAL, DIMENSION(KLON) :: ZZDPL    ! height of DPL
-REAL, DIMENSION(KLON) :: ZTHVLCL  ! theta_v at LCL = mixed layer value
-REAL, DIMENSION(KLON) :: ZTMIX    ! mixed layer temperature
-REAL, DIMENSION(KLON) :: ZEVMIX   ! mixed layer water vapor pressure
-REAL, DIMENSION(KLON) :: ZDPTHMIX, ZPRESMIX ! mixed layer depth and pressure
-REAL, DIMENSION(KLON) :: ZCAPE    ! convective available energy (m^2/s^2/g)
-REAL, DIMENSION(KLON) :: ZCAP     ! pseudo fro CAPE
-REAL, DIMENSION(KLON) :: ZTHEUL   ! updraft equiv. pot. temperature (K)
-REAL, DIMENSION(KLON) :: ZLV, ZCPH! specific heats of vaporisation, dry air
-REAL, DIMENSION(KLON) :: ZDP      ! pressure between LCL and model layer
-REAL, DIMENSION(KLON) :: ZTOP,ZTOPP     ! estimated cloud top (m)
-REAL, DIMENSION(KLON) :: ZWORK1, ZWORK2, ZWORK3    ! work arrays
-LOGICAL, DIMENSION(KLON) :: GTRIG, GTRIG2          ! local arrays for OTRIG
-LOGICAL, DIMENSION(KLON) :: GWORK1                 ! work array
+INTEGER, DIMENSION(D%NIT) :: IDPL, IPBL, ILCL      ! locals for KDPL, ...
+REAL, DIMENSION(D%NIT) :: ZPLCL    ! pressure at LCL
+REAL, DIMENSION(D%NIT) :: ZZDPL    ! height of DPL
+REAL, DIMENSION(D%NIT) :: ZTHVLCL  ! theta_v at LCL = mixed layer value
+REAL, DIMENSION(D%NIT) :: ZTMIX    ! mixed layer temperature
+REAL, DIMENSION(D%NIT) :: ZEVMIX   ! mixed layer water vapor pressure
+REAL, DIMENSION(D%NIT) :: ZDPTHMIX, ZPRESMIX ! mixed layer depth and pressure
+REAL, DIMENSION(D%NIT) :: ZCAPE    ! convective available energy (m^2/s^2/g)
+REAL, DIMENSION(D%NIT) :: ZCAP     ! pseudo fro CAPE
+REAL, DIMENSION(D%NIT) :: ZTHEUL   ! updraft equiv. pot. temperature (K)
+REAL, DIMENSION(D%NIT) :: ZLV, ZCPH! specific heats of vaporisation, dry air
+REAL, DIMENSION(D%NIT) :: ZDP      ! pressure between LCL and model layer
+REAL, DIMENSION(D%NIT) :: ZTOP,ZTOPP     ! estimated cloud top (m)
+REAL, DIMENSION(D%NIT) :: ZWORK1, ZWORK2, ZWORK3    ! work arrays
+LOGICAL, DIMENSION(D%NIT) :: GTRIG2          ! local arrays for OTRIG
+LOGICAL, DIMENSION(D%NIT) :: GWORK1                 ! work array
 !
 !
 !-------------------------------------------------------------------------------
@@ -144,20 +145,22 @@ LOGICAL, DIMENSION(KLON) :: GWORK1                 ! work array
 !*       0.3    Compute array bounds
 !               --------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
+
+#include "convect_satmixratio.h"
+
 IF (LHOOK) CALL DR_HOOK('CONVECT_TRIGGER_SHAL',0,ZHOOK_HANDLE)
-IIE = KLON
-IKB = 1 + JCVEXB
-IKE = KLEV - JCVEXT
+IKB = 1 + CVPEXT%JCVEXB
+IKE = D%NKT - CVPEXT%JCVEXT
 !
 !
 !*       1.     Initialize local variables
 !               --------------------------
 !
-ZEPS       = XRD / XRV
-ZEPSA      = XRV / XRD
-ZCPORD     = XCPD / XRD
-ZRDOCP     = XRD / XCPD
+ZEPS       = CST%XRD / CST%XRV
+ZEPSA      = CST%XRV / CST%XRD
+ZCPORD     = CST%XCPD / CST%XRD
+ZRDOCP     = CST%XRD / CST%XCPD
 OTRIG(:)   = .FALSE.
 IDPL(:)    = KDPL(:)
 IPBL(:)    = KPBL(:)
@@ -185,17 +188,19 @@ JT = IKE - 2
 !
 DO JKK = IKB + 1, IKE - 2
 !
-     GWORK1(:) = ZZDPL(:) - PZ(:,IKB) < XZLCL
+     GWORK1(D%NIB:D%NIE) = ZZDPL(D%NIB:D%NIE) - PZ(D%NIB:D%NIE,IKB) < CVP_SHAL%XZLCL
           ! we exit the trigger test when the center of the mixed layer is more
           ! than 1500 m  above soil level.
-     WHERE ( GWORK1(:) )
-        ZDPTHMIX(:) = 0.
-        ZPRESMIX(:) = 0.
-        ZTHLCL(:)   = 0.
-        ZRVLCL(:)   = 0.
-        ZZDPL(:)    = PZ(:,JKK)
-        IDPL(:)     = JKK
-     END WHERE
+     DO JI=D%NIB, D%NIE
+       IF ( GWORK1(JI) ) THEN
+          ZDPTHMIX(JI) = 0.
+          ZPRESMIX(JI) = 0.
+          ZTHLCL(JI)   = 0.
+          ZRVLCL(JI)   = 0.
+          ZZDPL(JI)    = PZ(JI,JKK)
+          IDPL(JI)     = JKK
+       END IF
+     ENDDO
 !
 !
 !*       3.     Construct a mixed layer of at least 50 hPa (XZPBL)
@@ -203,88 +208,93 @@ DO JKK = IKB + 1, IKE - 2
 !
      DO JK = JKK, IKE - 1
        JKM = JK + 1
-       DO JI = 1, IIE
-         IF ( GWORK1(JI) .AND. ZDPTHMIX(JI) < XZPBL ) THEN
+       DO JI = D%NIB, D%NIE
+         IF ( GWORK1(JI) .AND. ZDPTHMIX(JI) < CVP_SHAL%XZPBL ) THEN
             IPBL(JI)     = JK
             ZWORK1(JI)   = PPRES(JI,JK) - PPRES(JI,JKM)
             ZDPTHMIX(JI) = ZDPTHMIX(JI) + ZWORK1(JI)
             ZPRESMIX(JI) = ZPRESMIX(JI) + PPRES(JI,JK) * ZWORK1(JI)
             ZTHLCL(JI)   = ZTHLCL(JI)   + PTH(JI,JK)   * ZWORK1(JI)
-            ZRVLCL(JI)   = ZRVLCL(JI)   + PRV(JI,JK)   * ZWORK1(JI)
+            ZRVLCL(JI)   = ZRVLCL(JI)   + MAX(0., PRV(JI,JK))   * ZWORK1(JI)
          END IF
        END DO
-       !IF ( MINVAL ( ZDPTHMIX(:) ) >= XZPBL ) EXIT
      END DO
 !
 !
-     WHERE ( GWORK1(:) )
+     DO JI=D%NIB, D%NIE
+     IF ( GWORK1(JI) ) THEN
 !
-        ZPRESMIX(:) = ZPRESMIX(:) / ZDPTHMIX(:)
-        ZTHLCL(:)   = ZTHLCL(:)   / ZDPTHMIX(:) + &
-      & (XATPERT * MIN(3.,PTKECLS(:))/XCPD +XBTPERT) * XDTPERT ! add small Temp Perturb.
-        ZRVLCL(:)   = ZRVLCL(:)   / ZDPTHMIX(:)
-        ZTHVLCL(:)  = ZTHLCL(:) * ( 1. + ZEPSA * ZRVLCL(:) )                 &
-                    / ( 1. + ZRVLCL(:) )
+        ZPRESMIX(JI) = ZPRESMIX(JI) / ZDPTHMIX(JI)
+        ZTHLCL(JI)   = ZTHLCL(JI)   / ZDPTHMIX(JI) + &
+      & (CVP_SHAL%XATPERT * MIN(3.,PTKECLS(JI))/CST%XCPD +CVP_SHAL%XBTPERT) * CVP_SHAL%XDTPERT ! add small Temp Perturb.
+        ZRVLCL(JI)   = ZRVLCL(JI)   / ZDPTHMIX(JI)
+        ZTHVLCL(JI)  = ZTHLCL(JI) * ( 1. + ZEPSA * ZRVLCL(JI) )                 &
+                    / ( 1. + ZRVLCL(JI) )
 !
 !*       4.1    Use an empirical direct solution ( Bolton formula )
 !               to determine temperature and pressure at LCL.
-!               Nota: the adiabatic saturation temperature is not
+!               NotaJI the adiabatic saturation temperature is not
 !                     equal to the dewpoint temperature
 !               ----------------------------------------------------
 !
 !
-        ZTMIX(:)  = ZTHLCL(:) * ( ZPRESMIX(:) / XP00 ) ** ZRDOCP
-        ZEVMIX(:) = ZRVLCL(:) * ZPRESMIX(:) / ( ZRVLCL(:) + ZEPS )
-        ZEVMIX(:) = MAX( 1.E-8, ZEVMIX(:) )
-        ZWORK1(:) = LOG( ZEVMIX(:) / 613.3 )
+        ZTMIX(JI)  = ZTHLCL(JI) * ( ZPRESMIX(JI) / CST%XP00 ) ** ZRDOCP
+        ZEVMIX(JI) = ZRVLCL(JI) * ZPRESMIX(JI) / ( ZRVLCL(JI) + ZEPS )
+        ZEVMIX(JI) = MAX( 1.E-8, ZEVMIX(JI) )
+        ZWORK1(JI) = LOG( ZEVMIX(JI) / 613.3 )
               ! dewpoint temperature
-        ZWORK1(:) = ( 4780.8 - 32.19 * ZWORK1(:) ) / ( 17.502 - ZWORK1(:) )
+        ZWORK1(JI) = ( 4780.8 - 32.19 * ZWORK1(JI) ) / ( 17.502 - ZWORK1(JI) )
               ! adiabatic saturation temperature
-        ZTLCL(:)  = ZWORK1(:) - ( .212 + 1.571E-3 * ( ZWORK1(:) - XTT )      &
-                   - 4.36E-4 * ( ZTMIX(:) - XTT ) ) * ( ZTMIX(:) - ZWORK1(:) )
-        ZTLCL(:)  = MIN( ZTLCL(:), ZTMIX(:) )
-        ZPLCL(:)  = XP00 * ( ZTLCL(:) / ZTHLCL(:) ) ** ZCPORD
+        ZTLCL(JI)  = ZWORK1(JI) - ( .212 + 1.571E-3 * ( ZWORK1(JI) - CST%XTT )      &
+                   - 4.36E-4 * ( ZTMIX(JI) - CST%XTT ) ) * ( ZTMIX(JI) - ZWORK1(JI) )
+        ZTLCL(JI)  = MIN( ZTLCL(JI), ZTMIX(JI) )
+        ZPLCL(JI)  = CST%XP00 * ( ZTLCL(JI) / ZTHLCL(JI) ) ** ZCPORD
 !
-     END WHERE
+     END IF
+     ENDDO
 !
 !
 !*       4.2    Correct ZTLCL in order to be completely consistent
 !               with MNH saturation formula
 !               ---------------------------------------------
 !
-     CALL CONVECT_SATMIXRATIO( KLON, ZPLCL, ZTLCL, ZWORK1, ZLV, ZWORK2, ZCPH )
-     WHERE( GWORK1(:) )
-        ZWORK2(:) = ZWORK1(:) / ZTLCL(:) * ( XBETAW / ZTLCL(:) - XGAMW ) ! dr_sat/dT
-        ZWORK2(:) = ( ZWORK1(:) - ZRVLCL(:) ) /                              &
-                        ( 1. + ZLV(:) / ZCPH(:) * ZWORK2(:) )
-        ZTLCL(:)  = ZTLCL(:) - ZLV(:) / ZCPH(:) * ZWORK2(:)
+     CALL CONVECT_SATMIXRATIO( CST, D, ZPLCL, ZTLCL, ZWORK1, ZLV, ZWORK2, ZCPH )
+     DO JI=D%NIB, D%NIE
+     IF( GWORK1(JI) ) THEN
+        ZWORK2(JI) = ZWORK1(JI) / ZTLCL(JI) * ( CST%XBETAW / ZTLCL(JI) - CST%XGAMW ) ! dr_sat/dT
+        ZWORK2(JI) = ( ZWORK1(JI) - ZRVLCL(JI) ) /                              &
+                        ( 1. + ZLV(JI) / ZCPH(JI) * ZWORK2(JI) )
+        ZTLCL(JI)  = ZTLCL(JI) - ZLV(JI) / ZCPH(JI) * ZWORK2(JI)
 !
-     END WHERE
+     END IF
+     ENDDO
 !
 !
 !*       4.3    If ZRVLCL = PRVMIX is oversaturated set humidity
 !               and temperature to saturation values.
 !               ---------------------------------------------
 !
-     CALL CONVECT_SATMIXRATIO( KLON, ZPRESMIX, ZTMIX, ZWORK1, ZLV, ZWORK2, ZCPH )
-     WHERE( GWORK1(:) .AND. ZRVLCL(:) > ZWORK1(:) )
-        ZWORK2(:) = ZWORK1(:) / ZTMIX(:) * ( XBETAW / ZTMIX(:) - XGAMW ) ! dr_sat/dT
-        ZWORK2(:) = ( ZWORK1(:) - ZRVLCL(:) ) /                              &
-                       ( 1. + ZLV(:) / ZCPH(:) * ZWORK2(:) )
-        ZTLCL(:)  = ZTMIX(:) - ZLV(:) / ZCPH(:) * ZWORK2(:)
-        ZRVLCL(:) = ZRVLCL(:) - ZWORK2(:)
-        ZPLCL(:)  = ZPRESMIX(:)
-        ZTHLCL(:) = ZTLCL(:) * ( XP00 / ZPLCL(:) ) ** ZRDOCP
-        ZTHVLCL(:)= ZTHLCL(:) * ( 1. + ZEPSA * ZRVLCL(:) )                   &
-                              / ( 1. + ZRVLCL(:) )
-     END WHERE
+     CALL CONVECT_SATMIXRATIO( CST, D, ZPRESMIX, ZTMIX, ZWORK1, ZLV, ZWORK2, ZCPH )
+     DO JI=D%NIB, D%NIE
+     IF( GWORK1(JI) .AND. ZRVLCL(JI) > ZWORK1(JI) ) THEN
+        ZWORK2(JI) = ZWORK1(JI) / ZTMIX(JI) * ( CST%XBETAW / ZTMIX(JI) - CST%XGAMW ) ! dr_sat/dT
+        ZWORK2(JI) = ( ZWORK1(JI) - ZRVLCL(JI) ) /                              &
+                       ( 1. + ZLV(JI) / ZCPH(JI) * ZWORK2(JI) )
+        ZTLCL(JI)  = ZTMIX(JI) - ZLV(JI) / ZCPH(JI) * ZWORK2(JI)
+        ZRVLCL(JI) = ZRVLCL(JI) - ZWORK2(JI)
+        ZPLCL(JI)  = ZPRESMIX(JI)
+        ZTHLCL(JI) = ZTLCL(JI) * ( CST%XP00 / ZPLCL(JI) ) ** ZRDOCP
+        ZTHVLCL(JI)= ZTHLCL(JI) * ( 1. + ZEPSA * ZRVLCL(JI) )                   &
+                              / ( 1. + ZRVLCL(JI) )
+     END IF
+     ENDDO
 !
 !
 !*        5.1   Determine  vertical loop index at the LCL and DPL
 !               --------------------------------------------------
 !
     DO JK = JKK, IKE - 1
-       DO JI = 1, IIE
+       DO JI = D%NIB, D%NIE
          IF ( ZPLCL(JI) <= PPRES(JI,JK) .AND. GWORK1(JI) ) ILCL(JI) = JK + 1
        END DO
     END DO
@@ -293,7 +303,7 @@ DO JKK = IKB + 1, IKE - 2
 !*        5.2   Estimate height and environm. theta_v at LCL
 !               --------------------------------------------------
 !
-    DO JI = 1, IIE
+    DO JI = D%NIB, D%NIE
         JK   = ILCL(JI)
         JKM  = JK - 1
         ZDP(JI)    = LOG( ZPLCL(JI) / PPRES(JI,JKM) ) /                     &
@@ -303,10 +313,12 @@ DO JKK = IKB + 1, IKE - 2
            ! The precise height is between the levels ILCL and ILCL-1.
         ZWORK2(JI) = PZ(JI,JKM) + ( PZ(JI,JK) - PZ(JI,JKM) ) * ZDP(JI)
     END DO
-    WHERE( GWORK1(:) )
-        ZTHVELCL(:) = ZWORK1(:)
-        ZZLCL(:)    = ZWORK2(:)
-    END WHERE
+    DO JI = D%NIB, D%NIE
+    IF( GWORK1(JI) ) THEN
+        ZTHVELCL(JI) = ZWORK1(JI)
+        ZZLCL(JI)    = ZWORK2(JI)
+    END IF
+    END DO
 !
 !
 !*       6.     Check to see if cloud is bouyant
@@ -316,7 +328,7 @@ DO JKK = IKB + 1, IKE - 2
 !               -------------------------------------------------------------
 !
 !            !  normalize w grid scale to a 25 km refer. grid
-!    DO JI = 1, IIE
+!    DO JI = 1, D%NIT
 !       JK  = ILCL(JI)
 !       JKM = JK - 1
 !       ZWORK1(JI) =  ( PW(JI,JKM)  + ( PW(JI,JK) - PW(JI,JKM) ) * ZDP(JI) )  &
@@ -331,7 +343,7 @@ DO JKK = IKB + 1, IKE - 2
 !*       6.2    Compute parcel vertical velocity at LCL
 !               ---------------------------------------
 !
-!    DO JI = 1, IIE
+!    DO JI = 1, D%NIT
 !       JKDL = IDPL(JI)
 !       ZWORK3(JI) = XG * ZWORK1(JI) * ( ZZLCL(JI) - PZ(JI,JKDL) )       &
 !                      / ( PTHV(JI,JKDL) + ZTHVELCL(JI) )
@@ -341,7 +353,7 @@ DO JKK = IKB + 1, IKE - 2
 !      GTRIG(:)  = ZTHVLCL(:) - ZTHVELCL(:) + ZWORK1(:) > 0. .AND.       &
 !                  ZWLCL(:) > 0.
 !    END WHERE
-     ZWLCL(:) = XAW * MAX(0.,PW(:,IKB)) + XBW
+     ZWLCL(D%NIB:D%NIE) = CVP_SHAL%XAW * MAX(0.,PW(D%NIB:D%NIE,IKB)) + CVP_SHAL%XBW
 !
 !
 !*       6.3    Look for parcel that produces sufficient cloud depth.
@@ -349,26 +361,26 @@ DO JKK = IKB + 1, IKE - 2
 !               is smaller  than a given value (based on vertical velocity eq.)
 !               --------------------------------------------------------------
 !
-     ZTHEUL(:) = ZTLCL(:) * ( ZTHLCL(:) / ZTLCL(:) )                       &
-                                             ** ( 1. - 0.28 * ZRVLCL(:) )  &
-                          * EXP( ( 3374.6525 / ZTLCL(:) - 2.5403 ) *       &
-                               ZRVLCL(:) * ( 1. + 0.81 * ZRVLCL(:) ) )
+     ZTHEUL(D%NIB:D%NIE) = ZTLCL(D%NIB:D%NIE) * ( ZTHLCL(D%NIB:D%NIE) / ZTLCL(D%NIB:D%NIE) )                       &
+                                             ** ( 1. - 0.28 * ZRVLCL(D%NIB:D%NIE) )  &
+                          * EXP( ( 3374.6525 / ZTLCL(D%NIB:D%NIE) - 2.5403 ) *       &
+                               ZRVLCL(D%NIB:D%NIE) * ( 1. + 0.81 * ZRVLCL(D%NIB:D%NIE) ) )
 !
-     ZCAPE(:) = 0.
-     ZCAP(:)  = 0.
-     ZTOP(:)  = 0.
-     ZTOPP(:)  = 0.
-     ZWORK3(:)= 0.
+     ZCAPE(D%NIB:D%NIE) = 0.
+     ZCAP(D%NIB:D%NIE)  = 0.
+     ZTOP(D%NIB:D%NIE)  = 0.
+     ZTOPP(D%NIB:D%NIE)  = 0.
+     ZWORK3(D%NIB:D%NIE)= 0.
      JKM = IKB
      DO JL = JKM, JT
         JK = JL + 1
-        DO JI = 1, IIE
+        DO JI = D%NIB, D%NIE
            ZWORK1(JI) = ( 2. * ZTHEUL(JI) /                                &
             ( PTHES(JI,JK) + PTHES(JI,JL) ) - 1. ) * ( PZ(JI,JK) - PZ(JI,JL) )
            IF ( JL < ILCL(JI) ) ZWORK1(JI) = 0.
-           ZCAPE(JI)  = ZCAPE(JI) + XG * MAX( 1., ZWORK1(JI) )
+           ZCAPE(JI)  = ZCAPE(JI) + CST%XG * MAX( 1., ZWORK1(JI) )
            ZCAP(JI)   = ZCAP(JI) + ZWORK1(JI)
-           ZWORK2(JI) = XNHGAM * XG * ZCAP(JI) + 1.05 * ZWLCL(JI) * ZWLCL(JI)
+           ZWORK2(JI) = CVP_SHAL%XNHGAM * CST%XG * ZCAP(JI) + 1.05 * ZWLCL(JI) * ZWLCL(JI)
                ! the factor 1.05 takes entrainment into account
            ZWORK2(JI) = SIGN( 1., ZWORK2(JI) )
            ZWORK3(JI) = ZWORK3(JI) + MIN(0., ZWORK2(JI) )
@@ -385,26 +397,28 @@ DO JKK = IKB + 1, IKE - 2
      END DO
 !
 !
-     ZWORK2(:) = ZTOP(:) - ZZLCL(:)
+     ZWORK2(D%NIB:D%NIE) = ZTOP(D%NIB:D%NIE) - ZZLCL(D%NIB:D%NIE)
    ! WHERE( ZWORK2(:)  .GE. XCDEPTH  .AND. ZWORK2(:) < XCDEPTH_D .AND. GTRIG2(:) &
-     WHERE( ZWORK2(:)  .GE. XCDEPTH  .AND. GTRIG2(:) &
-       .AND. ZCAPE(:) > 10. )
-        GTRIG2(:)   = .FALSE.
-        OTRIG(:)    = .TRUE.
-      ! OTRIG(:)    = GTRIG(:)     ! we  select the first departure level
-        PTHLCL(:)   = ZTHLCL(:)    ! that gives sufficient cloud depth
-        PRVLCL(:)   = ZRVLCL(:)
-        PTLCL(:)    = ZTLCL(:)
-        PWLCL(:)    = ZWLCL(:)
-        PZLCL(:)    = ZZLCL(:)
-        PTHVELCL(:) = ZTHVELCL(:)
-        KDPL(:)     = IDPL(:)
-        KPBL(:)     = IPBL(:)
-        KLCL(:)     = ILCL(:)
-     END WHERE
+     DO JI=D%NIB, D%NIE
+     IF( ZWORK2(JI) .GE. CVP_SHAL%XCDEPTH .AND. GTRIG2(JI) .AND. ZCAPE(JI) > 10. )THEN
+        GTRIG2(JI)   = .FALSE.
+        OTRIG(JI)    = .TRUE.
+      ! OTRIG(JI)    = GTRIG(JI)     ! we  select the first departure level
+        PTHLCL(JI)   = ZTHLCL(JI)    ! that gives sufficient cloud depth
+        PRVLCL(JI)   = ZRVLCL(JI)
+        PTLCL(JI)    = ZTLCL(JI)
+        PWLCL(JI)    = ZWLCL(JI)
+        PZLCL(JI)    = ZZLCL(JI)
+        PTHVELCL(JI) = ZTHVELCL(JI)
+        KDPL(JI)     = IDPL(JI)
+        KPBL(JI)     = IPBL(JI)
+        KLCL(JI)     = ILCL(JI)
+     END IF
+     ENDDO
 !
 END DO
 !
 !
 IF (LHOOK) CALL DR_HOOK('CONVECT_TRIGGER_SHAL',1,ZHOOK_HANDLE)
 END SUBROUTINE CONVECT_TRIGGER_SHAL
+
diff --git a/src/arome/conv/convect_trigger_shal.h b/src/arome/conv/convect_trigger_shal.h
new file mode 100644
index 0000000000000000000000000000000000000000..bac51118aa6924cb4d5b1a53598020c5b7995d0f
--- /dev/null
+++ b/src/arome/conv/convect_trigger_shal.h
@@ -0,0 +1,36 @@
+INTERFACE
+
+SUBROUTINE CONVECT_TRIGGER_SHAL(  CVP_SHAL, CVPEXT, CST, D,  &
+PPRES, PTH, PTHV, PTHES,             &
+PRV, PW, PZ, PTKECLS,                &
+PTHLCL, PTLCL, PRVLCL, PWLCL, PZLCL, &
+PTHVELCL, KLCL, KDPL, KPBL, OTRIG)
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE MODD_CST, ONLY : CST_T
+USE MODD_CONVPAR_SHAL, ONLY : CONVPAR_SHAL
+USE MODD_CONVPAREXT, ONLY : CONVPAREXT
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
+TYPE(CONVPAR_SHAL),        INTENT(IN) :: CVP_SHAL
+TYPE(CONVPAREXT),          INTENT(IN) :: CVPEXT
+TYPE(CST_T),               INTENT(IN) :: CST
+TYPE(DIMPHYEX_T),          INTENT(IN) :: D
+REAL, DIMENSION(D%NIT),     INTENT(IN) :: PTKECLS
+REAL, DIMENSION(D%NIT,D%NKT),INTENT(IN) :: PTH, PTHV
+REAL, DIMENSION(D%NIT,D%NKT),INTENT(IN) :: PTHES
+REAL, DIMENSION(D%NIT,D%NKT),INTENT(IN) :: PRV
+REAL, DIMENSION(D%NIT,D%NKT),INTENT(IN) :: PPRES
+REAL, DIMENSION(D%NIT,D%NKT),INTENT(IN) :: PZ
+REAL, DIMENSION(D%NIT,D%NKT),INTENT(IN) :: PW
+REAL, DIMENSION(D%NIT),     INTENT(OUT):: PTHLCL
+REAL, DIMENSION(D%NIT),     INTENT(OUT):: PTLCL
+REAL, DIMENSION(D%NIT),     INTENT(OUT):: PRVLCL
+REAL, DIMENSION(D%NIT),     INTENT(OUT):: PWLCL
+REAL, DIMENSION(D%NIT),     INTENT(OUT):: PZLCL
+REAL, DIMENSION(D%NIT),     INTENT(OUT):: PTHVELCL
+LOGICAL, DIMENSION(D%NIT),  INTENT(OUT):: OTRIG
+INTEGER, DIMENSION(D%NIT),  INTENT(INOUT):: KLCL
+INTEGER, DIMENSION(D%NIT),  INTENT(INOUT):: KDPL
+INTEGER, DIMENSION(D%NIT),  INTENT(INOUT):: KPBL
+END SUBROUTINE CONVECT_TRIGGER_SHAL
+
+END INTERFACE
diff --git a/src/arome/conv/convect_tstep_pref.F90 b/src/arome/conv/convect_tstep_pref.F90
index 59e96f7d5d81828519b73722001188dee89a3f6e..e9d32404e2772afe4ead23b7d1a36e69583263d7 100644
--- a/src/arome/conv/convect_tstep_pref.F90
+++ b/src/arome/conv/convect_tstep_pref.F90
@@ -2,8 +2,7 @@
       SUBROUTINE CONVECT_TSTEP_PREF( KLON, KLEV,                           &
                                      PU, PV, PPRES, PZ, PDXDY, KLCL, KCTL, &
                                      PTIMEA, PPREF )
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ######################################################################
 !
 !!**** Routine to compute convective advection time step and precipitation
@@ -90,7 +89,7 @@ REAL, DIMENSION(KLON)     :: ZWORK1, ZWORK2, ZWORK3  ! work arrays
 !        0.3   Set loop bounds
 !              ---------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('CONVECT_TSTEP_PREF',0,ZHOOK_HANDLE)
 IIE = KLON
 IKB = 1 + JCVEXB
diff --git a/src/arome/conv/convect_updraft.F90 b/src/arome/conv/convect_updraft.F90
index bd06ce6d62896b869bca01717d9fbc8b9171f4c0..ce59208dec355db30f494add3d73ac4ea567a4ce 100644
--- a/src/arome/conv/convect_updraft.F90
+++ b/src/arome/conv/convect_updraft.F90
@@ -6,8 +6,7 @@
                               PUMF, PUER, PUDR, PUTHL, PUTHV, PURW,            &
                               PURC, PURI, PURR, PURS, PUPR,                    &
                               PUTPR, PCAPE, KCTL, KETL, PUTT )
-  USE PARKIND1, ONLY : JPRB
-  USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+  USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ##########################################################################
 !
 !!**** Compute updraft properties from DPL to CTL.
@@ -167,7 +166,7 @@ LOGICAL, DIMENSION(KLON,KLEV) :: GWORK6     ! work array
 !        0.3   Set loop bounds
 !              ---------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('CONVECT_UPDRAFT',0,ZHOOK_HANDLE)
 IKB = 1 + JCVEXB
 IKE = KLEV - JCVEXT
diff --git a/src/arome/conv/convect_updraft_shal.F90 b/src/arome/conv/convect_updraft_shal.F90
index 6aa68e00d89dcf117f22e52eeeb1c30fbb0c9cc3..e60e2ec98f4d254c5e7996c03acce07f62bd7ef3 100644
--- a/src/arome/conv/convect_updraft_shal.F90
+++ b/src/arome/conv/convect_updraft_shal.F90
@@ -1,12 +1,11 @@
 !     ######spl
-    SUBROUTINE CONVECT_UPDRAFT_SHAL( KLON, KLEV,                                     &
+    SUBROUTINE CONVECT_UPDRAFT_SHAL( CVP_SHAL, CVPEXT, CST, D, CONVPAR,              &
                                      KICE, PPRES, PDPRES, PZ, PTHL, PTHV, PTHES, PRW,&
                                      PTHLCL, PTLCL, PRVLCL, PWLCL, PZLCL, PTHVELCL,  &
                                      PMFLCL, OTRIG, KLCL, KDPL, KPBL,                &
                                      PUMF, PUER, PUDR, PUTHL, PUTHV, PURW,           &
-                                     PURC, PURI, PCAPE, KCTL, KETL )
-    USE PARKIND1, ONLY : JPRB
-    USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+                                     PURC, PURI, PCAPE, KCTL, KETL,GTRIG1 )
+    USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !    ###############################################################################
 !
 !!**** Compute updraft properties from DPL to CTL.
@@ -77,80 +76,85 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-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
+USE MODD_CST, ONLY : CST_T
+USE MODD_CONVPAR, ONLY : CONVPAR_T
+USE MODD_CONVPAR_SHAL, ONLY : CONVPAR_SHAL
+USE MODD_CONVPAREXT, ONLY : CONVPAREXT
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
 !
 !
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
-INTEGER, INTENT(IN)                    :: KLON  ! horizontal dimension
-INTEGER, INTENT(IN)                    :: KLEV  ! vertical dimension
-INTEGER, INTENT(IN)                    :: KICE  ! flag for ice ( 1 = yes,
+TYPE(CONVPAR_SHAL)                         ,INTENT(IN)     :: CVP_SHAL
+TYPE(CONVPAREXT)                           ,INTENT(IN)     :: CVPEXT
+TYPE(CST_T)                                ,INTENT(IN)     :: CST
+TYPE(DIMPHYEX_T)                           ,INTENT(IN)     :: D
+TYPE(CONVPAR_T)                            ,INTENT(IN)     :: CONVPAR
+INTEGER                                    ,INTENT(IN)     :: KICE  ! flag for ice ( 1 = yes,
                                                 !                0 = no ice )
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PTHL  ! grid scale enthalpy (J/kg)
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PTHV  ! grid scale theta_v
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PTHES ! grid scale saturated theta_e
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PRW   ! grid scale total water
-                                                ! mixing ratio
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PPRES ! pressure (P)
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PDPRES! pressure difference between
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PPRES ! pressure (P)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PDPRES! pressure difference between
                                                 ! bottom and top of layer (Pa)
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PZ    ! height of model layer (m)
-REAL, DIMENSION(KLON),     INTENT(IN) :: PTHLCL ! theta at LCL
-REAL, DIMENSION(KLON),     INTENT(IN) :: PTLCL  ! temp. at LCL
-REAL, DIMENSION(KLON),     INTENT(IN) :: PRVLCL ! vapor mixing ratio at  LCL
-REAL, DIMENSION(KLON),     INTENT(IN) :: PWLCL  ! parcel velocity at LCL (m/s)
-REAL, DIMENSION(KLON),     INTENT(IN) :: PMFLCL ! cloud  base unit mass flux
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PZ    ! height of model layer (m)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PTHL  ! grid scale enthalpy (J/kg)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PTHV  ! grid scale theta_v
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PTHES ! grid scale saturated theta_e
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(IN)     :: PRW   ! grid scale total water
+                                                ! mixing ratio
+REAL               ,DIMENSION(D%NIT)       ,INTENT(IN)     :: PTHLCL ! theta at LCL
+REAL               ,DIMENSION(D%NIT)       ,INTENT(IN)     :: PTLCL  ! temp. at LCL
+REAL               ,DIMENSION(D%NIT)       ,INTENT(IN)     :: PRVLCL ! vapor mixing ratio at  LCL
+REAL               ,DIMENSION(D%NIT)       ,INTENT(IN)     :: PWLCL  ! parcel velocity at LCL (m/s)
+REAL               ,DIMENSION(D%NIT)       ,INTENT(IN)     :: PZLCL  ! height at LCL (m)
+REAL               ,DIMENSION(D%NIT)       ,INTENT(IN)     :: PTHVELCL  ! environm. theta_v at LCL (K)
+REAL                                       ,INTENT(IN)     :: PMFLCL ! cloud  base unit mass flux
                                                 ! (kg/s)
-REAL, DIMENSION(KLON),     INTENT(IN) :: PZLCL  ! height at LCL (m)
-REAL, DIMENSION(KLON),     INTENT(IN) :: PTHVELCL  ! environm. theta_v at LCL (K)
-LOGICAL, DIMENSION(KLON),  INTENT(INOUT):: OTRIG! logical mask for convection
-INTEGER, DIMENSION(KLON),  INTENT(IN) :: KLCL   ! contains vert. index of LCL
-INTEGER, DIMENSION(KLON),  INTENT(IN) :: KDPL   ! contains vert. index of DPL
-INTEGER, DIMENSION(KLON),  INTENT(IN) :: KPBL   !  " vert. index of source layertop
-!
-!
-INTEGER, DIMENSION(KLON),  INTENT(OUT):: KCTL   ! contains vert. index of CTL
-INTEGER, DIMENSION(KLON),  INTENT(OUT):: KETL   ! contains vert. index of        &
+LOGICAL            ,DIMENSION(D%NIT)       ,INTENT(INOUT)  :: OTRIG! logical mask for convection
+INTEGER            ,DIMENSION(D%NIT)       ,INTENT(IN)     :: KLCL   ! contains vert. index of LCL
+INTEGER            ,DIMENSION(D%NIT)       ,INTENT(IN)     :: KDPL   ! contains vert. index of DPL
+INTEGER            ,DIMENSION(D%NIT)       ,INTENT(IN)     :: KPBL   !  " vert. index of source layertop
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(OUT)    :: PUMF  ! updraft mass flux (kg/s)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(OUT)    :: PUER  ! updraft entrainment (kg/s)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(OUT)    :: PUDR  ! updraft detrainment (kg/s)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(OUT)    :: PUTHL ! updraft enthalpy (J/kg)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(OUT)    :: PUTHV ! updraft theta_v (K)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(OUT)    :: PURW  ! updraft total water (kg/kg)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(OUT)    :: PURC  ! updraft cloud water (kg/kg)
+REAL               ,DIMENSION(D%NIT,D%NKT) ,INTENT(OUT)    :: PURI  ! updraft cloud ice   (kg/kg)
+REAL               ,DIMENSION(D%NIT)       ,INTENT(OUT)    :: PCAPE  ! available potent. energy
+!
+!
+INTEGER            ,DIMENSION(D%NIT)       ,INTENT(OUT)    :: KCTL   ! contains vert. index of CTL
+INTEGER            ,DIMENSION(D%NIT)       ,INTENT(OUT)    :: KETL   ! contains vert. index of        &
                                                 !equilibrium (zero buoyancy) level
-REAL, DIMENSION(KLON,KLEV), INTENT(OUT):: PUMF  ! updraft mass flux (kg/s)
-REAL, DIMENSION(KLON,KLEV), INTENT(OUT):: PUER  ! updraft entrainment (kg/s)
-REAL, DIMENSION(KLON,KLEV), INTENT(OUT):: PUDR  ! updraft detrainment (kg/s)
-REAL, DIMENSION(KLON,KLEV), INTENT(OUT):: PUTHL ! updraft enthalpy (J/kg)
-REAL, DIMENSION(KLON,KLEV), INTENT(OUT):: PUTHV ! updraft theta_v (K)
-REAL, DIMENSION(KLON,KLEV), INTENT(OUT):: PURW  ! updraft total water (kg/kg)
-REAL, DIMENSION(KLON,KLEV), INTENT(OUT):: PURC  ! updraft cloud water (kg/kg)
-REAL, DIMENSION(KLON,KLEV), INTENT(OUT):: PURI  ! updraft cloud ice   (kg/kg)
-REAL, DIMENSION(KLON),     INTENT(OUT):: PCAPE  ! available potent. energy
+LOGICAL            ,DIMENSION(D%NIT)       ,INTENT(IN)     :: GTRIG1! logical mask for convection
 !
 !*       0.2   Declarations of local variables :
 !
-INTEGER :: IIE, IKB, IKE  ! horizontal and vertical loop bounds
+INTEGER :: IKB, IKE  ! horizontal and vertical loop bounds
 INTEGER :: JI             ! horizontal loop index
 INTEGER :: JK, JKP, JKM, JK1, JK2   ! vertical loop index
 REAL    :: ZEPSA          ! R_v / R_d, C_pv / C_pd
 REAL    :: ZRDOCP         ! C_pd / R_d, R_d / C_pd
 !
-REAL, DIMENSION(KLON)    :: ZUT             ! updraft temperature (K)
-REAL, DIMENSION(KLON)    :: ZUW1, ZUW2      ! square of updraft vert.
+REAL, DIMENSION(D%NIT)    :: ZUT             ! updraft temperature (K)
+REAL, DIMENSION(D%NIT)    :: ZUW1, ZUW2      ! square of updraft vert.
                                             ! velocity at levels k and k+1
-REAL, DIMENSION(KLON)    :: ZE1,ZE2,ZD1,ZD2 ! fractional entrainm./detrain
+REAL, DIMENSION(D%NIT)    :: ZE1,ZE2,ZD1,ZD2 ! fractional entrainm./detrain
                                             ! rates at levels k and k+1
-REAL, DIMENSION(KLON)    :: ZMIXF           ! critical mixed fraction
-REAL, DIMENSION(KLON)    :: ZCPH            ! specific heat C_ph
-REAL, DIMENSION(KLON)    :: ZLV, ZLS        ! latent heat of vaporis., sublim.
-REAL, DIMENSION(KLON)    :: ZURV            ! updraft water vapor at level k+1
-REAL, DIMENSION(KLON)    :: ZPI             ! Pi=(P0/P)**(Rd/Cpd)
-REAL, DIMENSION(KLON)    :: ZTHEUL          ! theta_e for undilute ascent
-REAL, DIMENSION(KLON)    :: ZWORK1, ZWORK2, ZWORK3, ZWORK4, ZWORK5,   &
+REAL, DIMENSION(D%NIT)    :: ZMIXF           ! critical mixed fraction
+REAL, DIMENSION(D%NIT)    :: ZCPH            ! specific heat C_ph
+REAL, DIMENSION(D%NIT)    :: ZLV, ZLS        ! latent heat of vaporis., sublim.
+REAL, DIMENSION(D%NIT)    :: ZURV            ! updraft water vapor at level k+1
+REAL, DIMENSION(D%NIT)    :: ZPI             ! Pi=(P0/P)**(Rd/Cpd)
+REAL, DIMENSION(D%NIT)    :: ZTHEUL          ! theta_e for undilute ascent
+REAL, DIMENSION(D%NIT)    :: ZWORK1, ZWORK2, ZWORK3, ZWORK4, ZWORK5,   &
                             ZWORK6          ! work arrays
-INTEGER, DIMENSION(KLON) :: IWORK           ! wok array
-LOGICAL, DIMENSION(KLON) :: GWORK1, GWORK2, GWORK4, GWORK5
+INTEGER, DIMENSION(D%NIT) :: IWORK           ! wok array
+LOGICAL, DIMENSION(D%NIT) :: GWORK1, GWORK2, GWORK4
                                             ! work arrays
-LOGICAL, DIMENSION(KLON,KLEV) :: GWORK6     ! work array
 !
 !
 !-------------------------------------------------------------------------------
@@ -158,18 +162,21 @@ LOGICAL, DIMENSION(KLON,KLEV) :: GWORK6     ! work array
 !        0.3   Set loop bounds
 !              ---------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
+
+#include "convect_condens.h"
+#include "convect_mixing_funct.h"
+
 IF (LHOOK) CALL DR_HOOK('CONVECT_UPDRAFT_SHAL',0,ZHOOK_HANDLE)
-IKB = 1 + JCVEXB
-IKE = KLEV - JCVEXT
-IIE = KLON
+IKB = 1 + CVPEXT%JCVEXB
+IKE = D%NKT - CVPEXT%JCVEXT
 !
 !
 !*       1.     Initialize updraft properties and local variables
 !               -------------------------------------------------
 !
-ZEPSA      = XRV / XRD
-ZRDOCP     = XRD / XCPD
+ZEPSA      = CST%XRV / CST%XRD
+ZRDOCP     = CST%XRD / CST%XCPD
 !
 PUMF(:,:)  = 0.
 PUER(:,:)  = 0.
@@ -201,27 +208,25 @@ GWORK4(:)  = .FALSE.
 !               Define accurate enthalpy for updraft
 !               -----------------------------------------------------
 !
-ZTHEUL(:) = PTLCL(:) * ( PTHLCL(:) / PTLCL(:) ) ** ( 1. - 0.28 * PRVLCL(:) )  &
-            * EXP( ( 3374.6525 / PTLCL(:) - 2.5403 ) *                        &
-                                   PRVLCL(:) * ( 1. + 0.81 * PRVLCL(:) ) )
+ZTHEUL(D%NIB:D%NIE) = PTLCL(D%NIB:D%NIE) * ( PTHLCL(D%NIB:D%NIE) / PTLCL(D%NIB:D%NIE) ) ** ( 1. - 0.28 * PRVLCL(D%NIB:D%NIE) )  &
+            * EXP( ( 3374.6525 / PTLCL(D%NIB:D%NIE) - 2.5403 ) *                        &
+                                   PRVLCL(D%NIB:D%NIE) * ( 1. + 0.81 * PRVLCL(D%NIB:D%NIE) ) )
 !
 !
-ZWORK1(:) = ( XCPD + PRVLCL(:) * XCPV ) * PTLCL(:)                            &
-            + ( 1. + PRVLCL(:) ) * XG * PZLCL(:)
+ZWORK1(D%NIB:D%NIE) = ( CST%XCPD + PRVLCL(D%NIB:D%NIE) * CST%XCPV ) * PTLCL(D%NIB:D%NIE)                            &
+            + ( 1. + PRVLCL(D%NIB:D%NIE) ) * CST%XG * PZLCL(D%NIB:D%NIE)
 !
 !
 !*       2.     Set updraft properties between DPL and LCL
 !               ------------------------------------------
 !
-!JKP = MAXVAL( KLCL(:) )
-!JKM = MINVAL( KDPL(:) )
 JKP=IKE
 JKM=IKB
 
 DO JK = JKM, JKP
-   DO JI = 1, IIE
+   DO JI = D%NIB, D%NIE
    IF ( JK >= KDPL(JI) .AND. JK < KLCL(JI) ) THEN
-        PUMF(JI,JK)  = PMFLCL(JI)
+        PUMF(JI,JK)  = PMFLCL
         PUTHL(JI,JK) = ZWORK1(JI)
         PUTHV(JI,JK) = PTHLCL(JI) * ( 1. + ZEPSA * PRVLCL(JI) ) /             &
                                   ( 1. + PRVLCL(JI) )
@@ -238,66 +243,71 @@ DO JK = IKB + 1, IKE - 1
   ZWORK6(:) = 1.
   JKP = JK + 1
 !
-  GWORK4(:) = JK >= KLCL(:) - 1
-  GWORK1(:) = GWORK4(:) .AND. GWORK2(:) ! this mask is used to confine
+  GWORK4(D%NIB:D%NIE) = JK >= KLCL(D%NIB:D%NIE) - 1
+  GWORK1(D%NIB:D%NIE) = GWORK4(D%NIB:D%NIE) .AND. GWORK2(D%NIB:D%NIE) ! this mask is used to confine
                            ! updraft computations between the LCL and the CTL
 !
-  WHERE( JK == KLCL(:) - 1 ) ZWORK6(:) = 0. ! factor that is used in buoyancy
-                                        ! computation at first level above LCL
+  DO JI=D%NIB, D%NIE
+    IF( JK == KLCL(JI) - 1 ) ZWORK6(JI) = 0. ! factor that is used in buoyancy
+  ENDDO                                      ! computation at first level above LCL
 !
 !
 !*       4.     Estimate condensate, L_v L_i, Cph and theta_v at level k+1
 !               ----------------------------------------------------------
 !
-    ZWORK1(:) = PURC(:,JK)
-    ZWORK2(:) = PURI(:,JK)
-    CALL CONVECT_CONDENS( KLON, KICE, PPRES(:,JKP), PUTHL(:,JK), PURW(:,JK),&
-                          ZWORK1, ZWORK2, PZ(:,JKP), GWORK1, ZUT, ZURV,     &
-                          PURC(:,JKP), PURI(:,JKP), ZLV, ZLS, ZCPH )
+    ZWORK1(D%NIB:D%NIE) = PURC(D%NIB:D%NIE,JK)
+    ZWORK2(D%NIB:D%NIE) = PURI(D%NIB:D%NIE,JK)
+    CALL CONVECT_CONDENS(CST, D, CONVPAR, KICE, PPRES(D%NIB:D%NIE,JKP),&
+                         PUTHL(D%NIB:D%NIE,JK), PURW(D%NIB:D%NIE,JK),  &
+                         ZWORK1, ZWORK2, PZ(D%NIB:D%NIE,JKP), ZUT,ZURV,&
+                         PURC(D%NIB:D%NIE,JKP), PURI(D%NIB:D%NIE,JKP), &
+                         ZLV, ZLS, ZCPH )
 !
 !
-  ZPI(:) = ( XP00 / PPRES(:,JKP) ) ** ZRDOCP
-  WHERE ( GWORK1(:) )
+  ZPI(D%NIB:D%NIE) = ( CST%XP00 / PPRES(D%NIB:D%NIE,JKP) ) ** ZRDOCP
+  DO JI=D%NIB, D%NIE
+    IF ( GWORK1(JI) ) THEN
 !
-    PUTHV(:,JKP) = ZPI(:) * ZUT(:) * ( 1. + ZEPSA * ZURV(:) )           &
-                         / ( 1. + PURW(:,JK) )
+      PUTHV(JI,JKP) = ZPI(JI) * ZUT(JI) * ( 1. + ZEPSA * ZURV(JI) )           &
+                           / ( 1. + PURW(JI,JK) )
 !
 !
-!*       5.     Compute square of vertical velocity using entrainment
-!               at level k
-!               -----------------------------------------------------
+!*         5.     Compute square of vertical velocity using entrainment
+!                 at level k
+!                 -----------------------------------------------------
 !
-    ZWORK3(:) = PZ(:,JKP) - PZ(:,JK) * ZWORK6(:) -         &
-                     ( 1. - ZWORK6(:) ) * PZLCL(:)          ! level thickness
-    ZWORK4(:) = PTHV(:,JK) * ZWORK6(:) +                   &
-                 ( 1. - ZWORK6(:) ) * PTHVELCL(:)
-    ZWORK5(:) = 2. * ZUW1(:) * PUER(:,JK) / MAX( .1, PUMF(:,JK) )
-    ZUW2(:)   = ZUW1(:) + ZWORK3(:) * XNHGAM * XG *        &
-                  ( ( PUTHV(:,JK) + PUTHV(:,JKP) ) /       &
-                  ( ZWORK4(:) + PTHV(:,JKP) ) - 1. )       & ! buoyancy term
-                - ZWORK5(:)                                  ! entrainment term
+      ZWORK3(JI) = PZ(JI,JKP) - PZ(JI,JK) * ZWORK6(JI) -         &
+                       ( 1. - ZWORK6(JI) ) * PZLCL(JI)          ! level thickness
+      ZWORK4(JI) = PTHV(JI,JK) * ZWORK6(JI) +                   &
+                   ( 1. - ZWORK6(JI) ) * PTHVELCL(JI)
+      ZWORK5(JI) = 2. * ZUW1(JI) * PUER(JI,JK) / MAX( .1, PUMF(JI,JK) )
+      ZUW2(JI)   = ZUW1(JI) + ZWORK3(JI) * CVP_SHAL%XNHGAM * CST%XG *        &
+                    ( ( PUTHV(JI,JK) + PUTHV(JI,JKP) ) /       &
+                    ( ZWORK4(JI) + PTHV(JI,JKP) ) - 1. )       & ! buoyancy term
+                  - ZWORK5(JI)                                  ! entrainment term
 !
 !
-!*       6.     Update total precipitation: dr_r=(r_c+r_i)*exp(-rate*dz)
-!               --------------------------------------------------------
+!*         6.     Update total precipitationJI dr_r=(r_c+r_i)*exp(-rate*dz)
+!                 --------------------------------------------------------
 !
-!                    compute level mean vertical velocity
-    ZWORK2(:)   = 0.5 *                                                    &
-                       ( SQRT( MAX( 1.E-2, ZUW2(:) ) ) +                   &
-                         SQRT( MAX( 1.E-2, ZUW1(:) ) ) )
+!                      compute level mean vertical velocity
+      ZWORK2(JI)   = 0.5 *                                                    &
+                         ( SQRT( MAX( 1.E-2, ZUW2(JI) ) ) +                   &
+                           SQRT( MAX( 1.E-2, ZUW1(JI) ) ) )
 !
 !
-!*       7.     Update r_c, r_i, enthalpy, r_w  for precipitation
-!               -------------------------------------------------------
+!*         7.     Update r_c, r_i, enthalpy, r_w  for precipitation
+!                 -------------------------------------------------------
 !
-    PURW(:,JKP)  = PURW(:,JK)
-    PURC(:,JKP)  = PURC(:,JKP)
-    PURI(:,JKP)  = PURI(:,JKP)
-    PUTHL(:,JKP) = PUTHL(:,JK)
+      PURW(JI,JKP)  = PURW(JI,JK)
+      PURC(JI,JKP)  = PURC(JI,JKP)
+      PURI(JI,JKP)  = PURI(JI,JKP)
+      PUTHL(JI,JKP) = PUTHL(JI,JK)
 !
-    ZUW1(:)      = ZUW2(:)
+      ZUW1(JI)      = ZUW2(JI)
 !
-  END WHERE
+    END IF
+  ENDDO
 !
 !
 !*       8.     Compute entrainment and detrainment using conservative
@@ -310,25 +320,26 @@ DO JK = IKB + 1, IKE - 1
 !               evaluating the derivative using ZMIXF=0.1.
 !               -----------------------------------------------------
 !
-    ZMIXF(:)  = 0.1   ! starting value for critical mixed fraction
-    ZWORK1(:) = ZMIXF(:) * PTHL(:,JKP)                                     &
-                     + ( 1. - ZMIXF(:) ) * PUTHL(:,JKP) ! mixed enthalpy
-    ZWORK2(:) = ZMIXF(:) * PRW(:,JKP)                                      &
-                     + ( 1. - ZMIXF(:) ) * PURW(:,JKP)  ! mixed r_w
+    ZMIXF(D%NIB:D%NIE)  = 0.1   ! starting value for critical mixed fraction
+    ZWORK1(D%NIB:D%NIE) = ZMIXF(D%NIB:D%NIE) * PTHL(D%NIB:D%NIE,JKP)                                     &
+                     + ( 1. - ZMIXF(D%NIB:D%NIE) ) * PUTHL(D%NIB:D%NIE,JKP) ! mixed enthalpy
+    ZWORK2(D%NIB:D%NIE) = ZMIXF(D%NIB:D%NIE) * PRW(D%NIB:D%NIE,JKP)                                      &
+                     + ( 1. - ZMIXF(D%NIB:D%NIE) ) * PURW(D%NIB:D%NIE,JKP)  ! mixed r_w
 !
-    CALL CONVECT_CONDENS( KLON, KICE, PPRES(:,JKP), ZWORK1, ZWORK2,        &
-                          PURC(:,JKP), PURI(:,JKP), PZ(:,JKP), GWORK1, ZUT,&
-                          ZWORK3, ZWORK4, ZWORK5, ZLV, ZLS, ZCPH )
+    CALL CONVECT_CONDENS(CST, D, CONVPAR, KICE, PPRES(D%NIB:D%NIE,JKP),&
+                         ZWORK1, ZWORK2, PURC(D%NIB:D%NIE,JKP),        &
+                         PURI(D%NIB:D%NIE,JKP), PZ(D%NIB:D%NIE,JKP),   &
+                         ZUT, ZWORK3, ZWORK4, ZWORK5, ZLV, ZLS, ZCPH)
 !        put in enthalpy and r_w and get T r_c, r_i (ZUT, ZWORK4-5)
 !
      ! compute theta_v of mixture
-    ZWORK3(:) = ZUT(:) * ZPI(:) * ( 1. + ZEPSA * (                         &
-                ZWORK2(:) - ZWORK4(:) - ZWORK5(:) ) ) / ( 1. + ZWORK2(:) )
+    ZWORK3(D%NIB:D%NIE) = ZUT(D%NIB:D%NIE) * ZPI(D%NIB:D%NIE) * ( 1. + ZEPSA * (                         &
+                ZWORK2(D%NIB:D%NIE) - ZWORK4(D%NIB:D%NIE) - ZWORK5(D%NIB:D%NIE) ) ) / ( 1. + ZWORK2(D%NIB:D%NIE) )
      ! compute final value of critical mixed fraction using theta_v
      ! of mixture, grid-scale and updraft
-    ZMIXF(:) = MAX( 0., PUTHV(:,JKP) - PTHV(:,JKP) ) * ZMIXF(:) /          &
-                              ( PUTHV(:,JKP) - ZWORK3(:) + 1.E-10 )
-    ZMIXF(:) = MAX( 0., MIN( 1., ZMIXF(:) ) )
+    ZMIXF(D%NIB:D%NIE) = MAX( 0., PUTHV(D%NIB:D%NIE,JKP) - PTHV(D%NIB:D%NIE,JKP) ) * ZMIXF(D%NIB:D%NIE) /          &
+                              ( PUTHV(D%NIB:D%NIE,JKP) - ZWORK3(D%NIB:D%NIE) + 1.E-10 )
+    ZMIXF(D%NIB:D%NIE) = MAX( 0., MIN( 1., ZMIXF(D%NIB:D%NIE) ) )
 !
 !
 !*       8.2     Compute final midlevel values for entr. and detrainment
@@ -336,33 +347,38 @@ DO JK = IKB + 1, IKE - 1
 !                -------------------------------------------------------
 !
 !
-    CALL CONVECT_MIXING_FUNCT ( KLON, ZMIXF, 1, ZE2, ZD2 )
-!       Note: routine MIXING_FUNCT returns fractional entrainm/detrainm. rates
+    CALL CONVECT_MIXING_FUNCT ( D, ZMIXF, 1, ZE2, ZD2 )
+!       NoteD%NIB:D%NIE routine MIXING_FUNCT returns fractional entrainm/detrainm. rates
 !
   ZE2=MIN(ZD2,MAX(.3,ZE2))
 !
-! ZWORK1(:) = XENTR * PMFLCL(:) * PDPRES(:,JKP) / XCRAD ! rate of env. inflow
+! ZWORK1(D%NIB:D%NIE) = XENTR * PMFLCL * PDPRES(D%NIB:D%NIE,JKP) / XCRAD ! rate of env. inflow
 !*MOD
-  zwork1(:) = xentr * xg / xcrad * pumf(:,jk) * ( pz(:,jkp) - pz(:,jk) )
-! ZWORK1(:) = XENTR * pumf(:,jk) * PDPRES(:,JKP) / XCRAD ! rate of env. inflow
+  zwork1(D%NIB:D%NIE) = CVP_SHAL%xentr * CST%xg / CVP_SHAL%xcrad * pumf(D%NIB:D%NIE,jk) * ( pz(D%NIB:D%NIE,jkp) - pz(D%NIB:D%NIE,jk) )
+! ZWORK1(D%NIB:D%NIE) = XENTR * pumf(D%NIB:D%NIE,jk) * PDPRES(D%NIB:D%NIE,JKP) / XCRAD ! rate of env. inflow
 !*MOD
   ZWORK2(:) = 0.
-  WHERE ( GWORK1(:) ) ZWORK2(:) = 1.
-  WHERE ( PUTHV(:,JKP) > PTHV(:,JKP) )
-    PUER(:,JKP) = 0.5 * ZWORK1(:) * ( ZE1(:) + ZE2(:) ) * ZWORK2(:)
-    PUDR(:,JKP) = 0.5 * ZWORK1(:) * ( ZD1(:) + ZD2(:) ) * ZWORK2(:)
-  ELSEWHERE
-    PUER(:,JKP) = 0.
-    PUDR(:,JKP) = ZWORK1(:) * ZWORK2(:)
-  END WHERE
+  DO JI=D%NIB, D%NIE
+    IF( GWORK1(JI) ) ZWORK2(JI) = 1.
+  ENDDO
+  DO JI=D%NIB, D%NIE
+  IF ( PUTHV(JI,JKP) > PTHV(JI,JKP) ) THEN
+    PUER(JI,JKP) = 0.5 * ZWORK1(JI) * ( ZE1(JI) + ZE2(JI) ) * ZWORK2(JI)
+    PUDR(JI,JKP) = 0.5 * ZWORK1(JI) * ( ZD1(JI) + ZD2(JI) ) * ZWORK2(JI)
+  ELSE
+    PUER(JI,JKP) = 0.
+    PUDR(JI,JKP) = ZWORK1(JI) * ZWORK2(JI)
+  END IF
+  ENDDO
 !
 !*       8.3     Determine equilibrium temperature level
 !                --------------------------------------
 !
-   WHERE ( PUTHV(:,JKP) > PTHV(:,JKP) .AND. JK > KLCL(:) + 1 &
-           .AND. GWORK1(:) )
-         KETL(:) = JKP            ! equilibrium temperature level
-   END WHERE
+  DO JI=D%NIB, D%NIE
+    IF ( PUTHV(JI,JKP) > PTHV(JI,JKP) .AND. JK > KLCL(JI) + 1 .AND. GWORK1(JI) )THEN
+         KETL(JI) = JKP            ! equilibrium temperature level
+    END IF
+  ENDDO
 !
 !*       8.4     If the calculated detrained mass flux is greater than
 !                the total updraft mass flux, or vertical velocity is
@@ -370,10 +386,15 @@ DO JK = IKB + 1, IKE - 1
 !                exit updraft calculations - CTL is attained
 !                -------------------------------------------------------
 !
-  WHERE( GWORK1(:) )                                                   &
-        GWORK2(:) = PUMF(:,JK) - PUDR(:,JKP) > 10. .AND. ZUW2(:) > 0.
-  WHERE ( GWORK2(:) ) KCTL(:) = JKP   ! cloud top level
-  GWORK1(:) = GWORK2(:) .AND. GWORK4(:)
+  DO JI=D%NIB, D%NIE
+    IF( GWORK1(JI) ) THEN
+      GWORK2(JI) = PUMF(JI,JK) - PUDR(JI,JKP) > 10. .AND. ZUW2(JI) > 0.
+    ENDIF
+  ENDDO
+  DO JI=D%NIB, D%NIE
+    IF ( GWORK2(JI) ) KCTL(JI) = JKP   ! cloud top level
+  ENDDO
+  GWORK1(D%NIB:D%NIE) = GWORK2(D%NIB:D%NIE) .AND. GWORK4(D%NIB:D%NIE)
 !
   !IF ( COUNT( GWORK2(:) ) == 0 ) EXIT        
 !
@@ -383,37 +404,39 @@ DO JK = IKB + 1, IKE - 1
 !             a significantly larger value for CAPE than the actual one.
 !             ----------------------------------------------------------
 !
-  WHERE ( GWORK1(:) )
+  DO JI=D%NIB, D%NIE
+    IF ( GWORK1(JI) )THEN
 !
-    ZWORK3(:)   = PZ(:,JKP) - PZ(:,JK) * ZWORK6(:) -                      &
-                  ( 1. - ZWORK6(:) ) *  PZLCL(:)              ! level thickness
-    ZWORK2(:)   = PTHES(:,JK) + ( 1. - ZWORK6(:) ) *                      &
-     ( PTHES(:,JKP) - PTHES(:,JK) ) / ( PZ(:,JKP) - PZ(:,JK) ) *          &
-     ( PZLCL(:) - PZ(:,JK) ) ! linear interpolation for theta_es at LCL
-                            ! ( this is only done for model level just above LCL
+      ZWORK3(JI)   = PZ(JI,JKP) - PZ(JI,JK) * ZWORK6(JI) -                      &
+                    ( 1. - ZWORK6(JI) ) *  PZLCL(JI)              ! level thickness
+      ZWORK2(JI)   = PTHES(JI,JK) + ( 1. - ZWORK6(JI) ) *                      &
+       ( PTHES(JI,JKP) - PTHES(JI,JK) ) / ( PZ(JI,JKP) - PZ(JI,JK) ) *          &
+       ( PZLCL(JI) - PZ(JI,JK) ) ! linear interpolation for theta_es at LCL
+                              ! ( this is only done for model level just above LCL
 !
-    ZWORK1(:) = ( 2. * ZTHEUL(:) ) / ( ZWORK2(:) + PTHES(:,JKP) ) - 1.
-    PCAPE(:)  = PCAPE(:) + XG * ZWORK3(:) * MAX( 0., ZWORK1(:) )
+      ZWORK1(JI) = ( 2. * ZTHEUL(JI) ) / ( ZWORK2(JI) + PTHES(JI,JKP) ) - 1.
+      PCAPE(JI)  = PCAPE(JI) + CST%XG * ZWORK3(JI) * MAX( 0., ZWORK1(JI) )
 !
 !
-!*       10.   Compute final values of updraft mass flux, enthalpy, r_w
-!              at level k+1
-!              --------------------------------------------------------
+!*         10.   Compute final values of updraft mass flux, enthalpy, r_w
+!                at level k+1
+!                --------------------------------------------------------
 !
-    PUMF(:,JKP)  = PUMF(:,JK) - PUDR(:,JKP) + PUER(:,JKP)
-    PUMF(:,JKP)  = MAX( PUMF(:,JKP), 0.1 )
-    PUTHL(:,JKP) = ( PUMF(:,JK) * PUTHL(:,JK) +                              &
-                     PUER(:,JKP) * PTHL(:,JK) - PUDR(:,JKP) * PUTHL(:,JK) )  &
-                    / PUMF(:,JKP)
-    PURW(:,JKP)  = ( PUMF(:,JK) * PURW(:,JK) +                               &
-                     PUER(:,JKP) * PRW(:,JK) - PUDR(:,JKP) * PURW(:,JK) )    &
-                    / PUMF(:,JKP)
+      PUMF(JI,JKP)  = PUMF(JI,JK) - PUDR(JI,JKP) + PUER(JI,JKP)
+      PUMF(JI,JKP)  = MAX( PUMF(JI,JKP), 0.1 )
+      PUTHL(JI,JKP) = ( PUMF(JI,JK) * PUTHL(JI,JK) +                              &
+                       PUER(JI,JKP) * PTHL(JI,JK) - PUDR(JI,JKP) * PUTHL(JI,JK) )  &
+                      / PUMF(JI,JKP)
+      PURW(JI,JKP)  = ( PUMF(JI,JK) * PURW(JI,JK) +                               &
+                       PUER(JI,JKP) * PRW(JI,JK) - PUDR(JI,JKP) * PURW(JI,JK) )    &
+                      / PUMF(JI,JKP)
 !
 !
-    ZE1(:) = ZE2(:) ! update fractional entrainment/detrainment
-    ZD1(:) = ZD2(:)
+      ZE1(JI) = ZE2(JI) ! update fractional entrainment/detrainment
+      ZD1(JI) = ZD2(JI)
 !
-  END WHERE
+    END IF
+  ENDDO
 !
 END DO
 !
@@ -421,17 +444,17 @@ END DO
 !                or > 3km (deep convection) or CAPE < 1
 !                ------------------------------------------------
 !
-    DO JI = 1, IIE
+    DO JI = D%NIB, D%NIE
           JK  = KCTL(JI)
           ZWORK1(JI) = PZ(JI,JK) - PZLCL(JI)
-          OTRIG(JI) = ZWORK1(JI) >= XCDEPTH  .AND. ZWORK1(JI) < XCDEPTH_D        &
+          OTRIG(JI) = ZWORK1(JI) >= CVP_SHAL%XCDEPTH  .AND. ZWORK1(JI) < CVP_SHAL%XCDEPTH_D        &
                      .AND. PCAPE(JI) > 1.
     END DO
-    WHERE( .NOT. OTRIG(:) )
-          KCTL(:) = IKB
-    END WHERE
-KETL(:) = MAX( KETL(:), KLCL(:) + 2 )
-KETL(:) = MIN( KETL(:), KCTL(:) )
+    DO JI = D%NIB, D%NIE
+    IF( .NOT. OTRIG(JI) ) KCTL(JI) = IKB
+    ENDDO
+KETL(D%NIB:D%NIE) = MAX( KETL(D%NIB:D%NIE), KLCL(D%NIB:D%NIE) + 2 )
+KETL(D%NIB:D%NIE) = MIN( KETL(D%NIB:D%NIE), KCTL(D%NIB:D%NIE) )
 !
 !
 !*       12.2    If the ETL and CTL are the same detrain updraft mass
@@ -439,9 +462,11 @@ KETL(:) = MIN( KETL(:), KCTL(:) )
 !                -------------------------------------------------------
 !
 ZWORK1(:) = 0.
-WHERE ( KETL(:) == KCTL(:) ) ZWORK1(:) = 1.
+DO JI=D%NIB, D%NIE
+  IF ( KETL(JI) == KCTL(JI) ) ZWORK1(JI) = 1.
+ENDDO
 !
-DO JI = 1, IIE
+DO JI = D%NIB, D%NIE
     JK = KETL(JI)
     PUDR(JI,JK)   = PUDR(JI,JK) +                                    &
                           ( PUMF(JI,JK) - PUER(JI,JK) )  * ZWORK1(JI)
@@ -464,27 +489,25 @@ END DO
 !                -------------------------------------------------------
 !
 ZWORK1(:) = 0.
-!JK1 = MINVAL( KETL(:) )
-!JK2 = MAXVAL( KCTL(:) )
 JK1 = IKB
 JK2 = IKE
 
 DO JK = JK1, JK2
-    DO JI = 1, IIE
+    DO JI = D%NIB, D%NIE
     IF( JK > KETL(JI) .AND. JK <= KCTL(JI) ) THEN
         ZWORK1(JI) = ZWORK1(JI) + PDPRES(JI,JK)
     END IF
     END DO
 END DO
 !
-DO JI = 1, IIE
+DO JI = D%NIB, D%NIE
     JK = KETL(JI)
     ZWORK1(JI) = PUMF(JI,JK) / MAX( 1., ZWORK1(JI) )
 END DO
 !
 DO JK = JK1 + 1, JK2
     JKP = JK - 1
-    DO JI = 1, IIE
+    DO JI = D%NIB, D%NIE
     IF ( JK > KETL(JI) .AND. JK <= KCTL(JI) ) THEN
         PUDR(JI,JK)  = PDPRES(JI,JK) * ZWORK1(JI)
         PUMF(JI,JK)  = PUMF(JI,JKP) - PUDR(JI,JK)
@@ -497,20 +520,19 @@ END DO
 !                -------------------------------------------------------
 !
 !IWORK(:) = MIN( KPBL(:), KLCL(:) - 1 )
-IWORK(:) = KPBL(:)
-DO JI = 1, IIE
+IWORK(D%NIB:D%NIE) = KPBL(D%NIB:D%NIE)
+DO JI = D%NIB, D%NIE
      JK  = KDPL(JI)
      JKP = IWORK(JI)
 !          mixed layer depth
      ZWORK2(JI) = PPRES(JI,JK) - PPRES(JI,JKP) + PDPRES(JI,JK)
 END DO
 !
-!JKP = MAXVAL( IWORK(:) )
 JKP=IKE
 DO JK = JKM, JKP
-   DO JI = 1, IIE
-   IF ( JK >= KDPL(JI)  .AND. JK <= IWORK(JI) ) THEN
-       PUER(JI,JK) = PUER(JI,JK) + PMFLCL(JI) * PDPRES(JI,JK) / ( ZWORK2(JI) + 0.1 )
+   DO JI = D%NIB, D%NIE
+   IF ( JK >= KDPL(JI)  .AND. JK <= IWORK(JI) .AND. GTRIG1(JI)) THEN
+       PUER(JI,JK) = PUER(JI,JK) + PMFLCL * PDPRES(JI,JK) / ( ZWORK2(JI) + 0.1 )
        PUMF(JI,JK) = PUMF(JI,JK-1) + PUER(JI,JK)
    END IF
    END DO
@@ -525,16 +547,20 @@ END DO
 !                    which could produce a thicker cloud.
 !              ---------------------------------------------------
 !
-GWORK6(:,:) = SPREAD( OTRIG(:), DIM=2, NCOPIES=KLEV )
-WHERE ( .NOT. GWORK6(:,:) )
-    PUMF(:,:)  = 0.
-    PUDR(:,:)  = 0.
-    PUER(:,:)  = 0.
-    PUTHL(:,:) = PTHL(:,:)
-    PURW(:,:)  = PRW(:,:)
-    PURC(:,:)  = 0.
-    PURI(:,:)  = 0.
-END WHERE
+DO JK=1,D%NKT
+    DO JI=D%NIB, D%NIE
+        IF(.NOT. OTRIG(JI))THEN
+            PUMF(JI,JK)  = 0.
+            PUDR(JI,JK)  = 0.
+            PUER(JI,JK)  = 0.
+            PUTHL(JI,JK) = PTHL(JI,JK)
+            PURW(JI,JK)  = PRW(JI,JK)
+            PURC(JI,JK)  = 0.
+            PURI(JI,JK)  = 0.
+        ENDIF
+    ENDDO
+ENDDO
 !
 IF (LHOOK) CALL DR_HOOK('CONVECT_UPDRAFT_SHAL',1,ZHOOK_HANDLE)
 END SUBROUTINE CONVECT_UPDRAFT_SHAL
+
diff --git a/src/arome/conv/convect_updraft_shal.h b/src/arome/conv/convect_updraft_shal.h
new file mode 100644
index 0000000000000000000000000000000000000000..63bc110b329dc7531d6071c625249e1a8cc9a2d8
--- /dev/null
+++ b/src/arome/conv/convect_updraft_shal.h
@@ -0,0 +1,53 @@
+INTERFACE
+
+SUBROUTINE CONVECT_UPDRAFT_SHAL( CVP_SHAL, CVPEXT, CST, D, CONVPAR,              &
+KICE, PPRES, PDPRES, PZ, PTHL, PTHV, PTHES, PRW,&
+PTHLCL, PTLCL, PRVLCL, PWLCL, PZLCL, PTHVELCL,  &
+PMFLCL, OTRIG, KLCL, KDPL, KPBL,                &
+PUMF, PUER, PUDR, PUTHL, PUTHV, PURW,           &
+PURC, PURI, PCAPE, KCTL, KETL,GTRIG1 )
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE MODD_CST, ONLY : CST_T
+USE MODD_CONVPAR, ONLY : CONVPAR_T
+USE MODD_CONVPAR_SHAL, ONLY : CONVPAR_SHAL
+USE MODD_CONVPAREXT, ONLY : CONVPAREXT
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
+TYPE(CONVPAR_SHAL),         INTENT(IN) :: CVP_SHAL
+TYPE(CONVPAREXT),           INTENT(IN) :: CVPEXT
+TYPE(CST_T),                INTENT(IN) :: CST
+TYPE(DIMPHYEX_T),           INTENT(IN) :: D
+TYPE(CONVPAR_T),            INTENT(IN) :: CONVPAR
+INTEGER,                    INTENT(IN) :: KICE
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PTHL
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PTHV
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PTHES
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PRW
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PPRES
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PDPRES
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(IN) :: PZ
+REAL, DIMENSION(D%NIT),     INTENT(IN) :: PTHLCL
+REAL, DIMENSION(D%NIT),     INTENT(IN) :: PTLCL
+REAL, DIMENSION(D%NIT),     INTENT(IN) :: PRVLCL
+REAL, DIMENSION(D%NIT),     INTENT(IN) :: PWLCL
+REAL,                      INTENT(IN) :: PMFLCL
+REAL, DIMENSION(D%NIT),     INTENT(IN) :: PZLCL
+REAL, DIMENSION(D%NIT),     INTENT(IN) :: PTHVELCL
+LOGICAL, DIMENSION(D%NIT),  INTENT(INOUT):: OTRIG
+LOGICAL, DIMENSION(D%NIT),  INTENT(IN):: GTRIG1
+INTEGER, DIMENSION(D%NIT),  INTENT(IN) :: KLCL
+INTEGER, DIMENSION(D%NIT),  INTENT(IN) :: KDPL
+INTEGER, DIMENSION(D%NIT),  INTENT(IN) :: KPBL
+INTEGER, DIMENSION(D%NIT),  INTENT(OUT):: KCTL
+INTEGER, DIMENSION(D%NIT),  INTENT(OUT):: KETL
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT):: PUMF
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT):: PUER
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT):: PUDR
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT):: PUTHL
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT):: PUTHV
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT):: PURW
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT):: PURC
+REAL, DIMENSION(D%NIT,D%NKT), INTENT(OUT):: PURI
+REAL, DIMENSION(D%NIT),     INTENT(OUT):: PCAPE
+END SUBROUTINE CONVECT_UPDRAFT_SHAL
+
+END INTERFACE
diff --git a/src/arome/conv/deep_convection.F90 b/src/arome/conv/deep_convection.F90
index e459cef3c0c7ca5c5da09298a263e9404da30478..58610446d69ddd89efaf0ff932e32583b2943265 100644
--- a/src/arome/conv/deep_convection.F90
+++ b/src/arome/conv/deep_convection.F90
@@ -10,8 +10,7 @@
                                 OCH1CONV, KCH1, PCH1, PCH1TEN,                 &
                                 OUSECHEM, OCH_CONV_SCAV, OCH_CONV_LINOX,       &
                                 ODUST, OSALT, PRHODREF, PIC_RATE, PCG_RATE     )
-    USE PARKIND1, ONLY : JPRB
-    USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+    USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !   ############################################################################
 !
 !!**** Monitor routine to compute all convective tendencies by calls
@@ -325,7 +324,7 @@ REAL, DIMENSION(:),ALLOCATABLE     :: ZIC_RATE,ZCG_RATE
 !*       0.3    Compute loop bounds
 !               -------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('DEEP_CONVECTION',0,ZHOOK_HANDLE)
 IIB = KIDIA
 IIE = KFDIA
diff --git a/src/arome/conv/ini_convpar.F90 b/src/arome/conv/ini_convpar.F90
index 16ab5ca90480685de18d1d9fa21c918f46818019..6b2f0cd0fb8d1e996a93215dd2f8bd2ecb50fb5b 100644
--- a/src/arome/conv/ini_convpar.F90
+++ b/src/arome/conv/ini_convpar.F90
@@ -1,93 +1,3 @@
-!     ######spl
-      SUBROUTINE INI_CONVPAR
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
-!     ######################
-!
-!!****  *INI_CONVPAR * - routine to initialize the constants modules 
-!!
-!!    PURPOSE
-!!    -------
-!       The purpose of this routine is to initialize  the constants
-!     stored in  modules MODD_CONVPAR, MODD_CST, MODD_CONVPAREXT.
-!      
-!
-!!**  METHOD
-!!    ------
-!!      The deep convection constants are set to their numerical values 
-!!     
-!!
-!!    EXTERNAL
-!!    --------
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!      Module MODD_CONVPAR   : contains deep convection constants
-!!
-!!    REFERENCE
-!!    ---------
-!!      Book2 of the documentation (module MODD_CONVPAR, routine INI_CONVPAR)
-!!      
-!!
-!!    AUTHOR
-!!    ------
-!!      P. BECHTOLD       * Laboratoire d'Aerologie *
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    26/03/96 
-!!   Last modified  15/04/98 adapted for ARPEGE
-!-------------------------------------------------------------------------------
-!
-!*       0.    DECLARATIONS
-!              ------------
-!
-USE MODD_CONVPAR, ONLY : XA25, XCDEPTH, XCRAD, XENTR, XMELDPTH, XNHGAM, XRCONV, XRHDBC, XSTABC, &
-& XSTABT, XTFRZ1, XTFRZ2, XUSRDPTH, XUVDP, XWTRIG, XZLCL, XZPBL
-
-!
-IMPLICIT NONE
-!  
-!-------------------------------------------------------------------------------
-!
-!*       1.    Set the thermodynamical and numerical constants for
-!              the deep convection parameterization
-!              ---------------------------------------------------
-!
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-IF (LHOOK) CALL DR_HOOK('INI_CONVPAR',0,ZHOOK_HANDLE)
-XA25     = 625.E6    ! 25 km x 25 km reference grid area
-!
-XCRAD    = 1500.     ! cloud radius 
-XCDEPTH  = 2.5E3      ! minimum necessary cloud depth
-XENTR    = 0.03      ! entrainment constant (m/Pa) = 0.2 (m)  
-!
-XZLCL    = 3.5E3     ! maximum allowed allowed height 
-                     ! difference between the surface and the LCL
-XZPBL    = 60.E2     ! minimum mixed layer depth to sustain convection
-XWTRIG   = 6.00      ! constant in vertical velocity trigger
-!
-!
-XNHGAM   = 1.3333    ! accounts for non-hydrost. pressure 
-                     ! in buoyancy term of w equation
-                     ! = 2 / (1+gamma)
-XTFRZ1   = 268.16    ! begin of freezing interval
-XTFRZ2   = 248.16    ! end of freezing interval
-!
-XRHDBC   = 0.9       ! relative humidity below cloud in downdraft
-
-XRCONV   = 0.015     ! constant in precipitation conversion 
-XSTABT   = 0.75      ! factor to assure stability in  fractional time
-                     ! integration, routine CONVECT_CLOSURE
-XSTABC   = 0.95      ! factor to assure stability in CAPE adjustment,
-                     !  routine CONVECT_CLOSURE
-XUSRDPTH = 165.E2    ! pressure thickness used to compute updraft
-                     ! moisture supply rate for downdraft
-XMELDPTH = 100.E2    ! layer (Pa) through which precipitation melt is
-                     ! allowed below downdraft
-XUVDP    = 0.7       ! constant for pressure perturb in momentum transport
-!
-!
-IF (LHOOK) CALL DR_HOOK('INI_CONVPAR',1,ZHOOK_HANDLE)
-END SUBROUTINE INI_CONVPAR 
+SUBROUTINE INI_CONVPAR
+STOP "INI_CONVPAR should not be called"
+END
diff --git a/src/arome/conv/ini_convpar.h b/src/arome/conv/ini_convpar.h
new file mode 100644
index 0000000000000000000000000000000000000000..d8766f2c2f44e82b878cc7ee86e3a9ee15c46a7a
--- /dev/null
+++ b/src/arome/conv/ini_convpar.h
@@ -0,0 +1,92 @@
+!     ######spl
+      SUBROUTINE INI_CONVPAR(CONVPAR)
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
+!     ######################
+!
+!!****  *INI_CONVPAR * - routine to initialize the constants modules 
+!!
+!!    PURPOSE
+!!    -------
+!       The purpose of this routine is to initialize  the constants
+!     stored in  modules MODD_CONVPAR, MODD_CST, MODD_CONVPAREXT.
+!      
+!
+!!**  METHOD
+!!    ------
+!!      The deep convection constants are set to their numerical values 
+!!     
+!!
+!!    EXTERNAL
+!!    --------
+!!
+!!    IMPLICIT ARGUMENTS
+!!    ------------------
+!!      Module MODD_CONVPAR   : contains deep convection constants
+!!
+!!    REFERENCE
+!!    ---------
+!!      Book2 of the documentation (module MODD_CONVPAR, routine INI_CONVPAR)
+!!      
+!!
+!!    AUTHOR
+!!    ------
+!!      P. BECHTOLD       * Laboratoire d'Aerologie *
+!!
+!!    MODIFICATIONS
+!!    -------------
+!!      Original    26/03/96 
+!!   Last modified  15/04/98 adapted for ARPEGE
+!-------------------------------------------------------------------------------
+!
+!*       0.    DECLARATIONS
+!              ------------
+!
+USE MODD_CONVPAR, ONLY : CONVPAR_T
+IMPLICIT NONE
+TYPE(CONVPAR_T), INTENT(INOUT) :: CONVPAR
+
+!
+!  
+!-------------------------------------------------------------------------------
+!
+!*       1.    Set the thermodynamical and numerical constants for
+!              the deep convection parameterization
+!              ---------------------------------------------------
+!
+!
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
+IF (LHOOK) CALL DR_HOOK('INI_CONVPAR',0,ZHOOK_HANDLE)
+CONVPAR%XA25     = 625.E6    ! 25 km x 25 km reference grid area
+!
+CONVPAR%XCRAD    = 1500.     ! cloud radius 
+CONVPAR%XCDEPTH  = 2.5E3      ! minimum necessary cloud depth
+CONVPAR%XENTR    = 0.03      ! entrainment constant (m/Pa) = 0.2 (m)  
+!
+CONVPAR%XZLCL    = 3.5E3     ! maximum allowed allowed height 
+                     ! difference between the surface and the LCL
+CONVPAR%XZPBL    = 60.E2     ! minimum mixed layer depth to sustain convection
+CONVPAR%XWTRIG   = 6.00      ! constant in vertical velocity trigger
+!
+!
+CONVPAR%XNHGAM   = 1.3333    ! accounts for non-hydrost. pressure 
+                     ! in buoyancy term of w equation
+                     ! = 2 / (1+gamma)
+CONVPAR%XTFRZ1   = 268.16    ! begin of freezing interval
+CONVPAR%XTFRZ2   = 248.16    ! end of freezing interval
+!
+CONVPAR%XRHDBC   = 0.9       ! relative humidity below cloud in downdraft
+
+CONVPAR%XRCONV   = 0.015     ! constant in precipitation conversion 
+CONVPAR%XSTABT   = 0.75      ! factor to assure stability in  fractional time
+                     ! integration, routine CONVECT_CLOSURE
+CONVPAR%XSTABC   = 0.95      ! factor to assure stability in CAPE adjustment,
+                     !  routine CONVECT_CLOSURE
+CONVPAR%XUSRDPTH = 165.E2    ! pressure thickness used to compute updraft
+                     ! moisture supply rate for downdraft
+CONVPAR%XMELDPTH = 100.E2    ! layer (Pa) through which precipitation melt is
+                     ! allowed below downdraft
+CONVPAR%XUVDP    = 0.7       ! constant for pressure perturb in momentum transport
+!
+!
+IF (LHOOK) CALL DR_HOOK('INI_CONVPAR',1,ZHOOK_HANDLE)
+END SUBROUTINE INI_CONVPAR 
diff --git a/src/arome/conv/ini_convpar_e1.F90 b/src/arome/conv/ini_convpar_e1.F90
index 5e5473b5fad6a71f6de19b6ecc733f223af423d9..a6c8b06c9fa47e823066a58e658ab554220f81e8 100644
--- a/src/arome/conv/ini_convpar_e1.F90
+++ b/src/arome/conv/ini_convpar_e1.F90
@@ -1,7 +1,6 @@
 !     ######spl
       SUBROUTINE INI_CONVPAR_E1
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #########################
 !
 !!****  *INI_CONVPAR * - routine to initialize the convective constants modules 
@@ -54,7 +53,7 @@ IMPLICIT NONE
 !              ---------------------------------------------------
 !
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('INI_CONVPAR_E1',0,ZHOOK_HANDLE)
 XA25     = 625.E6    ! 25 km x 25 km reference grid area
 !
diff --git a/src/arome/conv/ini_convpar_shal.F90 b/src/arome/conv/ini_convpar_shal.F90
index 959fd7d2a390e4b7259bb9fef788343ecef36fe8..a30c0996a89fcf83763cf3aa8a02d9f5b504e748 100644
--- a/src/arome/conv/ini_convpar_shal.F90
+++ b/src/arome/conv/ini_convpar_shal.F90
@@ -1,7 +1,6 @@
 !     ######spl
       SUBROUTINE INI_CONVPAR_SHAL
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###########################
 !
 !!****  *INI_CONVPAR * - routine to initialize the constants modules 
@@ -54,7 +53,7 @@ IMPLICIT NONE
 !              ---------------------------------------------------
 !
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('INI_CONVPAR_SHAL',0,ZHOOK_HANDLE)
 XA25     = 625.E6    ! 25 km x 25 km reference grid area
 !
diff --git a/src/arome/conv/modd_convpar.F90 b/src/arome/conv/modd_convpar.F90
index 8a6717d0fa4432f5eaa17bd1e6ee328023fa096c..0fdece532687c9c9d32db00e6ff29889bbcef378 100644
--- a/src/arome/conv/modd_convpar.F90
+++ b/src/arome/conv/modd_convpar.F90
@@ -33,35 +33,200 @@
 !
 IMPLICIT NONE
 !
-REAL, SAVE :: XA25        ! 25 km x 25 km reference grid area
-!
-REAL, SAVE :: XCRAD       ! cloud radius
-REAL, SAVE :: XCDEPTH     ! minimum necessary cloud depth
-REAL, SAVE :: XENTR       ! entrainment constant (m/Pa) = 0.2 (m)
-!
-REAL, SAVE :: XZLCL       ! maximum allowed allowed height
-                          ! difference between departure level and surface
-REAL, SAVE :: XZPBL       ! minimum mixed layer depth to sustain convection
-REAL, SAVE :: XWTRIG      ! constant in vertical velocity trigger
-!
-!
-REAL, SAVE :: XNHGAM      ! accounts for non-hydrost. pressure
-                          ! in buoyancy term of w equation
-                          ! = 2 / (1+gamma)
-REAL, SAVE :: XTFRZ1      ! begin of freezing interval
-REAL, SAVE :: XTFRZ2      ! end of freezing interval
-!
-REAL, SAVE :: XRHDBC      ! relative humidity below cloud in downdraft
-!
-REAL, SAVE :: XRCONV      ! constant in precipitation conversion
-REAL, SAVE :: XSTABT      ! factor to assure stability in  fractional time
-                          ! integration, routine CONVECT_CLOSURE
-REAL, SAVE :: XSTABC      ! factor to assure stability in CAPE adjustment,
-                          !  routine CONVECT_CLOSURE
-REAL, SAVE :: XUSRDPTH    ! pressure thickness used to compute updraft
-                          ! moisture supply rate for downdraft
-REAL, SAVE :: XMELDPTH    ! layer (Pa) through which precipitation melt is
-                          ! allowed below  melting level
-REAL, SAVE :: XUVDP       ! constant for pressure perturb in momentum transport
+TYPE CONVPAR_T
+REAL :: XA25        ! 25 km x 25 km reference grid area
+!
+REAL :: XCRAD       ! cloud radius
+REAL :: XCDEPTH     ! minimum necessary cloud depth
+REAL :: XENTR       ! entrainment constant (m/Pa) = 0.2 (m)
+!
+REAL :: XZLCL       ! maximum allowed allowed height
+                    ! difference between departure level and surface
+REAL :: XZPBL       ! minimum mixed layer depth to sustain convection
+REAL :: XWTRIG      ! constant in vertical velocity trigger
+!
+!
+REAL :: XNHGAM      ! accounts for non-hydrost. pressure
+                    ! in buoyancy term of w equation
+                    ! = 2 / (1+gamma)
+REAL :: XTFRZ1      ! begin of freezing interval
+REAL :: XTFRZ2      ! end of freezing interval
+!
+REAL :: XRHDBC      ! relative humidity below cloud in downdraft
+!
+REAL :: XRCONV      ! constant in precipitation conversion
+REAL :: XSTABT      ! factor to assure stability in  fractional time
+                    ! integration, routine CONVECT_CLOSURE
+REAL :: XSTABC      ! factor to assure stability in CAPE adjustment,
+                    !  routine CONVECT_CLOSURE
+REAL :: XUSRDPTH    ! pressure thickness used to compute updraft
+                    ! moisture supply rate for downdraft
+REAL :: XMELDPTH    ! layer (Pa) through which precipitation melt is
+                    ! allowed below  melting level
+REAL :: XUVDP       ! constant for pressure perturb in momentum transport
+END TYPE CONVPAR_T
+
+!Keep global variables for parts of the code not ported to the type yet
+REAL :: XA25        ! 25 km x 25 km reference grid area
+!
+REAL :: XCRAD       ! cloud radius
+REAL :: XCDEPTH     ! minimum necessary cloud depth
+REAL :: XENTR       ! entrainment constant (m/Pa) = 0.2 (m)
+!
+REAL :: XZLCL       ! maximum allowed allowed height
+                    ! difference between departure level and surface
+REAL :: XZPBL       ! minimum mixed layer depth to sustain convection
+REAL :: XWTRIG      ! constant in vertical velocity trigger
+!
+!
+REAL :: XNHGAM      ! accounts for non-hydrost. pressure
+                    ! in buoyancy term of w equation
+                    ! = 2 / (1+gamma)
+REAL :: XTFRZ1      ! begin of freezing interval
+REAL :: XTFRZ2      ! end of freezing interval
+!
+REAL :: XRHDBC      ! relative humidity below cloud in downdraft
+!
+REAL :: XRCONV      ! constant in precipitation conversion
+REAL :: XSTABT      ! factor to assure stability in  fractional time
+                    ! integration, routine CONVECT_CLOSURE
+REAL :: XSTABC      ! factor to assure stability in CAPE adjustment,
+                    !  routine CONVECT_CLOSURE
+REAL :: XUSRDPTH    ! pressure thickness used to compute updraft
+                    ! moisture supply rate for downdraft
+REAL :: XMELDPTH    ! layer (Pa) through which precipitation melt is
+                    ! allowed below  melting level
+REAL :: XUVDP       ! constant for pressure perturb in momentum transport
+
+INTERFACE INI_CONVPAR
+  MODULE PROCEDURE INI_CONVPAR0
+  MODULE PROCEDURE INI_CONVPAR1
+END INTERFACE
+
+
+
+CONTAINS
+
+
+SUBROUTINE INI_CONVPAR1 (CONVPAR)
+
+USE YOMHOOK , ONLY : LHOOK, JPHOOK, DR_HOOK
+
+TYPE (CONVPAR_T), INTENT (OUT) :: CONVPAR
+
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
+
+IF (LHOOK) CALL DR_HOOK('INI_CONVPAR1',0,ZHOOK_HANDLE)
+
+CONVPAR%XA25     = XA25        
+CONVPAR%XCRAD    = XCRAD       
+CONVPAR%XCDEPTH  = XCDEPTH     
+CONVPAR%XENTR    = XENTR       
+CONVPAR%XZLCL    = XZLCL       
+CONVPAR%XZPBL    = XZPBL       
+CONVPAR%XWTRIG   = XWTRIG      
+CONVPAR%XNHGAM   = XNHGAM      
+CONVPAR%XTFRZ1   = XTFRZ1      
+CONVPAR%XTFRZ2   = XTFRZ2      
+CONVPAR%XRHDBC   = XRHDBC      
+CONVPAR%XRCONV   = XRCONV      
+CONVPAR%XSTABT   = XSTABT      
+CONVPAR%XSTABC   = XSTABC      
+CONVPAR%XUSRDPTH = XUSRDPTH    
+CONVPAR%XMELDPTH = XMELDPTH    
+CONVPAR%XUVDP    = XUVDP       
+
+IF (LHOOK) CALL DR_HOOK('INI_CONVPAR1',1,ZHOOK_HANDLE)
+
+END SUBROUTINE INI_CONVPAR1
+
+SUBROUTINE INI_CONVPAR0
+USE YOMHOOK , ONLY : LHOOK, JPHOOK, DR_HOOK
+!     ######################
+!
+!!****  *INI_CONVPAR * - routine to initialize the constants modules 
+!!
+!!    PURPOSE
+!!    -------
+!       The purpose of this routine is to initialize  the constants
+!     stored in  modules MODD_CONVPAR, MODD_CST, MODD_CONVPAREXT.
+!      
+!
+!!**  METHOD
+!!    ------
+!!      The deep convection constants are set to their numerical values 
+!!     
+!!
+!!    EXTERNAL
+!!    --------
+!!
+!!    IMPLICIT ARGUMENTS
+!!    ------------------
+!!      Module MODD_CONVPAR   : contains deep convection constants
+!!
+!!    REFERENCE
+!!    ---------
+!!      Book2 of the documentation (module MODD_CONVPAR, routine INI_CONVPAR)
+!!      
+!!
+!!    AUTHOR
+!!    ------
+!!      P. BECHTOLD       * Laboratoire d'Aerologie *
+!!
+!!    MODIFICATIONS
+!!    -------------
+!!      Original    26/03/96 
+!!   Last modified  15/04/98 adapted for ARPEGE
+!-------------------------------------------------------------------------------
+!
+!*       0.    DECLARATIONS
+!              ------------
+!
+!
+IMPLICIT NONE
+!  
+!-------------------------------------------------------------------------------
+!
+!*       1.    Set the thermodynamical and numerical constants for
+!              the deep convection parameterization
+!              ---------------------------------------------------
+!
+!
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
+IF (LHOOK) CALL DR_HOOK('INI_CONVPAR0',0,ZHOOK_HANDLE)
+XA25     = 625.E6    ! 25 km x 25 km reference grid area
+!
+XCRAD    = 1500.     ! cloud radius 
+XCDEPTH  = 2.5E3      ! minimum necessary cloud depth
+XENTR    = 0.03      ! entrainment constant (m/Pa) = 0.2 (m)  
+!
+XZLCL    = 3.5E3     ! maximum allowed allowed height 
+                     ! difference between the surface and the LCL
+XZPBL    = 60.E2     ! minimum mixed layer depth to sustain convection
+XWTRIG   = 6.00      ! constant in vertical velocity trigger
+!
+!
+XNHGAM   = 1.3333    ! accounts for non-hydrost. pressure 
+                     ! in buoyancy term of w equation
+                     ! = 2 / (1+gamma)
+XTFRZ1   = 268.16    ! begin of freezing interval
+XTFRZ2   = 248.16    ! end of freezing interval
+!
+XRHDBC   = 0.9       ! relative humidity below cloud in downdraft
+
+XRCONV   = 0.015     ! constant in precipitation conversion 
+XSTABT   = 0.75      ! factor to assure stability in  fractional time
+                     ! integration, routine CONVECT_CLOSURE
+XSTABC   = 0.95      ! factor to assure stability in CAPE adjustment,
+                     !  routine CONVECT_CLOSURE
+XUSRDPTH = 165.E2    ! pressure thickness used to compute updraft
+                     ! moisture supply rate for downdraft
+XMELDPTH = 100.E2    ! layer (Pa) through which precipitation melt is
+                     ! allowed below downdraft
+XUVDP    = 0.7       ! constant for pressure perturb in momentum transport
+!
+!
+IF (LHOOK) CALL DR_HOOK('INI_CONVPAR0',1,ZHOOK_HANDLE)
+END SUBROUTINE INI_CONVPAR0
 !
 END MODULE MODD_CONVPAR
diff --git a/src/arome/conv/modd_convpar_shal.F90 b/src/arome/conv/modd_convpar_shal.F90
index e79e422440db829938741f724fef523cc3a1ea8a..82a7a53a7f12fa251004ebac8f5f33266d049b24 100644
--- a/src/arome/conv/modd_convpar_shal.F90
+++ b/src/arome/conv/modd_convpar_shal.F90
@@ -34,36 +34,70 @@
 !
 IMPLICIT NONE
 !
-REAL, SAVE :: XA25        ! 25 km x 25 km reference grid area
-!
-REAL, SAVE :: XCRAD       ! cloud radius
-REAL, SAVE :: XCTIME_SHAL ! convective adjustment time
-REAL, SAVE :: XCDEPTH     ! minimum necessary cloud depth
-REAL, SAVE :: XCDEPTH_D   ! maximum allowed cloud thickness
-REAL, SAVE :: XDTPERT     ! add small Temp perturb. at LCL
-REAL, SAVE :: XATPERT     ! Parameter for temp Perturb
-REAL, SAVE :: XBTPERT     ! Parameter for temp Perturb
-                          ! (XATPERT* TKE/Cp + XBTPERT) * XDTPERT
-REAL, SAVE :: XENTR       ! entrainment constant (m/Pa) = 0.2 (m)
-!
-REAL, SAVE :: XZLCL       ! maximum allowed allowed height
-                          ! difference between departure level and surface
-REAL, SAVE :: XZPBL       ! minimum mixed layer depth to sustain convection
-REAL, SAVE :: XWTRIG      ! constant in vertical velocity trigger
-!
-!
-REAL, SAVE :: XNHGAM      ! accounts for non-hydrost. pressure
-                          ! in buoyancy term of w equation
-                          ! = 2 / (1+gamma)
-REAL, SAVE :: XTFRZ1      ! begin of freezing interval
-REAL, SAVE :: XTFRZ2      ! end of freezing interval
-!
-!
-REAL, SAVE :: XSTABT      ! factor to assure stability in  fractional time
-                          ! integration, routine CONVECT_CLOSURE
-REAL, SAVE :: XSTABC      ! factor to assure stability in CAPE adjustment,
-                          !  routine CONVECT_CLOSURE
-REAL, SAVE :: XAW,XBW     ! Parameters for WLCL = XAW * W + XBW
-LOGICAL, SAVE :: LLSMOOTH ! Default=TRUE but not necessary
+TYPE CONVPAR_SHAL
+REAL :: XA25        ! 25 km x 25 km reference grid area
+!
+REAL :: XCRAD       ! cloud radius
+REAL :: XCTIME_SHAL ! convective adjustment time
+REAL :: XCDEPTH     ! minimum necessary cloud depth
+REAL :: XCDEPTH_D   ! maximum allowed cloud thickness
+REAL :: XDTPERT     ! add small Temp perturb. at LCL
+REAL :: XATPERT     ! Parameter for temp Perturb
+REAL :: XBTPERT     ! Parameter for temp Perturb
+                    ! (XATPERT* TKE/Cp + XBTPERT) * XDTPERT
+REAL :: XENTR       ! entrainment constant (m/Pa) = 0.2 (m)
+!
+REAL :: XZLCL       ! maximum allowed allowed height
+                    ! difference between departure level and surface
+REAL :: XZPBL       ! minimum mixed layer depth to sustain convection
+REAL :: XWTRIG      ! constant in vertical velocity trigger
+!
+!
+REAL :: XNHGAM      ! accounts for non-hydrost. pressure
+                    ! in buoyancy term of w equation
+                    ! = 2 / (1+gamma)
+REAL :: XTFRZ1      ! begin of freezing interval
+REAL :: XTFRZ2      ! end of freezing interval
+!
+!
+REAL :: XSTABT      ! factor to assure stability in  fractional time
+                    ! integration, routine CONVECT_CLOSURE
+REAL :: XSTABC      ! factor to assure stability in CAPE adjustment,
+                    !  routine CONVECT_CLOSURE
+REAL :: XAW,XBW     ! Parameters for WLCL = XAW * W + XBW
+LOGICAL :: LLSMOOTH ! Default=TRUE but not necessary
+END TYPE CONVPAR_SHAL
+!Keep global variables for parts of the code not ported to the type ye
+REAL :: XA25        ! 25 km x 25 km reference grid area
+!
+REAL :: XCRAD       ! cloud radius
+REAL :: XCTIME_SHAL ! convective adjustment time
+REAL :: XCDEPTH     ! minimum necessary cloud depth
+REAL :: XCDEPTH_D   ! maximum allowed cloud thickness
+REAL :: XDTPERT     ! add small Temp perturb. at LCL
+REAL :: XATPERT     ! Parameter for temp Perturb
+REAL :: XBTPERT     ! Parameter for temp Perturb
+                    ! (XATPERT* TKE/Cp + XBTPERT) * XDTPERT
+REAL :: XENTR       ! entrainment constant (m/Pa) = 0.2 (m)
+!
+REAL :: XZLCL       ! maximum allowed allowed height
+                    ! difference between departure level and surface
+REAL :: XZPBL       ! minimum mixed layer depth to sustain convection
+REAL :: XWTRIG      ! constant in vertical velocity trigger
+!
+!
+REAL :: XNHGAM      ! accounts for non-hydrost. pressure
+                    ! in buoyancy term of w equation
+                    ! = 2 / (1+gamma)
+REAL :: XTFRZ1      ! begin of freezing interval
+REAL :: XTFRZ2      ! end of freezing interval
+!
+!
+REAL :: XSTABT      ! factor to assure stability in  fractional time
+                    ! integration, routine CONVECT_CLOSURE
+REAL :: XSTABC      ! factor to assure stability in CAPE adjustment,
+                    !  routine CONVECT_CLOSURE
+REAL :: XAW,XBW     ! Parameters for WLCL = XAW * W + XBW
+LOGICAL :: LLSMOOTH ! Default=TRUE but not necessary
 !
 END MODULE MODD_CONVPAR_SHAL
diff --git a/src/arome/conv/modd_convparext.F90 b/src/arome/conv/modd_convparext.F90
index 9d869bdf28cda819b91ca208b42a400ff95dcba0..578d9852d588f69487c068384599d51d936f6c4c 100644
--- a/src/arome/conv/modd_convparext.F90
+++ b/src/arome/conv/modd_convparext.F90
@@ -4,9 +4,16 @@
 !
 IMPLICIT NONE
 !
-INTEGER, SAVE :: JCVEXB ! start vertical computations at
+TYPE CONVPAREXT
+INTEGER :: JCVEXB ! start vertical computations at
                         ! 1 + JCVEXB = 1 + ( KBDIA - 1 )
-INTEGER, SAVE :: JCVEXT ! limit vertical computations to
+INTEGER :: JCVEXT ! limit vertical computations to
+                        ! KLEV - JCVEXT = KLEV - ( KTDIA - 1 )
+END TYPE CONVPAREXT
+!Keep global variables for parts of the code not ported to the type ye
+INTEGER :: JCVEXB ! start vertical computations at
+                        ! 1 + JCVEXB = 1 + ( KBDIA - 1 )
+INTEGER :: JCVEXT ! limit vertical computations to
                         ! KLEV - JCVEXT = KLEV - ( KTDIA - 1 )
 !
 END MODULE MODD_CONVPAREXT
diff --git a/src/arome/conv/mode_ini_convpar.F90 b/src/arome/conv/mode_ini_convpar.F90
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/arome/conv/shallow_convection.F90 b/src/arome/conv/shallow_convection.F90
index ba40743d07d5acfa98fb831b4e1111ff2f315773..3b9766dee6b863717fc902401da56279262b8c8a 100644
--- a/src/arome/conv/shallow_convection.F90
+++ b/src/arome/conv/shallow_convection.F90
@@ -1,13 +1,11 @@
 !     ######spl
-    SUBROUTINE SHALLOW_CONVECTION( KLON, KLEV, KIDIA, KFDIA, KBDIA, KTDIA,        &
-                                   PDTCONV, KICE, OSETTADJ, PTADJS,               &
-                                   PPABST, PZZ, PTKECLS,                          &
-                                   PTT, PRVT, PRCT, PRIT, PWT,                    &
-                                   PTTEN, PRVTEN, PRCTEN, PRITEN,                 &
-                                   KCLTOP, KCLBAS, PUMF,                          &
-                                   OCH1CONV, KCH1, PCH1, PCH1TEN                  )
-    USE PARKIND1, ONLY : JPRB
-    USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+    SUBROUTINE SHALLOW_CONVECTION(CVP_SHAL, CST, D, NSV, CONVPAR, KBDIA, KTDIA, &
+                                  KICE, OSETTADJ, PTADJS, PPABST, PZZ, &
+                                  PTKECLS, PTT, PRVT, PRCT, PRIT, PWT, &
+                                  PTTEN, PRVTEN, PRCTEN, PRITEN,       &
+                                  KCLTOP, KCLBAS, PUMF, OCH1CONV, KCH1,&
+                                  PCH1, PCH1TEN)
+    USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !   ###############################################################################
 !
 !!**** Monitor routine to compute all convective tendencies by calls
@@ -94,10 +92,15 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-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
+USE MODD_CST, ONLY : CST_T
+USE MODD_CONVPAREXT, ONLY : CONVPAREXT
+USE MODD_CONVPAR, ONLY: CONVPAR_T
+USE MODD_CONVPAR_SHAL, ONLY: CONVPAR_SHAL
+USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T
+USE MODD_NSV, ONLY: NSV_T
+USE MODI_SHALLOW_CONVECTION_PART1
+USE MODI_SHALLOW_CONVECTION_PART2
+USE MODI_SHALLOW_CONVECTION_PART2_SELECT
 !
 !
 IMPLICIT NONE
@@ -105,152 +108,72 @@ IMPLICIT NONE
 !*       0.1   Declarations of dummy arguments :
 !
 !
-INTEGER,                    INTENT(IN) :: KLON     ! horizontal dimension
-INTEGER,                    INTENT(IN) :: KLEV     ! vertical dimension
-INTEGER,                    INTENT(IN) :: KIDIA    ! value of the first point in x
-INTEGER,                    INTENT(IN) :: KFDIA    ! value of the last point in x
-INTEGER,                    INTENT(IN) :: KBDIA    ! vertical  computations start at
-!                                                  ! KBDIA that is at least 1
-INTEGER,                    INTENT(IN) :: KTDIA    ! vertical computations can be
-                                                   ! limited to KLEV + 1 - KTDIA
-                                                   ! default=1
-REAL,                       INTENT(IN) :: PDTCONV  ! Interval of time between two
-                                                   ! calls of the deep convection
-                                                   ! scheme
-INTEGER,                    INTENT(IN) :: KICE     ! flag for ice ( 1 = yes,
-                                                   !                0 = no ice )
-LOGICAL,                    INTENT(IN) :: OSETTADJ ! logical to set convective
-                                                   ! adjustment time by user
-REAL,                       INTENT(IN) :: PTADJS   ! user defined adjustment time
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PTT      ! grid scale temperature at t
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PRVT     ! grid scale water vapor "
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PRCT     ! grid scale r_c  "
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PRIT     ! grid scale r_i "
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PWT      ! grid scale vertical
-                                                   ! velocity (m/s)
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PPABST   ! grid scale pressure at t
-REAL, DIMENSION(KLON,KLEV), INTENT(IN) :: PZZ      ! height of model layer (m)
-REAL, DIMENSION(KLON),      INTENT(IN) :: PTKECLS  ! TKE in the CLS  (m2/s2)
-!
-REAL, DIMENSION(KLON,KLEV), INTENT(INOUT):: PTTEN  ! convective temperature
-                                                   ! tendency (K/s)
-REAL, DIMENSION(KLON,KLEV), INTENT(INOUT):: PRVTEN ! convective r_v tendency (1/s)
-REAL, DIMENSION(KLON,KLEV), INTENT(INOUT):: PRCTEN ! convective r_c tendency (1/s)
-REAL, DIMENSION(KLON,KLEV), INTENT(INOUT):: PRITEN ! convective r_i tendency (1/s)
-INTEGER, DIMENSION(KLON),   INTENT(INOUT):: KCLTOP ! cloud top level
-INTEGER, DIMENSION(KLON),   INTENT(INOUT):: KCLBAS ! cloud base level
+TYPE(CONVPAR_SHAL) ,INTENT(IN)     :: CVP_SHAL
+TYPE(CST_T)        ,INTENT(IN)     :: CST
+TYPE(DIMPHYEX_T)   ,INTENT(IN)     :: D
+TYPE(NSV_T)        ,INTENT(IN)     :: NSV
+TYPE(CONVPAR_T)    ,INTENT(IN)     :: CONVPAR
+INTEGER            ,INTENT(IN)     :: KBDIA    ! vertical  computations start at
+!                                                    ! KBDIA that is at least 1
+INTEGER            ,INTENT(IN)     :: KTDIA    ! vertical computations can be
+                                                     ! limited to D%NKT + 1 - KTDIA
+                                                     ! default=1
+                                                     ! scheme
+INTEGER            ,INTENT(IN)     :: KICE     ! flag for ice ( 1 = yes,
+                                                     !                0 = no ice )
+LOGICAL            ,INTENT(IN)     :: OSETTADJ ! logical to set convective
+                                                     ! adjustment time by user
+REAL               ,INTENT(IN)     :: PTADJS   ! user defined adjustment time
+REAL               ,INTENT(IN)     :: PPABST(D%NIT,D%NKT)   ! grid scale pressure at t
+REAL               ,INTENT(IN)     :: PZZ(D%NIT,D%NKT)      ! height of model layer (m)
+REAL               ,INTENT(IN)     :: PTKECLS(D%NIT)  ! TKE in the CLS  (m2/s2)
+REAL               ,INTENT(IN)     :: PTT(D%NIT,D%NKT)      ! grid scale temperature at t
+REAL               ,INTENT(IN)     :: PRVT(D%NIT,D%NKT)     ! grid scale water vapor "
+REAL               ,INTENT(IN)     :: PRCT(D%NIT,D%NKT)     ! grid scale r_c  "
+REAL               ,INTENT(IN)     :: PRIT(D%NIT,D%NKT)     ! grid scale r_i "
+REAL               ,INTENT(IN)     :: PWT(D%NIT,D%NKT)      ! grid scale vertical
+                                                                           ! velocity (m/s)
+!
+REAL               ,INTENT(INOUT)  :: PTTEN(D%NIT,D%NKT)  ! convective temperature
+                                                                           ! tendency (K/s)
+REAL               ,INTENT(INOUT)  :: PRVTEN(D%NIT,D%NKT) ! convective r_v tendency (1/s)
+REAL               ,INTENT(INOUT)  :: PRCTEN(D%NIT,D%NKT) ! convective r_c tendency (1/s)
+REAL               ,INTENT(INOUT)  :: PRITEN(D%NIT,D%NKT) ! convective r_i tendency (1/s)
+INTEGER            ,INTENT(INOUT)  :: KCLTOP(D%NIT) ! cloud top level
+INTEGER            ,INTENT(INOUT)  :: KCLBAS(D%NIT) ! cloud base level
                                                    ! they are given a value of
                                                    ! 0 if no convection
-REAL, DIMENSION(KLON,KLEV), INTENT(INOUT):: PUMF   ! updraft mass flux (kg/s m2)
+REAL               ,INTENT(INOUT)  :: PUMF(D%NIT,D%NKT)   ! updraft mass flux (kg/s m2)
 !
-LOGICAL,                    INTENT(IN) :: OCH1CONV ! include tracer transport
-INTEGER,                    INTENT(IN) :: KCH1     ! number of species
-REAL, DIMENSION(KLON,KLEV,KCH1), INTENT(IN) :: PCH1! grid scale chemical species
-REAL, DIMENSION(KLON,KLEV,KCH1), INTENT(INOUT):: PCH1TEN! species conv. tendency (1/s)
+LOGICAL            ,INTENT(IN)     :: OCH1CONV ! include tracer transport
+INTEGER            ,INTENT(IN)     :: KCH1     ! number of species
+REAL               ,INTENT(IN)     :: PCH1(D%NIT,D%NKT,KCH1)! grid scale chemical species
+REAL               ,INTENT(INOUT)  :: PCH1TEN(D%NIT,D%NKT,KCH1)! species conv. tendency (1/s)
 !
 !
 !*       0.2   Declarations of local fixed memory variables :
 !
-INTEGER  :: ITEST, ICONV            ! number of convective columns
-INTEGER  :: IIB, IIE                ! horizontal loop bounds
-INTEGER  :: IKB, IKE                ! vertical loop bounds
-INTEGER  :: IKS                     ! vertical dimension
-INTEGER  :: JI, JL                  ! horizontal loop index
-INTEGER  :: JN                      ! number of tracers
-INTEGER  :: JK, JKM, JKP            ! vertical loop index
-INTEGER  :: IFTSTEPS                ! only used for chemical tracers
-REAL     :: ZEPS, ZEPSA             ! R_d / R_v, R_v / R_d
+INTEGER  :: ICONV
 REAL     :: ZRDOCP                  ! R_d/C_p
 !
-LOGICAL, DIMENSION(KLON, KLEV)     :: GTRIG3 ! 3D logical mask for convection
-LOGICAL, DIMENSION(KLON)           :: GTRIG  ! 2D logical mask for trigger test
-REAL, DIMENSION(KLON,KLEV)         :: ZTHT, ZSTHV, ZSTHES  ! grid scale theta, theta_v
-REAL, DIMENSION(KLON)              :: ZWORK2, ZWORK2B ! work array
-REAL                               :: ZW1     ! work variable
+REAL         :: ZTHT(D%NIT,D%NKT), ZSTHV(D%NIT,D%NKT), ZSTHES(D%NIT,D%NKT)  ! grid scale theta, theta_v
 !
 !
 !*       0.2   Declarations of local allocatable  variables :
 !
-INTEGER, DIMENSION(:),ALLOCATABLE  :: IDPL    ! index for parcel departure level
-INTEGER, DIMENSION(:),ALLOCATABLE  :: IPBL    ! index for source layer top
-INTEGER, DIMENSION(:),ALLOCATABLE  :: ILCL    ! index for lifting condensation level
-INTEGER, DIMENSION(:),ALLOCATABLE  :: IETL    ! index for zero buoyancy level
-INTEGER, DIMENSION(:),ALLOCATABLE  :: ICTL    ! index for cloud top level
-INTEGER, DIMENSION(:),ALLOCATABLE  :: ILFS    ! index for level of free sink
-!
-INTEGER, DIMENSION(:), ALLOCATABLE :: ISDPL   ! index for parcel departure level
-INTEGER, DIMENSION(:),ALLOCATABLE  :: ISPBL   ! index for source layer top
-INTEGER, DIMENSION(:), ALLOCATABLE :: ISLCL   ! index for lifting condensation level
-REAL, DIMENSION(:), ALLOCATABLE    :: ZSTHLCL ! updraft theta at LCL/L
-REAL, DIMENSION(:), ALLOCATABLE    :: ZSTLCL  ! updraft temp. at LCL
-REAL, DIMENSION(:), ALLOCATABLE    :: ZSRVLCL ! updraft rv at LCL
-REAL, DIMENSION(:), ALLOCATABLE    :: ZSWLCL  ! updraft w at LCL
-REAL, DIMENSION(:), ALLOCATABLE    :: ZSZLCL  ! LCL height
-REAL, DIMENSION(:), ALLOCATABLE    :: ZSTHVELCL! envir. theta_v at LCL
-REAL, DIMENSION(:), ALLOCATABLE    :: ZSDXDY  ! grid area (m^2)
-!
-! grid scale variables
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZZ      ! height of model layer (m)
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZPRES   ! grid scale pressure
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZDPRES  ! pressure difference between
-                                              ! bottom and top of layer (Pa)
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZW      ! grid scale vertical velocity on theta grid
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZTT     ! temperature
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZTH     ! grid scale theta
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZTHV    ! grid scale theta_v
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZTHL    ! grid scale enthalpy (J/kg)
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZTHES, ZTHEST ! grid scale saturated theta_e
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZRW     ! grid scale total water (kg/kg)
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZRV     ! grid scale water vapor (kg/kg)
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZRC     ! grid scale cloud water (kg/kg)
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZRI     ! grid scale cloud ice (kg/kg)
-REAL, DIMENSION(:),   ALLOCATABLE  :: ZDXDY   ! grid area (m^2)
-!
-! updraft variables
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZUMF    ! updraft mass flux (kg/s)
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZUER    ! updraft entrainment (kg/s)
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZUDR    ! updraft detrainment (kg/s)
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZUTHL   ! updraft enthalpy (J/kg)
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZUTHV   ! updraft theta_v (K)
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZURW    ! updraft total water (kg/kg)
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZURC    ! updraft cloud water (kg/kg)
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZURI    ! updraft cloud ice   (kg/kg)
-REAL, DIMENSION(:),   ALLOCATABLE  :: ZMFLCL  ! cloud base unit mass flux(kg/s)
-REAL, DIMENSION(:),   ALLOCATABLE  :: ZCAPE   ! available potent. energy
-REAL, DIMENSION(:),   ALLOCATABLE  :: ZTHLCL  ! updraft theta at LCL
-REAL, DIMENSION(:),   ALLOCATABLE  :: ZTLCL   ! updraft temp. at LCL
-REAL, DIMENSION(:),   ALLOCATABLE  :: ZRVLCL  ! updraft rv at LCL
-REAL, DIMENSION(:),   ALLOCATABLE  :: ZWLCL   ! updraft w at LCL
-REAL, DIMENSION(:),   ALLOCATABLE  :: ZZLCL   ! LCL height
-REAL, DIMENSION(:),   ALLOCATABLE  :: ZTHVELCL! envir. theta_v at LCL
-!
-! downdraft variables
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZDMF    ! downdraft mass flux (kg/s)
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZDER    ! downdraft entrainment (kg/s)
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZDDR    ! downdraft detrainment (kg/s)
+INTEGER  :: ISDPL(D%NIT)   ! index for parcel departure level
+INTEGER  :: ISPBL(D%NIT)   ! index for source layer top
+INTEGER  :: ISLCL(D%NIT)   ! index for lifting condensation level
+REAL     :: ZSTHLCL(D%NIT) ! updraft theta at LCL/L
+REAL     :: ZSTLCL(D%NIT)  ! updraft temp. at LCL
+REAL     :: ZSRVLCL(D%NIT) ! updraft rv at LCL
+REAL     :: ZSWLCL(D%NIT)  ! updraft w at LCL
+REAL     :: ZSZLCL(D%NIT)  ! LCL height
+REAL     :: ZSTHVELCL(D%NIT)! envir. theta_v at LCL
 !
-! closure variables
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZLMASS  ! mass of model layer (kg)
-REAL, DIMENSION(:),   ALLOCATABLE  :: ZTIMEC  ! advective time period
+LOGICAL    :: GTRIG1(D%NIT)  ! logical mask for convection
 !
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZTHC    ! conv. adj. grid scale theta
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZRVC    ! conv. adj. grid scale r_w
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZRCC    ! conv. adj. grid scale r_c
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZRIC    ! conv. adj. grid scale r_i
-REAL, DIMENSION(:,:), ALLOCATABLE  :: ZWSUB   ! envir. compensating subsidence (Pa/s)
-!
-LOGICAL, DIMENSION(:),ALLOCATABLE  :: GTRIG1  ! logical mask for convection
-LOGICAL, DIMENSION(:),ALLOCATABLE  :: GWORK   ! logical work array
-INTEGER, DIMENSION(:),ALLOCATABLE  :: IINDEX, IJINDEX, IJSINDEX, IJPINDEX!hor.index
-REAL, DIMENSION(:),   ALLOCATABLE  :: ZCPH    ! specific heat C_ph
-REAL, DIMENSION(:),   ALLOCATABLE  :: ZLV, ZLS! latent heat of vaporis., sublim.
-REAL                               :: ZES     ! saturation vapor mixng ratio
-!
-! Chemical Tracers:
-REAL, DIMENSION(:,:,:), ALLOCATABLE:: ZCH1    ! grid scale chemical specy (kg/kg)
-REAL, DIMENSION(:,:,:), ALLOCATABLE:: ZCH1C   ! conv. adjust. chemical specy 1
-REAL, DIMENSION(:,:),   ALLOCATABLE:: ZWORK3  ! conv. adjust. chemical specy 1
-LOGICAL, DIMENSION(:,:,:),ALLOCATABLE::GTRIG4 ! logical mask
+TYPE(CONVPAREXT) :: CVPEXT
 !
 !-------------------------------------------------------------------------------
 !
@@ -258,697 +181,51 @@ LOGICAL, DIMENSION(:,:,:),ALLOCATABLE::GTRIG4 ! logical mask
 !*       0.3    Compute loop bounds
 !               -------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
+
 IF (LHOOK) CALL DR_HOOK('SHALLOW_CONVECTION',0,ZHOOK_HANDLE)
-IIB = KIDIA
-IIE = KFDIA
-JCVEXB = MAX( 0, KBDIA - 1 )
-IKB = 1 + JCVEXB
-IKS = KLEV
-JCVEXT = MAX( 0, KTDIA - 1)
-IKE = IKS - JCVEXT
-!
-!
-!*       0.5    Update convective counter ( where KCOUNT > 0
-!               convection is still active ).
-!               ---------------------------------------------
-!
-GTRIG(:) = .FALSE.
-GTRIG(IIB:IIE) = .TRUE.
-ITEST = COUNT( GTRIG(:) )
-IF ( ITEST == 0 )  THEN
-  IF (LHOOK) CALL DR_HOOK('SHALLOW_CONVECTION',1,ZHOOK_HANDLE)
-  RETURN
-ENDIF
 
-!
-!
-!*       0.7    Reset convective tendencies to zero if convective
-!               counter becomes negative
-!               -------------------------------------------------
-!
-GTRIG3(:,:) = SPREAD( GTRIG(:), DIM=2, NCOPIES=IKS )
-WHERE ( GTRIG3(:,:) )
-  PTTEN(:,:)  = 0.
-  PRVTEN(:,:) = 0.
-  PRCTEN(:,:) = 0.
-  PRITEN(:,:) = 0.
-! PUTEN(:,:)  = 0.
-! PVTEN(:,:)  = 0.
-  PUMF(:,:)   = 0.
-END WHERE
-WHERE ( GTRIG(:) )
-  KCLTOP(:)  = 0
-  KCLBAS(:)  = 0
-END WHERE
-IF ( OCH1CONV ) THEN
-  ALLOCATE( GTRIG4(KLON,KLEV,KCH1) )
-  GTRIG4(:,:,:) = SPREAD( GTRIG3(:,:), DIM=3, NCOPIES=KCH1 )
-  WHERE( GTRIG4(:,:,:) ) PCH1TEN(:,:,:) = 0.
-  DEALLOCATE( GTRIG4 )
-END IF
-!
-!
-!*       1.     Initialize  local variables
-!               ----------------------------
-!
-ZEPS   = XRD / XRV
-ZEPSA  = XRV / XRD
-ZRDOCP = XRD / XCPD
-!
-!-------------------------------------------------------------------------------
-!
-!*       1.1    Set up grid scale theta, theta_v, theta_es
-!               ------------------------------------------
-!
-ZTHT(:,:) = 300.
-ZSTHV(:,:)= 300.
-ZSTHES(:,:)= 400.
-DO JK = IKB, IKE
-DO JI = IIB, IIE
-  IF ( PPABST(JI,JK) > 40.E2 ) THEN
-    ZTHT(JI,JK)  = PTT(JI,JK) * ( XP00 / PPABST(JI,JK) ) ** ZRDOCP
-    ZSTHV(JI,JK) = ZTHT(JI,JK) * ( 1. + ZEPSA * PRVT(JI,JK) ) /              &
-                   ( 1. + PRVT(JI,JK) + PRCT(JI,JK) + PRIT(JI,JK) )
-!
-        ! use conservative Bolton (1980) formula for theta_e
-        ! it is used to compute CAPE for undilute parcel ascent
-        ! For economical reasons we do not use routine CONVECT_SATMIXRATIO here
-!
-    ZES = EXP( XALPW - XBETAW / PTT(JI,JK) - XGAMW * LOG( PTT(JI,JK) ) )
-    ZES = MIN( 1., ZEPS * ZES / ( PPABST(JI,JK) - ZES ) )
-    ZSTHES(JI,JK) = PTT(JI,JK) * ( ZTHT(JI,JK) / PTT(JI,JK) ) **             &
-              ( 1. - 0.28 * ZES ) * EXP( ( 3374.6525 / PTT(JI,JK) - 2.5403 ) &
-                                        * ZES * ( 1. + 0.81 * ZES ) )
-  END IF
-END DO
-END DO
-!
-!-------------------------------------------------------------------------------
-!
-!*       2.     Test for convective columns and determine properties at the LCL
-!               --------------------------------------------------------------
-!
-!*       2.1    Allocate arrays depending on number of model columns that need
-!               to be tested for convection (i.e. where no convection is present
-!               at the moment.
-!               --------------------------------------------------------------
-!
-ALLOCATE( ZPRES(ITEST,IKS) )
-ALLOCATE( ZZ(ITEST,IKS) )
-ALLOCATE( ZW(ITEST,IKS) )
-ALLOCATE( ZTH(ITEST,IKS) )
-ALLOCATE( ZTHV(ITEST,IKS) )
-ALLOCATE( ZTHEST(ITEST,IKS) )
-ALLOCATE( ZRV(ITEST,IKS) )
-ALLOCATE( ZSTHLCL(ITEST) )
-ALLOCATE( ZSTLCL(ITEST) )
-ALLOCATE( ZSRVLCL(ITEST) )
-ALLOCATE( ZSWLCL(ITEST) )
-ALLOCATE( ZSZLCL(ITEST) )
-ALLOCATE( ZSTHVELCL(ITEST) )
-ALLOCATE( ISDPL(ITEST) )
-ALLOCATE( ISPBL(ITEST) )
-ALLOCATE( ISLCL(ITEST) )
-ALLOCATE( ZSDXDY(ITEST) )
-ALLOCATE( GTRIG1(ITEST) )
-ALLOCATE( IINDEX(KLON) )
-ALLOCATE( IJSINDEX(ITEST) )
-DO JI = 1, KLON
-  IINDEX(JI) = JI
-END DO
-IJSINDEX(:) = PACK( IINDEX(:), MASK=GTRIG(:) )
-!
-DO JK = IKB, IKE
-DO JI = 1, ITEST
-  JL = IJSINDEX(JI)
-  ZPRES(JI,JK)  = PPABST(JL,JK)
-  ZZ(JI,JK)     = PZZ(JL,JK)
-  ZTH(JI,JK)    = ZTHT(JL,JK)
-  ZTHV(JI,JK)   = ZSTHV(JL,JK)
-  ZTHEST(JI,JK) = ZSTHES(JL,JK)
-  ZRV(JI,JK)    = MAX( 0., PRVT(JL,JK) )
-  ZW(JI,JK)     = PWT(JL,JK)
-END DO
-END DO
-DO JI = 1, ITEST
-  JL = IJSINDEX(JI)
-  ZSDXDY(JI)    = XA25
-END DO
-!
-!*       2.2    Compute environm. enthalpy and total water = r_v + r_i + r_c
-!               and envir. saturation theta_e
-!               ------------------------------------------------------------
-!
-!
-!*       2.3    Test for convective columns and determine properties at the LCL
-!               --------------------------------------------------------------
-!
-ISLCL(:) = MAX( IKB, 2 )   ! initialize DPL PBL and LCL
-ISDPL(:) = IKB
-ISPBL(:) = IKB
-!
-CALL CONVECT_TRIGGER_SHAL(  ITEST, KLEV,                              &
-                            ZPRES, ZTH, ZTHV, ZTHEST,                 &
-                            ZRV, ZW, ZZ, ZSDXDY, PTKECLS,             &
-                            ZSTHLCL, ZSTLCL, ZSRVLCL, ZSWLCL, ZSZLCL, &
-                            ZSTHVELCL, ISLCL, ISDPL, ISPBL, GTRIG1    )
-!
+CVPEXT%JCVEXB = MAX( 0, KBDIA - 1 )
+CVPEXT%JCVEXT = MAX( 0, KTDIA - 1)
 
-DEALLOCATE( ZPRES )
-DEALLOCATE( ZZ )
-DEALLOCATE( ZTH )
-DEALLOCATE( ZTHV )
-DEALLOCATE( ZTHEST )
-DEALLOCATE( ZRV )
-DEALLOCATE( ZW )
-!
-!-------------------------------------------------------------------------------
-!
-!*       3.     After the call of TRIGGER_FUNCT we allocate all the dynamic
-!               arrays used in the convection scheme using the mask GTRIG, i.e.
-!               we do calculus only in convective columns. This corresponds to
-!               a GATHER operation.
-!               --------------------------------------------------------------
+ZRDOCP = CST%XRD / CST%XCPD
 
-!
-ICONV = COUNT( GTRIG1(:) )
-IF ( ICONV == 0 )  THEN
-  DEALLOCATE( ZSTHLCL )
-  DEALLOCATE( ZSTLCL )
-  DEALLOCATE( ZSRVLCL )
-  DEALLOCATE( ZSWLCL )
-  DEALLOCATE( ZSZLCL )
-  DEALLOCATE( ZSTHVELCL )
-  DEALLOCATE( ZSDXDY )
-  DEALLOCATE( ISLCL )
-  DEALLOCATE( ISDPL )
-  DEALLOCATE( ISPBL )
-  DEALLOCATE( GTRIG1 )
-  DEALLOCATE( IINDEX )
-  DEALLOCATE( IJSINDEX )
-  IF (LHOOK) CALL DR_HOOK('SHALLOW_CONVECTION',1,ZHOOK_HANDLE)
-  RETURN   ! no convective column has been found, exit DEEP_CONVECTION
-ENDIF
-!
-     ! vertical index variables
-!
-ALLOCATE( IDPL(ICONV) )
-ALLOCATE( IPBL(ICONV) )
-ALLOCATE( ILCL(ICONV) )
-ALLOCATE( ICTL(ICONV) )
-ALLOCATE( IETL(ICONV) )
-!
-     ! grid scale variables
-!
-ALLOCATE( ZZ(ICONV,IKS) ) ;   ZZ  = 0.0
-ALLOCATE( ZPRES(ICONV,IKS) );   ZPRES = 0.0
-ALLOCATE( ZDPRES(ICONV,IKS) ) ;   ZDPRES = 0.0
-ALLOCATE( ZTT(ICONV, IKS) ) ;   ZTT    = 0.0
-ALLOCATE( ZTH(ICONV,IKS) ) ;   ZTH    = 0.0
-ALLOCATE( ZTHV(ICONV,IKS) )   ;   ZTHV   = 0.0
-ALLOCATE( ZTHL(ICONV,IKS) )  ; ZTHL  = 0.0
-ALLOCATE( ZTHES(ICONV,IKS) )  ; ZTHES = 0.0
-ALLOCATE( ZRV(ICONV,IKS) ) ; ZRV   = 0.0
-ALLOCATE( ZRC(ICONV,IKS) )   ; ZRC   = 0.0
-ALLOCATE( ZRI(ICONV,IKS) )   ; ZRI   = 0.0
-ALLOCATE( ZRW(ICONV,IKS) )   ; ZRW   = 0.0
-ALLOCATE( ZDXDY(ICONV) )  ; ZDXDY = 0.0
-!
-         ! updraft variables
-!
-ALLOCATE( ZUMF(ICONV,IKS) )
-ALLOCATE( ZUER(ICONV,IKS) )
-ALLOCATE( ZUDR(ICONV,IKS) )
-ALLOCATE( ZUTHL(ICONV,IKS) )
-ALLOCATE( ZUTHV(ICONV,IKS) )
-ALLOCATE( ZURW(ICONV,IKS) )
-ALLOCATE( ZURC(ICONV,IKS) )
-ALLOCATE( ZURI(ICONV,IKS) )
-ALLOCATE( ZTHLCL(ICONV) )
-ALLOCATE( ZTLCL(ICONV) )
-ALLOCATE( ZRVLCL(ICONV) )
-ALLOCATE( ZWLCL(ICONV) )
-ALLOCATE( ZMFLCL(ICONV) )
-ALLOCATE( ZZLCL(ICONV) )
-ALLOCATE( ZTHVELCL(ICONV) )
-ALLOCATE( ZCAPE(ICONV) )
-!
-         ! work variables
-!
-ALLOCATE( IJINDEX(ICONV) )
-ALLOCATE( IJPINDEX(ICONV) )
-ALLOCATE( ZCPH(ICONV) )
-ALLOCATE( ZLV(ICONV) )
-ALLOCATE( ZLS(ICONV) )
-!
-!
-!*           3.1    Gather grid scale and updraft base variables in
-!                   arrays using mask GTRIG
-!                   ---------------------------------------------------
-!
-GTRIG(:)      = UNPACK( GTRIG1(:), MASK=GTRIG, FIELD=.FALSE. )
-IJINDEX(:)    = PACK( IINDEX(:), MASK=GTRIG(:) )
-!
-DO JK = IKB, IKE
-DO JI = 1, ICONV
-  JL = IJINDEX(JI)
-  ZZ(JI,JK)     = PZZ(JL,JK)
-  ZPRES(JI,JK)  = PPABST(JL,JK)
-  ZTT(JI,JK)    = PTT(JL,JK)
-  ZTH(JI,JK)    = ZTHT(JL,JK)
-  ZTHES(JI,JK)  = ZSTHES(JL,JK)
-  ZRV(JI,JK)    = MAX( 0., PRVT(JL,JK) )
-  ZRC(JI,JK)    = MAX( 0., PRCT(JL,JK) )
-  ZRI(JI,JK)    = MAX( 0., PRIT(JL,JK) )
-  ZTHV(JI,JK)   = ZSTHV(JL,JK)
-END DO
-END DO
-!
-DO JI = 1, ITEST
-  IJSINDEX(JI) = JI
-END DO
-IJPINDEX(:) = PACK( IJSINDEX(:), MASK=GTRIG1(:) )
-DO JI = 1, ICONV
-  JL = IJPINDEX(JI)
-  IDPL(JI)      = ISDPL(JL)
-  IPBL(JI)      = ISPBL(JL)
-  ILCL(JI)      = ISLCL(JL)
-  ZTHLCL(JI)    = ZSTHLCL(JL)
-  ZTLCL(JI)     = ZSTLCL(JL)
-  ZRVLCL(JI)    = ZSRVLCL(JL)
-  ZWLCL(JI)     = ZSWLCL(JL)
-  ZZLCL(JI)     = ZSZLCL(JL)
-  ZTHVELCL(JI)  = ZSTHVELCL(JL)
-  ZDXDY(JI)     = ZSDXDY(JL)
-END DO
-ALLOCATE( GWORK(ICONV) )
-GWORK(:)      = PACK( GTRIG1(:),  MASK=GTRIG1(:) )
-DEALLOCATE( GTRIG1 )
-ALLOCATE( GTRIG1(ICONV) )
-GTRIG1(:)     = GWORK(:)
-!
-DEALLOCATE( GWORK )
-DEALLOCATE( IJPINDEX )
-DEALLOCATE( ISDPL )
-DEALLOCATE( ISPBL )
-DEALLOCATE( ISLCL )
-DEALLOCATE( ZSTHLCL )
-DEALLOCATE( ZSTLCL )
-DEALLOCATE( ZSRVLCL )
-DEALLOCATE( ZSWLCL )
-DEALLOCATE( ZSZLCL )
-DEALLOCATE( ZSTHVELCL )
-DEALLOCATE( ZSDXDY )
-!
-!
-!*           3.2    Compute pressure difference
-!                   ---------------------------------------------------
-!
-ZDPRES(:,IKB) = 0.
-DO JK = IKB + 1, IKE
-  ZDPRES(:,JK)  = ZPRES(:,JK-1) - ZPRES(:,JK)
-END DO
-!
-!*           3.3   Compute environm. enthalpy and total water = r_v + r_i + r_c
-!                  ----------------------------------------------------------
-!
-DO JK = IKB, IKE, 1
-  ZRW(:,JK)  = ZRV(:,JK) + ZRC(:,JK) + ZRI(:,JK)
-  ZCPH(:)    = XCPD + XCPV * ZRW(:,JK)
-  ZLV(:)     = XLVTT + ( XCPV - XCL ) * ( ZTT(:,JK) - XTT ) ! compute L_v
-  ZLS(:)     = XLSTT + ( XCPV - XCI ) * ( ZTT(:,JK) - XTT ) ! compute L_i
-  ZTHL(:,JK) = ZCPH(:) * ZTT(:,JK) + ( 1. + ZRW(:,JK) ) * XG * ZZ(:,JK) &
-               - ZLV(:) * ZRC(:,JK) - ZLS(:) * ZRI(:,JK)
-END DO
-!
-DEALLOCATE( ZCPH )
-DEALLOCATE( ZLV )
-DEALLOCATE( ZLS )
-!
-!-------------------------------------------------------------------------------
-!
-!*           4.     Compute updraft properties
-!                   ----------------------------
-!
-!*           4.1    Set mass flux at LCL ( here a unit mass flux with w = 1 m/s )
-!                   -------------------------------------------------------------
-!
-ZDXDY(:)  = XA25
-ZMFLCL(:) = XA25 * 1.E-3
-!
-!
-!
-CALL CONVECT_UPDRAFT_SHAL( ICONV, KLEV,                                     &
-                           KICE, ZPRES, ZDPRES, ZZ, ZTHL, ZTHV, ZTHES, ZRW, &
-                           ZTHLCL, ZTLCL, ZRVLCL, ZWLCL, ZZLCL, ZTHVELCL,   &
-                           ZMFLCL, GTRIG1, ILCL, IDPL, IPBL,                &
-                           ZUMF, ZUER, ZUDR, ZUTHL, ZUTHV, ZURW,            &
-                           ZURC, ZURI, ZCAPE, ICTL, IETL                    )
-!
-!
-!
-!*           4.2    In routine UPDRAFT GTRIG1 has been set to false when cloud
-!                   thickness is smaller than 3 km
-!                   -----------------------------------------------------------
-!
-!
-!
-!*       4.3    Allocate memory for downdraft variables
-!               ---------------------------------------
-!
-! downdraft variables
-!
-  ALLOCATE( ZDMF(ICONV,IKS) )
-  ALLOCATE( ZDER(ICONV,IKS) )
-  ALLOCATE( ZDDR(ICONV,IKS) )
-  ALLOCATE( ILFS(ICONV) )
-  ALLOCATE( ZLMASS(ICONV,IKS) )
-  ZDMF(:,:) = 0.
-  ZDER(:,:) = 0.
-  ZDDR(:,:) = 0.
-  ILFS(:)   = IKB
-  DO JK = IKB, IKE
-    ZLMASS(:,JK)  = ZDXDY(:) * ZDPRES(:,JK) / XG  ! mass of model layer
-  END DO
-  ZLMASS(:,IKB) = ZLMASS(:,IKB+1)
-!
-! closure variables
-!
-  ALLOCATE( ZTIMEC(ICONV) )
-  ALLOCATE( ZTHC(ICONV,IKS) )
-  ALLOCATE( ZRVC(ICONV,IKS) )
-  ALLOCATE( ZRCC(ICONV,IKS) )
-  ALLOCATE( ZRIC(ICONV,IKS) )
-  ALLOCATE( ZWSUB(ICONV,IKS) )
-!
-!-------------------------------------------------------------------------------
-!
-!*           5.     Compute downdraft properties
-!                   ----------------------------
-!
-  ZTIMEC(:) = XCTIME_SHAL
-  IF ( OSETTADJ ) ZTIMEC(:) = PTADJS
-!
-!*           7.     Determine adjusted environmental values assuming
-!                   that all available buoyant energy must be removed
-!                   within an advective time step ZTIMEC.
-!                   ---------------------------------------------------
-!
-  CALL CONVECT_CLOSURE_SHAL( ICONV, KLEV,                         &
-                             ZPRES, ZDPRES, ZZ, ZDXDY, ZLMASS,    &
-                             ZTHL, ZTH, ZRW, ZRC, ZRI, GTRIG1,    &
-                             ZTHC, ZRVC, ZRCC, ZRIC, ZWSUB,       &
-                             ILCL, IDPL, IPBL, ICTL,              &
-                             ZUMF, ZUER, ZUDR, ZUTHL, ZURW,       &
-                             ZURC, ZURI, ZCAPE, ZTIMEC, IFTSTEPS  )
-!
-!-------------------------------------------------------------------------------
-!
-!*           8.     Determine the final grid-scale (environmental) convective
-!                   tendencies and set convective counter
-!                   --------------------------------------------------------
-!
-!
-!*           8.1    Grid scale tendencies
-!                   ---------------------
-!
-          ! in order to save memory, the tendencies are temporarily stored
-          ! in the tables for the adjusted grid-scale values
-!
-  DO JK = IKB, IKE
-     ZTHC(:,JK) = ( ZTHC(:,JK) - ZTH(:,JK) ) / ZTIMEC(:)             &
-       * ( ZPRES(:,JK) / XP00 ) ** ZRDOCP ! change theta in temperature
-     ZRVC(:,JK) = ( ZRVC(:,JK) - ZRW(:,JK) + ZRC(:,JK) + ZRI(:,JK) ) &
-                                          / ZTIMEC(:)
+CALL SHALLOW_CONVECTION_PART1&
+   (CVPEXT, CVP_SHAL, CST, D, NSV, CONVPAR, KBDIA, KTDIA, &
+    KICE, OSETTADJ, PTADJS, PPABST, PZZ, &
+    PTKECLS, PTT, PRVT, PRCT, PRIT, PWT, &
+    PTTEN, PRVTEN, PRCTEN, PRITEN,       &
+    KCLTOP, KCLBAS, PUMF, OCH1CONV, KCH1,&
+    PCH1, PCH1TEN, ZTHT, ZSTHV, ZSTHES,  &
+    ISDPL, ISPBL, ISLCL, ZSTHLCL, ZSTLCL,&
+    ZSRVLCL, ZSWLCL, ZSZLCL, ZSTHVELCL, GTRIG1)
 
-     ZRCC(:,JK) = ( ZRCC(:,JK) - ZRC(:,JK) ) / ZTIMEC(:)
-     ZRIC(:,JK) = ( ZRIC(:,JK) - ZRI(:,JK) ) / ZTIMEC(:)
-!
-  END DO
-!
-!
-!*           8.2    Apply conservation correction
-!                   -----------------------------
-!
-          ! adjustment at cloud top to smooth possible discontinuous profiles at PBL inversions
-          ! (+ - - tendencies for moisture )
-!
-!
-IF (LLSMOOTH) THEN
-  DO JI = 1, ICONV
-     JK = ICTL(JI)
-     JKM= MAX(2,ICTL(JI)-1)
-     JKP= MAX(2,ICTL(JI)-2)
-     ZRVC(JI,JKM) = ZRVC(JI,JKM) + .5 * ZRVC(JI,JK)
-     ZRCC(JI,JKM) = ZRCC(JI,JKM) + .5 * ZRCC(JI,JK)
-     ZRIC(JI,JKM) = ZRIC(JI,JKM) + .5 * ZRIC(JI,JK)
-     ZTHC(JI,JKM) = ZTHC(JI,JKM) + .5 * ZTHC(JI,JK)
-     ZRVC(JI,JKP) = ZRVC(JI,JKP) + .3 * ZRVC(JI,JK)
-     ZRCC(JI,JKP) = ZRCC(JI,JKP) + .3 * ZRCC(JI,JK)
-     ZRIC(JI,JKP) = ZRIC(JI,JKP) + .3 * ZRIC(JI,JK)
-     ZTHC(JI,JKP) = ZTHC(JI,JKP) + .3 * ZTHC(JI,JK)
-     ZRVC(JI,JK)  = .2 * ZRVC(JI,JK)
-     ZRCC(JI,JK)  = .2 * ZRCC(JI,JK)
-     ZRIC(JI,JK)  = .2 * ZRIC(JI,JK)
-     ZTHC(JI,JK)  = .2 * ZTHC(JI,JK)
-  END DO
+ICONV = COUNT(GTRIG1(D%NIB:D%NIE))
+
+IF(ICONV==0)THEN
+  ! Do nothing if there are no selected columns
+ELSE IF (ICONV < D%NIT*9/10) THEN
+  CALL SHALLOW_CONVECTION_PART2_SELECT &
+                             & (CVP_SHAL, CVPEXT, CST, D, NSV, CONVPAR, KICE, &
+                                OSETTADJ, PTADJS, PPABST, PZZ, PTT,  &
+                                PRVT, PRCT, PRIT, OCH1CONV, KCH1,    &
+                                PCH1, ZRDOCP, ZTHT, ZSTHV, ZSTHES,   &
+                                ISDPL, ISPBL, ISLCL, ZSTHLCL, ZSTLCL,&
+                                ZSRVLCL, ZSWLCL, ZSZLCL, ZSTHVELCL,  &
+                                GTRIG1, PUMF, PTTEN, PRVTEN, PRCTEN, &
+                                PRITEN, KCLTOP, KCLBAS, PCH1TEN, ICONV)
+ELSE
+  CALL SHALLOW_CONVECTION_PART2 &
+                             & (CVP_SHAL, CVPEXT, CST, D, NSV, CONVPAR, KICE, &
+                                OSETTADJ, PTADJS, PPABST, PZZ, PTT,  &
+                                PRVT, PRCT, PRIT, OCH1CONV, KCH1,    &
+                                PCH1, ZRDOCP, ZTHT, ZSTHV, ZSTHES,   &
+                                ISDPL, ISPBL, ISLCL, ZSTHLCL, ZSTLCL,&
+                                ZSRVLCL, ZSWLCL, ZSZLCL, ZSTHVELCL,  &
+                                GTRIG1, PUMF, PTTEN, PRVTEN, PRCTEN, &
+                                PRITEN, KCLTOP, KCLBAS, PCH1TEN)
 ENDIF
-!
-!
-          ! Compute vertical integrals - Fluxes
-!
-  !JKM = MAXVAL( ICTL(:) )
-  JKM = IKE
-  ZWORK2(:) = 0.
-  ZWORK2B(:) = 0.
-  DO JK = IKB+1, JKM
-    JKP = JK + 1
-    DO JI = 1, ICONV
-      IF ( JK <= ICTL(JI) ) THEN
-      ZW1 =  ZRVC(JI,JK) + ZRCC(JI,JK) + ZRIC(JI,JK)
-      ZWORK2(JI) = ZWORK2(JI) +  ZW1 *          & ! moisture
-                                  .5 * (ZPRES(JI,JK-1) - ZPRES(JI,JKP)) / XG
-      ZW1 = ( XCPD + XCPV * ZRW(JI,JK) )* ZTHC(JI,JK)   - &
-            ( XLVTT + ( XCPV - XCL ) * ( ZTT(JI,JK) - XTT ) ) * ZRCC(JI,JK) - &
-            ( XLSTT + ( XCPV - XCL ) * ( ZTT(JI,JK) - XTT ) ) * ZRIC(JI,JK)
-      ZWORK2B(JI) = ZWORK2B(JI) + ZW1 *         & ! energy
-                                  .5 * (ZPRES(JI,JK-1) - ZPRES(JI,JKP)) / XG
-      END IF
-    END DO
-  END DO
-!
-          ! Budget error (integral must be zero)
-!
-  DO JI = 1, ICONV
-    IF ( ICTL(JI) > IKB+1 ) THEN
-      JKP = ICTL(JI)
-      ZW1 = XG / ( ZPRES(JI,IKB) - ZPRES(JI,JKP) - &
-                .5 * (ZDPRES(JI,IKB+1) - ZDPRES(JI,JKP+1)) )
-      ZWORK2(JI) =  ZWORK2(JI) * ZW1
-      ZWORK2B(JI) = ZWORK2B(JI)* ZW1
-    END IF
-  END DO
-!
-          ! Apply uniform correction
-!
-  DO JK = JKM, IKB+1, -1
-  DO JI = 1, ICONV
-    IF ( ICTL(JI) > IKB+1 .AND. JK <= ICTL(JI) ) THEN
-      ! ZW1 = ABS(ZRVC(JI,JK)) +  ABS(ZRCC(JI,JK)) +  ABS(ZRIC(JI,JK)) + 1.E-12
-      ! ZRVC(JI,JK) = ZRVC(JI,JK) - ABS(ZRVC(JI,JK))/ZW1*ZWORK2(JI)           ! moisture
-      ZRVC(JI,JK) = ZRVC(JI,JK) - ZWORK2(JI)                                ! moisture
-      ! ZRCC(JI,JK) = ZRCC(JI,JK) - ABS(ZRCC(JI,JK))/ZW1*ZWORK2(JI)
-      ! ZRIC(JI,JK) = ZRIC(JI,JK) - ABS(ZRIC(JI,JK))/ZW1*ZWORK2(JI)
-      ZTHC(JI,JK) = ZTHC(JI,JK) - ZWORK2B(JI) /  XCPD                       ! enthalpy
-    END IF
-  END DO
-  END DO
-!
-          ! execute a "scatter"= pack command to store the tendencies in
-          ! the final 2D tables
-!
-  DO JK = IKB, IKE
-  DO JI = 1, ICONV
-    JL = IJINDEX(JI)
-    PTTEN(JL,JK)   = ZTHC(JI,JK)
-    PRVTEN(JL,JK)  = ZRVC(JI,JK)
-    PRCTEN(JL,JK)  = ZRCC(JI,JK)
-    PRITEN(JL,JK)  = ZRIC(JI,JK)
-  END DO
-  END DO
-!
-!
-!                   Cloud base and top levels
-!                   -------------------------
-!
-  ILCL(:) = MIN( ILCL(:), ICTL(:) )
-  DO JI = 1, ICONV
-    JL = IJINDEX(JI)
-    KCLTOP(JL) = ICTL(JI)
-    KCLBAS(JL) = ILCL(JI)
-  END DO
-!
-!
-!*           8.7    Compute convective tendencies for Tracers
-!                   ------------------------------------------
-!
-  IF ( OCH1CONV ) THEN
-!
-    ALLOCATE( ZCH1(ICONV,IKS,KCH1) )
-    ALLOCATE( ZCH1C(ICONV,IKS,KCH1) )
-    ALLOCATE( ZWORK3(ICONV,KCH1) )
-!
-    DO JK = IKB, IKE
-    DO JI = 1, ICONV
-      JL = IJINDEX(JI)
-      ZCH1(JI,JK,:) = PCH1(JL,JK,:)
-    END DO
-    END DO
-!
-    CALL CONVECT_CHEM_TRANSPORT( ICONV, KLEV, KCH1, ZCH1, ZCH1C,          &
-                                 IDPL, IPBL, ILCL, ICTL, ILFS, ILFS,      &
-                                 ZUMF, ZUER, ZUDR, ZDMF, ZDER, ZDDR,      &
-                                 ZTIMEC, ZDXDY, ZDMF(:,1), ZLMASS, ZWSUB, &
-                                 IFTSTEPS )
-!
-!
-!*           8.8    Apply conservation correction
-!                   -----------------------------
-!
-          ! Compute vertical integrals
-!
-    !JKM = MAXVAL( ICTL(:) )
-    JKM = IKE
-    DO JN = 1, KCH1
-      IF(JN < NSV_LGBEG .OR. JN>NSV_LGEND-1) THEN ! no correction for xy lagrangian variables
-        ZWORK3(:,JN) = 0.
-        ZWORK2(:)    = 0.
-        DO JK = IKB+1, JKM
-          JKP = JK + 1
-          DO JI = 1, ICONV
-            ZW1 = .5 * (ZPRES(JI,JK-1) - ZPRES(JI,JKP))
-            ZWORK3(JI,JN) = ZWORK3(JI,JN) + (ZCH1C(JI,JK,JN)-ZCH1(JI,JK,JN)) * ZW1
-            ZWORK2(JI)    = ZWORK2(JI)    + ABS(ZCH1C(JI,JK,JN)) * ZW1
-          END DO
-        END DO
-!
-             ! Apply concentration weighted correction
-!
-        DO JK = JKM, IKB+1, -1
-          DO JI = 1, ICONV
-            IF ( ICTL(JI) > IKB+1 .AND. JK <= ICTL(JI) ) THEN
-              ZCH1C(JI,JK,JN) = ZCH1C(JI,JK,JN) -   &
-                                ZWORK3(JI,JN)*ABS(ZCH1C(JI,JK,JN))/MAX(1.E-30,ZWORK2(JI))
-            END IF
-          END DO
-        END DO
-      END IF
-!
-      DO JK = IKB, IKE
-        DO JI = 1, ICONV
-          JL = IJINDEX(JI)
-          PCH1TEN(JL,JK,JN) = (ZCH1C(JI,JK,JN)-ZCH1(JI,JK,JN) ) / ZTIMEC(JI)
-        END DO
-      END DO
-    END DO
-  END IF
-!
-!-------------------------------------------------------------------------------
-!
-!*           9.     Write up- and downdraft mass fluxes
-!                   ------------------------------------
-!
-  DO JK = IKB, IKE
-    ZUMF(:,JK)  = ZUMF(:,JK) / ZDXDY(:) ! Mass flux per unit area
-  END DO
-  ZWORK2(:) = 1.
-  DO JK = IKB, IKE
-  DO JI = 1, ICONV
-    JL = IJINDEX(JI)
-    IF ( KCLTOP(JL) <= IKB+1 ) ZWORK2(JL) = 0.
-    PUMF(JL,JK) = ZUMF(JI,JK) * ZWORK2(JL)
-  END DO
-  END DO
-!
-!-------------------------------------------------------------------------------
-!
-!*           10.    Deallocate all local arrays
-!                   ---------------------------
-!
-! downdraft variables
-!
-  DEALLOCATE( ZDMF )
-  DEALLOCATE( ZDER )
-  DEALLOCATE( ZDDR )
-  DEALLOCATE( ILFS )
-  DEALLOCATE( ZLMASS )
-!
-!   closure variables
-!
-  DEALLOCATE( ZTIMEC )
-  DEALLOCATE( ZTHC )
-  DEALLOCATE( ZRVC )
-  DEALLOCATE( ZRCC )
-  DEALLOCATE( ZRIC )
-  DEALLOCATE( ZWSUB )
-!
-  IF ( OCH1CONV ) THEN
-    DEALLOCATE( ZCH1 )
-    DEALLOCATE( ZCH1C )
-    DEALLOCATE( ZWORK3 )
-  END IF
-!
-!    vertical index
-!
-DEALLOCATE( IDPL )
-DEALLOCATE( IPBL )
-DEALLOCATE( ILCL )
-DEALLOCATE( ICTL )
-DEALLOCATE( IETL )
-!
-! grid scale variables
-!
-DEALLOCATE( ZZ )
-DEALLOCATE( ZPRES )
-DEALLOCATE( ZDPRES )
-DEALLOCATE( ZTT )
-DEALLOCATE( ZTH )
-DEALLOCATE( ZTHV )
-DEALLOCATE( ZTHL )
-DEALLOCATE( ZTHES )
-DEALLOCATE( ZRW )
-DEALLOCATE( ZRV )
-DEALLOCATE( ZRC )
-DEALLOCATE( ZRI )
-DEALLOCATE( ZDXDY )
-!
-! updraft variables
-!
-DEALLOCATE( ZUMF )
-DEALLOCATE( ZUER )
-DEALLOCATE( ZUDR )
-DEALLOCATE( ZUTHL )
-DEALLOCATE( ZUTHV )
-DEALLOCATE( ZURW )
-DEALLOCATE( ZURC )
-DEALLOCATE( ZURI )
-DEALLOCATE( ZTHLCL )
-DEALLOCATE( ZTLCL )
-DEALLOCATE( ZRVLCL )
-DEALLOCATE( ZWLCL )
-DEALLOCATE( ZZLCL )
-DEALLOCATE( ZTHVELCL )
-DEALLOCATE( ZMFLCL )
-DEALLOCATE( ZCAPE )
-!
-! work arrays
-!
-DEALLOCATE( IINDEX )
-DEALLOCATE( IJINDEX )
-DEALLOCATE( IJSINDEX )
-DEALLOCATE( GTRIG1 )
-!
-!
+
 IF (LHOOK) CALL DR_HOOK('SHALLOW_CONVECTION',1,ZHOOK_HANDLE)
 END SUBROUTINE SHALLOW_CONVECTION
+
diff --git a/src/arome/ext/acvppkf.F90 b/src/arome/ext/acvppkf.F90
new file mode 100644
index 0000000000000000000000000000000000000000..e1de125a62a9e37a3c6c4735cced1779b02eda19
--- /dev/null
+++ b/src/arome/ext/acvppkf.F90
@@ -0,0 +1,577 @@
+!OPTIONS XOPT(NOEVAL)
+!-----------------------------------------------------------------
+SUBROUTINE ACVPPKF(YDCST, YDML_PHY_MF, YDCPG_BNDS, YDCPG_OPTS, KTDIA, PAPRSF, PAPHIF, PDELP,  PR, PT, &
+& PQ, PQL, PQI, PU, PV, PCP, PTKE, PDIFCQ, PDIFCS, PFCCQL, PFCCQN, PPRODTH, KNLAB,  PQCPP, PNEBPP,    &
+& KNND)
+
+!-----------------------------------------------------------------
+
+!  Authors  : E. Bazile and P. Bechtold  (CNRM/GMAP et L.A.)
+
+!-----------------------------------------------------------------
+
+!  Modified : 
+!  05/2002    phased with CONVECTION call for IFS/ECMWF 
+!            (routine cucalln.F90 calling both Tiedtke convection scheme
+!             and present scheme)
+!             ouput of present scheme (updraft QL and QV) provides also
+!             necessary parameters for Tiedtke prognostic cloud scheme
+!  03/2002  P. Marquet.  new  ZFHMLTS, ZFHEVPP in CPFHPRS (for Lopez)
+!  03/2002  P. Marquet.  new  LKFDEEP, LKFSHAL
+!  03/2002  P. Marquet.  "call deep_convection" 
+!                      > "call convection" (deep + shallow)
+!  09/2006  E. Bazile : Appel de la routine de shallow convection d'AROME
+!                       uniquement
+!  04/2008  E. Bazile : calcul du terme de production thermique PPROTH
+!  10/2008  Y. Bouteloup & F. Bouyssel : Correction of bugs in initialization
+!  07/2009  E. Bazile : TKE en entree de KFB et W fct de W_conv
+!  K. Yessad (Jul 2009): remove CDLOCK + some cleanings
+!  10/2009  F. Bouyssel : Limitation on maximal TKE value
+!  02/2010  E. Bazile : Correction for W without TKE scheme.
+!  04/2010  F. Bouyssel : Bug correction on KNLAB computation
+!  09/2010  O. Spaniel : Bug correction in expression SQRT(MIN)
+!  04/2011  F. Bouyssel : Correction of a jlon loop (kidia,kfdia)
+!  12/2012  E. Bazile   : Modif of W_turb and qc and cc fct of mass flux.
+!     R. El Khatib 22-Jun-2022 A contribution to simplify phasing after the refactoring of YOMCLI/YOMCST/YOETHF.
+
+!  Peter.Bechtold@ecmwf.int
+
+! Sequence de  routines :
+! aplpar > acvppkf > convection_shal
+
+! iv)  Momentum transport:
+!      Option LLUVTRANS: c'est possible d'utiliser maintenant
+!           mais pas encore bien teste. Donc par defaut mettre
+!           LLUVTRANS=.FALSE.
+
+! vi)   Traceurs passifs - chimie: 
+!      Cette partie est utilisee uniquement dans MOCAGE et dans MESONH
+!      Si on ne veut pas de transport de traceurs (ex. Ozone,CO) dans 
+!      ARPEGE/ECMWF IFS, mettre tout siplement OCHTRANS=FALSE et KCH1=0 
+!      (nombre de traceurs). PCH1 (traceur) et PCH1TEN (tendance 
+!      convective du traceur) ont alors les dimensions
+!      (KLON,KLEV,KCH1=0) qui ne prennent pas de place.
+
+!-----------------------------------------------------------------
+
+USE MODEL_PHYSICS_MF_MOD, ONLY : MODEL_PHYSICS_MF_TYPE
+USE PARKIND1            , ONLY : JPIM, JPRB
+USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK, JPHOOK
+
+USE YOMCST              , ONLY : TCST
+USE YOMLSFORC           , ONLY : LMUSCLFA, NMUSCLFA
+USE MODD_CONVPAR_SHAL   , ONLY : CONVPAR_SHAL
+
+USE MODD_NSV            , ONLY : NSV_LGBEG, NSV_LGEND, NSV_T
+USE MODD_DIMPHYEX       , ONLY : DIMPHYEX_T
+USE MODD_CONVPAR        , ONLY : CONVPAR_T, INI_CONVPAR
+USE CPG_OPTS_TYPE_MOD   , ONLY : CPG_BNDS_TYPE, CPG_OPTS_TYPE
+USE MODD_CST            , ONLY : CST_T, CST
+
+USE MODD_CONVPAR        , ONLY : CONVPAR_T, INI_CONVPAR
+USE MODD_CONVPAR_SHAL   , ONLY : CONVPAR_SHAL
+USE MODD_CONVPAREXT     , ONLY : CONVPAREXT
+USE MODD_DIMPHYEX       , ONLY : DIMPHYEX_T
+USE MODD_NSV            , ONLY : NSV_LGBEG, NSV_LGEND, NSV_T
+
+USE MODI_SHALLOW_CONVECTION_PART1
+USE MODI_SHALLOW_CONVECTION_PART2
+USE MODI_SHALLOW_CONVECTION_PART2_SELECT
+
+
+!-----------------------------------------------------------------
+
+IMPLICIT NONE
+
+TYPE(TCST)                  ,INTENT(IN)     :: YDCST
+TYPE(MODEL_PHYSICS_MF_TYPE) ,INTENT(IN)     :: YDML_PHY_MF
+TYPE(CPG_BNDS_TYPE)         ,INTENT(IN)     :: YDCPG_BNDS
+TYPE(CPG_OPTS_TYPE)         ,INTENT(IN)     :: YDCPG_OPTS
+INTEGER(KIND=JPIM)          ,INTENT(IN)     :: KTDIA 
+REAL(KIND=JPRB)             ,INTENT(IN)     :: PAPRSF(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) 
+REAL(KIND=JPRB)             ,INTENT(IN)     :: PAPHIF(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) 
+REAL(KIND=JPRB)             ,INTENT(IN)     :: PDELP(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) 
+REAL(KIND=JPRB)             ,INTENT(IN)     :: PR(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) 
+REAL(KIND=JPRB)             ,INTENT(IN)     :: PT(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) 
+REAL(KIND=JPRB)             ,INTENT(IN)     :: PQ(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) 
+REAL(KIND=JPRB)             ,INTENT(IN)     :: PQL(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) 
+REAL(KIND=JPRB)             ,INTENT(IN)     :: PQI(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) 
+REAL(KIND=JPRB)             ,INTENT(IN)     :: PU(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) 
+REAL(KIND=JPRB)             ,INTENT(IN)     :: PV(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) 
+REAL(KIND=JPRB)             ,INTENT(IN)     :: PCP(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB)             ,INTENT(IN)     :: PTKE(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB)             ,INTENT(INOUT)  :: PDIFCQ(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG) 
+REAL(KIND=JPRB)             ,INTENT(INOUT)  :: PDIFCS(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG) 
+REAL(KIND=JPRB)             ,INTENT(INOUT)  :: PFCCQL(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG) 
+REAL(KIND=JPRB)             ,INTENT(INOUT)  :: PFCCQN(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG) 
+REAL(KIND=JPRB)             ,INTENT(INOUT)  :: PPRODTH(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG)
+INTEGER(KIND=JPIM)          ,INTENT(OUT)    :: KNLAB(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB)             ,INTENT(INOUT)  :: PQCPP(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB)             ,INTENT(INOUT)  :: PNEBPP(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) 
+INTEGER(KIND=JPIM)          ,INTENT(OUT)    :: KNND(YDCPG_OPTS%KLON) 
+
+!-----------------------------------------------------------------
+
+#include "fcttrm.func.h"
+#include "wrscmr.intfb.h"
+
+INTEGER(KIND=JPIM), PARAMETER :: I_KCH1 = 0
+
+LOGICAL :: LLREFRESH_ALL, LLDOWN, LLUVTRANS, LLOCHTRANS, LLCONDWT
+
+
+REAL(KIND=JPRB) :: ZDTCONV, ZVMD, ZWMD, ZSMD, ZTDCP, ZEPS, ZDQCDT, ZDTLDT
+
+INTEGER(KIND=JPIM) :: JLON, JLEV, I_KBDIA, IKICE
+
+INTEGER(KIND=JPIM) :: I_KCOUNT(YDCPG_OPTS%KLON)
+INTEGER(KIND=JPIM) :: I_KCLTOP(YDCPG_OPTS%KLON)
+INTEGER(KIND=JPIM) :: I_KCLBAS(YDCPG_OPTS%KLON)
+
+REAL(KIND=JPRB) :: ZCAPE(YDCPG_OPTS%KLON)
+
+REAL(KIND=JPRB) :: ZW     (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZDTDT  (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZDQVDT (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZDQLDT (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZDQIDT (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZDUDT  (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZDVDT  (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZUMF   (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZUQV   (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZUQL   (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZDPSG  (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZLV    (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZLS    (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZQC    (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZBETA  (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZAPHIF (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+
+REAL(KIND=JPRB) :: ZTHETA (YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG+1)
+REAL(KIND=JPRB) :: ZRHO   (YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG+1)
+
+REAL(KIND=JPRB) :: ZCH1   (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,I_KCH1)
+REAL(KIND=JPRB) :: ZCH1TEN(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,I_KCH1)
+REAL(KIND=JPRB) :: ZTKECLS(YDCPG_OPTS%KLON)
+REAL(KIND=JPRB) :: ZUMFMAX(YDCPG_OPTS%KLON)
+
+INTEGER  :: JKP, JN  ! loop index
+! Local arrays (upside/down) necessary for change of ECMWF arrays to convection arrays
+REAL(KIND=JPRB) :: ZT     (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! grid scale T at time t  (K)
+REAL(KIND=JPRB) :: ZRV    (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! grid scale water vapor  (kg/kg)
+REAL(KIND=JPRB) :: ZRC    (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! grid scale r_c mixing ratio (kg/kg)
+REAL(KIND=JPRB) :: ZRI    (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! grid scale r_i mixing ratio (kg/kg)
+REAL(KIND=JPRB) :: ZU     (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! grid scale horiz. wind u (m/s)
+REAL(KIND=JPRB) :: ZV     (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! grid scale horiz. wind v (m/s)
+REAL(KIND=JPRB) :: ZZW    (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! grid scale vertical velocity (m/s)
+REAL(KIND=JPRB) :: ZPABS  (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! grid scale pressure (Pa)
+REAL(KIND=JPRB) :: ZZZ    (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! height of model layer (m)
+                                                             
+REAL(KIND=JPRB) :: ZTTEN  (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! convective temperat. tendency (K/s)
+REAL(KIND=JPRB) :: ZRVTEN (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! convective r_v tendency (1/s)
+REAL(KIND=JPRB) :: ZRCTEN (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! convective r_c tendency (1/s)
+REAL(KIND=JPRB) :: ZRITEN (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! convective r_i tendency (1/s)
+REAL(KIND=JPRB) :: ZUTEN  (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! convective u tendency (m/s^2)
+REAL(KIND=JPRB) :: ZVTEN  (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! convective m tendency (m/s^2)
+REAL(KIND=JPRB) :: ZZUMF  (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! updraft mass flux   (kg/s m2)
+REAL(KIND=JPRB) :: ZURV   (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! water vapor in updrafts (kg/kg)
+REAL(KIND=JPRB) :: ZURCI  (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! total condensate in updrafts (kg/kg)
+INTEGER(KIND=JPIM) :: ICLTOP (YDCPG_OPTS%KLON)    ! cloud top level (number of model level)
+INTEGER(KIND=JPIM) :: ICLBAS (YDCPG_OPTS%KLON)    ! cloud base level(number of model level)
+REAL(KIND=JPRB) :: ZSHAL_ZCH1     (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,I_KCH1) ! grid scale chemical species
+REAL(KIND=JPRB) :: ZSHAL_ZCH1TEN  (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,I_KCH1) ! chemical convective tendency
+! special for shallow convection
+REAL(KIND=JPRB) :: ZSHAL_ZCH1TENS (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,I_KCH1)
+INTEGER(KIND=JPIM) :: ICLBASS (YDCPG_OPTS%KLON), ICLTOPS (YDCPG_OPTS%KLON)
+
+! Declarations of local fixed memory variables :
+INTEGER(KIND=JPIM)  :: ICONV
+REAL (KIND=JPRB) :: ZRDOCP ! R_d/C_p
+
+REAL (KIND=JPRB) :: ZTHT(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL (KIND=JPRB) :: ZSTHV(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL (KIND=JPRB) :: ZSTHES(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)  ! grid scale theta, theta_v
+! Declarations of local allocatable  variables :
+INTEGER (KIND=JPIM) :: ISDPL(YDCPG_OPTS%KLON)   ! index for parcel departure level
+INTEGER (KIND=JPIM) :: ISPBL(YDCPG_OPTS%KLON)   ! index for source layer top
+INTEGER (KIND=JPIM) :: ISLCL(YDCPG_OPTS%KLON)   ! index for lifting condensation level
+REAL (KIND=JPRB) :: ZSTHLCL(YDCPG_OPTS%KLON) ! updraft theta at LCL/L
+REAL (KIND=JPRB) :: ZSTLCL(YDCPG_OPTS%KLON)  ! updraft temp. at LCL
+REAL (KIND=JPRB) :: ZSRVLCL(YDCPG_OPTS%KLON) ! updraft rv at LCL
+REAL (KIND=JPRB) :: ZSWLCL(YDCPG_OPTS%KLON)  ! updraft w at LCL
+REAL (KIND=JPRB) :: ZSZLCL(YDCPG_OPTS%KLON)  ! LCL height
+REAL (KIND=JPRB) :: ZSTHVELCL(YDCPG_OPTS%KLON)! envir. theta_v at LCL
+
+LOGICAL :: LLTRIG1(YDCPG_OPTS%KLON)  ! logical mask for convection
+
+! Following structures should be attached to YDMODEL and initialized in the setup
+TYPE(CONVPAREXT)   :: YLCVPEXT
+TYPE(CONVPAR_SHAL) :: YLCVP_SHAL
+TYPE(CST_T)        :: YLCST_MNH
+TYPE(NSV_T)        :: YLNSV
+TYPE(CONVPAR_T)    :: YLCONVPAR
+TYPE(DIMPHYEX_T)   :: YDDIMS_MNH
+
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
+
+IF (LHOOK) CALL DR_HOOK('ACVPPKF',0,ZHOOK_HANDLE)
+ASSOCIATE(RKFBNBX=>YDML_PHY_MF%YRPHY0%RKFBNBX, RKFBTAU=>YDML_PHY_MF%YRPHY0%RKFBTAU, RQLCR=>YDML_PHY_MF%YRPHY0%RQLCR, &
+ & RPRTH=>YDML_PHY_MF%YRPHY0%RPRTH, ECTMIN=>YDML_PHY_MF%YRPHY0%ECTMIN, AECLS4=>YDML_PHY_MF%YRPHY0%AECLS4, &
+ & TSPHY=>YDML_PHY_MF%YRPHY2%TSPHY, &
+ & LSMOOTH=>YDML_PHY_MF%YRCVMNH%LSMOOTH, &
+ & OTADJS=>YDML_PHY_MF%YRCVMNH%OTADJS, &
+ & LSETTADJ=>YDML_PHY_MF%YRCVMNH%LSETTADJ, &
+ & RATM=>YDCST%RATM, RCPD=>YDCST%RCPD, RCPV=>YDCST%RCPV, RCS=>YDCST%RCS, RCW=>YDCST%RCW, &
+ & RG=>YDCST%RG, RKAPPA=>YDCST%RKAPPA, RLSZER=>YDCST%RLSZER, RLVZER=>YDCST%RLVZER, &
+ & LECT=>YDML_PHY_MF%YRPHY%LECT, LCVDD=>YDML_PHY_MF%YRPHY%LCVDD)
+!-----------------------------------------------------------------
+
+!$ACDC SERIAL {
+
+! Most of this should got in a setup; in particular, all structures should be
+! attached to YDMODEL
+
+CALL INI_CONVPAR ! Should be called in setup
+CALL INI_CONVPAR (YLCONVPAR) 
+YLNSV%NSV_LGBEG = NSV_LGBEG
+YLNSV%NSV_LGEND = NSV_LGEND
+YLCST_MNH = CST
+
+YLCVP_SHAL%XA25=YDML_PHY_MF%YRCVMNH%XA25
+YLCVP_SHAL%XCRAD=YDML_PHY_MF%YRCVMNH%XCRAD
+YLCVP_SHAL%XCDEPTH=YDML_PHY_MF%YRCVMNH%XCDEPTH
+YLCVP_SHAL%XCDEPTH_D=YDML_PHY_MF%YRCVMNH%XCDEPTH_D
+YLCVP_SHAL%XDTPERT=YDML_PHY_MF%YRCVMNH%XDTPERT
+YLCVP_SHAL%XATPERT=YDML_PHY_MF%YRCVMNH%XATPERT
+YLCVP_SHAL%XBTPERT=YDML_PHY_MF%YRCVMNH%XBTPERT
+YLCVP_SHAL%XENTR=YDML_PHY_MF%YRCVMNH%XENTR
+YLCVP_SHAL%XZLCL=YDML_PHY_MF%YRCVMNH%XZLCL
+YLCVP_SHAL%XZPBL=YDML_PHY_MF%YRCVMNH%XZPBL
+YLCVP_SHAL%XWTRIG=YDML_PHY_MF%YRCVMNH%XWTRIG
+YLCVP_SHAL%XNHGAM=YDML_PHY_MF%YRCVMNH%XNHGAM
+YLCVP_SHAL%XTFRZ1=YDML_PHY_MF%YRCVMNH%XTFRZ1
+YLCVP_SHAL%XTFRZ2=YDML_PHY_MF%YRCVMNH%XTFRZ2
+YLCVP_SHAL%XSTABT=YDML_PHY_MF%YRCVMNH%XSTABT
+YLCVP_SHAL%XSTABC=YDML_PHY_MF%YRCVMNH%XSTABC
+YLCVP_SHAL%XAW=YDML_PHY_MF%YRCVMNH%XAW
+YLCVP_SHAL%XBW=YDML_PHY_MF%YRCVMNH%XBW
+YLCVP_SHAL%LLSMOOTH=LSMOOTH
+
+YDDIMS_MNH%NIT = YDCPG_OPTS%KLON
+YDDIMS_MNH%NIB = YDCPG_BNDS%KIDIA
+YDDIMS_MNH%NIE = YDCPG_BNDS%KFDIA
+YDDIMS_MNH%NKT = YDCPG_OPTS%KFLEVG
+
+ZVMD=RCPV-RCPD
+ZWMD=RCW-RCPD
+ZSMD=RCS-RCPD
+
+I_KBDIA=1
+IKICE=1
+LLREFRESH_ALL=.TRUE.
+LLDOWN=LCVDD
+LLUVTRANS=.FALSE. ! not yet well tested but possible to use
+LLOCHTRANS=.FALSE.
+ZDTCONV=TSPHY
+ZEPS=1.E-12_JPRB
+
+YLCVPEXT%JCVEXB = MAX( 0, I_KBDIA - 1)
+YLCVPEXT%JCVEXT = MAX( 0,   KTDIA - 1)
+
+ZRDOCP = YLCST_MNH%XRD / YLCST_MNH%XCPD
+
+LLCONDWT=.FALSE.
+
+!$ACDC }
+
+!$ACDC PARALLEL {
+
+ZUMFMAX(:)=1.E-12_JPRB
+ZW(:,:)=0.0_JPRB
+ZTKECLS(:)=0.0_JPRB
+IF (LECT) THEN
+  DO JLEV=1,YDCPG_OPTS%KFLEVG
+    DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      ZW(JLON,JLEV) = SQRT(MIN(3.0_JPRB,MAX(ECTMIN,PTKE(JLON,JLEV)))/AECLS4)
+    ENDDO
+  ENDDO
+  DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+     ZTKECLS(JLON)=PTKE(JLON,YDCPG_OPTS%KFLEVG) 
+  ENDDO
+ENDIF
+DO JLEV=1,YDCPG_OPTS%KFLEVG
+  DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+    ZDPSG (JLON,JLEV) = PDELP(JLON,JLEV)/RG
+    ZAPHIF(JLON,JLEV) = PAPHIF(JLON,JLEV)/RG
+  ENDDO
+ENDDO
+
+DO JLEV=1,YDCPG_OPTS%KFLEVG
+  DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+    ZDTDT (JLON,JLEV) = 0.0_JPRB
+    ZDQVDT(JLON,JLEV) = 0.0_JPRB
+    ZDQLDT(JLON,JLEV) = 0.0_JPRB
+    ZDQIDT(JLON,JLEV) = 0.0_JPRB
+    ZDUDT (JLON,JLEV) = 0.0_JPRB
+    ZDVDT (JLON,JLEV) = 0.0_JPRB
+    ZUMF  (JLON,JLEV) = 0.0_JPRB
+    ZUQV  (JLON,JLEV) = 0.0_JPRB
+    ZUQL  (JLON,JLEV) = 0.0_JPRB
+    ZLV   (JLON,JLEV) = FOLH(PT(JLON,JLEV),0.0_JPRB)
+    ZLS   (JLON,JLEV) = FOLH(PT(JLON,JLEV),1.0_JPRB)
+    ZQC   (JLON,JLEV) = PQL(JLON,JLEV)+PQI(JLON,JLEV)
+  ENDDO
+ENDDO
+
+DO JLON=1,YDCPG_BNDS%KFDIA
+  I_KCOUNT(JLON) = 0
+  ZCAPE   (JLON) = 0.0_JPRB
+ENDDO
+
+I_KCLTOP(:)  = 1 ! set default value when no convection
+I_KCLBAS(:)  = 1 ! can be changed  depending on user
+ICLTOP(:)  = 1
+ICLBAS(:)  = 1
+ICLTOPS(:) = 1
+ICLBASS(:) = 1
+
+!*       2.   Flip arrays upside-down as  first vertical level in convection is 1
+!             --------------------------------------------------------------------
+
+DO JLEV = 1, YDCPG_OPTS%KFLEVG
+  JKP = YDCPG_OPTS%KFLEVG - JLEV + 1
+  DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
+    ZPABS(JLON,JKP) = PAPRSF(JLON,JLEV)
+    ZZZ(JLON,JKP)   = ZAPHIF(JLON,JLEV)
+    ZT(JLON,JKP)    = PT(JLON,JLEV)
+    ZRV(JLON,JKP)   = PQ(JLON,JLEV) / ( 1.0 - PQ(JLON,JLEV) ) ! transform specific humidity
+    ZRC(JLON,JKP)   = PQL(JLON,JLEV) / ( 1.0 - PQL(JLON,JLEV) ) ! in mixing ratio
+    ZRI(JLON,JKP)   = PQI(JLON,JLEV) / ( 1.0 - PQI(JLON,JLEV) )
+    ZU(JLON,JKP)    = PU(JLON,JLEV)
+    ZV(JLON,JKP)    = PV(JLON,JLEV)
+    ZZW(JLON,JKP)   = ZW(JLON,JLEV)
+  ENDDO
+ENDDO
+
+IF ( LLOCHTRANS ) THEN
+  DO JLEV = 1, YDCPG_OPTS%KFLEVG
+    JKP = YDCPG_OPTS%KFLEVG - JLEV + 1
+    DO JN = 1, I_KCH1
+      DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
+        ZSHAL_ZCH1(JLON,JKP,JN) = ZCH1(JLON,JLEV,JN)
+      ENDDO
+    ENDDO
+  ENDDO
+ENDIF
+
+I_KCOUNT(:)   =0
+ZTTEN(:,:)    =0.0
+ZRVTEN(:,:)   =0.0
+ZRCTEN(:,:)   =0.0
+ZRITEN(:,:)   =0.0
+ZUTEN(:,:)    =0.0
+ZVTEN(:,:)    =0.0
+ZZUMF(:,:)    =0.0
+ZURV(:,:)     =0.0
+ZURCI(:,:)    =0.0
+ZSHAL_ZCH1TEN(:,:,:)=0.0
+ZCAPE(:)      =0.0
+
+!*       4.b  Call shallow convection routine
+!             -------------------------------
+
+CALL SHALLOW_CONVECTION_PART1   (YLCVPEXT, YLCVP_SHAL, YLCST_MNH, YDDIMS_MNH, YLNSV, YLCONVPAR,         &
+& I_KBDIA, KTDIA, IKICE, LSETTADJ, OTADJS, ZPABS, ZZZ, ZTKECLS, ZT, ZRV, ZRC, ZRI, ZZW, ZTTEN, ZRVTEN,  &
+& ZRCTEN, ZRITEN, ICLTOPS, ICLBASS, ZZUMF, LLOCHTRANS, I_KCH1, ZSHAL_ZCH1, ZSHAL_ZCH1TENS,              &
+& ZTHT, ZSTHV, ZSTHES, ISDPL, ISPBL, ISLCL, ZSTHLCL, ZSTLCL, ZSRVLCL, ZSWLCL, ZSZLCL, ZSTHVELCL, LLTRIG1)
+
+!$ACDC }
+
+ICONV = COUNT(LLTRIG1(YDDIMS_MNH%NIB:YDDIMS_MNH%NIE))
+
+!$ACDC PARALLEL {
+
+
+IF(ICONV==0)THEN
+  ! Do nothing if there are no selected columns
+ELSE IF (ICONV < YDDIMS_MNH%NIT*9/10) THEN
+  CALL SHALLOW_CONVECTION_PART2_SELECT &
+  & (YLCVP_SHAL, YLCVPEXT, YLCST_MNH, YDDIMS_MNH, YLNSV, YLCONVPAR,            &
+  & IKICE, LSETTADJ, OTADJS, ZPABS, ZZZ, ZT, ZRV, ZRC, ZRI,                    &
+  & LLOCHTRANS, I_KCH1, ZSHAL_ZCH1, ZRDOCP, ZTHT, ZSTHV, ZSTHES, ISDPL, ISPBL, &
+  & ISLCL, ZSTHLCL, ZSTLCL, ZSRVLCL, ZSWLCL, ZSZLCL, ZSTHVELCL, LLTRIG1,       &
+  & ZZUMF, ZTTEN, ZRVTEN, ZRCTEN, ZRITEN, ICLTOPS, ICLBASS, ZSHAL_ZCH1TENS, ICONV)
+ELSE
+  CALL SHALLOW_CONVECTION_PART2 &
+  & (YLCVP_SHAL, YLCVPEXT, YLCST_MNH, YDDIMS_MNH, YLNSV, YLCONVPAR,            &
+  & IKICE, LSETTADJ, OTADJS, ZPABS, ZZZ, ZT, ZRV, ZRC, ZRI,                    &
+  & LLOCHTRANS, I_KCH1, ZSHAL_ZCH1, ZRDOCP, ZTHT, ZSTHV, ZSTHES, ISDPL, ISPBL, &
+  & ISLCL, ZSTHLCL, ZSTLCL, ZSRVLCL, ZSWLCL, ZSZLCL, ZSTHVELCL, LLTRIG1,       &
+  & ZZUMF, ZTTEN, ZRVTEN, ZRCTEN, ZRITEN, ICLTOPS, ICLBASS, ZSHAL_ZCH1TENS)
+ENDIF
+
+!$ACDC }
+
+!$ACDC PARALLEL {
+
+DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
+  ICLTOP(JLON)   = MAX(ICLTOP(JLON), ICLTOPS(JLON))
+  ICLBAS(JLON)   = MAX(ICLBAS(JLON), ICLBASS(JLON))
+ENDDO
+
+!*       6.  Reflip arrays to ECMWF/ARPEGE vertical structure
+!            change mixing ratios to sepcific humidity
+
+DO JLEV = 1, YDCPG_OPTS%KFLEVG
+  JKP = YDCPG_OPTS%KFLEVG - JLEV + 1
+  DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
+    ZDTDT(JLON,JLEV)  = ZTTEN(JLON,JKP)
+   ! don't transform back to specific hum, does not conserve integrals
+    ZDQVDT(JLON,JLEV) = ZRVTEN(JLON,JKP) ! / ( 1.0 + ZRV(JI,JKP) ) ** 2
+    ZDQLDT(JLON,JLEV) = ZRCTEN(JLON,JKP) ! / ( 1.0 + ZRC(JI,JKP) ) ** 2
+    ZDQIDT(JLON,JLEV) = ZRITEN(JLON,JKP) ! / ( 1.0 + ZRI(JI,JKP) ) ** 2
+    ZDUDT(JLON,JLEV)  = ZUTEN(JLON,JKP)
+    ZDVDT(JLON,JLEV)  = ZVTEN(JLON,JKP)
+    ZUMF(JLON,JLEV)   = ZZUMF(JLON,JKP)
+    ZUQV(JLON,JLEV)   = ZURV(JLON,JKP) / ( 1.0 + ZURV(JLON,JKP) )
+    ZUQL(JLON,JLEV)  = ZURCI(JLON,JKP)/ ( 1.0 + ZURCI(JLON,JKP) )
+  ENDDO
+ENDDO
+
+DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
+  JLEV = ICLTOP(JLON)
+  I_KCLTOP(JLON) = YDCPG_OPTS%KFLEVG - JLEV + 1
+  JLEV = ICLBAS(JLON)
+  I_KCLBAS(JLON) = YDCPG_OPTS%KFLEVG - JLEV + 1
+  IF ( ICLTOP(JLON) == 1 ) I_KCLTOP(JLON) = 1
+  IF ( ICLBAS(JLON) == 1 ) I_KCLBAS(JLON) = 1
+ENDDO
+
+IF ( LLOCHTRANS ) THEN
+  DO JLEV = 1, YDCPG_OPTS%KFLEVG
+    JKP = YDCPG_OPTS%KFLEVG - JLEV + 1
+    DO JN = 1, I_KCH1
+      DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
+        ZCH1TEN(JLON,JLEV,JN) = ZSHAL_ZCH1TEN(JLON,JKP,JN)
+      ENDDO
+    ENDDO
+  ENDDO
+ENDIF
+
+! Calcul de la production thermique pour la TKE
+PPRODTH(:,:)=0.0_JPRB
+IF (RPRTH > 0._JPRB) THEN
+  DO JLEV=1,YDCPG_OPTS%KFLEVG
+    DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      ZBETA (JLON,JLEV) = (RATM/PAPRSF(JLON,JLEV))**(RKAPPA)
+      ZTHETA(JLON,JLEV) = PT(JLON,JLEV)*ZBETA(JLON,JLEV)
+      ZRHO  (JLON,JLEV) = PAPRSF(JLON,JLEV)/(PR(JLON,JLEV)*PT(JLON,JLEV))
+    ENDDO
+  ENDDO
+  DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+    ZTHETA(JLON,0)      = ZTHETA(JLON,1)
+    ZRHO  (JLON,0)      = ZRHO  (JLON,1)
+    ZTHETA(JLON,YDCPG_OPTS%KFLEVG+1) = ZTHETA(JLON,YDCPG_OPTS%KFLEVG)
+    ZRHO  (JLON,YDCPG_OPTS%KFLEVG+1) = ZRHO  (JLON,YDCPG_OPTS%KFLEVG)
+  ENDDO
+
+  DO JLEV=1,YDCPG_OPTS%KFLEVG
+    DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      ZTDCP=ZVMD*ZDQVDT(JLON,JLEV)+ZWMD*ZDQLDT(JLON,JLEV)+ZSMD*ZDQIDT(JLON,JLEV)
+      ZDQCDT=ZDQLDT(JLON,JLEV)+ZDQIDT(JLON,JLEV)
+      ZDTLDT=ZBETA (JLON,JLEV)&
+        &  * ( ZDTDT(JLON,JLEV) + ZLV(JLON,JLEV)/PCP(JLON,JLEV)&
+        &    * ( ZQC(JLON,JLEV)*ZTDCP/PCP(JLON,JLEV)-ZDQCDT ) )
+      PPRODTH(JLON,JLEV)=PPRODTH(JLON,JLEV-1)-ZDPSG(JLON,JLEV)*ZDTLDT
+    ENDDO
+  ENDDO
+
+  DO JLEV=0,YDCPG_OPTS%KFLEVG
+    DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      PPRODTH(JLON,JLEV)=PPRODTH(JLON,JLEV)*RG*4._JPRB&
+        & / ( ZRHO  (JLON,JLEV) + ZRHO  (JLON,JLEV+1) )&
+        & / ( ZTHETA(JLON,JLEV) + ZTHETA(JLON,JLEV+1) )
+    ENDDO
+  ENDDO
+ENDIF ! Fin du calcul de la production thermique pour la TKE
+
+DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+  DO JLEV=1,YDCPG_OPTS%KFLEVG
+    KNLAB(JLON,JLEV)=1-MAX(0,MIN(1,(I_KCLTOP(JLON)-JLEV)*(I_KCLBAS(JLON)-JLEV)))
+  ENDDO
+  KNND(JLON)=MIN(1,I_KCLTOP(JLON)-1)
+ENDDO
+
+! Calcul de la nebulosite et de l'eau condensee
+IF (RKFBTAU > 0._JPRB) THEN
+  DO JLEV=1,YDCPG_OPTS%KFLEVG
+!DEC$ IVDEP
+    DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      ZDQCDT=MAX(0.0_JPRB,ZDQLDT(JLON,JLEV)+ZDQIDT(JLON,JLEV))
+      PQCPP (JLON,JLEV)=RKFBTAU*ZDQCDT*FLOAT(KNLAB(JLON,JLEV))
+      PNEBPP(JLON,JLEV)=MAX(ZEPS,MIN(RKFBNBX,PQCPP(JLON,JLEV)/RQLCR))
+      ZUMFMAX(JLON)=MAX(ZUMFMAX(JLON),ZUMF(JLON,JLEV))
+    ENDDO
+  ENDDO
+  IF (.NOT.LSMOOTH) THEN
+    DO JLEV=1,YDCPG_OPTS%KFLEVG
+!DEC$ IVDEP
+      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+        PQCPP (JLON,JLEV)=PQCPP(JLON,JLEV)&
+         & *MIN(1.0_JPRB,ZUMF(JLON,JLEV)/ZUMFMAX(JLON))
+        PNEBPP(JLON,JLEV)=MAX(ZEPS,MIN(RKFBNBX,PQCPP(JLON,JLEV)/RQLCR))
+      ENDDO
+    ENDDO
+  ENDIF
+ENDIF ! Fin du calcul de la nebulosite et de l'eau condensee
+
+IF (.NOT.LLCONDWT) THEN
+  DO JLEV=1,YDCPG_OPTS%KFLEVG
+    DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      ZDQVDT(JLON,JLEV)=ZDQVDT(JLON,JLEV)+ZDQLDT(JLON,JLEV)+ZDQIDT(JLON,JLEV)
+      ZDTDT(JLON,JLEV)=ZDTDT(JLON,JLEV) - (ZLV(JLON,JLEV)*ZDQLDT(JLON,JLEV)&
+        & + ZLS(JLON,JLEV)*ZDQIDT(JLON,JLEV)) / PCP(JLON,JLEV)
+      ZDQLDT(JLON,JLEV)=0.0_JPRB
+      ZDQIDT(JLON,JLEV)=0.0_JPRB
+    ENDDO
+  ENDDO
+ELSE
+  DO JLEV=1,YDCPG_OPTS%KFLEVG
+    DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+      PFCCQL(JLON,JLEV)=PFCCQL(JLON,JLEV-1)+ZDPSG(JLON,JLEV)*ZDQLDT(JLON,JLEV)
+      PFCCQN(JLON,JLEV)=PFCCQN(JLON,JLEV-1)+ZDPSG(JLON,JLEV)*ZDQIDT(JLON,JLEV)
+    ENDDO
+  ENDDO
+ENDIF
+
+DO JLEV=1,YDCPG_OPTS%KFLEVG
+!DEC$ IVDEP
+  DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+    PDIFCQ(JLON,JLEV)=PDIFCQ(JLON,JLEV-1)-ZDPSG(JLON,JLEV)*ZDQVDT(JLON,JLEV)
+    ZTDCP=ZVMD*ZDQVDT(JLON,JLEV)+ZWMD*ZDQLDT(JLON,JLEV)+ZSMD*ZDQIDT(JLON,JLEV)
+    PDIFCS(JLON,JLEV)=PDIFCS(JLON,JLEV-1)-ZDPSG(JLON,JLEV)&
+     & * (ZDTDT(JLON,JLEV)*(PCP(JLON,JLEV)+TSPHY*ZTDCP)+PT(JLON,JLEV)*ZTDCP)
+  ENDDO
+ENDDO
+
+DO JLEV=1,YDCPG_OPTS%KFLEVG
+  DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
+    PDIFCQ(JLON,JLEV)=PDIFCQ(JLON,JLEV)-PFCCQL(JLON,JLEV)-PFCCQN(JLON,JLEV)
+    PDIFCS(JLON,JLEV)=PDIFCS(JLON,JLEV)&
+     & + RLVZER*PFCCQL(JLON,JLEV) + RLSZER*PFCCQN(JLON,JLEV)
+  ENDDO
+ENDDO
+
+!$ACDC }
+
+!$ACDC SKIP {
+
+IF(LMUSCLFA) CALL WRSCMR(NMUSCLFA,'ZMF_shal',ZUMF,YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+
+!$ACDC }
+
+!-----------------------------------------------------------------
+END ASSOCIATE
+IF (LHOOK) CALL DR_HOOK('ACVPPKF',1,ZHOOK_HANDLE)
+END SUBROUTINE ACVPPKF
+
diff --git a/src/arome/ext/aer_effic.F90 b/src/arome/ext/aer_effic.F90
index 9028706410d588d3905e4a01805fff18f6dbf2ca..f30276efb4fd1b30d93a348c4075bc0ef2152242 100644
--- a/src/arome/ext/aer_effic.F90
+++ b/src/arome/ext/aer_effic.F90
@@ -7,8 +7,7 @@ SUBROUTINE AER_EFFIC(PRG,PVGG,      & !aerosol radius/fall speed (m/s)
                 KMODE,              & ! Number of aerosol modes
                 PTEMP, PCOR,        & ! air temp, cunningham corr factor
                 PDENSITY_AER )        ! aerosol density
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !!   #######################################
 !!**********AER_EFFIC********** 
 !!   PURPOSE
@@ -93,7 +92,7 @@ REAL, DIMENSION(SIZE(PRG,1),KMODE) :: ZT3, ZT4
 INTEGER :: JI,JK
 !
 !-----------------------------------------------------------------
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('AER_EFFIC',0,ZHOOK_HANDLE)
 ZRRS(:)=PRRS(:)
 IKB = 1 + JPVEXT
diff --git a/src/arome/ext/aer_wet_dep_kmt_warm.F90 b/src/arome/ext/aer_wet_dep_kmt_warm.F90
index 1faee2a84166ef59b02430e88f3be657927aed46..03a49e0819455c3ae5c3dde0b8d66d0c8d89f837 100644
--- a/src/arome/ext/aer_wet_dep_kmt_warm.F90
+++ b/src/arome/ext/aer_wet_dep_kmt_warm.F90
@@ -5,8 +5,7 @@
                             PPABST, PRGAER, PEVAP3D, KMODE,       &
                             PDENSITY_AER, PMASSMIN, PSEA, PTOWN,  &
                             PCCT, PCRT )
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################################################
 !
 !!****  * -  compute the explicit microphysical processes involved in the
@@ -188,7 +187,7 @@ INTEGER :: IKE, IJE, IIE, IKB
 !             ---------------------
 !
 ! Compute Effective cloud radius 
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('AER_WET_DEP_KMT_WARM',0,ZHOOK_HANDLE)
 ZRAY(:,:,:)   = 0.
 ZLBC(:,:,:)   = 0.
@@ -274,7 +273,7 @@ INTEGER                           :: JKAQ     ! counter for chemistry
 !
 !  1 Mass transfer Aerosol to cloud (Tost et al., 2006)
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('AER_WET_DEP_KMT_WARM:AER_WET_MASS_TRANSFER',0,ZHOOK_HANDLE)
 GCLOUD(:,:,:) = .FALSE.
 GCLOUD(:,:,:) =  PRCS(:,:,:)>XRTMIN(2)
@@ -493,7 +492,7 @@ INTEGER                           :: JKAQ     ! counter for acquous aerosols
 !-------------------------------------------------------------------------------
 !
 !*         Time splitting initialization
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('AER_WET_DEP_KMT_WARM:AER_WET_DEP_KMT_WARM_SEDIMENT',0,ZHOOK_HANDLE)
 ZTSPLITR = PTSTEP / FLOAT(KSPLITR)
 !
@@ -577,7 +576,7 @@ IMPLICIT NONE
 !
 !*       1.    compute the autoconversion of r_c for r_r production: RCAUTR
 !    
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('AER_WET_DEP_KMT_WARM:AER_WET_DEP_KMT_ICE_WARM',0,ZHOOK_HANDLE)
 ZZW4(:,:,:)=0.0
 ! to be sure no division by zero in case of ZZRCT = 0.
@@ -655,7 +654,7 @@ INTEGER    :: JKAQ     ! counter for aerosols
 !half of the evaporation rate of water
 !
 ! Rain water evaporated during PTSTEP in kg/kg
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('AER_WET_DEP_KMT_WARM:AER_WET_DEP_KMT_EVAP',0,ZHOOK_HANDLE)
 ZZEVAP(:,:,:) = PEVAP3D(:,:,:) * PTSTEP  
 ! Fraction of rain water evaporated 
@@ -718,7 +717,7 @@ IMPLICIT NONE
 !*       1.1   compute gravitational velocities
 !   
 !initialize
- REAL(KIND=JPRB) :: ZHOOK_HANDLE
+ REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
  IF (LHOOK) CALL DR_HOOK('AER_WET_DEP_KMT_WARM:AER_WET_DEP_KMT_EFFIC',0,ZHOOK_HANDLE)
  ZTEMP(:)=ZTHT(:)*(ZPABST(:)/XP00)**(XRD/XCPD)
  ZTEMP(:)=MAX(ZTEMP(:),1.e-12)
@@ -786,7 +785,7 @@ INTEGER :: JI,JJ,JK,IC
 !  
 !-------------------------------------------------------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('AER_WET_DEP_KMT_WARM:COUNTJV',0,ZHOOK_HANDLE)
 I1(:)=0 
 I2(:)=0 
diff --git a/src/arome/ext/apl_arome.F90 b/src/arome/ext/apl_arome.F90
index 9b83e1efcb4868f0488fb96c0a046363bd79e144..a2ffae4aa86d83ccedd8e9aa9d5dcbbd07009419 100644
--- a/src/arome/ext/apl_arome.F90
+++ b/src/arome/ext/apl_arome.F90
@@ -2,7 +2,7 @@
 @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_MISC, YDCPG_GPAR, YDCPG_PHY0, YDMF_PHYS, YDCPG_DYN0, YDMF_PHYS_SURF, &
 & YDCPG_SL1, YDVARS, YDGMV, YDSURF, YDCFU, YDXFU, YDMODEL, PGFL, PGP2DSDT, PGMVT1,  &
 & PGFLT1, PTRAJ_PHYS, YDDDH)
 
@@ -202,11 +202,10 @@ 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
-USE YOESW      , ONLY : RSUN2
+USE YOMHOOK            , ONLY : LHOOK    ,DR_HOOK, JPHOOK
 USE YOMCST     , ONLY : TCST
 USE YOMLUN     , ONLY : NULOUT
-USE YOMCT0     , ONLY : LTWOTL, LSFORCS, LSLAG, LNHDYN, LAROME, LELAM
+USE YOMCT0     , ONLY : LSFORCS, LAROME
 USE YOMVERT    , ONLY : VP00
 USE YOMRIP0    , ONLY : NINDAT
 USE YOMNUDGLH , ONLY :  LNUDGLH, NSTARTNUDGLH, NSTOPNUDGLH, NINTNUDGLH, NTAUNUDGLH, &
@@ -214,8 +213,7 @@ USE YOMNUDGLH , ONLY :  LNUDGLH, NSTARTNUDGLH, NSTOPNUDGLH, NINTNUDGLH, NTAUNUDG
 USE YOMNSV     , ONLY : NSV_CO2
 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    , 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
 USE INTFLEX_MOD, ONLY : LINTFLEX, LRADFLEX,&
@@ -230,8 +228,6 @@ USE MF_PHYS_NEXT_STATE_TYPE_MOD &
 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
 
@@ -248,10 +244,8 @@ 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
@@ -263,7 +257,7 @@ TYPE(MODEL),                    INTENT(IN)    :: YDMODEL
 
  
 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(IN)    :: PGP2DSDT(YDCPG_OPTS%KLON,YDMODEL%YRML_SPPT%YGPSDT(1)%NG2D,YDMODEL%YRML_SPPT%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
@@ -524,9 +518,8 @@ REAL(KIND=JPRB) :: ZQN2O(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQNO2(YDCPG_OPTS%KL
 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), POINTER :: ZTKEM(:,:)
+REAL(KIND=JPRB) :: ZTKEM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 REAL(KIND=JPRB) :: ZQW(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZTW(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 
 REAL(KIND=JPRB) :: ZTENT(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
@@ -754,7 +747,7 @@ REAL (KIND=JPRB) :: ZSAV_FHPS (YDCPG_OPTS%KLON)
 TYPE(TYPE_INTPROCSET) :: YLPROCSET
 
 ! SPP
-REAL(KIND=JPRB) :: ZGP2DSPP(YDCPG_OPTS%KLON,YSPP%N2D)
+REAL(KIND=JPRB) :: ZGP2DSPP(YDCPG_OPTS%KLON,YDMODEL%YRML_GCONF%YRSPP_CONFIG%SM%NRFTOTAL)
 
 REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTEND_Q    (:,:)  
 REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTEND_L    (:,:)  
@@ -776,7 +769,7 @@ REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTENDEXT  (:,:,:)
 
 REAL(KIND=JPRB), POINTER :: ZP1EZDIAG(:,:,:)
 
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 
 !     ------------------------------------------------------------------
 
@@ -801,7 +794,7 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE
 #include "acnpart.intfb.h"
 #include "bri2acconv.intfb.h"
 #include "gpgeo.intfb.h"
-#include "gprcp.intfb.h"
+#include "gprcp_qlirsg.intfb.h"
 #include "radheat.intfb.h"
 #include "radghg.intfb.h"
 #include "suozon.intfb.h"
@@ -852,8 +845,9 @@ ASSOCIATE(YDDIM=>YDGEOMETRY%YRDIM, YDGEM=>YDGEOMETRY%YRGEM, YDSTA=>YDGEOMETRY%YR
 & 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                 &
-& )
+& YDDPHY=>YDMODEL%YRML_PHY_G%YRDPHY, YDLDDH=>YDMODEL%YRML_DIAG%YRLDDH, YDEPHY=> YDMODEL%YRML_PHY_EC%YREPHY,                &
+& YDDYNA=>YDMODEL%YRML_DYN%YRDYNA, YDSPPT_CONFIG=>YDMODEL%YRML_GCONF%YRSPPT_CONFIG, YDSPPT=>YDMODEL%YRML_SPPT,             &
+& YDSPP_CONFIG=>YDMODEL%YRML_GCONF%YRSPP_CONFIG,YDSPP=>YDMODEL%YRML_SPP,YDCVER=>YDGEOMETRY%YRCVER)
 
 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, &
@@ -887,14 +881,16 @@ ASSOCIATE(MINPRR=>YDPARAR%MINPRR, MINPRS=>YDPARAR%MINPRS, MVQS=>YDPARAR%MVQS, MI
 & 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,                                                           &
-& LMODICEDEP=>YDPARAR%LMODICEDEP, LWINDFARM=>YDPHY%LWINDFARM, &
+& YLIMA=>YGFL%YLIMA, LSPSDT => YDSPPT_CONFIG%LSPSDT, LKOGAN=>YDPARAR%LKOGAN,                                                          &
+& LMODICEDEP=>YDPARAR%LMODICEDEP, LWINDFARM=>YDPHY%LWINDFARM,                                                                         &
  & 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)
+& LTOTPRECL=>YDPARAR%LTOTPRECL, RSUN2=>YDMODEL%YRML_PHY_RAD%YRESWRT%RSUN2,&
+& LSLAG=>YDDYNA%LSLAG, LGWADV=>YDDYNA%LGWADV, L_RDRY_VD=>YDDYNA%L_RDRY_VD,&
+& LVERTFE=>YDCVER%LVERTFE, LVFE_GWMPA=>YDCVER%LVFE_GWMPA)
 
 CALL SC2PRG(1, YEZDIAG(:)%MP, YDMODEL%YRML_GCONF%YGFL%NGFL_EZDIAG, PGFL, ZP1EZDIAG)
 
@@ -917,9 +913,9 @@ IF (YDCPG_OPTS%LCONFX) THEN
 ENDIF
 
 ! SPP 
-IF ( YSPP_CONFIG%LSPP ) THEN
- DO JSPP=1,YSPP%N2D
-   ZGP2DSPP(:,JSPP) = YSPP%GP_ARP(JSPP)%GP2D(:,1,YDCPG_BNDS%KBL)
+IF ( YDSPP_CONFIG%LSPP ) THEN
+ DO JSPP=1,YDMODEL%YRML_GCONF%YRSPP_CONFIG%SM%NRFTOTAL
+   ZGP2DSPP(:,JSPP) = YDSPP%GP_ARP(JSPP)%GP2D(:,1,YDCPG_BNDS%KBL)
  ENDDO
 ENDIF
 
@@ -927,7 +923,7 @@ ENDIF
 LLDIAB=(.NOT.LAGPHY)
 
 IF (LLDIAB) THEN
-  CALL CPPHINP(YDCPG_OPTS%LVERTFE, YDGEOMETRY, YDMODEL, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDVARS%GEOMETRY%GEMU%T0,            &
+  CALL CPPHINP(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)
@@ -1038,10 +1034,10 @@ ENDIF
 !             for leap frog scheme
 !             !!! be carefull for 2TL or 3TL
 
-IF (LTWOTL) THEN
+IF (YDDYNA%LTWOTL) THEN
   ZDT=YDCPG_OPTS%ZDTPHY/2._JPRB
 ELSE
-  IF (YDCPG_OPTS%KSTEP/=0) THEN
+  IF (YDCPG_OPTS%NSTEP/=0) THEN
     ZDT=YDCPG_OPTS%ZDTPHY/2._JPRB
   ELSE
     ZDT=YDCPG_OPTS%ZDTPHY
@@ -1054,7 +1050,7 @@ ZINVG=1._JPRB/RG
 
 !set concentration for LIMA
 LLIMAINIT=.FALSE.
-IF (YDCPG_OPTS%KSTEP==0 .AND. CMICRO=='LIMA') THEN
+IF (YDCPG_OPTS%NSTEP==0 .AND. CMICRO=='LIMA') THEN
   LLIMAINIT=.TRUE.
   ZP1EZDIAG(:,:,1)=0._JPRB
   ZP1EZDIAG(:,:,2)=0._JPRB
@@ -1074,7 +1070,7 @@ ELSE
   ZADTMS=ZDTMSE
 ENDIF
 
-IF(LTWOTL) THEN
+IF(YDDYNA%LTWOTL) THEN
   ZRHGMT=REAL(RHGMT,JPRB)-ZDTMSE*.5_JPRB
 ELSE
   ZRHGMT=REAL(RHGMT,JPRB)
@@ -1275,30 +1271,22 @@ DO JLEV = 1,YDCPG_OPTS%KFLEVG
 ENDDO
 
 ! adhoc solution to avoid negative tke values
-! when SL advective ddh is activated 
-IF (LRSLDDH) THEN
-  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
+DO JLEV=1, YDCPG_OPTS%KFLEVG
+  DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA
+    ZTKEM(JLON,JLEV)=MAX(YDMF_PHYS_BASE_STATE%TKE(JLON,JLEV),PPTKEMIN)
   ENDDO
-  ZTKEM => ZTKEM4SLDDH(:,:)
-ELSE
-  ZTKEM => YDMF_PHYS_BASE_STATE%TKE(:,:)
-  !test TKE > 0.
-  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
+ENDDO
 
 !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
+IF (YDSPP_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)
+   &  YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA,YDSPP_CONFIG%SM%NRFTOTAL, &
+   &  ZGP2DSPP,ZP1EZDIAG, &
+   &  YDSPP_CONFIG,ZSPP_ALL)
 ENDIF
 
 !    ------------------------------------------------------------------
@@ -1478,7 +1466,7 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN
 
   !initialisation de ZZI_THRAD
   IF (CMICRO=='LIMA') THEN
-     IF (YDCPG_OPTS%KSTEP==0) THEN
+     IF (YDCPG_OPTS%NSTEP==0) THEN
         DO JLEV = 1, YDCPG_OPTS%KFLEVG 
            ZDTHRAD_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB
         ENDDO
@@ -1499,7 +1487,7 @@ ZFRTH => YDMF_PHYS%OUT%FRTH(:,:,1)
 !     3 - PRINTS FOR DIAGNOSTICS IF NEEDED
 !    ------------------------------------------------------------------
 IF (LDIAGWMAX) THEN
-  IF (MOD(YDCPG_OPTS%KSTEP+1,NDIAGWMAX)==0) THEN
+  IF (MOD(YDCPG_OPTS%NSTEP+1,NDIAGWMAX)==0) THEN
   ! calcul de wmax
     DO JLEV = 1 , YDCPG_OPTS%KFLEVG
       Z_WMAX=0._JPRB
@@ -1537,7 +1525,7 @@ IF (LMICRO) THEN
 
   IF (LMFSHAL .AND. (PHYEX%PARAM_MFSHALLN%CMF_CLOUD=='DIRE'.OR.PHYEX%PARAM_MFSHALLN%CMF_CLOUD=='BIGA')) THEN
     IOFF_MFSHAL=IOFF_MFSHAL+3
-    IF (YDCPG_OPTS%KSTEP==0) THEN
+    IF (YDCPG_OPTS%NSTEP==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
@@ -1559,7 +1547,7 @@ IF (LMICRO) THEN
     ENDDO
   ENDIF
 
-  IF (MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
+  IF (MOD(YDCPG_OPTS%NSTEP+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,YDCPG_OPTS%KFLEVG
@@ -1601,7 +1589,7 @@ IF (LMICRO) THEN
 
     CALL ARO_ADJUST_LIMA (PHYEX, &
     & YDCPG_OPTS%KFLEVG, IKU, IKL, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, YDCPG_BNDS%KFDIA, NRR,        &
-    & NLIMA, YDCPG_OPTS%KSTEP+1, PHYEX%NEBN%LSUBG_COND, PHYEX%NEBN%LSIGMAS, ZDT, PHYEX%NEBN%VSIGQSAT, ZZZ_F_, ZRHODJM__(:, 1:YDCPG_OPTS%KFLEVG), &
+    & NLIMA, YDCPG_OPTS%NSTEP+1, PHYEX%NEBN%LSUBG_COND, PHYEX%NEBN%LSIGMAS, ZDT, PHYEX%NEBN%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_, ZPTRWNU_, ZDTHRAD_, ZMFM_, ZRC_MF_, ZRI_MF_, ZCF_MF_, ZTHS__(:, 1:YDCPG_OPTS%KFLEVG), ZRS_,                      &
     & ZLIMAS_, ZSRCS__(:, 1:YDCPG_OPTS%KFLEVG), ZNEBMNH_, ZICEFR_, ZPRCFR_, YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH,       &
@@ -1623,7 +1611,7 @@ IF (LMICRO) THEN
 
   ENDIF
   
-  IF (MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
+  IF (MOD(YDCPG_OPTS%NSTEP+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,YDCPG_OPTS%KFLEVG
@@ -1715,7 +1703,7 @@ IF (LMICRO) THEN
 
   !modif de R et CP
   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, &
+  CALL GPRCP_QLIRSG(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,YDCPG_OPTS%KFLEVG
@@ -1844,7 +1832,7 @@ IF (LFLEXDIA) THEN
     ENDDO
   ENDDO
   ! missing interface !!! REK
-    CALL ARO_SUINTBUDGET_OMP(YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDCPG_OPTS%KSTEP, ZCON1, ZCON2, &
+    CALL ARO_SUINTBUDGET_OMP(YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDCPG_OPTS%NSTEP, ZCON1, ZCON2, &
     & ZCON3, YDDDH)
 
 ENDIF
@@ -1872,7 +1860,7 @@ IF (LRDUST) THEN
   ! input dust scalar concentration in ppp from
   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)&
+  & NSWB_MNH, YDCPG_OPTS%NSTEP+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
@@ -2108,7 +2096,7 @@ IF (LRAYFM.OR.LRAY) THEN
       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, &
+      CALL RADACT(YDMODEL%YRML_PHY_RAD%YREAERD,YDERAD,YDMODEL%YRML_PHY_AER%YREAERSNK,YDRIP, YDSPP_CONFIG,&
          & 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,&
@@ -2134,7 +2122,7 @@ IF (LRAYFM.OR.LRAY) THEN
   ! initialization of ozone
   IF (NOZOCL == 1) THEN
     ! as in IFS
-    CALL RADOZC(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, 1, YDCPG_OPTS%KLON, &
+    CALL RADOZC(YDRIP%YREOZOC,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
@@ -2171,7 +2159,7 @@ ENDIF
 
  IF (LRAYFM) THEN
    ! Intermittent call to radiation interface
-   IF (MOD(YDCPG_OPTS%KSTEP,NRADFR) == 0) THEN 
+   IF (MOD(YDCPG_OPTS%NSTEP,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, &
@@ -2208,7 +2196,7 @@ ENDIF
 
    ZSUDU(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0.0_JPRB
 
-   CALL RADHEAT  (  YDERAD, YDERDI, YDMODEL%YRML_PHY_MF, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON,     &
+   CALL RADHEAT  (YDMODEL%YRCST,  YDMODEL%YRML_PHY_EC%YRTHF, 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, &
@@ -2254,7 +2242,7 @@ ENDIF
     ENDIF
   ENDDO 
 
-  IF( MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
+  IF( MOD(YDCPG_OPTS%NSTEP+1,NPRINTFR)==0) THEN
     WRITE(NULOUT,*)'sous apl_arome apres rayonnement ZTENT=',ZTENT(NPTP,30:41)
     IF (LLMSE) THEN
       DO JSW=1, NSW
@@ -2313,7 +2301,7 @@ IF (LRAY.AND.NRAY == 2.AND.LRADFLEX) THEN
   ! initialization of ozone
   IF (NOZOCL == 1) THEN
     ! as in IFS
-    CALL RADOZC(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, 1, YDCPG_OPTS%KLON, &
+    CALL RADOZC(YDRIP%YREOZOC,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
@@ -2405,7 +2393,7 @@ IF (LRAY.AND.NRAY == 2.AND.LRADFLEX) THEN
   ! call radiation scheme
   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,                  &
+  & NTRADI, YDCPG_OPTS%KFLEVG, IJN, YDCPG_OPTS%NSTEP, 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,                    &
@@ -2489,7 +2477,7 @@ IF(LKFBCONV) THEN
   & ZUM__(:, 1:YDCPG_OPTS%KFLEVG), ZVM__(:, 1:YDCPG_OPTS%KFLEVG), ZWM__(:, 1:YDCPG_OPTS%KFLEVG),                                         &
   & ZMFS_, ZCVTENDT_, ZCVTENDRV_, ZCVTENDRC_, ZCVTENDRI_, ZCVTENDPR_, ZCVTENDPRS_   )
 
-  IF(MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
+  IF(MOD(YDCPG_OPTS%NSTEP+1,NPRINTFR)==0) THEN
     WRITE(NULOUT,*)"Pluie conv au sol", ZCVTENDPR_(NPTP), &
      & MAXVAL(ZCVTENDPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)) ,MINVAL(ZCVTENDPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA))
   ENDIF
@@ -2518,7 +2506,7 @@ IF(LKFBCONV) THEN
   IF (PHYEX%NEBN%LSUBG_COND.AND..NOT.PHYEX%NEBN%LSIGMAS) THEN
     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(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
+  IF(MOD(YDCPG_OPTS%NSTEP+1,NPRINTFR)==0) THEN
     WRITE(NULOUT,*)"aps CONV, TENRV, TENRC, TENRI"
     DO JLEV=1,YDCPG_OPTS%KFLEVG
       WRITE(NULOUT,*)ZTEND_Q(NPTP,JLEV),ZTEND_L(NPTP,JLEV),ZTEND_I(NPTP,JLEV)
@@ -2558,7 +2546,7 @@ IF (LLMSE) THEN
   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,                                                                          &
+      & YDCPG_BNDS%KFDIA, YDCPG_OPTS%NSTEP, 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), &
@@ -2706,7 +2694,7 @@ IF (LMFSHAL) THEN
     ENDIF
 
     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, &
+    & YDMODEL%YRML_PHY_EC%YREPHY, YDPARAR, YDCPG_OPTS%NSTEP, 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,                &
@@ -2791,7 +2779,7 @@ IF (LMFSHAL) THEN
         ENDDO
       ENDIF
     ENDIF
-    IF(MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
+    IF(MOD(YDCPG_OPTS%NSTEP+1,NPRINTFR)==0) THEN
       WRITE(NULOUT,*)"apres surface zsfth zsfrv",ZSFTH_(NPTP),ZSFRV_(NPTP)
     ENDIF
 
@@ -2887,7 +2875,7 @@ IF (LTURB) THEN
   ENDIF
 
   !prints
-  IF(MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
+  IF(MOD(YDCPG_OPTS%NSTEP+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'
@@ -3023,7 +3011,7 @@ IF (LTURB) THEN
 
   ENDIF 
 
-  IF(MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
+  IF(MOD(YDCPG_OPTS%NSTEP+1,NPRINTFR)==0) THEN
     WRITE(NULOUT,*)'u v w a S apres turb'
     DO JLEV=1,YDCPG_OPTS%KFLEVG
       WRITE(NULOUT,*)JLEV,ZUS__(NPTP,JLEV),ZVS__(NPTP,JLEV),ZWS__(NPTP,JLEV),ZTKES_OUT__(NPTP,JLEV)
@@ -3110,12 +3098,12 @@ IF(LWINDFARM)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_PHY%W(JLON,1:YDCPG_OPTS%KFLEVG),ZTKEM(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))
+          & YDCPG_OPTS%NSTEP,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)
@@ -3145,7 +3133,7 @@ IF (LMICRO) THEN
   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(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
+  IF (MOD(YDCPG_OPTS%NSTEP+1,NPRINTFR)==0) THEN
     WRITE(NULOUT,*)'avant rain_ice sous apl_arome'
     WRITE(NULOUT,*)'JLEV   ZZZ_F_      ZZZ_      ZRHODREF',&
      & '    ZRHODJ      ZPABSM__        ZTHSIN_       ZTHM__      '
@@ -3173,7 +3161,7 @@ IF (LMICRO) THEN
        & 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,YDCPG_OPTS%KSTEP+1
+    WRITE(NULOUT,*)'NRR and co',NRR,YDCPG_OPTS%NSTEP+1
   ENDIF
 
   ZSEA_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0.0_JPRB
@@ -3280,7 +3268,7 @@ IF (LMICRO) THEN
     ENDDO
   ENDIF
   !prints
-  IF(MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN
+  IF(MOD(YDCPG_OPTS%NSTEP+1,NPRINTFR)==0) THEN
     WRITE(NULOUT,*)'PTENDT en sortie de rain_ice'
     WRITE(NULOUT,*)'ZTHS__ en sortie de rain_ice'
     DO JLEV=1,YDCPG_OPTS%KFLEVG
@@ -3298,7 +3286,7 @@ IF (LMICRO) THEN
     ! Swapp because IN and OUT will be needed simultaneously
     CALL SWAP_SVM
     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_,                               &
+    & ZTHM__(:, 1:YDCPG_OPTS%KFLEVG), ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG), YDCPG_OPTS%NSTEP+1, ZRM_,                               &
     & ZEVAP_, YDPARAR%PHYEX%CLOUDPARN%NSPLITR, ZSVM_           )
     ! return to tendency
     DO JGFL=1,NGFL_EXT
@@ -3315,20 +3303,20 @@ ENDIF ! LMICRO
 ! start LHN F.Meier 2020 ******
 
 LNUDGLHNREAD=.TRUE.
-IF(MYPROC==1.AND.YDCPG_OPTS%KSTEP==1.AND.LNUDGLH)THEN
+IF(MYPROC==1.AND.YDCPG_OPTS%NSTEP==1.AND.LNUDGLH)THEN
   CALL NUDGLHCLIMPROF(YDCPG_OPTS%KFLEVG, LNUDGLHNREAD)
 ENDIF
 ! save accumulated precipitation for LHN
-IF (LNUDGLH.AND.YDCPG_OPTS%KSTEP == NSTARTNUDGLH.AND.NSTARTNUDGLH > 0) THEN
+IF (LNUDGLH.AND.YDCPG_OPTS%NSTEP == NSTARTNUDGLH.AND.NSTARTNUDGLH > 0) THEN
   !IF(MYPROC==1) WRITE(NULOUT,*)'save precip for LHN - STEP:',KSTEP, &
   !  & 'NUDGINGINT:',NINTNUDGLH,'NSTARTNUDGLH:',NSTARTNUDGLH
   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=YDCPG_OPTS%KSTEP-NSTARTNUDGLH
+ISTEP=YDCPG_OPTS%NSTEP-NSTARTNUDGLH
 ! if LNUDGLH and KSTEP in nudging interval
-IF (LNUDGLH.AND.YDCPG_OPTS%KSTEP > NSTARTNUDGLH.AND.YDCPG_OPTS%KSTEP <= NSTOPNUDGLH) THEN
+IF (LNUDGLH.AND.YDCPG_OPTS%NSTEP > NSTARTNUDGLH.AND.YDCPG_OPTS%NSTEP <= NSTOPNUDGLH) THEN
   ! safe LH profile for step before LHN step
   LLHN=.FALSE.
   IF(MOD(ISTEP+1,NINTNUDGLH)==0) THEN
@@ -3383,7 +3371,7 @@ IF (LNUDGLH.AND.YDCPG_OPTS%KSTEP > NSTARTNUDGLH.AND.YDCPG_OPTS%KSTEP <= NSTOPNUD
   ELSEIF(MOD(ISTEP,NINTNUDGLH)<NTAUNUDGLH.AND.MOD(ISTEP,NINTNUDGLH)>0 &
       & .AND.ISTEP>NINTNUDGLH) THEN
     IF(MYPROC==1)THEN
-      WRITE(NULOUT,*)'LH nudging applied-STEP:',YDCPG_OPTS%KSTEP,'NUDGINGINT:',NINTNUDGLH
+      WRITE(NULOUT,*)'LH nudging applied-STEP:',YDCPG_OPTS%NSTEP,'NUDGINGINT:',NINTNUDGLH
       WRITE(NULOUT,*)'NTAUNUDGLH:',NTAUNUDGLH
     ENDIF
     ! get index for reading correctly most recent obs
@@ -3470,7 +3458,7 @@ IF (LUSECHEM) THEN
   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_ )
+  & NRR, YDCPG_OPTS%NSTEP+1, NULOUT, IEZDIAG_CHEM, ZPEZDIAG_(:, :, IOFF_MFSHAL:NGFL_EZDIAG), ZSVS_ )
  
   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)
 
@@ -3496,7 +3484,7 @@ IF(LSPSDT) THEN
   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, &
+  CALL SPPTEN (YDMODEL, 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
@@ -3508,8 +3496,8 @@ IF(LSPSDT) THEN
 
 ENDIF
 
-IF(LFORCENL.AND.(YDCPG_OPTS%KSTEP*(TSPHY/RHOUR)>=NFORCESTART).AND.&
-              & (YDCPG_OPTS%KSTEP*(TSPHY/RHOUR)<=NFORCEEND)) THEN
+IF(LFORCENL.AND.(YDCPG_OPTS%NSTEP*(TSPHY/RHOUR)>=NFORCESTART).AND.&
+              & (YDCPG_OPTS%NSTEP*(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)
@@ -3526,12 +3514,12 @@ ENDIF
 
 !forcage pour declencher la ligne de grain
 IF (LSQUALL) THEN
-  IF (LTWOTL) THEN
+  IF (YDDYNA%LTWOTL) THEN
     ZDT2=2*ZDT
   ELSE
     ZDT2=ZDT
   ENDIF
-  IF((YDCPG_OPTS%KSTEP+1)*ZDT2 < 600._JPRB) THEN
+  IF((YDCPG_OPTS%NSTEP+1)*ZDT2 < 600._JPRB) THEN
     WRITE(NULOUT, *)'refroidissement impose de',NREFROI1,' a ',NREFROI2
     DO JLEV=YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KFLEVG-20,-1
       ZTENDT(NREFROI1:NREFROI2,JLEV)=-0.01_JPRB
@@ -3584,9 +3572,9 @@ IF (LXXDIAGH) THEN
 ENDIF
 ! lightening density
 IF (LFLASH) THEN
-  IF (YDCPG_OPTS%KSTEP==0) YDMF_PHYS%OUT%FLASH=0._JPRB
+  IF (YDCPG_OPTS%NSTEP==0) YDMF_PHYS%OUT%FLASH=0._JPRB
 
-  CALL DIAGFLASH(YDCFU,YDMODEL%YRML_PHY_MF,YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA,YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KSTEP,&
+  CALL DIAGFLASH(YDCFU,YDMODEL%YRML_PHY_MF,YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA,YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDCPG_OPTS%NSTEP,&
     &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
@@ -3681,17 +3669,17 @@ IF (LFLEXDIA) THEN
      ! 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)
+      IF (LINTFLEX) THEN
+        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
+        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
+        CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP2(:,:),'FQTPRECISTN',YDDDH)
+      ENDIF
 
 ENDIF
 
@@ -3788,7 +3776,7 @@ IF (LVERTFE.AND.LVFE_GWMPA) THEN
 ENDIF
 
 ! * compute ZTT1:
-IF (LSLAG.AND.LTWOTL) THEN
+IF (LSLAG.AND.YDDYNA%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)
@@ -3803,7 +3791,7 @@ ELSE
 ENDIF
 
 ! * compute ZGWT1 = tendency of gw:
-IF (LNHDYN) THEN
+IF (YDDYNA%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
@@ -3817,7 +3805,7 @@ IF (LNHDYN) THEN
 ENDIF
 
 ! * convert gw tendency in d tendency:
-IF(LNHDYN) THEN
+IF(YDDYNA%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)
@@ -3839,13 +3827,8 @@ IF(LNHDYN) THEN
     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
+    CALL GNHGW2SVDAROME(YDGEOMETRY, YDDYNA%LNHEE, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYDF, &
+                      & YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%LNPR, ZRTT1, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF, ZGWT1, ZTENDD)  
 
   ENDIF
 ELSE
@@ -3863,7 +3846,7 @@ 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,                &
+  CALL CPTEND_FLEX( YDLDDH, YDMDDH, YGFL, YDPHY, YDDYNA, 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,                 &
@@ -3872,7 +3855,7 @@ IF ( LINTFLEX ) THEN
   & 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,  &
+  CALL CPUTQY(YDGEOMETRY%YRDIMV, YDGMV, YGFL, YDPTRSLB1, YDPHY, YDDYNA, 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,   &
@@ -3920,7 +3903,7 @@ IF(LGSCM.OR.LMUSCLFA) THEN
   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,     &
+  & YDCPG_OPTS%KGL2, YDCPG_BNDS%KSTGLO, YDCPG_OPTS%NSTEP, 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               )
@@ -3937,7 +3920,7 @@ CALL MF_PHYS_PRECIPS (YDCPG_BNDS, YDCPG_OPTS, ZPRC_DPRECIPS, ZPRC_DPRECIPS2, YDM
 IF (LINTFLEX) CALL CLEANINTPROCSET(YLPROCSET)
 
 ! Clear SPP
-IF (YSPP_CONFIG%LSPP) CALL CLEAR_ALL_SPP(ZSPP_ALL)
+IF (YDSPP_CONFIG%LSPP) CALL CLEAR_ALL_SPP(ZSPP_ALL)
 
 !     ------------------------------------------------------------------
 
diff --git a/src/arome/ext/aplpar.F90 b/src/arome/ext/aplpar.F90
index 281d5b31a9d251af6fcc1fb0a82d259bf89ee762..b885076aacc86f7be1feb82de67714e9ec551e38 100644
--- a/src/arome/ext/aplpar.F90
+++ b/src/arome/ext/aplpar.F90
@@ -215,17 +215,16 @@ USE SURFACE_FIELDS_MIX , ONLY : TSURF
 USE YOMXFU             , ONLY : TXFU
 USE TYPE_MODEL         , ONLY : MODEL
 USE PARKIND1           , ONLY : JPIM     ,JPRB
-USE YOMHOOK            , ONLY : LHOOK    ,DR_HOOK
+USE YOMHOOK            , ONLY : LHOOK    ,DR_HOOK, JPHOOK
 USE YOMVERT            , ONLY : VP00
 USE YOMCST             , ONLY : TCST
-USE YOMDYNA            , ONLY : L3DTURB
 USE YOMRIP0            , ONLY : NINDAT
 USE DDH_MIX            , ONLY : TYP_DDH
 USE YOMLUN             , ONLY : NULOUT
 USE YOMLSFORC          , ONLY : LMUSCLFA,NMUSCLFA
 USE YOMTRAJ            , ONLY : TRAJ_PHYS_TYPE, LPRTTRAJ
 USE YOMCFU             , ONLY : TCFU !!! for parameters of FLASH
-USE SPP_MOD            , ONLY : YSPP, YSPP_CONFIG
+!USE SPP_MOD            , ONLY : YSPP, YSPP_CONFIG
 USE MF_PHYS_BASE_STATE_TYPE_MOD &
                      & , ONLY : MF_PHYS_BASE_STATE_TYPE
 USE MF_PHYS_NEXT_STATE_TYPE_MOD &
@@ -235,7 +234,7 @@ USE MF_PHYS_NEXT_STATE_TYPE_MOD &
 USE YOMGMV             , ONLY : TGMV
 USE SC2PRG_MOD         , ONLY : SC2PRG
 
-USE YOMCT0             , ONLY : LCALLSFX ,LSFORCS, LELAM, LTWOTL, LAROME, LCORWAT
+USE YOMCT0             , ONLY : LCALLSFX ,LSFORCS, LELAM, LAROME, LCORWAT
 USE YOMNUD             , ONLY : NFNUDG   ,LNUDG 
 USE YOMSNU             , ONLY : XPNUDG
 USE YOMSCM             , ONLY : LGSCM
@@ -314,7 +313,7 @@ REAL(KIND=JPRB) :: ZAC_HC(YDCPG_OPTS%KFLEVG+1,YDCPG_OPTS%KFLEVG+1)           ! h
 TYPE(TYPE_INTPROCSET) :: YLPROCSET
 
 ! SPP
-REAL(KIND=JPRB) :: ZGP2DSPP(YDCPG_OPTS%KLON,YSPP%N2D)
+REAL(KIND=JPRB) :: ZGP2DSPP(YDCPG_OPTS%KLON,YDMODEL%YRML_GCONF%YRSPP_CONFIG%SM%NRFTOTAL)
 
 
 REAL(KIND=JPRB), POINTER :: ZPTENDEFB11(:,:), ZPTENDEFB21(:,:)
@@ -815,15 +814,18 @@ REAL(KIND=JPRB) :: ZDQG
 ! --------------------------------
 INTEGER(KIND=JPIM) :: ITOPC(YDCPG_OPTS%KLON),IBASC(YDCPG_OPTS%KLON),ITYPE(YDCPG_OPTS%KLON),ISPPN2D
 INTEGER(KIND=JPIM) :: ICBOT(YDCPG_OPTS%KLON),ICTOP(YDCPG_OPTS%KLON),IBOTSC(YDCPG_OPTS%KLON)
+INTEGER(KIND=JPIM) :: ICBOT_LIG(YDCPG_OPTS%KLON),ICTOP_LIG(YDCPG_OPTS%KLON)
 LOGICAL :: LLDSLPHY,LLPTQ,LLLAND(YDCPG_OPTS%KLON),LLCUM(YDCPG_OPTS%KLON),LLSC(YDCPG_OPTS%KLON),LLSHCV(YDCPG_OPTS%KLON),LLLINOX(YDCPG_OPTS%KLON)
+LOGICAL :: LLCUM_LIG(YDCPG_OPTS%KLON)
 REAL(KIND=JPRB) :: ZLIGH_CTG(YDCPG_OPTS%KLON),ZCTOPH(YDCPG_OPTS%KLON),ZPRECMX(YDCPG_OPTS%KLON),ZICE(YDCPG_OPTS%KLON),ZCDEPTH(YDCPG_OPTS%KLON),ZWMFU(YDCPG_OPTS%KLON)
 REAL(KIND=JPRB) :: ZVERVEL(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZGEOM1(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZGEOMH(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG)
 REAL(KIND=JPRB) :: ZTENQ(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG),ZTENU(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG),ZTENV(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZTENTA(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG),ZTENQA(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 REAL(KIND=JPRB) :: ZLCRIT_AER(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG),ZSNDE(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,2)
 REAL(KIND=JPRB) :: ZCUCONVCA(YDCPG_OPTS%KLON),ZGAW(YDCPG_OPTS%KLON),ZVDIFTS,ZDXTDK(YDCPG_OPTS%KLON)
 REAL(KIND=JPRB) :: ZLU(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG),ZLUDE(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG),ZMFU(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 REAL(KIND=JPRB) :: ZLISUM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG),ZMFD(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
-REAL(KIND=JPRB) :: ZWMEAN(YDCPG_OPTS%KLON),ZACPR(YDCPG_OPTS%KLON),ZDIFF(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
+REAL(KIND=JPRB) :: ZWMEAN(YDCPG_OPTS%KLON),ZACPR(YDCPG_OPTS%KLON),ZDIFF(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG),ZVDISCU(YDCPG_OPTS%KLON)
 REAL(KIND=JPRB) :: ZMFUDE_RATE(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG),ZMFDDE_RATE(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG)
 REAL(KIND=JPRB) :: ZFHPCL(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG),ZFHPCN(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG)
 REAL(KIND=JPRB) :: ZFCQLF(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG),ZFCQLI(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG),ZFRSO(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG),ZFRTH(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG)
@@ -924,7 +926,7 @@ REAL (KIND=JPRB)     :: ZSAV_UDGRO (YDCPG_OPTS%KLON)
 REAL (KIND=JPRB)     :: ZSAV_UDOM (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%KFLEVG)
 REAL (KIND=JPRB)     :: ZSAV_UNEBH (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%KFLEVG)
 
-REAL(KIND=JPRB) :: ZHOOK_HANDLE, ZHOOK_HANDLE_1
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE, ZHOOK_HANDLE_1
 
 !     ------------------------------------------------------------------
 
@@ -1020,7 +1022,7 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE, ZHOOK_HANDLE_1
 #include "cputqy_aplpar_loop.intfb.h"
 #include "cpwts.intfb.h"
 #include "cucalln_mf.intfb.h"
-#include "culight.intfb.h"
+!#include "culight.intfb.h"
 #include "dprecips.intfb.h"
 #include "mean_rad_temp.intfb.h"
 #include "mf_phys_bayrad.intfb.h"
@@ -1067,7 +1069,9 @@ ASSOCIATE(YDDIM=>YDGEOMETRY%YRDIM, YDDIMV=>YDGEOMETRY%YRDIMV, YDVAB=>YDGEOMETRY%
 & YDGEM=>YDGEOMETRY%YRGEM, YDSTA=>YDGEOMETRY%YRSTA, YDERDI=>YDMODEL%YRML_PHY_RAD%YRERDI, YDMCC=>YDMODEL%YRML_AOC%YRMCC,       &
 & YDERAD=>YDMODEL%YRML_PHY_RAD%YRERAD, YDPHY3=>YDMODEL%YRML_PHY_MF%YRPHY3, YDPHY1=>YDMODEL%YRML_PHY_MF%YRPHY1,                &
 & YDPHY0=>YDMODEL%YRML_PHY_MF%YRPHY0, YDNORGWD=>YDMODEL%YRML_PHY_MF%YRNORGWD, YDMSE=>YDMODEL%YRML_PHY_MF%YRMSE,               &
-& YDPHYDS=>YDMODEL%YRML_PHY_MF%YRPHYDS    )
+& YDPHYDS=>YDMODEL%YRML_PHY_MF%YRPHYDS, YDDYNA=>YDMODEL%YRML_DYN%YRDYNA,                                                      &
+& YDSPP_CONFIG=>YDMODEL%YRML_GCONF%YRSPP_CONFIG, YDECUMF=>YDMODEL%YRML_PHY_EC%YRECUMF)
+
 
 
 ASSOCIATE(CMF_UPDRAFT=>YDPARAR%PHYEX%PARAM_MFSHALLN%CMF_UPDRAFT, TSPHY=>YDPHY2%TSPHY, NTSSG=>YDDPHY%NTSSG, LMDUST=>YDARPHY%LMDUST,              &
@@ -1157,15 +1161,16 @@ IF (LINTFLEX) YLPROCSET=NEWINTPROCSET()
 INSTEP_DEB=1
 INSTEP_FIN=1
 
-! SPP 
-IF ( YSPP_CONFIG%LSPP ) THEN
- DO JSPP=1,YSPP%N2D
-   ZGP2DSPP(:,JSPP) = YSPP%GP_ARP(JSPP)%GP2D(:,1,YDCPG_BNDS%KBL)
- ENDDO
-ENDIF
-
-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,                     &
+! SPP
+! am:phasing 49 : dead piece of code ?
+!IF ( YDSPP_CONFIG%LSPP ) THEN
+! DO JSPP=1,YDMODEL%YRML_GCONF%YRSPP_CONFIG%SM%NRFTOTAL
+!   ZGP2DSPP(:,JSPP) = YSPP%GP_ARP(JSPP)%GP2D(:,1,YDCPG_BNDS%KBL)
+! ENDDO
+!ENDIF
+
+CALL CPPHINP(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)
 
@@ -1235,7 +1240,7 @@ DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
   YDMF_PHYS_SURF%GSD_VF%PLSM(JROF)=REAL(NINT(YDMF_PHYS_SURF%GSD_VF%PLSM(JROF)),JPRB)
 ENDDO
 
-IF (LTWOTL) THEN
+IF (YDDYNA%LTWOTL) THEN
   IF (LAJUCV) THEN
     DO JLEV=1,YDCPG_OPTS%KFLEVG
       DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
@@ -1264,7 +1269,7 @@ ENDIF
 !-------------------------------------------------
 !
 IF(LGCHECKMV) CALL CHECKMV(YDCPG_OPTS%NINDAT, YDCST, YDRIP, YDPHY0, YDPHY2, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, &
-              & YDCPG_OPTS%KFLEVG, YDCPG_OPTS%KSTEP, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF,              &
+              & YDCPG_OPTS%KFLEVG, YDCPG_OPTS%NSTEP, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF,              &
               & YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYDF, YDVARS%GEOMETRY%GELAM%T0,                   &
               & YDVARS%GEOMETRY%GEMU%T0, ZRDG_MU0, YDMF_PHYS_SURF%GSD_VF%PLSM, YDMF_PHYS_BASE_STATE%T,                                   &
               & YDMF_PHYS_BASE_STATE%Q, YDMF_PHYS_BASE_STATE%YGSP_RR%T                      )
@@ -1350,8 +1355,8 @@ IF (LMPHYS) THEN
     ENDDO
 
   ELSEIF ((LO3FL).AND.(NOZOCL == 1).AND.(LRAYFM)) THEN
-    IF (MOD(YDCPG_OPTS%KSTEP,NRADFR) == 0) THEN
-      CALL RADOZCMF(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD, &
+    IF (MOD(YDCPG_OPTS%NSTEP,NRADFR) == 0) THEN
+      CALL RADOZCMF(YDMODEL%YRCST,YDRIP%YREOZOC, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD, &
       & YDVARS%GEOMETRY%GEMU%T0, ZROZ)
       DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
         ZQO3(JLON,0)=1.E-9_JPRB
@@ -1865,13 +1870,13 @@ ENDDO
 !  -------------------------------------------------------
 
 IF((LNEBR.OR.(TRIM(CGMIXLEN) == 'TM')&
-       & .OR.(TRIM(CGMIXLEN) == 'TMC')).AND.YDCPG_OPTS%KSTEP == 0) THEN
+       & .OR.(TRIM(CGMIXLEN) == 'TMC')).AND.YDCPG_OPTS%NSTEP == 0) THEN
 !DEC$ IVDEP
   DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
     YDMF_PHYS_SURF%GSD_VH%PPBLH(JLON)=(XMINLM+XMAXLM)*0.5_JPRB
   ENDDO
 ENDIF
-IF((LNEBCO.OR.LGWDC).AND.YDCPG_OPTS%KSTEP == 0) THEN
+IF((LNEBCO.OR.LGWDC).AND.YDCPG_OPTS%NSTEP == 0) THEN
   DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
     YDMF_PHYS_SURF%GSD_VH%PTCCH(JLON)=0.0_JPRB
     YDMF_PHYS_SURF%GSD_VH%PSCCH(JLON)=0.0_JPRB
@@ -1879,37 +1884,37 @@ IF((LNEBCO.OR.LGWDC).AND.YDCPG_OPTS%KSTEP == 0) THEN
   ENDDO
 ENDIF
 
-IF((LNEBN.OR.LNEBR.OR.LRRGUST).AND.YDCPG_OPTS%KSTEP == 0) THEN
+IF((LNEBN.OR.LNEBR.OR.LRRGUST).AND.YDCPG_OPTS%NSTEP == 0) THEN
   DO JLEV=YDCPG_OPTS%KTDIA-1,YDCPG_OPTS%KFLEVG
     DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
       ZPFL_FPLCH(JLON,JLEV)=0.0_JPRB
     ENDDO
   ENDDO
 ENDIF
-IF(LRRGUST.AND.YDCPG_OPTS%KSTEP == 0) THEN
+IF(LRRGUST.AND.YDCPG_OPTS%NSTEP == 0) THEN
   DO JLEV=YDCPG_OPTS%KTDIA-1,YDCPG_OPTS%KFLEVG
     DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
       ZPFL_FPLSH(JLON,JLEV)=0.0_JPRB
     ENDDO
   ENDDO
 ENDIF
-IF(LCVPGY.AND.YDCPG_OPTS%KSTEP == 0) THEN
+IF(LCVPGY.AND.YDCPG_OPTS%NSTEP == 0) THEN
   DO JLEV=YDCPG_OPTS%KTDIA,YDCPG_OPTS%KFLEVG
     DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
       YDMF_PHYS_BASE_STATE%CVV(JLON,JLEV)=0.0_JPRB
     ENDDO
   ENDDO
 ENDIF
-IF(LPHSPSH.AND.YDCPG_OPTS%KSTEP == 0) THEN
+IF(LPHSPSH.AND.YDCPG_OPTS%NSTEP == 0) THEN
   YDMF_PHYS_SURF%GSD_VH%PSPSH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB
 ENDIF
-IF(LCOEFKTKE.AND.YDCPG_OPTS%KSTEP == 0) THEN
+IF(LCOEFKTKE.AND.YDCPG_OPTS%NSTEP == 0) THEN
   YDMF_PHYS_SURF%GSD_VH%PQSH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_BASE_STATE%Q(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)
 ENDIF
-IF(LCVCSD.AND.LUDEVOL.AND.YDCPG_OPTS%KSTEP==0) THEN
+IF(LCVCSD.AND.LUDEVOL.AND.YDCPG_OPTS%NSTEP==0) THEN
   YDMF_PHYS_SURF%GSD_VK%PUDGRO(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB
 ENDIF
-IF(LRKCDEV.AND.YDCPG_OPTS%KSTEP == 0) THEN
+IF(LRKCDEV.AND.YDCPG_OPTS%NSTEP == 0) THEN
   DO JLEV=YDCPG_OPTS%KTDIA,YDCPG_OPTS%KFLEVG
      DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
         ZDTRAD(JLON,JLEV)=0.0_JPRB
@@ -2066,7 +2071,7 @@ IF(LMPHYS) THEN
 !
 ! Define z0;z0h if it's necessary
 !
-  IF (LMSE.AND.(.NOT.LCOEFKTKE).AND.(.NOT.LCOEFK_TOMS).AND.YDCPG_OPTS%KSTEP == 0) THEN
+  IF (LMSE.AND.(.NOT.LCOEFKTKE).AND.(.NOT.LCOEFK_TOMS).AND.YDCPG_OPTS%NSTEP == 0) THEN
   CALL ARO_GROUND_DIAG_Z0( YDCPG_BNDS%KBL, YDCPG_OPTS%KGPCOMP, YDCPG_BNDS%KFDIA-YDCPG_BNDS%KIDIA+1, YDCPG_BNDS%KIDIA,                 &
   & YDCPG_BNDS%KFDIA, NDGUNG, NDGUXG, NDLUNG, NDLUXG, YDVARS%GEOMETRY%RINDX%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA),                    &
   & YDVARS%GEOMETRY%RINDY%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), LSURFEX_KFROM, YDMF_PHYS%OUT%GZ0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), &
@@ -2092,7 +2097,7 @@ IF(LMPHYS) THEN
     IF (LMSE) THEN
       IF(LCOEFKTKE.AND.LCOEFKSURF) THEN
 
-       IF (YDCPG_OPTS%KSTEP == 0) THEN 
+       IF (YDCPG_OPTS%NSTEP == 0) THEN 
          CALL ARO_GROUND_DIAG_Z0( YDCPG_BNDS%KBL, YDCPG_OPTS%KGPCOMP, YDCPG_BNDS%KFDIA-YDCPG_BNDS%KIDIA+1,                                   &
          & YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, NDGUNG, NDGUXG, NDLUNG, NDLUXG, YDVARS%GEOMETRY%RINDX%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA),  &
          & YDVARS%GEOMETRY%RINDY%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), LSURFEX_KFROM, YDMF_PHYS%OUT%GZ0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), &
@@ -2280,7 +2285,7 @@ IF(LMPHYS) THEN
       IF( LCOEFK_RIS) THEN
         LLMAF=.TRUE.
         CALL ACMIXELEN(YGFL, YDPHY, YDPHY0, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KTDIA,                        &
-        & YDCPG_OPTS%KFLEVG, YDCPG_OPTS%KSTEP, IMLTYPE, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF,            &
+        & YDCPG_OPTS%KFLEVG, YDCPG_OPTS%NSTEP, IMLTYPE, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF,            &
         & YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYDF, YDMF_PHYS_BASE_STATE%T,                            &
         & ZQV, ZQL, ZQI, YDMF_PHYS_BASE_STATE%R, YDMF_PHYS_BASE_STATE%S, YDMF_PHYS_BASE_STATE%TKE, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%R,   &
         & YDMF_PHYS_BASE_STATE%U, YDMF_PHYS_BASE_STATE%V, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%ALPH, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%LNPR, &
@@ -2308,7 +2313,7 @@ IF(LMPHYS) THEN
       ENDIF
 
       CALL ACMRIP(YDMODEL%YRML_PHY_MF, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, NTCOEF, YDCPG_OPTS%KFLEVG,                 &
-      & YDCPG_OPTS%KSTEP, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD, &
+      & YDCPG_OPTS%NSTEP, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD, &
       & YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYDF, ZQV, ZQL, ZQI, ZCP, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%ALPH,                             &
       & YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%LNPR, ZFLU_QSAT, ZMSC_QW, ZMSC_TW, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%R,                      &
       & YDMF_PHYS_BASE_STATE%T, YDMF_PHYS_BASE_STATE%U, YDMF_PHYS_BASE_STATE%V, YDVARS%FQTUR%T0, YDVARS%FSTUR%T0,                      &
@@ -2332,7 +2337,7 @@ IF(LMPHYS) THEN
       ENDIF
       LLMAF=.FALSE.
       CALL ACMIXELEN(YGFL, YDPHY, YDPHY0, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KTDIA,                        &
-      & YDCPG_OPTS%KFLEVG, YDCPG_OPTS%KSTEP, IMLTYPE, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF,            &
+      & YDCPG_OPTS%KFLEVG, YDCPG_OPTS%NSTEP, IMLTYPE, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF,            &
       & YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYDF, YDMF_PHYS_BASE_STATE%T,                            &
       & ZQV, ZQL, ZQI, YDMF_PHYS_BASE_STATE%R, YDMF_PHYS_BASE_STATE%S, YDMF_PHYS_BASE_STATE%TKE, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%R,   &
       & YDMF_PHYS_BASE_STATE%U, YDMF_PHYS_BASE_STATE%V, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%ALPH, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%LNPR, &
@@ -2401,10 +2406,10 @@ IF(LMPHYS) THEN
   ENDIF
 
   IF (LCVPPKF) THEN
-    CALL ACVPPKF(YDCST,YDMODEL%YRML_PHY_MF, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, NTCVIM, YDCPG_OPTS%KFLEVG,  &
+    CALL ACVPPKF(YDCST,YDMODEL%YRML_PHY_MF, YDCPG_BNDS, YDCPG_OPTS, NTCVIM,                                               &
     & YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYDF, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP,  &
     & YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%R, YDMF_PHYS_BASE_STATE%T, ZQV, ZQL, ZQI, YDMF_PHYS_BASE_STATE%U,                 &
-    & YDMF_PHYS_BASE_STATE%V, YDCPG_DYN0%CTY%VVEL(:, 1:), YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%CP, YDMF_PHYS_BASE_STATE%TKE, &
+    & YDMF_PHYS_BASE_STATE%V, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%CP, YDMF_PHYS_BASE_STATE%TKE,                             &
     & ZDIFCVPPQ, ZDIFCVPPS, ZCONDCVPPL, ZCONDCVPPI, ZPRODTH_CVPP, INLAB_CVPP, ZQLI_CVPP, ZNEB_CVPP,                       &
     & INND)
   ENDIF
@@ -2420,7 +2425,7 @@ IF(LMPHYS) THEN
     ENDIF
     CALL ABOR1('APLPAR: CODE MUST BE UPDATED, IMPL_MF IS NOW SET IN NAMELIST')
       
-    IF (YDCPG_OPTS%KSTEP == 0) YDMF_PHYS_SURF%GSD_SFL%PGROUP(:,:) = 0.0_JPRB
+    IF (YDCPG_OPTS%NSTEP == 0) YDMF_PHYS_SURF%GSD_SFL%PGROUP(:,:) = 0.0_JPRB
     CALL ARP_SHALLOW_MF( YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KTDIA, YDCPG_OPTS%KFLEVG,              &
     & TSPHY, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%R,        &
     & YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%CP, CMF_UPDRAFT, CMF_CLOUD, LMIXUV, YDMF_PHYS_BASE_STATE%U, YDMF_PHYS_BASE_STATE%V,     &
@@ -2495,7 +2500,7 @@ IF(LMPHYS) THEN
   CALL ARO_MNHDUST (1, ILONMNH, YDCPG_OPTS%KFLEVG, NGFL_EXT, YDCPG_OPTS%ZDTPHY, ZZI_SVM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :, 1:NGFL_EXT),                   &
   & ZZZ(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :), ZDZZ(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :), ZZI_PABSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :), &
   & ZZI_THM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :), ZZI_RHODREFM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :),                                         &
-  & NSWB_MNH, YDCPG_OPTS%KSTEP+1, ZZI_SVM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :, 1:NGFL_EXT), ZPIZA_DST(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :),  &
+  & NSWB_MNH, YDCPG_OPTS%NSTEP+1, ZZI_SVM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :, 1:NGFL_EXT), ZPIZA_DST(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :),  &
   & ZCGA_DST(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :), ZTAUREL_DST(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :),                                         &
   & ZAERD(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :), NGFL_EZDIAG, ZZI_PEZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :)                                   &
   &                                                                                                                                                                                                                              )
@@ -2617,7 +2622,7 @@ IF(LMPHYS) THEN
 
   LLAERO=LAEROSEA.AND.LAEROLAN.AND.LAEROSOO.AND.LAERODES
 
-  IF    (   (LRAYFM.AND.(MOD(YDCPG_OPTS%KSTEP,NRADFR) == 0)) &
+  IF    (   (LRAYFM.AND.(MOD(YDCPG_OPTS%NSTEP,NRADFR) == 0)) &
   & .OR.  ( (LRAY.OR.LRAYSP).AND.(.NOT.LRSTAER)) ) THEN
 
     IF (LLAERO) THEN
@@ -2684,7 +2689,7 @@ IF(LMPHYS) THEN
   ! separate clearsky call is kept only for old ACRANEB; for ACRANEB2
   ! duplicit calculation of gaseous transmissions is avoided
   IF (LRAY.AND.NRAY == 1.AND.YDCFU%NFRRC /= 0) THEN
-    IF (MOD(YDCPG_OPTS%KSTEP,YDCFU%NFRRC) == 0) THEN
+    IF (MOD(YDCPG_OPTS%NSTEP,YDCFU%NFRRC) == 0) THEN
       CALL ACRANEB(YDRIP, YDMODEL%YRML_PHY_MF, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON,                       &
       & NTRADI, YDCPG_OPTS%KFLEVG, IJN, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD,         &
       & YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYDF, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%CP, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%R, &
@@ -2861,7 +2866,7 @@ IF(LMPHYS) THEN
     IF(LFLASH) THEN
       ! Lightning flashes: interface between PCMT and CULIGHT input data.
       CALL ACLIGHT(YDMODEL%YRML_PHY_MF,YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA,YDCPG_OPTS%KLON,NTCVIM,YDCPG_OPTS%KFLEVG,&
-                   & ZQLC,ZQIC,ZLU,ICBOT,ICTOP,LLCUM,YDMF_PHYS%OUT%CAPE)
+                   & ZQLC,ZQIC,ZLU,ICBOT_LIG,ICTOP_LIG,LLCUM_LIG,YDMF_PHYS%OUT%CAPE)
       DO JLEV=YDCPG_OPTS%KTDIA,YDCPG_OPTS%KFLEVG
         DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
           ZMFU(JLON,JLEV)=ZMF_UP(JLON,JLEV)
@@ -2908,7 +2913,7 @@ IF(LMPHYS) THEN
 !     7.3.5 Computation of the equivalent coefficients for simplified
 !           radiation scheme
 
-  IF ( LRAYSP .AND.(YDCPG_OPTS%KSTEP == 1).AND.LRCOEF ) THEN
+  IF ( LRAYSP .AND.(YDCPG_OPTS%NSTEP == 1).AND.LRCOEF ) THEN
     DO JLEV=YDCPG_OPTS%KTDIA,YDCPG_OPTS%KFLEVG
       DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
         ZZNEB(JLON,JLEV)=0.0_JPRB
@@ -2937,7 +2942,7 @@ IF(LMPHYS) THEN
      ALLOCATE(ZCFLX(YDCPG_OPTS%KLON,NCHEM), ZCFLXO(YDCPG_OPTS%KLON,NCHEM), ZCHEMDV(YDCPG_OPTS%KLON,0)) ! no species with dry deposition in ARPCLIM
      ALLOCATE(ZAEROP(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,NACTAERO),ZTENC(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,NCHEM))
      ALLOCATE(ZDELP(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZWND(YDCPG_OPTS%KLON),ZDUMMY1(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZGELAT(YDCPG_OPTS%KLON))
-     ALLOCATE(ZNEEFLX(YDCPG_OPTS%KLON),ZCHEM2AER(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,4))
+     ALLOCATE(ZNEEFLX(YDCPG_OPTS%KLON),ZCHEM2AER(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,6))
      INDCHEM(:)     = 1_JPIM ! we should have here the indexes of the chemical species in the YCHEM array, to be implemented later
      IGPLAT (:)     = 1_JPIM
      ZSD_XA (:,:,:) = 0._JPRB
@@ -2999,7 +3004,7 @@ IF(LMPHYS) THEN
         ENDDO
       CASE(2)
         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%PREHYD,              &
+        & NTRADI, YDCPG_OPTS%KFLEVG, IJN, YDCPG_OPTS%NSTEP, YDCFU%NFRRC, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD,              &
         & YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYDF, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%CP, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%R, &
         & YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP, YDCPG_MISC%NEB, ZQV, ZQCO2, YDCPG_MISC%QICE, YDCPG_MISC%QLI,              &
         & ZQO3, YDMF_PHYS_BASE_STATE%T, YDMF_PHYS%OUT%ALB, ZALBDIR, ZFLU_EMIS, YDVARS%GEOMETRY%GELAM%T0,                    &
@@ -3022,9 +3027,9 @@ IF(LMPHYS) THEN
 
   ELSEIF ( LRAYFM ) THEN
 
-    LLCALLRAD=(MOD(YDCPG_OPTS%KSTEP,NRADFR) == 0 )
+    LLCALLRAD=(MOD(YDCPG_OPTS%NSTEP,NRADFR) == 0 )
 !    IF (NCALLRAD==1) ! <== not yet
-    IF (NCALLRAD==2) LLCALLRAD=(LLCALLRAD.AND.(YDCPG_OPTS%KSTEP<=NSTOP-1))
+    IF (NCALLRAD==2) LLCALLRAD=(LLCALLRAD.AND.(YDCPG_OPTS%NSTEP<=NSTOP-1))
 !    IF (NCALLRAD==3) ! <== not yet
     IAERO=SIZE(ZAERO,3)
     ! ---- Intermittent call to radiation scheme
@@ -3056,7 +3061,7 @@ IF(LMPHYS) THEN
     IF (LRAYLU)  YDMF_PHYS%OUT%FRSOLU(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS%RAD%RMOON(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
 
     ! ---- Flux update and radiative heating rates
-    CALL RADHEAT ( YDERAD, YDERDI, YDMODEL%YRML_PHY_MF, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, &
+    CALL RADHEAT (YDMODEL%YRCST,  YDMODEL%YRML_PHY_EC%YRTHF, YDERAD, YDERDI, YDMODEL%YRML_PHY_MF, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, &
     & YDCPG_OPTS%KFLEVG, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD, ZFLU_EMIS, YDMF_PHYS%RAD%EMTD,                &
     & ZRDG_MU0, ZQV, ZTENT, YDMF_PHYS%RAD%TRSW, ZTRSOD, YDMF_PHYS_BASE_STATE%YGSP_RR%T, TSPHY,               &
     & ZTRSODIR, ZTRSODIF, ZALBD, ZALBP, YDMF_PHYS%OUT%FRSO, YDMF_PHYS%OUT%FRTH, YDMF_PHYS%OUT%FRSODS,        &
@@ -3088,7 +3093,8 @@ IF(LMPHYS) THEN
 !DEC$ IVDEP
     DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
       IF(YDMF_PHYS%OUT%FRSODS(JLON) >= RSUNDUR) THEN
-        YDMF_PHYS_SURF%GSD_VD%PSUND(JLON)=YDMF_PHYS_SURF%GSD_VD%PSUND(JLON)+1.0_JPRB*TSTEP
+        !YDMF_PHYS_SURF%GSD_VD%PSUND(JLON)=YDMF_PHYS_SURF%GSD_VD%PSUND(JLON)+1.0_JPRB*TSTEP
+        YDMF_PHYS_SURF%GSD_VD%PSUND(JLON)=YDMF_PHYS_SURF%GSD_VD%PSUND(JLON)+1.0_JPRB*ZADTMS ! fix stepx case
       ENDIF
     ENDDO
 
@@ -3179,14 +3185,14 @@ IF(LMPHYS) THEN
 
       IF ( LPTKE ) THEN
         IF ( LMSE.AND.LCALLSFX ) THEN       
-          IF (YDCPG_OPTS%KSTEP == 0) THEN
+          IF (YDCPG_OPTS%NSTEP == 0) THEN
             ZFLU_CD(:)=ZFLU_CDN(:)   ! very first approximation
           ELSE
             ZFLU_CD(:)=MAX(YDCPG_GPAR%CD(:),ZEPS0)
           ENDIF
         ENDIF
         CALL ACPTKE(YGFL, YDLDDH, YDMODEL%YRML_PHY_MF, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON,                             &
-        & YDCPG_OPTS%KTDIA, YDCPG_OPTS%KFLEVG, YDCPG_OPTS%KSTEP, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, &
+        & YDCPG_OPTS%KTDIA, YDCPG_OPTS%KFLEVG, YDCPG_OPTS%NSTEP, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, &
         & YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%RDELP, ZKNROV, YDMF_PHYS_BASE_STATE%T,              &
         & YDMF_PHYS_BASE_STATE%U, YDMF_PHYS_BASE_STATE%V, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%ALPH, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD, &
         & YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYDF, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%R, YDMF_PHYS_BASE_STATE%TKE,                         &
@@ -3225,7 +3231,7 @@ IF(LMPHYS) THEN
         IRR=2
 
         CALL ARO_GROUND_PARAM( YDCPG_BNDS%KBL, YDCPG_OPTS%KGPCOMP, YDCPG_BNDS%KFDIA-YDCPG_BNDS%KIDIA+1,                                                                        &
-        & YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KSTEP, IRR, NSW, NGFL_EXT, NDGUNG, NDGUXG,                                                                            &
+        & YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%NSTEP, IRR, NSW, NGFL_EXT, NDGUNG, NDGUXG,                                                                            &
         & NDLUNG, NDLUXG, LSURFEX_KFROM, LMPA, CCOUPLING, YDCPG_OPTS%LCONFX, 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),                            &
         & YDMF_PHYS_BASE_STATE%U(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG:YDCPG_OPTS%KFLEVG),                                                                      &
@@ -3399,8 +3405,9 @@ IF(LMPHYS) THEN
 
       ! First compute horizontal exchange coefficients for momentum:
       !  (there's mo TOMs contribution, thus has to be done at latest here)
-      IF (L3DTURB) THEN
-        CALL ACTKECOEFKH(YDRIP, YDMODEL%YRML_PHY_MF, YDGEOMETRY%YREGEO, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA,                      &
+      IF (YDDYNA%L3DTURB) THEN
+        CALL ACTKECOEFKH(YDRIP, YDMODEL%YRML_PHY_MF, YDDYNA, YDGEOMETRY%YREGEO, &
+        & YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA,                      &
         & YDCPG_OPTS%KLON, YDCPG_OPTS%KTDIA, YDCPG_OPTS%KFLEVG, YDMF_PHYS_BASE_STATE%TKE, ZTENDPTKE,                             &
         & YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, YDMF_PHYS_BASE_STATE%T,                         &
         & YDMF_PHYS_BASE_STATE%U, YDMF_PHYS_BASE_STATE%V, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%ALPH, YDMF_PHYS_BASE_STATE%DIV,      &
@@ -3417,7 +3424,7 @@ IF(LMPHYS) THEN
           ZCOEFA(:,:) = ZBNEBCVPP(:,:)
         ENDIF
         CALL ACDIFV3 ( YDMODEL%YRML_PHY_MF, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KTDIA,       &
-        & YDCPG_OPTS%KFLEVG, YDCPG_OPTS%KSTEP, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI,  &
+        & YDCPG_OPTS%KFLEVG, YDCPG_OPTS%NSTEP, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI,  &
         & YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, ZCP, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP, ZKTROV,                       &
         & ZXTROV, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%R, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%RDELP,                          &
         & ZCHROV, ZXHROV, ZCOEFA, ZQV, ZQL, ZQI, YDMF_PHYS_BASE_STATE%U, YDMF_PHYS_BASE_STATE%V, YDMF_PHYS_BASE_STATE%T, &
@@ -3443,8 +3450,9 @@ IF(LMPHYS) THEN
 
       ! Now the heat coefficient can be completed by TKE+ containing
       !  the TOMs contribution. 
-      IF (L3DTURB) THEN
-        CALL ACTKECOEFKH(YDRIP, YDMODEL%YRML_PHY_MF, YDGEOMETRY%YREGEO, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA,                      &
+      IF (YDDYNA%L3DTURB) THEN
+        CALL ACTKECOEFKH(YDRIP, YDMODEL%YRML_PHY_MF, YDDYNA, YDGEOMETRY%YREGEO, &
+        & YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA,                      &
         & YDCPG_OPTS%KLON, YDCPG_OPTS%KTDIA, YDCPG_OPTS%KFLEVG, YDMF_PHYS_BASE_STATE%TKE, ZTENDPTKE,                             &
         & YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, YDMF_PHYS_BASE_STATE%T,                         &
         & YDMF_PHYS_BASE_STATE%U, YDMF_PHYS_BASE_STATE%V, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%ALPH, YDMF_PHYS_BASE_STATE%DIV,      &
@@ -3522,7 +3530,7 @@ IF(LMPHYS) THEN
         ZDQVDIFF(JLON,JLEV)=ZDQV+ZQX1-ZQX0
         ZFCQVNG(JLON,JLEV)=ZFCQVNG(JLON,JLEV-1)-ZDQV*ZPOID(JLON,JLEV)
         YDMF_PHYS%OUT%FCQNG(JLON,JLEV)=YDMF_PHYS%OUT%FCQNG(JLON,JLEV)+ZFCQVNG(JLON,JLEV)
-        IF(LRKCDEV.AND.YDCPG_OPTS%KSTEP>0) THEN
+        IF(LRKCDEV.AND.YDCPG_OPTS%NSTEP>0) THEN
           ZDTRAD(JLON,JLEV)=ZIPOI(JLON,JLEV)/YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%CP(JLON,JLEV)* (&
             & YDMF_PHYS%OUT%FRSO(JLON,JLEV-1,1)-YDMF_PHYS%OUT%FRSO(JLON,JLEV,1)&
             & +YDMF_PHYS%OUT%FRTH(JLON,JLEV-1,1)-YDMF_PHYS%OUT%FRTH(JLON,JLEV,1) )
@@ -4131,22 +4139,26 @@ IF(LMPHYS) THEN
          ZTENQ(JLON,JLEV) = ZTENQVA(JLON,JLEV)
          ZTENU(JLON,JLEV) = 0.0_JPRB
          ZTENV(JLON,JLEV) = 0.0_JPRB
+         ZTENTA(JLON,JLEV) = 0.0_JPRB
+         ZTENQA(JLON,JLEV) = 0.0_JPRB
       ENDDO
     ENDDO
     LLDSLPHY=.TRUE.
     ZVDIFTS = 0._JPRB
     ISPPN2D = 0
          
-    CALL CUCALLN_MF (RPLDARE, RPLRG, YDCPG_OPTS%KSTEP, YDMODEL%YRML_PHY_EC%YRTHF, YDCST, YDMODEL%YRML_PHY_RAD%YRERAD, &
+    CALL CUCALLN_MF (RPLDARE, RPLRG, YDCPG_OPTS%NSTEP, YDMODEL%YRML_PHY_EC%YRTHF, YDCST, YDMODEL%YRML_PHY_RAD%YRERAD, &
     & YDMODEL%YRML_PHY_SLIN, YDMODEL%YRML_PHY_EC, YDMODEL%YRML_GCONF%YGFL,                                                    &
+    & YDMODEL%YRML_CHEM%YRCHEM, YDMODEL%YRML_GCONF%YRSPP_CONFIG, &
     & YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, 0, YDCPG_OPTS%KFLEVG, ZDXTDK, ISPPN2D,                             &
-    & LLLAND, LLDSLPHY, TSPHY, ZVDIFTS, YDMF_PHYS_BASE_STATE%T, ZQV, YDMF_PHYS_BASE_STATE%U, YDMF_PHYS_BASE_STATE%V,          &
+    & YDMODEL%YRML_PHY_MF%YRPHY%YRCAPE%LMCAPEA, LLLAND, LLDSLPHY, TSPHY, ZVDIFTS, YDMF_PHYS_BASE_STATE%T, ZQV, YDMF_PHYS_BASE_STATE%U, YDMF_PHYS_BASE_STATE%V, &
     & ZLISUM, ZVERVEL, YDMF_PHYS%OUT%DIFTQ, YDMF_PHYS%OUT%DIFTS, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD,                        &
     & YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYDF, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD, ZGEOM1, ZGEOMH, YDVARS%GEOMETRY%GM%T0,     &
-    & ZCUCONVCA, ZGP2DSPPA, ZTENT, ZTENQ, ZTENU, ZTENV, ZACPR, ITOPC, IBASC, ITYPE, ICBOT, ICTOP,                             &
-    & IBOTSC, LLCUM, LLSC, LLSHCV, ZLCRIT_AER, ZLU, ZLUDE, ZLUDELI, ZSNDE, ZMFU, ZMFD, YDMF_PHYS%OUT%DIFCQ,                   &
+    & ZCUCONVCA, ZGP2DSPPA, ZTENT, ZTENQ, ZTENU, ZTENV, ZTENTA, ZTENQA, ZACPR, ITOPC, IBASC, ITYPE, ICBOT, ICTOP,             &
+    & IBOTSC, LLCUM, LLSC, ICBOT_LIG, ICTOP_LIG, LLCUM_LIG, &
+    & LLSHCV, ZLCRIT_AER, ZLU, ZLUDE, ZLUDELI, ZSNDE, ZMFU, ZMFD, YDMF_PHYS%OUT%DIFCQ,                   &
     & YDMF_PHYS%OUT%DIFCS, ZFHPCL, ZFHPCN, YDMF_PHYS%OUT%FPLCL, YDMF_PHYS%OUT%FPLCN, ZLRAIN, ZRSUD, YDMF_PHYS%OUT%STRCU,      &
-    & YDMF_PHYS%OUT%STRCV, ZFCQLF, ZFCQLI, ZMFUDE_RATE, ZMFDDE_RATE, YDMF_PHYS%OUT%CAPE, ZWMEAN,                              &
+    & YDMF_PHYS%OUT%STRCV, ZFCQLF, ZFCQLI, ZMFUDE_RATE, ZMFDDE_RATE, YDMF_PHYS%OUT%CAPE, ZWMEAN, ZVDISCU,                     &
     & ZDIFF, 0, ZCEN, ZTENC, ZSCAV)
     DO JLEV=0,YDCPG_OPTS%KFLEVG
       DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA 
@@ -4164,12 +4176,13 @@ IF(LMPHYS) THEN
   IF(LFLASH .AND. (LCVTDK .OR. LGPCMT)) THEN
     ! LIGHTNING PARAMETERIZATION. OUTPUT IS PFLASH, TOTAL LIGHTNING FLASH RATES.
     ZGAW(:)=0._JPRB
-    CALL CULIGHT (RPLDARE, RPLRG, YDMODEL%YRML_PHY_EC%YRTHF, YDCST, YDEPHY, YGFL,                                         &
-    & YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG,                                                     &
-    & ZGAW, ZGAW, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYDF, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI, &
-    & YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, LLLAND, YDMF_PHYS_BASE_STATE%T, ZLU, ZMFU, YDMF_PHYS%OUT%CAPE,                          &
-    & YDMF_PHYS%OUT%FPLCL, YDMF_PHYS%OUT%FPLCN, LLCUM, ICBOT, ICTOP, LLLINOX, YDMF_PHYS%OUT%FLASH,                                &
-    & ZLIGH_CTG, ZCTOPH, ZPRECMX, ZICE, ZCDEPTH, ZWMFU) 
+    CALL ABOR1("Call to CULIGHT is not phased wrt 48R1 (ZQPFROZ, CHARGE)")
+    !CALL CULIGHT (RPLDARE, RPLRG, YDMODEL%YRML_PHY_EC%YRTHF, YDCST, YDEPHY, YGFL, YDECUMF,&
+    !& YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG,                                                     &
+    !& ZGAW, ZGAW, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYDF, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI, &
+    !& YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, LLLAND, YDMF_PHYS_BASE_STATE%T, ZLU, ZMFU, YDMF_PHYS%OUT%CAPE,                          &
+    !& YDMF_PHYS%OUT%FPLCL, YDMF_PHYS%OUT%FPLCN, ZQPFROZ, LLCUM_LIG, ICBOT_LIG, ICTOP_LIG, LLLINOX, YDMF_PHYS%OUT%FLASH,           &
+    !& ZLIGH_CTG, ZCTOPH, ZPRECMX, ZICE, ZCDEPTH, ZWMFU, YDMF_PHYS%OUT%CHARGE)
     ! LIGHTNING FLASH RATES ARE CONVERTED IN fl/km2/s BEFORE ENTERING CFU TIME ACCUMULATION.
     DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
       YDMF_PHYS%OUT%FLASH(JLON)=YDMF_PHYS%OUT%FLASH(JLON)/86400._JPRB
@@ -4493,7 +4506,7 @@ IF(LMPHYS) THEN
 ! computing w from the mass flux. See transport in ACCVUD.
 !
     CALL DIAGFLASH(YDCFU,YDMODEL%YRML_PHY_MF,YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA,YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG,&
-         & YDCPG_OPTS%KSTEP,&
+         & YDCPG_OPTS%NSTEP,&
          & ZQL,ZQI,YDMF_PHYS_BASE_STATE%R,YDMF_PHYS_BASE_STATE%S,ZQG,ZQH,YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP,&
          & YDMF_PHYS_BASE_STATE%T,YDMF_PHYS_BASE_STATE%YCPG_PHY%W,YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%R,&
          & YDVARS%UAL%T0,YDVARS%UOM%T0,YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYDF,&
@@ -4544,7 +4557,7 @@ IF(LMPHYS) THEN
   !-------------------------------------------------
   IF (YDPHY%LGCHECKNAN) THEN
     CALL CHECKNAN(YDRIP,YDPHY0,YDPHY2, YDCPG_OPTS%NINDAT, &
-    & YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDCPG_OPTS%KSTEP, &
+    & YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDCPG_OPTS%NSTEP, &
     & YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, &
     & YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYDF, &
     & YDVARS%GEOMETRY%GELAM%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDVARS%GEOMETRY%GEMU%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), &
@@ -4623,7 +4636,7 @@ ZZDEP=0.0_JPRB
     CALL ARO_WETDEP(ILONMNH, YDCPG_OPTS%KFLEVG, NGFL_EXT, IKRR, YDCPG_OPTS%ZDTPHY, ZZI_SVM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :, 1:NGFL_EXT), &
     & ZZDEP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :), ZZI_PABSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :),                             &
     & ZZI_THM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :), ZZI_RHODREFM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :),                        &
-    & YDCPG_OPTS%KSTEP+1, ZZI_RM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :, :), ZEVAP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :),         &
+    & YDCPG_OPTS%NSTEP+1, ZZI_RM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :, :), ZEVAP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :, :),         &
     & ISPLITR               )
 ! return to tendency
    DO JGFL=1,NGFL_EXT
@@ -4764,7 +4777,7 @@ IF (LAJUCV) THEN
   ENDDO
   DO JLEV=1,YDCPG_OPTS%KFLEVG
     DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA
-      YDMF_PHYS_NEXT_STATE%T (JROF, JLEV) = YDMF_PHYS_NEXT_STATE%T (JROF, JLEV) + ZADJ_DTAJU(JROF,JLEV)
+      YDMF_PHYS_NEXT_STATE%T%P (JROF, JLEV) = YDMF_PHYS_NEXT_STATE%T%P (JROF, JLEV) + ZADJ_DTAJU(JROF,JLEV)
     ENDDO
   ENDDO
 ENDIF
@@ -4802,7 +4815,7 @@ ENDIF
 ! * writes grid-point transmission coefficients for simplified physics.
 
 
-IF (LRCOEF.AND.(YDCPG_OPTS%KSTEP == 1)) THEN
+IF (LRCOEF.AND.(YDCPG_OPTS%NSTEP == 1)) THEN
     IFIELDSS=NG3SR*YDCPG_OPTS%KFLEVG
     CALL WRRADCOEF(YDGEOMETRY, YDRCOEF, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_BNDS%KSTGLO,        &
     & IFIELDSS, ZRDT_COR, ZRDT_RAB3C, ZRDT_RAB3N, ZRDT_RAB4C, ZRDT_RAB4N, ZRDT_RAB6C, ZRDT_RAB6N,     &
@@ -4821,7 +4834,7 @@ IF (LOZONE) THEN
   !   the GFL ozone is activated as a prognostic and advected
   !   variable.
   CALL CPOZO (YDCPG_OPTS%KLON, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, YDCPG_OPTS%ZDTPHY, YDMF_PHYS%OUT%FCHOZ, &
-  & YDMF_PHYS_NEXT_STATE%O3 (:, 1:YDCPG_OPTS%KFLEVG), YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%RDELP)
+  & YDMF_PHYS_NEXT_STATE%O3%P (:, 1:YDCPG_OPTS%KFLEVG), YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%RDELP)
 ENDIF
   
 !        2.5.1 Chemical species   
@@ -4852,7 +4865,7 @@ ZTENDGFL(:,:,:) = 0.0_JPRB
 ! eventuelles de W et de OMEGA/P
 
 IF (LINTFLEX.AND.(.NOT.YDCPG_OPTS%LCONFX)) THEN
-  CALL CPTEND_FLEX( YDLDDH, YDMDDH, YGFL, YDPHY, YDCPG_OPTS%KLON, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA,                &
+  CALL CPTEND_FLEX( YDLDDH, YDMDDH, YGFL, YDPHY, YDDYNA, 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,                 &
@@ -4887,7 +4900,7 @@ ELSE
   & ZPTENDEFB21, ZPTENDEFB31, ZTENDEXT, YDDDH)
 ENDIF
 
-IF (LTWOTL) THEN
+IF (YDDYNA%LTWOTL) THEN
 
 ELSE
     
@@ -4913,7 +4926,7 @@ ENDIF
 IF (.NOT.YDCPG_OPTS%LCONFX) THEN
   IF ((GCHETN%LFREQD).OR.(GCHETN%LCOORD).OR.(GCHETN%LPROFV)) THEN
     CALL CPCHET (YDMF_PHYS, YDMF_PHYS_BASE_STATE, YDCPG_MISC, YDRIP, YDPHY, YDCPG_OPTS%KLON, YDCPG_BNDS%KIDIA, &
-    & YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, YDCPG_OPTS%KSTEP, ZMSC_FRMQ, ZDSA_CPS, ZTENDH, ZPTENDQ1,            &
+    & YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, YDCPG_OPTS%NSTEP, ZMSC_FRMQ, ZDSA_CPS, ZTENDH, ZPTENDQ1,            &
     & ZPTENDI1, ZPTENDL1, ZPTENDR1, ZPTENDS1, YDVARS%GEOMETRY%GEMU%T0, YDVARS%GEOMETRY%GELAM%T0)
   ENDIF
   
@@ -4938,7 +4951,7 @@ ENDIF
 IF (NDPSFI == 1) THEN
   CALL CPMVVPS(YDCST, YDVAB, YDCPG_OPTS%KLON, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, YDCPG_OPTS%ZDTPHY,  &
   & ZPFL_FP, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREHYD(:, YDCPG_OPTS%KFLEVG), YDMF_PHYS%OUT%FEVL, YDMF_PHYS%OUT%FEVN,                 &
-  & YDCPG_DYN0%CTY%EVEL, YDCPG_DYN0%CTY%PSDVBC, YDMF_PHYS_NEXT_STATE%SP)
+  & YDCPG_DYN0%CTY%EVEL, YDCPG_DYN0%CTY%PSDVBC, YDMF_PHYS_NEXT_STATE%SP%P)
 ENDIF
 
 !        2.9  Computation of evolution of T, u, v and Q.
@@ -4977,13 +4990,14 @@ ZTENDD=0.0_JPRB
 
 IF (LHOOK) CALL DR_HOOK ('CPUTQY',0,ZHOOK_HANDLE_1)
 
-CALL CPUTQY_APLPAR_EXPL(YDCST, YDCPG_BNDS, YDCPG_OPTS, YDMF_PHYS_NEXT_STATE, YDMF_PHYS_BASE_STATE, YDVARS, &
-& YDPHY, YDCPG_OPTS%ZDTPHY, ZTENDH, YDMF_PHYS%OUT%TENDU, YDMF_PHYS%OUT%TENDV, ZTENDU, ZTENDV, ZTENDD,          &
-& ZPTENDEFB11, ZPTENDEFB21, ZPTENDEFB31, ZPTENDG1, ZPTENDICONV1, ZPTENDI1, ZPTENDLCONV1, ZPTENDL1,  &
+CALL CPUTQY_APLPAR_EXPL(YDCST, YDCPG_BNDS, YDCPG_OPTS, YDDYNA, YDMF_PHYS_NEXT_STATE, YDMF_PHYS_BASE_STATE, YDVARS, &
+& YDPHY, YDCPG_OPTS%ZDTPHY, ZTENDH, YDMF_PHYS%OUT%TENDU, YDMF_PHYS%OUT%TENDV, ZTENDU, ZTENDV, ZTENDD,              &
+& ZPTENDEFB11, ZPTENDEFB21, ZPTENDEFB31, ZPTENDG1, ZPTENDICONV1, ZPTENDI1, ZPTENDLCONV1, ZPTENDL1,                 &
 & ZPTENDQ1, ZPTENDRCONV1, ZPTENDR1, ZPTENDSCONV1, ZPTENDS1, ZPTENDTKE1, YDMF_PHYS%OUT%FDIS)
 
-CALL CPUTQY_APLPAR_LOOP(YDMODEL%YRML_DYN%YRDYN, YDGEOMETRY%YRDIMV, YDGMV, YGFL, YDPTRSLB1, YDPHY, YDCPG_OPTS%KLON, &
-& YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, YDCPG_OPTS%ZDTPHY, ZTENDGFL, YDCPG_SL1%ZVIEW, PGMVT1,                &
+CALL CPUTQY_APLPAR_LOOP(YDMODEL%YRML_DYN%YRDYN, YDMODEL%YRML_DYN%YRDYNA, YDGEOMETRY%YRDIMV, YDGMV, YGFL, YDPTRSLB1, YDPHY, &
+& YDCPG_OPTS%KLON, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, &
+& YDCPG_OPTS%ZDTPHY, ZTENDGFL, YDCPG_SL1%ZVIEW, PGMVT1,                &
 & PGFLT1)
 
 IF (LHOOK) CALL DR_HOOK ('CPUTQY',1,ZHOOK_HANDLE_1)
@@ -5039,9 +5053,9 @@ IF ((.NOT.LSFORCS)) THEN
   IF(LNUDG)THEN
     CALL CPNUDG ( YDCPG_OPTS%KLON, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, NFNUDG, YDCPG_OPTS%KFLEVG, YDCPG_BNDS%KBL,         &
     & XPNUDG, YDMF_PHYS_SURF%GSD_VF%PNUDM, YDMF_PHYS_SURF%GSP_RR%PT_T1, YDMF_PHYS_SURF%GSP_RR%PW_T1,                      &
-    & YDMF_PHYS_SURF%GSP_SB%PQ_T1, YDMF_PHYS_SURF%GSP_SG%PF_T1, YDMF_PHYS_NEXT_STATE%T (:, 1:YDCPG_OPTS%KFLEVG),          &
-    & YDMF_PHYS_NEXT_STATE%Q (:, 1:YDCPG_OPTS%KFLEVG), YDMF_PHYS_NEXT_STATE%U (:, 1:YDCPG_OPTS%KFLEVG),                   &
-    & YDMF_PHYS_NEXT_STATE%V (:, 1:YDCPG_OPTS%KFLEVG), YDMF_PHYS_NEXT_STATE%SP, YDVARS%T%T0, YDVARS%Q%T0,                 &
+    & YDMF_PHYS_SURF%GSP_SB%PQ_T1, YDMF_PHYS_SURF%GSP_SG%PF_T1, YDMF_PHYS_NEXT_STATE%T%P (:, 1:YDCPG_OPTS%KFLEVG),          &
+    & YDMF_PHYS_NEXT_STATE%Q%P (:, 1:YDCPG_OPTS%KFLEVG), YDMF_PHYS_NEXT_STATE%U%P (:, 1:YDCPG_OPTS%KFLEVG),                   &
+    & YDMF_PHYS_NEXT_STATE%V%P (:, 1:YDCPG_OPTS%KFLEVG), YDMF_PHYS_NEXT_STATE%SP%P, YDVARS%T%T0, YDVARS%Q%T0,                 &
     & YDVARS%U%T0, YDVARS%V%T0, YDCPG_PHY0%PREHYD(:, YDCPG_OPTS%KFLEVG), YDVARS%GEOMETRY%GM%T0, YDMF_PHYS_SURF%GSD_VF%PLSM&
     &             )
   ENDIF
@@ -5060,7 +5074,7 @@ IF (LTRAJPS) THEN
   PTRAJ_PHYS%PTSMF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) =YDMF_PHYS_BASE_STATE%YGSP_RR%T(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
   PTRAJ_PHYS%PSNSMF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_BASE_STATE%YGSP_SG%F(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)
 
-  IF (.NOT. LTWOTL) THEN
+  IF (.NOT. YDDYNA%LTWOTL) THEN
     CALL WRPHTRAJM(YDGEOMETRY, YDSIMPHL, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, PTRAJ_PHYS, YDVARS%U%T9, &
     & YDVARS%V%T9, YDVARS%T%T9, YDVARS%Q%T9, YDVARS%L%T9, YDVARS%I%T9, YDVARS%SP%T9)  
   ENDIF
@@ -5085,7 +5099,7 @@ IF (LL_SAVE_PHSURF) THEN
 ENDIF
 
 ! Store horizontal exchange coefficients (3D turbulence) to SL2 buffers
-IF (L3DTURB) THEN
+IF (YDDYNA%L3DTURB) THEN
   DO JLEV=1,YDCPG_OPTS%KFLEVG
     YDCPG_SL2%KAPPAM (YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, JLEV) = ZKUR_KUROV_H(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)
     YDCPG_SL2%KAPPAH (YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, JLEV) = ZKUR_KTROV_H(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)
@@ -5110,7 +5124,7 @@ IF(LGSCM.OR.LMUSCLFA) THEN
   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,     &
+  & YDCPG_OPTS%KGL2, YDCPG_BNDS%KSTGLO, YDCPG_OPTS%NSTEP, 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, ZDSA_C1, ZDSA_C2, ZDSA_CPS, ZDSA_LHS, ZDSA_RS, ZFLU_CD, ZFLU_CDN,         &
diff --git a/src/arome/ext/aro_adjust.F90 b/src/arome/ext/aro_adjust.F90
index ed3db928fefa28ef216dc2bfe0c1002bf3bdba72..34ec5e5ebaca9ce87a721fc7e2f1fe7c3fdf8bee 100644
--- a/src/arome/ext/aro_adjust.F90
+++ b/src/arome/ext/aro_adjust.F90
@@ -11,8 +11,7 @@
                                   PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF,&
                                   YDDDH,YDLDDH,YDMDDH,&
                                   YSPP_PSIGQSAT,YSPP_ICE_CLD_WGT)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ##########################################################################
 !
 !!****  * -  compute the  resolved clouds and precipitation
@@ -180,7 +179,7 @@ TYPE(TBUDGETDATA), DIMENSION(NBUDGET_RI) :: YLBUDGET !NBUDGET_RI is the one with
 TYPE(DIMPHYEX_t) :: YLDIMPHYEX
 !
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !------------------------------------------------------------------------------
 !
 !*       1.     PRELIMINARY COMPUTATIONS
diff --git a/src/arome/ext/aro_adjust_lima.F90 b/src/arome/ext/aro_adjust_lima.F90
index 755dc0360f121b801602e784fe2b45ad8774317f..94828bc76de7bc05e82f1f2d626331ee869607ac 100644
--- a/src/arome/ext/aro_adjust_lima.F90
+++ b/src/arome/ext/aro_adjust_lima.F90
@@ -10,7 +10,7 @@
                                   PTHS, PRS,  PSVS, PSRCS, PCLDFR, PICEFR, PPRCFR, &
                                   YDDDH, YDLDDH, YDMDDH, LLIMAINIT )
       USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ##########################################################################
 !
 !!****  * -  compute the  resolved clouds and precipitation
@@ -185,7 +185,7 @@ TYPE(DIMPHYEX_t) :: YLDIMPHYEX
 !*       1.     PRELIMINARY COMPUTATIONS
 !               ------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('ARO_ADJUST_LIMA',0,ZHOOK_HANDLE)
 
 CALL FILL_DIMPHYEX(YLDIMPHYEX, KLON, 1, KLEV, 0, KFDIA)
diff --git a/src/arome/ext/aro_convbu.F90 b/src/arome/ext/aro_convbu.F90
index 06d195d23d961020f056e99f94ab0be57c7b91de..ff39b2d2b2100c5350bd0a39f4c86ed11ed7b5d8 100644
--- a/src/arome/ext/aro_convbu.F90
+++ b/src/arome/ext/aro_convbu.F90
@@ -1,6 +1,6 @@
 SUBROUTINE ARO_CONVBU(KFDIA,KLEV,KRR,PRHODJ,PRRS,PTHS,YDDDH, YDLDDH, YDMDDH)
 USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 
 USE MODD_BUDGET,ONLY: LBU_ENABLE, LBUDGET_TH, LBUDGET_RV, LBUDGET_RC, LBUDGET_RI
 USE MODE_BUDGET_PHY, ONLY: BUDGET_DDH
@@ -20,7 +20,7 @@ TYPE(TYP_DDH), INTENT(INOUT) :: YDDDH
 TYPE(TLDDH), INTENT(IN) :: YDLDDH
 TYPE(TMDDH), INTENT(IN) :: YDMDDH
 
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('ARO_CONVBU',0,ZHOOK_HANDLE)
 IF (LBU_ENABLE) THEN
   IF (LBUDGET_TH)  CALL BUDGET_DDH (PTHS(:,:,:)*PRHODJ(:,:,:),4,'DCONV_BU_RTH',YDDDH, YDLDDH, YDMDDH)
diff --git a/src/arome/ext/aro_lima.F90 b/src/arome/ext/aro_lima.F90
index 7b5351b2daa16da82ef8837093e50790df644021..60d4874ebbaec2eab7b22fd007600f78b42ae841 100644
--- a/src/arome/ext/aro_lima.F90
+++ b/src/arome/ext/aro_lima.F90
@@ -9,7 +9,7 @@
                                   YDDDH, YDLDDH, YDMDDH    )
 
       USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ##########################################################################
 !
 !!****  * -  compute the  resolved clouds and precipitation
@@ -143,7 +143,7 @@ TYPE(DIMPHYEX_t) :: YLDIMPHYEX
 !*       1.     PRELIMINARY COMPUTATIONS
 !               ------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('ARO_LIMA',0,ZHOOK_HANDLE)
 
 !Dimensions
diff --git a/src/arome/ext/aro_rain_ice.F90 b/src/arome/ext/aro_rain_ice.F90
index dd83db6e9d6f21e94eb3b4c73aae56380dab6381..18f7a19ce13c70df2e83e1adf3c76cc952bc9ea3 100644
--- a/src/arome/ext/aro_rain_ice.F90
+++ b/src/arome/ext/aro_rain_ice.F90
@@ -11,8 +11,7 @@
                                   PINPRR,PINPRS,PINPRG,PINPRH,PFPR,     &
                                   YDDDH, YDLDDH, YDMDDH, &
                                   YSPP_ICENU,YSPP_KGN_ACON,YSPP_KGN_SBGR)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ##########################################################################
 !
 !!****  * -  compute the  resolved clouds and precipitation
@@ -200,7 +199,7 @@ TYPE(DIMPHYEX_t) :: YLDIMPHYEX
 LOGICAL, DIMENSION(KLON,1,KLEV) :: LLMICRO
 INTEGER :: ISIZE
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 
 #include "abor1.intfb.h"
 !------------------------------------------------------------------------------
diff --git a/src/arome/ext/aro_shallow_mf.F90 b/src/arome/ext/aro_shallow_mf.F90
index 1b30c02c183dc98d35e2925b6b19941487a9cde5..9da5365df1cc44f3e8b69276514db3a93cadb336 100644
--- a/src/arome/ext/aro_shallow_mf.F90
+++ b/src/arome/ext/aro_shallow_mf.F90
@@ -16,8 +16,7 @@
                 PU_UP, PV_UP, PTHV_UP, PW_UP, PFRAC_UP, PEMF,         &
                 YDDDH,YDLDDH,YDMDDH                                   )
 
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ##########################################################################
 !
 !!****  * -  interface to call SHALLOW_MF :
@@ -153,7 +152,7 @@ INTEGER, DIMENSION(size(PRHODJ,1)) :: IKLCL,IKETL,IKCTL
 REAL,DIMENSION(size(PRHODJ,1),size(PRHODJ,2)) :: ZFLXZTHMF,ZFLXZRMF,ZFLXZUMF,ZFLXZVMF
 REAL,DIMENSION(size(PRHODJ,1),size(PRHODJ,2)) :: ZDETR,ZENTR
 TYPE(DIMPHYEX_t) :: YLDIMPHYEX
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 INTEGER :: JBU ! Loop index for budgets
 !
 !
diff --git a/src/arome/ext/aro_startbu.F90 b/src/arome/ext/aro_startbu.F90
index c9b10fcdeb1cf54c83f74f8466f8e16a4efdf7d4..8bbd6d06a15b5e80f47ddffe574b54cc0cd67c09 100644
--- a/src/arome/ext/aro_startbu.F90
+++ b/src/arome/ext/aro_startbu.F90
@@ -2,7 +2,7 @@
 SUBROUTINE ARO_STARTBU( KIDIA, KFDIA, KLEV, KRR,KSV,PRHODJ,&
                         & PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,YDDDH, YDLDDH, YDMDDH)
 USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 
 !     Purpose.
 !     --------
@@ -77,7 +77,7 @@ TYPE(TMDDH)        , INTENT(IN) :: YDMDDH
 
 LOGICAL   ::  LL_BUDGET_RR
 INTEGER   ::  JR
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 
 
 
diff --git a/src/arome/ext/aro_turb_mnh.F90 b/src/arome/ext/aro_turb_mnh.F90
index a19d04ff89f83dac5da242b4b0be9a5d4014cdca..e589a535e53118f477e8fd4347773a612fb3385e 100644
--- a/src/arome/ext/aro_turb_mnh.F90
+++ b/src/arome/ext/aro_turb_mnh.F90
@@ -16,7 +16,7 @@
 
 
       USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ##########################################################################
 !
 !!****  * -  compute the turbulence sources and the TKE evolution for Arome
@@ -213,7 +213,7 @@ TYPE(TLES_t) :: YLTLES
 !*       1.     PRELIMINARY COMPUTATIONS
 !               ------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('ARO_TURB_MNH',0,ZHOOK_HANDLE)
 CALL FILL_DIMPHYEX(YLDIMPHYEX, KLON, 1, KLEV+2, JPVEXT_TURB, KLON)
 YLTLES%LLES=.FALSE.
diff --git a/src/arome/ext/aroini_conf.F90 b/src/arome/ext/aroini_conf.F90
index 7f445c61487e7d7296388f53f25e1fe684c7e0fa..d71480890770954f1910061c642636fda5d2471f 100644
--- a/src/arome/ext/aroini_conf.F90
+++ b/src/arome/ext/aroini_conf.F90
@@ -1,7 +1,6 @@
 !     ######spl
 SUBROUTINE AROINI_CONF(KULOUT,OWTOTL,OCARTESIAN)
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 
 !**** INI_CSTMNH *  - Initiallize MesoNH Physics configuration module
 !**   Interface.
@@ -56,7 +55,7 @@ LOGICAL, INTENT(IN) :: OCARTESIAN
 !        1.1 Set implicit default values for MODD_PARAMETERS
 !       the variables are initialised in the module itself
 !        1.2 Set implicit default values for MODD_CST
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('AROINI_CONF',0,ZHOOK_HANDLE)
 
 !        1.3 Set implicit default values for MODD_CONF
diff --git a/src/arome/ext/aroini_nsv.F90 b/src/arome/ext/aroini_nsv.F90
index d5b66ed4f59a59e68f0fadeca405da6d39f6ec29..5826d4a126c0b522f597dad0fe0474b77cd09b45 100644
--- a/src/arome/ext/aroini_nsv.F90
+++ b/src/arome/ext/aroini_nsv.F90
@@ -3,7 +3,7 @@
                             KSV_DSTBEG, KSV_DSTEND,KSV_DSTDEPBEG, KSV_DSTDEPEND,&
                             KSV_CO2)
       USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !!    ##############################
 !!
 !!*** *AROINI_MNHC*
@@ -48,7 +48,7 @@ INTEGER :: JN, ICO2
 !
 ! Initialize NSV
 ! 
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('AROINI_NSV',0,ZHOOK_HANDLE)
 NSV=KSV  ! for LIMA case
 IF (LUSECHEM) THEN
diff --git a/src/arome/ext/cpg_opts_type_mod.fypp b/src/arome/ext/cpg_opts_type_mod.fypp
index 4738600331ddb1c9901b8374dda47660ab6d9e98..7d486b3847a72930eb5755f8ea05f4dd95979449 100644
--- a/src/arome/ext/cpg_opts_type_mod.fypp
+++ b/src/arome/ext/cpg_opts_type_mod.fypp
@@ -13,8 +13,7 @@ MODULE CPG_OPTS_TYPE_MOD
 
 USE PARKIND1, ONLY : JPIM, JPRB
 USE GEOMETRY_MOD, ONLY : GEOMETRY
-USE YOMCT3, ONLY : NSTEP
-USE YOMCLI, ONLY : TCLI, YRCLI
+USE YOMCLI, ONLY : TCLI
 USE SURFACE_FIELDS_MIX , ONLY : TYPE_SURF_GEN
 
 IMPLICIT NONE
@@ -62,9 +61,9 @@ TYPE CPG_BNDS_TYPE
   INTEGER(KIND=JPIM) :: KBL 
   INTEGER(KIND=JPIM) :: KSTGLO 
 
-  INTEGER(KIND=JPIM), PRIVATE :: KLON 
-  INTEGER(KIND=JPIM), PRIVATE :: KGPTOT 
-  INTEGER(KIND=JPIM), PRIVATE :: KGPCOMP 
+  INTEGER(KIND=JPIM) :: KLON 
+  INTEGER(KIND=JPIM) :: KGPTOT 
+  INTEGER(KIND=JPIM) :: KGPCOMP 
 
 CONTAINS
   PROCEDURE :: INIT => CPG_BNDS_TYPE_INIT
@@ -133,7 +132,7 @@ TYPE CPG_OPTS_TYPE
   INTEGER(KIND=JPIM) :: KGPCOMP 
   INTEGER(KIND=JPIM) :: KGL1
   INTEGER(KIND=JPIM) :: KGL2
-  INTEGER(KIND=JPIM) :: KSTEP
+  INTEGER(KIND=JPIM) :: NSTEP
   INTEGER(KIND=JPIM) :: KTDIA
   INTEGER(KIND=JPIM) :: KVCLIS
   INTEGER(KIND=JPIM) :: NDTPREC
@@ -154,25 +153,34 @@ TYPE CPG_OPTS_TYPE
 
   TYPE (TCLI) :: YRCLI
   
-  ! CFU 
-  LOGICAL :: LFLASH
-  ! XFU
-  LOGICAL :: LXCLP
-  LOGICAL :: LXTGST
-  LOGICAL :: LXXGST
-
-  LOGICAL :: L3DTURB  
+  INTEGER (KIND=JPIM) :: NSSSSS
+  INTEGER (KIND=JPIM) :: NFNUDG
+  INTEGER (KIND=JPIM) :: NINDAT
   LOGICAL :: LAROME 
   LOGICAL :: LCALLSFX 
   LOGICAL :: LCORWAT
+  LOGICAL :: LECMWF
+  LOGICAL :: LINITER
   LOGICAL :: LELAM
-  LOGICAL :: LNHDYN
+  LOGICAL :: LFLASH
+  LOGICAL :: LNUDG
+  LOGICAL :: LRPLANE
+  LOGICAL :: LSFORC
   LOGICAL :: LSFORCS  
-  LOGICAL :: LTWOTL
-  LOGICAL :: LVERTFE
-  INTEGER (KIND=JPIM) :: NINDAT
-  REAL (KIND=JPRB) ::  RPLDARE 
-  REAL (KIND=JPRB) ::  RPLRG
+  LOGICAL :: LSOMEGA_FRC
+  LOGICAL :: LSPS_FRC
+  LOGICAL :: LSW_FRC
+  LOGICAL :: LXCLP
+  LOGICAL :: LXTGST
+  LOGICAL :: LXXGST
+  REAL (KIND=JPRB) :: RPLDARE 
+  REAL (KIND=JPRB) :: RPLRG
+  REAL (KIND=JPRB) :: TOPPRES
+  REAL (KIND=JPRB) :: RPSTRA
+  REAL (KIND=JPRB) :: RPTROP
+  REAL (KIND=JPRB) :: RTSUR
+  REAL (KIND=JPRB), ALLOCATABLE :: XPNUDG (:)
+
 
 CONTAINS
   PROCEDURE :: INIT => CPG_OPTS_TYPE_INIT
@@ -182,15 +190,24 @@ CONTAINS
 
   SUBROUTINE CPG_OPTS_TYPE_INIT (SELF, YDGEOMETRY, YDMODEL, YDFIELDS, CDCONF, LD_DFISTEP)
     
-    USE YOMDYNA,    ONLY : LPC_FULL, LPC_CHEAP, L3DTURB
-    USE YOMCT0,     ONLY : LSLAG, LAROME, LCORWAT, LELAM, LSFORCS, LNHDYN, LTWOTL, LAROME, LCALLSFX
-    USE YOMCVER,    ONLY : LVERTFE
-    USE YOMDYNCORE, ONLY : RPLDARE, RPLRG
-    USE YOMLUN,     ONLY : NULOUT
+
+
+    USE FIELDS_MOD, ONLY : FIELDS
     USE TYPE_MODEL, ONLY : MODEL
+    USE YOMCT0,     ONLY : LAROME, LCORWAT, LELAM, LSFORCS, LCALLSFX, LSFORC, LRPLANE, LECMWF
     USE YOMCT3,     ONLY : NSTEP
-    USE FIELDS_MOD, ONLY : FIELDS
+    USE YOMSTA,     ONLY : RPSTRA, RPTROP, RTSUR
+    USE YOMVERT,    ONLY : TOPPRES
+    USE YOMDYNCORE, ONLY : RPLDARE, RPLRG
+    USE YOMLSFORC,  ONLY : LSPS_FRC, LSW_FRC, LSOMEGA_FRC
+    USE YOMLUN,     ONLY : NULOUT
+    USE YOMNUD,     ONLY : NFNUDG, LNUDG
     USE YOMRIP0,    ONLY : NINDAT
+    USE YOMSNU,     ONLY : XPNUDG
+    USE YOMRIP0,    ONLY : NSSSSS
+    USE YOMINI,     ONLY : LINITER
+    USE YOMCLI,     ONLY : YRCLI
+
     CLASS(CPG_OPTS_TYPE) :: SELF
     TYPE(MODEL)   , INTENT(IN) :: YDMODEL
     TYPE(GEOMETRY), INTENT(IN) :: YDGEOMETRY
@@ -208,27 +225,40 @@ CONTAINS
     SELF%LXTGST  = YDFIELDS%YRXFU%LXTGST
     SELF%LXXGST  = YDFIELDS%YRXFU%LXXGST
 
-    SELF%L3DTURB  = L3DTURB  
-    SELF%LAROME   = LAROME
-    SELF%LAROME   = LAROME 
-    SELF%LCALLSFX = LCALLSFX 
-    SELF%LCORWAT  = LCORWAT
-    SELF%LELAM    = LELAM
-    SELF%LNHDYN   = LNHDYN
-    SELF%LSFORCS  = LSFORCS 
-    SELF%LSFORCS  = LSFORCS  
-    SELF%LTWOTL   = LTWOTL
-    SELF%LVERTFE  = LVERTFE
-    SELF%NINDAT   = NINDAT
-    SELF%RPLDARE  = RPLDARE 
-    SELF%RPLRG    = RPLRG
+    SELF%LAROME                = LAROME 
+    SELF%LCALLSFX              = LCALLSFX 
+    SELF%LINITER               = LINITER
+    SELF%LCORWAT               = LCORWAT
+    SELF%LECMWF                = LECMWF
+    SELF%LELAM                 = LELAM
+
+    SELF%LNUDG                 = LNUDG
+    SELF%LRPLANE               = LRPLANE
+    SELF%LSFORC                = LSFORC
+    SELF%LSFORCS               = LSFORCS 
+    SELF%LSFORCS               = LSFORCS  
+
+    SELF%LSPS_FRC              = LSPS_FRC
+    SELF%LSW_FRC               = LSW_FRC
+    SELF%NSSSSS                = NSSSSS
+    SELF%NFNUDG                = NFNUDG
+    SELF%NINDAT                = NINDAT
+    SELF%RPLDARE               = RPLDARE 
+    SELF%RPLRG                 = RPLRG
+    SELF%TOPPRES               = TOPPRES
+    IF (ALLOCATED (XPNUDG)) THEN
+    SELF%XPNUDG                = XPNUDG
+    ENDIF
+    SELF%RPSTRA                = RPSTRA
+    SELF%RPTROP                = RPTROP
+    SELF%RTSUR                 = RTSUR 
 
     SELF%YRCLI = YRCLI
 
     SELF%L_DFISTEP = LD_DFISTEP
 
-    LLCT =LPC_FULL.AND.(YDMODEL%YRML_DYN%YRDYN%NCURRENT_ITER > 0)
-    LLCTC=LPC_CHEAP.AND.(YDMODEL%YRML_DYN%YRDYN%NCURRENT_ITER > 0)
+    LLCT =YDMODEL%YRML_DYN%YRDYNA%LPC_FULL.AND.(YDMODEL%YRML_DYN%YRDYN%NCURRENT_ITER > 0)
+    LLCTC=YDMODEL%YRML_DYN%YRDYNA%LPC_CHEAP.AND.(YDMODEL%YRML_DYN%YRDYN%NCURRENT_ITER > 0)
     IF(NSTEP > 0) THEN
       SELF%LFSTEP=.FALSE.
     ELSE
@@ -237,13 +267,13 @@ CONTAINS
     
     ! Physics is called in CPG
     SELF%LDIAB= (YDMODEL%YRML_PHY_MF%YRPHY%LMPHYS.OR.YDMODEL%YRML_PHY_EC%YREPHY%LEPHYS) .AND. .NOT. YDMODEL%YRML_PHY_EC%YREPHY%LAGPHY .AND. (YDMODEL%YRML_DYN%YRDYN%NCURRENT_ITER == 0)
-    SELF%LSLPHY = YDMODEL%YRML_PHY_EC%YREPHY%LSLPHY.AND.LSLAG.AND.(.NOT.LLCTC)
+    SELF%LSLPHY = YDMODEL%YRML_PHY_EC%YREPHY%LSLPHY.AND.YDMODEL%YRML_DYN%YRDYNA%LSLAG.AND.(.NOT.LLCTC)
     ! Initial fluxes
     IF (CDCONF == 'X') THEN
       SELF%LFSTEP=.TRUE.
     ENDIF
     
-    IF (LSLAG .AND. ((YDMODEL%YRML_DYN%YRDYN%NCURRENT_ITER == 0).OR.(LLCT.AND.(.NOT.LLCTC))) ) THEN 
+    IF (YDMODEL%YRML_DYN%YRDYNA%LSLAG .AND. ((YDMODEL%YRML_DYN%YRDYN%NCURRENT_ITER == 0).OR.(LLCT.AND.(.NOT.LLCTC))) ) THEN 
       SELF%LUSEPB1=.TRUE.
     ELSE
       SELF%LUSEPB1=.FALSE.
@@ -273,7 +303,7 @@ CONTAINS
     SELF%KGPTOT       =  YDGEOMETRY%YRGEM%NGPTOT
     SELF%KGPBLKS      =  YDGEOMETRY%YRDIM%NGPBLKS
     SELF%KGPCOMP      =  YDGEOMETRY%YRGEM%NGPTOT_CAP
-    SELF%KSTEP        =  NSTEP
+    SELF%NSTEP        =  NSTEP
     SELF%KGL1         =  1
     SELF%KGL2         =  YDGEOMETRY%YRDIM%NDGENL
     SELF%KTDIA        =  1
@@ -343,23 +373,18 @@ CONTAINS
 
   END SUBROUTINE CPG_OPTS_SURF_TYPE_INIT
 
-  SUBROUTINE CPG_BNDS_TYPE_INIT(SELF, YDGEOMETRY, YDMODEL, YDFIELDS)
-    USE TYPE_MODEL, ONLY : MODEL
-    USE FIELDS_MOD, ONLY : FIELDS
-    USE YOMCT0, ONLY : LSLAG, LTWOTL
+  SUBROUTINE CPG_BNDS_TYPE_INIT(SELF, YDCPG_OPTS)
     CLASS(CPG_BNDS_TYPE) :: SELF
-    TYPE(MODEL)   , INTENT(IN) :: YDMODEL
-    TYPE(GEOMETRY), INTENT(IN) :: YDGEOMETRY
-    TYPE(FIELDS),   INTENT(IN) :: YDFIELDS
+    TYPE(CPG_OPTS_TYPE), INTENT(IN) :: YDCPG_OPTS
 
     SELF%KBL          =  1
-    SELF%KLON         =  YDGEOMETRY%YRDIM%NPROMA
+    SELF%KLON         =  YDCPG_OPTS%KLON
     SELF%KIDIA        =  1
     SELF%KIDIE        =  1
-    SELF%KFDIA        =  YDGEOMETRY%YRDIM%NPROMA
-    SELF%KFDIE        =  YDGEOMETRY%YRDIM%NPROMA
-    SELF%KGPTOT       =  YDGEOMETRY%YRGEM%NGPTOT
-    SELF%KGPCOMP      =  YDGEOMETRY%YRGEM%NGPTOT_CAP
+    SELF%KFDIA        =  YDCPG_OPTS%KLON
+    SELF%KFDIE        =  YDCPG_OPTS%KLON
+    SELF%KGPTOT       =  YDCPG_OPTS%KGPTOT
+    SELF%KGPCOMP      =  YDCPG_OPTS%KGPCOMP
 
   END SUBROUTINE CPG_BNDS_TYPE_INIT
 
@@ -394,13 +419,12 @@ CONTAINS
   SUBROUTINE CPG_DIMS_VARS_TYPE_INIT (SELF, YDGEOMETRY, YDMODEL, YDVARS)
     USE TYPE_MODEL, ONLY : MODEL
     USE FIELD_VARIABLES_MOD, ONLY: FIELD_VARIABLES
-    USE YOMCT0, ONLY : LSLAG, LTWOTL
     CLASS(CPG_DIMS_VARS_TYPE) :: SELF
     TYPE(MODEL)   , INTENT(IN) :: YDMODEL
     TYPE(GEOMETRY), INTENT(IN) :: YDGEOMETRY
     TYPE(FIELD_VARIABLES),   INTENT(IN) :: YDVARS
 
-    IF (LSLAG) THEN
+    IF (YDMODEL%YRML_DYN%YRDYNA%LSLAG) THEN
     
       SELF%U   = CPG_DIM_VAR_TYPE (0, YDGEOMETRY%YRDIMV%NFLEVG+1)
       SELF%V   = CPG_DIM_VAR_TYPE (0, YDGEOMETRY%YRDIMV%NFLEVG+1)
diff --git a/src/arome/ext/cpg_pt_ulp_expl.fypp b/src/arome/ext/cpg_pt_ulp_expl.fypp
new file mode 100644
index 0000000000000000000000000000000000000000..351d2591a899e3f1af44ea8d8cc2ee545b831bfb
--- /dev/null
+++ b/src/arome/ext/cpg_pt_ulp_expl.fypp
@@ -0,0 +1,178 @@
+#:set config_file = os.path.dirname(_THIS_FILE_) + '/field_config.yaml'
+#:set config = field_config.VariableConfiguration(config_file)
+#:set gfl = config.groups['GFL']
+SUBROUTINE CPG_PT_ULP_EXPL (YDMODEL, YDGEOMETRY, YDMF_PHYS_NEXT_STATE, YDCPG_SL1, YDVARS, YDCPG_BNDS, LDGET, YDA_GFLPT)
+
+! -----------------------------------------------------------------------------
+!     --------------------------------------------
+!**** *CPG_PT_ULP_EXPL*  physics tendencies written to or extracted from GFLPT
+!     --------------------------------------------
+
+!     Purpose.
+!     --------
+!       Copy the physics tendencies calculated (for ex in predictor)
+!       to GFLPT to be retrieved and used during corrector
+!       Designed for unlagged physics packages (LAGPHY=F).
+!       May be used for non advected GFL too.
+
+!       This routine is called for lpc_full=true only.
+
+!**   Interface.
+!     ----------
+!        CALL CPG_PT_ULP_EXPL(...)
+
+!     Input arguments
+!     ------------------
+!       YDCPG_BNDS%KIDIA  : start of horizontal loop
+!       YDCPG_BNDS%KFDIA   : end of horizontal loop
+!       LDGET   : T = get tendencies from buffers.
+!                 F = save tendencies in buffers.
+!       KFLDN,KFLDX: for second dimension of PTENDEXT.
+
+!     Input or Output according to LDGET
+!     ----------------------------------
+!       PTEND[X]: tendency of X variable from phy (advected variables).
+!       PGFLPT  : buffer for tendency of GFL variable from phy.
+!       PGFLT1  : tendency of X variable from phy (not advected variables).
+!       PGFL    : GFL variables.
+!       PGMV    : upper air GMV variables at time t.
+!       PGMVS   : surface GMV variables at time t.
+
+!     Implicit arguments
+!     --------------------
+
+!     Author.
+!     -------
+!      Martina Tudor + Karim Yessad
+!      Original : Jan 2011 (from CPG_PT)
+
+!     Modifications.
+!     --------------
+! -----------------------------------------------------------------------------
+
+USE GEOMETRY_MOD , ONLY : GEOMETRY
+USE PARKIND1     , ONLY : JPIM, JPRB
+USE YOMHOOK      , ONLY : LHOOK, JPHOOK, DR_HOOK
+USE CPG_OPTS_TYPE_MOD       , ONLY : CPG_BNDS_TYPE
+USE FIELD_VARIABLES_MOD     , ONLY : FIELD_VARIABLES
+USE CPG_TYPE_MOD            , ONLY : CPG_SL1_TYPE
+USE TYPE_MODEL              , ONLY : MODEL
+USE MF_PHYS_NEXT_STATE_TYPE_MOD &
+                            , ONLY : MF_PHYS_NEXT_STATE_TYPE
+USE ARRAY_FIELD_WRAPPER_MOD , ONLY : ARRAY_4D
+
+
+! -----------------------------------------------------------------------------
+
+IMPLICIT NONE
+
+TYPE(MODEL)                    ,INTENT(IN)     :: YDMODEL
+TYPE(GEOMETRY)                 ,INTENT(IN)     :: YDGEOMETRY
+TYPE (MF_PHYS_NEXT_STATE_TYPE), INTENT(INOUT)  :: YDMF_PHYS_NEXT_STATE
+TYPE(CPG_SL1_TYPE)             ,INTENT(INOUT)  :: YDCPG_SL1
+TYPE(FIELD_VARIABLES)          ,INTENT(INOUT)  :: YDVARS
+TYPE(CPG_BNDS_TYPE)            ,INTENT(IN)     :: YDCPG_BNDS
+LOGICAL                        ,INTENT(IN)     :: LDGET
+TYPE(ARRAY_4D)                 ,INTENT(INOUT)  :: YDA_GFLPT
+! -----------------------------------------------------------------------------
+
+INTEGER(KIND=JPIM) :: JGFL
+
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
+
+! -----------------------------------------------------------------------------
+
+IF (LHOOK) CALL DR_HOOK('CPG_PT_ULP_EXPL',0,ZHOOK_HANDLE)
+ASSOCIATE(YDDIM=>YDGEOMETRY%YRDIM,YDDIMV=>YDGEOMETRY%YRDIMV,YGFL=>YDMODEL%YRML_GCONF%YGFL)
+ASSOCIATE(YCPF=>YDMODEL%YRML_GCONF%YGFL%YCPF,   NFLEVG=>YDDIMV%NFLEVG)
+
+! -----------------------------------------------------------------------------
+
+!*       1.  PREDICTOR FOR LPC_FULL.
+!        ---------------------------
+
+IF (.NOT.LDGET) THEN
+
+  ! * GMV:
+  YDVARS%CUPT%T9(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)=YDMF_PHYS_NEXT_STATE%U%P(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)
+  YDVARS%CVPT%T9(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)=YDMF_PHYS_NEXT_STATE%V%P(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)
+  YDVARS%CTPT%T9(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)=YDMF_PHYS_NEXT_STATE%T%P(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)
+  IF (YDMODEL%YRML_DYN%YRDYNA%LNHDYN) THEN
+    YDVARS%CSVDPT%T9(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)=YDMF_PHYS_NEXT_STATE%SVD%P(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)
+  ENDIF
+
+  ! * GMVS:
+  YDVARS%CSPPT%T9(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_SL1%SP9%P(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+
+  ! * GFL:
+#:for v in gfl.variables
+#:if v.array == 1
+  IF (ALLOCATED (YDCPG_SL1%${v.name}$)) THEN
+    DO JGFL = 1, SIZE (YDCPG_SL1%${v.name}$)
+      IF (YGFL%Y${v.name}$(JGFL)%LT1 .AND. YGFL%Y${v.name}$(JGFL)%LPT) THEN
+        YDA_GFLPT%P(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG,YGFL%Y${v.name}$(JGFL)%MPPT) = YDMF_PHYS_NEXT_STATE%${v.name}$(JGFL)%P(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)
+      ENDIF
+    ENDDO
+  ENDIF
+
+#:else
+  IF (YGFL%Y${v.name}$%LT1 .AND. YGFL%Y${v.name}$%LPT) THEN
+    YDA_GFLPT%P(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG,YGFL%Y${v.name}$%MPPT) = YDMF_PHYS_NEXT_STATE%${v.name}$%P(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)
+  ENDIF
+
+#:endif
+#:endfor
+
+ENDIF
+
+! -----------------------------------------------------------------------------
+
+!*       2.  CORRECTOR FOR LPC_FULL.
+!        ---------------------------
+
+IF (LDGET) THEN
+
+  ! * GMV:
+  YDMF_PHYS_NEXT_STATE%U%P(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)=YDVARS%CUPT%T9(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)
+  YDMF_PHYS_NEXT_STATE%V%P(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)=YDVARS%CVPT%T9(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)
+  YDMF_PHYS_NEXT_STATE%T%P(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)=YDVARS%CTPT%T9(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)
+  IF (YDMODEL%YRML_DYN%YRDYNA%LNHDYN) THEN
+    YDMF_PHYS_NEXT_STATE%SVD%P(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)=YDVARS%CSVDPT%T9(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)
+  ENDIF
+
+  ! * GMVS:
+  YDCPG_SL1%SP9%P(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDVARS%CSPPT%T9(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)
+
+  ! * GFL:
+#:for v in gfl.variables
+#:if v.array == 1
+  IF (ALLOCATED (YDCPG_SL1%${v.name}$)) THEN
+    DO JGFL = 1, SIZE (YDCPG_SL1%${v.name}$)
+      IF (YGFL%Y${v.name}$(JGFL)%LT1 .AND. YGFL%Y${v.name}$(JGFL)%LPT) THEN
+        YDMF_PHYS_NEXT_STATE%${v.name}$(JGFL)%P(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG) = YDA_GFLPT%P(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG,YGFL%Y${v.name}$(JGFL)%MPPT)
+      ENDIF
+    ENDDO
+  ENDIF
+
+#:else
+  IF (YGFL%Y${v.name}$%LT1 .AND. YGFL%Y${v.name}$%LPT) THEN
+    YDMF_PHYS_NEXT_STATE%${v.name}$%P(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG) = YDA_GFLPT%P(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG,YGFL%Y${v.name}$%MPPT)
+  ENDIF
+
+#:endif
+#:endfor
+
+  IF (YCPF%LACTIVE) THEN
+    YDVARS%CPF%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)=YDVARS%CPF%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NFLEVG)
+  ENDIF
+
+ENDIF
+
+! -----------------------------------------------------------------------------
+
+END ASSOCIATE
+END ASSOCIATE
+
+IF (LHOOK) CALL DR_HOOK('CPG_PT_ULP_EXPL',1,ZHOOK_HANDLE)
+
+END SUBROUTINE CPG_PT_ULP_EXPL
diff --git a/src/arome/ext/cpg_type_mod.fypp b/src/arome/ext/cpg_type_mod.fypp
new file mode 100644
index 0000000000000000000000000000000000000000..d05cb1e1b7c3de8441bbe9c5ca53ecf11723272b
--- /dev/null
+++ b/src/arome/ext/cpg_type_mod.fypp
@@ -0,0 +1,986 @@
+#:mute
+#:set config_file = os.path.dirname(_THIS_FILE_) + '/field_config.yaml'
+#:set config = field_config.VariableConfiguration(config_file)
+#:set gfl = config.groups['GFL'] 
+#:include "cpg_macros.hypp"
+
+#:set AS_void                 = []
+#:set AS_0_nflevg             = [ [ '0', 'NLEV' ] ]
+#:set AS_1_nflevg             = [ [ '1', 'NLEV' ] ]
+#:set AS_1_KFLEVG             = [ [ '1', 'YDCPG_OPTS%KFLEVG' ] ]
+#:set AS_1_nflevg_2           = [ [ '1', 'NLEV' ], [ '1', '2' ] ]
+#:set AS_0_KFLEVG_6           = [ [ '0', 'YDCPG_OPTS%KFLEVG' ], [ '1', '6' ] ]
+#:set AS_1_KFLEVG_NVCLIS      = [ [ '1', 'YDCPG_OPTS%KFLEVG' ], [ '1', 'YDCPG_OPTS%KVCLIS' ] ]
+#:set AS_4D                   = [ [], [] ]
+#:set AS_1_NSW                = [ [ '1', 'YDCPG_OPTS%KSW' ] ]
+
+#:set vars_cpg_dyn = { &                                                                                         
+& "OROGL"          : [False, False, AS_void,            None,                 "LLT0"               ], &
+& "OROGM"          : [False, False, AS_void,            None,                 "LLT0"               ], &
+& "PHI"            : [False, False, AS_0_nflevg,        None,                 None                 ], &
+& "PRE"            : [False, False, AS_0_nflevg,        None,                 None                 ], &
+& "PHIF"           : [True,  True,  AS_1_nflevg,        None,                 None                 ], &
+& "PREF"           : [True,  True,  AS_1_nflevg,        None,                 None                 ], &
+& "PREL"           : [False, False, AS_void,            None,                 None                 ], &
+& "PREM"           : [False, False, AS_void,            None,                 None                 ], &
+& "NHY"            : [False, False, AS_0_nflevg,        None,                 None                 ], &
+& "GWFT"           : [False, False, AS_1_nflevg,        None,                 None                 ], &
+& "KENE"           : [False, False, AS_1_nflevg,        None,                 "LLT0"               ], &
+& "NHX"            : [False, False, AS_1_nflevg,        None,                 None                 ], &
+& "PHIFL"          : [False, False, AS_1_nflevg,        None,                 "LLT0"               ], &
+& "PHIFM"          : [False, False, AS_1_nflevg,        None,                 "LLT0"               ], &
+& "RTL"            : [False, False, AS_1_nflevg,        None,                 "LLT0"               ], &
+& "RTM"            : [False, False, AS_1_nflevg,        None,                 "LLT0"               ], &
+& "RCP"            : [True,  True,  AS_4D,              "CPG_RCP_TYPE",       None                 , "YLTRCP"     ], &
+& "CTY"            : [True,  False, AS_4D,              "CPG_CTY_TYPE",       "LLT0"               , "YLTCTY"     ], &
+& "UVH"            : [False, False, AS_4D,              "CPG_HWIND_TYPE",     "LLT0"               , "YLTHW"      ], &
+& "XYB"            : [False, False, AS_4D,              "CPG_XYB_TYPE",       None                 , "YLTXYB"     ], &
+& "DBBC"           : [False, False, AS_void,            None,                 "YDDYNA%LNHDYN .AND. LLT0"  ], &
+& "GWS"            : [False, False, AS_void,            None,                 "YDDYNA%LNHDYN .AND. LLT0"  ], &
+& "GWFL"           : [False, False, AS_1_nflevg,        None,                 "YDDYNA%LNHDYN .AND. LLT0"  ], &
+& "GWFM"           : [False, False, AS_1_nflevg,        None,                 "YDDYNA%LNHDYN .AND. LLT0"  ], &
+& "GWT"            : [False, False, AS_1_nflevg,        None,                 "YDDYNA%LNHDYN"             ], &
+& "NHPREF"         : [False, False, AS_1_nflevg,        None,                 "YDDYNA%LNHDYN"             ], &
+& "NHPREH"         : [False, False, AS_0_nflevg,        None,                 "YDDYNA%LNHDYN"             ], &
+& "QCHAL"          : [False, False, AS_1_nflevg,        None,                 "YDDYNA%LNHDYN .AND. LLT0"  ], &
+& "QCHAM"          : [False, False, AS_1_nflevg,        None,                 "YDDYNA%LNHDYN .AND. LLT0"  ], &
+& "RDPHI"          : [False, False, AS_1_nflevg,        None,                 "YDDYNA%LNHDYN .AND. LLT0"  ], &
+& }
+
+#:set vars_cpg_phy = { &                                                                                           
+& "PRE"            : [False, False, AS_0_nflevg,        None,                 "LLMF_PHYS"          ], &
+& "PREF"           : [False, False, AS_1_nflevg,        None,                 "LLMF_PHYS"          ], &
+& "PREHYD"         : [False, False, AS_0_nflevg,        None,                 "LLMF_PHYS"          ], &
+& "PREHYDF"        : [False, False, AS_1_nflevg,        None,                 "LLMF_PHYS"          ], &
+& "WL"             : [False, False, AS_1_nflevg,        None,                 "LLMF_PHYS"          ], &
+& "WM"             : [False, False, AS_1_nflevg,        None,                 "LLMF_PHYS"          ], &
+& "W"              : [False, False, AS_1_nflevg,        None,                 "LLMF_PHYS"          ], &
+& "XYB"            : [False, False, AS_4D,              "CPG_XYB_TYPE",       "LLMF_PHYS"          , "YLTXYB_PHY" ], &
+& }
+
+#:set vars_cpg_gpar = { &
+& "INPRR"          : [False, False, AS_void,            None,                 None                 ], &
+& "INPRS"          : [False, False, AS_void,            None,                 None                 ], &
+& "INPRG"          : [False, False, AS_void,            None,                 None                 ], &
+& "ACPRR"          : [False, False, AS_void,            None,                 None                 ], &
+& "ACPRS"          : [False, False, AS_void,            None,                 None                 ], &
+& "ACPRG"          : [False, False, AS_void,            None,                 None                 ], &
+& "ALBDIR"         : [False, False, AS_1_NSW,           None,                 None                 ], &
+& "ALBSCA"         : [False, False, AS_1_NSW,           None,                 None                 ], &
+& "RAIN"           : [False, False, AS_void,            None,                 None                 ], &
+& "SNOW"           : [False, False, AS_void,            None,                 None                 ], &
+& "GZ0"            : [False, False, AS_void,            None,                 None                 ], &
+& "GZ0H"           : [False, False, AS_void,            None,                 None                 ], &
+& "VQS"            : [False, False, AS_void,            None,                 None                 ], &
+& "VTS"            : [False, False, AS_void,            None,                 None                 ], &
+& "VEMIS"          : [False, False, AS_void,            None,                 None                 ], &
+& "SWDIR"          : [False, False, AS_1_NSW,           None,                 None                 ], &
+& "SWDIF"          : [False, False, AS_1_NSW,           None,                 None                 ], &
+& "LSM"            : [False, False, AS_void,            None,                 None                 ], &
+& "CD"             : [False, False, AS_void,            None,                 None                 ], &
+& }
+
+#:set vars_cpg_misc = { &
+& "NEB"            : [False, False, AS_1_KFLEVG,        None,                 None                 ], &
+& "QLI"            : [False, False, AS_1_KFLEVG,        None,                 None                 ], &
+& "QICE"           : [False, False, AS_1_KFLEVG,        None,                 None                 ], &
+& "QRAIN"          : [False, False, AS_1_KFLEVG,        None,                 None                 ], &
+& "QSNOW"          : [False, False, AS_1_KFLEVG,        None,                 None                 ], &
+& "QGRAUPEL"       : [False, False, AS_1_KFLEVG,        None,                 None                 ], &
+& "RH"             : [False, False, AS_1_KFLEVG,        None,                 None                 ], &
+& "QS"             : [False, False, AS_void,            None,                 None                 ], &
+& "QSOL"           : [False, False, AS_void,            None,                 None                 ], &
+& "DHSF"           : [False, False, AS_void,            None,                 None                 ], &
+& "CLCT"           : [False, False, AS_void,            None,                 None                 ], &
+& "LSM"            : [False, False, AS_void,            None,                 None                 ], &
+& "TSOL"           : [False, False, AS_void,            None,                 None                 ], &
+& "FTCNS"          : [False, False, AS_0_KFLEVG_6,      None,                 None                 ], &
+& "KOZO"           : [False, False, AS_1_KFLEVG_NVCLIS, None,                 None                 ], &
+& }
+
+
+#:set vars_cpg_dyn_xybder = { &
+& "LNPRL"          : [False, False,  AS_1_nflevg,  ], &
+& "LNPRM"          : [False, False,  AS_1_nflevg,  ], &
+& "ALPHL"          : [False, False,  AS_1_nflevg,  ], &
+& "ALPHM"          : [False, False,  AS_1_nflevg,  ], &
+& "ALPHPLL"        : [False, False,  AS_1_nflevg,  ], &
+& "ALPHPLM"        : [False, False,  AS_1_nflevg,  ], &
+& "COEFD"          : [False, False,  AS_1_nflevg,  ], &
+& "COEFA"          : [False, False,  AS_1_nflevg,  ], &
+& "COEFAPL"        : [False, False,  AS_1_nflevg,  ], &
+& }
+
+#:set vars_cpg_dyn_xyb = { &
+& "DELP"           : [False, False, AS_1_nflevg,   ], & 
+& "RDELP"          : [False, False, AS_1_nflevg,   ], &
+& "LNPR"           : [False, False, AS_1_nflevg,   ], &
+& "ALPH"           : [False, False, AS_1_nflevg,   ], &
+& "RTGR"           : [False, False, AS_1_nflevg,   ], &
+& "RPRE"           : [False, False, AS_1_nflevg,   ], &
+& "RPP"            : [False, False, AS_1_nflevg,   ], &
+& }
+
+#:set vars_cpg_dyn_hwind = { &
+& "UH"             : [False, False, AS_0_nflevg,   ], &
+& "VH"             : [False, False, AS_0_nflevg,   ], &
+& "WWI"            : [False, False, AS_0_nflevg,   ], &
+& }
+
+#:set vars_cpg_dyn_rcp = { &
+& "CP"             : [False, False, AS_1_nflevg,   ], &
+& "R"              : [False, False, AS_1_nflevg,   ], &
+& "KAP"            : [False, False, AS_1_nflevg,   ], &
+& }
+
+#:set vars_cpg_dyn_cty = { &
+& "EVEL"           : [False, False, AS_0_nflevg,   ], &
+& "VVEL"           : [False, False, AS_0_nflevg,   ], &
+& "PSDIV"          : [False, False, AS_0_nflevg,   ], &
+& "PSDVBC"         : [False, False, AS_0_nflevg,   ], &
+& "DIVDP"          : [False, False, AS_0_nflevg,   ], &
+& }
+
+#:set vars_cpg_dyn_tnd = { &
+& "TNDU"           : [False, False, AS_1_nflevg,   ], &
+& "TNDV"           : [False, False, AS_1_nflevg,   ], &
+& "TNDU_NOC"       : [False, False, AS_1_nflevg,   ], &
+& "TNDV_NOC"       : [False, False, AS_1_nflevg,   ], &
+& "TNDT"           : [False, False, AS_1_nflevg,   ], &
+& "TNDPD"          : [False, False, AS_1_nflevg,   ], &
+& "TNDVD"          : [False, False, AS_1_nflevg,   ], &
+& "TNDGW"          : [False, False, AS_1_nflevg,   ], &
+& }
+
+#:endmute
+MODULE CPG_TYPE_MOD
+
+USE FIELD_MODULE
+USE FIELD_REGISTRY_MOD
+USE PARKIND1, ONLY : JPRB, JPIM, JPIB
+USE YOM_YGFL, ONLY : TYPE_GFL_COMP
+
+IMPLICIT NONE
+
+$:pcpg_intdyn_definition ("CPG_XYBDER_TYPE"  ,vars_cpg_dyn_xybder)
+
+$:pcpg_intdyn_definition ("CPG_XYB_TYPE"     ,vars_cpg_dyn_xyb   )
+
+$:pcpg_intdyn_definition ("CPG_HWIND_TYPE"   ,vars_cpg_dyn_hwind )
+
+$:pcpg_intdyn_definition ("CPG_RCP_TYPE"     ,vars_cpg_dyn_rcp   )
+
+$:pcpg_intdyn_definition ("CPG_CTY_TYPE"     ,vars_cpg_dyn_cty   )
+
+$:pcpg_intdyn_definition ("CPG_TND_TYPE"     ,vars_cpg_dyn_tnd   )
+
+$:pcpg_struct1_definition ("CPG_GPAR_TYPE"  , vars_cpg_gpar      )
+
+$:pcpg_type_definition ("CPG_DYN_TYPE"      , vars_cpg_dyn       )
+
+$:pcpg_type_definition ("CPG_PHY_TYPE"      , vars_cpg_phy       )
+
+$:pcpg_type_definition ("CPG_MISC_TYPE"     , vars_cpg_misc      )
+
+TYPE CPG_DDH_TYPE
+  REAL(KIND=JPRB), POINTER, CONTIGUOUS :: AUX3D (:,:,:) => NULL ()
+  TYPE (FIELD_4D), POINTER :: F_AUX3D => NULL ()
+  
+  REAL(KIND=JPRB), POINTER, CONTIGUOUS :: AUX2D (:,:) => NULL ()
+  TYPE (FIELD_3D), POINTER :: F_AUX2D => NULL ()
+
+  REAL(KIND=JPRB), POINTER, CONTIGUOUS :: DHCV  (:,:,:) => NULL ()
+  TYPE (FIELD_4D), POINTER :: F_DHCV => NULL ()
+  REAL(KIND=JPRB), POINTER, CONTIGUOUS :: AUXSM (:,:,:,:) => NULL ()
+  TYPE (FIELD_5D), POINTER :: F_AUXSM => NULL ()
+  INTEGER(KIND=JPIM), POINTER, CONTIGUOUS :: DDHI (:) => NULL ()
+  TYPE (FIELD_INT2D), POINTER :: F_DDHI => NULL ()
+CONTAINS
+  PROCEDURE :: INIT => CPG_DDH_TYPE_INIT
+  PROCEDURE :: UPDATE_VIEW => CPG_DDH_TYPE_UPDATE_VIEW
+  PROCEDURE :: FINAL => CPG_DDH_TYPE_FINAL
+END TYPE CPG_DDH_TYPE
+
+#:set N3D = 0
+#:set pb1_vars = { &
+& 'U9'         : [ True   ],  'V9'         : [ True   ], &
+& 'T9'         : [ True   ],  'PD9'        : [ True   ], &
+& 'VD9'        : [ True   ],  'NHX9'       : [ True   ], &
+& 'UR0'        : [ True   ],  'VR0'        : [ True   ], &
+& 'ZR0'        : [ True   ],  'WR0'        : [ True   ], &
+& 'UR00'       : [ True   ],  'VR00'       : [ True   ], &
+& 'ZR00'       : [ True   ],  'WR00'       : [ True   ], &
+& 'WRA'        : [ True   ],  'UR9'        : [ True   ], &
+& 'VR9'        : [ True   ],  'DBBC9'      : [ True   ], &
+& 'DPHI9'      : [ True   ],  'GWS9'       : [ False  ], &
+& 'U0'         : [ True   ],  'V0'         : [ True   ], &
+& 'T0'         : [ True   ],  'PD0'        : [ True   ], &
+& 'VD0'        : [ True   ],  'C9'         : [ True   ], &
+& 'SP9'        : [ False  ],  'SP0'        : [ False  ], &
+& 'C0'         : [ True   ],  'UP9'        : [ True   ], &
+& 'VP9'        : [ True   ],  'TP9'        : [ True   ], &
+& 'U9_SI'      : [ True   ],  'V9_SI'      : [ True   ], &
+& 'T9_SI'      : [ True   ],  'PD9_SI'     : [ True   ], &
+& 'VD9_SI'     : [ True   ],  'C9_SI'      : [ True   ], &
+& 'UF9'        : [ True   ],  'VF9'        : [ True   ], &
+& 'TF9'        : [ True   ],  'VDF9'       : [ True   ], &
+& 'U9_NL'      : [ True   ],  'V9_NL'      : [ True   ], &
+& 'T9_NL'      : [ True   ],  'PD9_NL'     : [ True   ], &
+& 'VD9_NL'     : [ True   ],  'C9_NL'      : [ True   ], &
+& 'ZR9'        : [ True   ],  'Z9'         : [ True   ], &
+& 'Z0'         : [ True   ],  'ZP9'        : [ True   ], &
+& }
+
+#:set pb2_vars = { &
+& 'DBBC1'      : [ False ],  'DPHI1'      : [ False ], &
+& 'USI'        : [ True  ],  'VSI'        : [ True  ], &
+& 'TSI'        : [ True  ],  'PDSI'       : [ True  ], &
+& 'VDSI'       : [ True  ],  'SPSI'       : [ False ], &
+& 'VVEL'       : [ True  ],  'URL'        : [ True  ], &
+& 'VRL'        : [ True  ],  'WRL'        : [ True  ], &
+& 'URL5'       : [ True  ],  'VRL5'       : [ True  ], &
+& 'WRL5'       : [ True  ],  'USI5'       : [ True  ], &
+& 'VSI5'       : [ True  ],  'U15'        : [ True  ], &
+& 'V15'        : [ True  ],  'T15'        : [ True  ], &
+& 'Q15'        : [ True  ],  'KAPPA'      : [ True  ], &
+& 'KAPPAT'     : [ True  ],  'KAPPAM'     : [ True  ], &
+& 'KAPPAH'     : [ True  ],  'KAPPA5'     : [ True  ], &
+& 'KAPPAT5'    : [ True  ],  'GWF'        : [ True  ], &
+& 'GDW'        : [ True  ],  'GWS'        : [ True  ], &
+& 'STDDISU'    : [ True  ],  'STDDISV'    : [ True  ], &
+& 'STDDISW'    : [ True  ],  'ZRL'        : [ True  ], &
+& }
+
+#:def pcpg_sl1_type_definition (vars)
+
+ABSTRACT INTERFACE 
+  LOGICAL FUNCTION FUN_GREP (YDCOMP, YDMODEL)
+    USE YOM_YGFL, ONLY : TYPE_GFL_COMP
+    USE TYPE_MODEL, ONLY : MODEL
+    TYPE (TYPE_GFL_COMP), INTENT (IN) :: YDCOMP
+    TYPE (MODEL),  INTENT (IN) :: YDMODEL
+  END FUNCTION
+END INTERFACE
+
+PRIVATE :: FUN_GREP, GREPVARS
+
+TYPE CPG_SL1_TYPE
+  LOGICAL :: LOWNED = .FALSE.
+  INTEGER (KIND=JPIM) :: NLEV = -1
+  INTEGER (KIND=JPIB) :: ISIZE = 0
+  REAL (KIND=JPRB), POINTER, CONTIGUOUS :: ZVIEW (:,:) => NULL ()
+  REAL (KIND=JPRB), POINTER, CONTIGUOUS :: ZDATA (:,:,:) => NULL ()
+  TYPE (FIELD_3D), POINTER :: F_DATA => NULL ()
+#:for var in vars
+  #:if vars[var][N3D]
+  TYPE (CPG_SL1_3D_TYPE) :: ${var}$
+  #:else
+  TYPE (CPG_SL1_2D_TYPE) :: ${var}$
+  #:endif
+#:endfor
+
+#:for v in gfl.variables
+  #:if v.array
+  TYPE (CPG_SL1_3D_TYPE), ALLOCATABLE :: ${v.name}$ (:)
+  #:elif v.dim == 3
+  TYPE (CPG_SL1_3D_TYPE) :: ${v.name}$
+  #:endif
+#:endfor
+
+  TYPE (CPG_SL1_3D_TYPE), ALLOCATABLE :: GFL (:)
+CONTAINS
+  PROCEDURE :: INIT => CPG_SL1_TYPE_INIT
+  PROCEDURE :: UPDATE_VIEW => CPG_SL1_TYPE_UPDATE_VIEW
+  PROCEDURE :: FINAL => CPG_SL1_TYPE_FINAL
+  PROCEDURE :: ZERO => CPG_SL1_TYPE_ZERO
+END TYPE CPG_SL1_TYPE
+#:enddef
+
+#:def pcpg_sl2_type_definition (vars)
+TYPE CPG_SL2_TYPE
+  LOGICAL :: LOWNED = .FALSE.
+  INTEGER (KIND=JPIM) :: NLEV = -1
+  INTEGER (KIND=JPIB) :: ISIZE = 0
+  REAL (KIND=JPRB), POINTER, CONTIGUOUS :: ZVIEW (:,:) => NULL ()
+  REAL (KIND=JPRB), POINTER, CONTIGUOUS :: ZDATA (:,:,:) => NULL ()
+  TYPE (FIELD_3D), POINTER :: F_DATA => NULL ()
+#:for var in vars
+  #:if vars[var][N3D]
+  REAL (KIND=JPRB), POINTER, CONTIGUOUS :: ${var}$ (:,:) => NULL ()
+!>REAL (KIND=JPRB)                      :: ${var}$ (NPROMA, 0:NLEV+1)
+  TYPE (FIELD_3D), POINTER :: F_${var}$ => NULL ()
+  #:else
+  REAL (KIND=JPRB), POINTER, CONTIGUOUS :: ${var}$ (:) => NULL ()
+!>REAL (KIND=JPRB)                      :: ${var}$ (NPROMA)
+  TYPE (FIELD_2D), POINTER :: F_${var}$ => NULL ()
+  #:endif
+#:endfor
+
+CONTAINS
+  PROCEDURE :: INIT => CPG_SL2_TYPE_INIT
+  PROCEDURE :: UPDATE_VIEW => CPG_SL2_TYPE_UPDATE_VIEW
+  PROCEDURE :: FINAL => CPG_SL2_TYPE_FINAL
+END TYPE CPG_SL2_TYPE
+#:enddef
+
+TYPE CPG_SL1_2D_TYPE
+  REAL (KIND=JPRB), POINTER, CONTIGUOUS :: P (:) => NULL ()
+  TYPE (FIELD_2D), POINTER :: F_P => NULL ()
+
+  REAL (KIND=JPRB), POINTER, CONTIGUOUS :: P_F (:) => NULL ()
+  TYPE (FIELD_2D), POINTER :: F_P_F => NULL ()
+
+
+
+
+  REAL (KIND=JPRB), POINTER, CONTIGUOUS :: P_SPF (:) => NULL ()
+  TYPE (FIELD_2D), POINTER :: F_P_SPF => NULL ()
+
+  REAL (KIND=JPRB), POINTER, CONTIGUOUS :: P_SP (:) => NULL ()
+  TYPE (FIELD_2D), POINTER :: F_P_SP => NULL ()
+
+  REAL (KIND=JPRB), POINTER, CONTIGUOUS :: P_P (:) => NULL ()
+  TYPE (FIELD_2D), POINTER :: F_P_P => NULL ()
+
+END TYPE
+
+TYPE CPG_SL1_3D_TYPE
+  REAL (KIND=JPRB), POINTER, CONTIGUOUS :: P (:,:) => NULL ()
+  TYPE (FIELD_3D), POINTER :: F_P => NULL ()
+
+  REAL (KIND=JPRB), POINTER, CONTIGUOUS :: P_F (:,:) => NULL ()
+  TYPE (FIELD_3D), POINTER :: F_P_F => NULL ()
+
+  REAL (KIND=JPRB), POINTER, CONTIGUOUS :: P_SPF (:,:) => NULL ()
+  TYPE (FIELD_3D), POINTER :: F_P_SPF => NULL ()
+
+  REAL (KIND=JPRB), POINTER, CONTIGUOUS :: P_SP (:,:) => NULL ()
+  TYPE (FIELD_3D), POINTER :: F_P_SP => NULL ()
+
+  REAL (KIND=JPRB), POINTER, CONTIGUOUS :: P_P (:,:) => NULL ()
+  TYPE (FIELD_3D), POINTER :: F_P_P => NULL ()
+
+  TYPE (TYPE_GFL_COMP) :: YCOMP
+END TYPE
+
+$:pcpg_sl1_type_definition (pb1_vars)
+
+$:pcpg_sl2_type_definition (pb2_vars)
+
+REAL(KIND=JPRB),    PRIVATE, SAVE, TARGET :: ZDUM1 (1), ZDUM2 (1, 1), ZDUM3 (1,1,1)
+INTEGER(KIND=JPIM), PRIVATE, SAVE, TARGET :: IDUM1 (1), IDUM2 (1, 1), IDUM3 (1,1,1)
+
+CONTAINS
+
+$:pcpg_intdyn_methods ("CPG_XYBDER_TYPE"  , vars_cpg_dyn_xybder, "XYBDER", use_lbounds=True)
+
+$:pcpg_intdyn_methods ("CPG_XYB_TYPE"     , vars_cpg_dyn_xyb   , "XYB"   , use_lbounds=True)
+
+$:pcpg_intdyn_methods ("CPG_HWIND_TYPE"   , vars_cpg_dyn_hwind , "HWIND" , use_lbounds=True)
+
+$:pcpg_intdyn_methods ("CPG_RCP_TYPE"     , vars_cpg_dyn_rcp   , "RCP"   , use_lbounds=True)
+
+$:pcpg_intdyn_methods ("CPG_CTY_TYPE"     , vars_cpg_dyn_cty   , "CTY"   , use_lbounds=True)
+
+$:pcpg_intdyn_methods ("CPG_TND_TYPE"     , vars_cpg_dyn_tnd   , "TND"   , use_lbounds=True)
+
+$:pcpg_struct1_methods ("CPG_GPAR_TYPE"   , vars_cpg_gpar   , "TPARAR", "YOMPARAR", "M", "NGPAR")
+
+$:pcpg_type_methods ("CPG_DYN_TYPE"      , vars_cpg_dyn , use_intdyn=True, use_lbounds=True)
+
+$:pcpg_type_methods ("CPG_PHY_TYPE"      , vars_cpg_phy , use_intdyn=True, use_lbounds=True)
+
+$:pcpg_type_methods ("CPG_MISC_TYPE"     , vars_cpg_misc,                  use_lbounds=True)
+
+SUBROUTINE CPG_DDH_TYPE_INIT (SELF, REGISTRY, NLEV, PERSISTENT, YDMODEL, YDDDH)
+
+USE TYPE_MODEL, ONLY : MODEL
+USE DDH_MIX, ONLY : TYP_DDH
+
+CLASS (CPG_DDH_TYPE)                             :: SELF
+TYPE (FIELD_REGISTRY),            INTENT (IN)    :: REGISTRY
+INTEGER (KIND=JPIM),              INTENT (IN)    :: NLEV
+LOGICAL, OPTIONAL,                INTENT (IN)    :: PERSISTENT
+TYPE (MODEL),                     INTENT (IN)    :: YDMODEL
+TYPE (TYP_DDH),                   INTENT (IN)    :: YDDDH
+
+
+ALLOCATE (SELF%F_AUX3D)
+SELF%F_AUX3D = FIELD_4D (SHAPE=[NLEV+1, YDMODEL%YRML_DIAG%YRMDDH%NDHIDH, YDDDH%NFIELDS3D_AUTO], &
+                       & NBLOCKS=REGISTRY%GEOM%YRDIM%NGPBLKS, PERSISTENT=PERSISTENT)
+ALLOCATE (SELF%F_AUX2D)
+SELF%F_AUX2D = FIELD_3D (SHAPE=[YDMODEL%YRML_DIAG%YRMDDH%NDHIDH, YDDDH%NFIELDS2D_AUTO], &
+                       & NBLOCKS=REGISTRY%GEOM%YRDIM%NGPBLKS, PERSISTENT=PERSISTENT)
+
+SELF%F_DHCV  => CREATE_TEMPORARY (GEOM=REGISTRY%GEOM, NLEV=NLEV+1, PERSISTENT=PERSISTENT, NDIM=YDMODEL%YRML_DIAG%YRMDDH%NDHCVSUN)
+SELF%F_AUXSM => CREATE_TEMPORARY (GEOM=REGISTRY%GEOM, NLEV=1, PERSISTENT=PERSISTENT, NDIM=NLEV, NDIM2=13)
+SELF%F_DDHI  => CREATE_TEMPORARY_INT (GEOM=REGISTRY%GEOM, PERSISTENT=PERSISTENT)
+
+END SUBROUTINE CPG_DDH_TYPE_INIT
+
+SUBROUTINE CPG_DDH_TYPE_UPDATE_VIEW (SELF, BLOCK_INDEX)
+
+CLASS (CPG_DDH_TYPE)              :: SELF
+INTEGER(KIND=JPIM), INTENT (IN)   :: BLOCK_INDEX
+
+IF (ASSOCIATED (SELF%F_AUX3D)) SELF%AUX3D (0:, 1:, 1:)  => SELF%F_AUX3D%GET_VIEW (BLOCK_INDEX)
+IF (ASSOCIATED (SELF%F_AUX2D)) SELF%AUX2D               => SELF%F_AUX2D%GET_VIEW (BLOCK_INDEX)
+IF (ASSOCIATED (SELF%F_DHCV )) SELF%DHCV  (1:, 0:, 1:)  => SELF%F_DHCV %GET_VIEW (BLOCK_INDEX)
+IF (ASSOCIATED (SELF%F_AUXSM)) SELF%AUXSM               => SELF%F_AUXSM%GET_VIEW (BLOCK_INDEX)
+IF (ASSOCIATED (SELF%F_DDHI )) SELF%DDHI                => SELF%F_DDHI %GET_VIEW (BLOCK_INDEX)
+
+END SUBROUTINE CPG_DDH_TYPE_UPDATE_VIEW
+
+SUBROUTINE CPG_DDH_TYPE_FINAL (SELF)
+
+CLASS (CPG_DDH_TYPE)              :: SELF
+
+CALL DELETE_TEMPORARY (SELF%F_AUX3D)
+CALL DELETE_TEMPORARY (SELF%F_AUX2D)
+CALL DELETE_TEMPORARY (SELF%F_DHCV)
+CALL DELETE_TEMPORARY (SELF%F_AUXSM)
+CALL DELETE_TEMPORARY (SELF%F_DDHI)
+
+SELF%AUX3D => NULL ()
+SELF%AUX2D => NULL ()
+SELF%DHCV  => NULL ()
+SELF%AUXSM => NULL ()
+SELF%DDHI  => NULL ()
+
+END SUBROUTINE CPG_DDH_TYPE_FINAL
+
+#:def pcpg_sl1_type_methods (vars)
+
+SUBROUTINE GREPVARS (YDCPG_SL1, YDMODEL, COND, YDVARS_LIST)
+USE TYPE_MODEL, ONLY : MODEL
+TYPE(CPG_SL1_TYPE), INTENT(INOUT) :: YDCPG_SL1
+TYPE(MODEL), INTENT(IN) :: YDMODEL
+PROCEDURE (FUN_GREP) :: COND
+TYPE (CPG_SL1_3D_TYPE), ALLOCATABLE :: YDVARS_LIST (:)
+
+INTEGER (KIND=JPIM) :: ISIZE, JFLD, IPNTR
+
+ISIZE = 0
+
+#:for v in gfl.variables
+#:if v.array == 1
+IF (ALLOCATED (YDCPG_SL1%${v.name}$)) THEN
+  DO JFLD = 1, SIZE (YDCPG_SL1%${v.name}$)
+    IF (COND (YDMODEL%YRML_GCONF%YGFL%Y${v.name}$(JFLD), YDMODEL)) ISIZE = ISIZE + 1
+  ENDDO
+ENDIF
+#:else
+IF (COND (YDMODEL%YRML_GCONF%YGFL%Y${v.name}$, YDMODEL)) ISIZE = ISIZE + 1
+#:endif
+#:endfor
+
+ALLOCATE (YDVARS_LIST (ISIZE))
+
+IPNTR = 1
+
+#:for v in gfl.variables
+#:if v.array == 1
+IF (ALLOCATED (YDCPG_SL1%${v.name}$)) THEN
+  DO JFLD = 1, SIZE (YDCPG_SL1%${v.name}$)
+    IF (COND (YDMODEL%YRML_GCONF%YGFL%Y${v.name}$(JFLD), YDMODEL)) THEN
+      YDVARS_LIST (IPNTR) = YDCPG_SL1%${v.name}$(JFLD)
+      IPNTR = IPNTR + 1
+    ENDIF
+  ENDDO
+ENDIF
+#:else
+IF (COND (YDMODEL%YRML_GCONF%YGFL%Y${v.name}$, YDMODEL)) THEN
+  YDVARS_LIST (IPNTR) = YDCPG_SL1%${v.name}$
+  IPNTR = IPNTR + 1
+ENDIF
+#:endif
+#:endfor
+    
+END SUBROUTINE
+
+#:set extra_levels=1
+SUBROUTINE CPG_SL1_TYPE_ZERO (SELF)
+
+CLASS (CPG_SL1_TYPE) :: SELF
+
+END SUBROUTINE
+
+SUBROUTINE CPG_SL1_TYPE_INIT (SELF, REGISTRY, NLEV, YDTPTRSLB1 &
+                                & , YDMODEL &
+                                & , YGFL &
+                                & , PERSISTENT, PB1)
+
+USE PTRSLB1, ONLY : TPTRSLB1
+USE OML_MOD, ONLY: OML_MAX_THREADS
+
+USE YOM_YGFL, ONLY: TYPE_GFLD
+USE TYPE_MODEL, ONLY : MODEL
+
+CLASS (CPG_SL1_TYPE)                               :: SELF
+TYPE (FIELD_REGISTRY),              INTENT (IN)    :: REGISTRY
+INTEGER (KIND=JPIM),                INTENT (IN)    :: NLEV
+TYPE (TPTRSLB1),                    INTENT (IN)    :: YDTPTRSLB1
+TYPE (TYPE_GFLD),                   INTENT (IN)    :: YGFL
+TYPE (MODEL),                       INTENT (IN)    :: YDMODEL
+LOGICAL, OPTIONAL,                  INTENT (IN)    :: PERSISTENT
+REAL (KIND=JPRB), OPTIONAL, TARGET, INTENT (IN)    :: PB1 (:, :, :)
+
+INTEGER (KIND=JPIM) :: JFLD
+INTEGER (KIND=JPIM) :: JGFL
+INTEGER (KIND=JPIM) :: ISIZE, IPNTR
+INTEGER (KIND=JPIM) :: ISIZE_1, IPNTR_1
+INTEGER (KIND=JPIM) :: ISIZE_2, IPNTR_2
+
+INTEGER (KIND=JPIM) :: ISLB1GFL9
+
+LOGICAL :: LLPERSISTENT
+
+LLPERSISTENT = .FALSE.
+IF (PRESENT (PERSISTENT)) LLPERSISTENT = PERSISTENT
+
+SELF%NLEV = NLEV
+
+IF (PRESENT (PB1)) THEN
+  SELF%ZDATA => PB1
+  SELF%LOWNED = .FALSE.
+  LLPERSISTENT = .TRUE.
+ELSEIF (LLPERSISTENT) THEN
+  ALLOCATE (SELF%ZDATA (REGISTRY%GEOM%YRDIM%NPROMA, YDTPTRSLB1%NFLDSLB1, REGISTRY%GEOM%YRDIM%NGPBLKS))
+  SELF%LOWNED = .TRUE.
+ELSE
+  ALLOCATE (SELF%ZDATA (REGISTRY%GEOM%YRDIM%NPROMA, YDTPTRSLB1%NFLDSLB1, OML_MAX_THREADS ()))
+  SELF%LOWNED = .TRUE.
+ENDIF
+
+SELF%F_DATA => CREATE_FIELD_WRAP (SELF%ZDATA, PERSISTENT=LLPERSISTENT)
+
+IF (YDMODEL%YRML_DYN%YRDYN%LSPLTHOIGFL .OR. (YDMODEL%YRML_DYN%YRDYN%NSPLTHOI /= 0)) THEN
+  ISLB1GFL9 = YDTPTRSLB1%MSLB1GFLF9
+ELSE
+  ISLB1GFL9 = YDTPTRSLB1%MSLB1GFL9
+ENDIF  
+
+#:set lbound_lev = 1-extra_levels
+#:set extra_levels2 = 2*extra_levels
+#:set ubound_lev = -1+extra_levels2
+#:if ubound_lev == 0
+  #:set ubound_lev = ''
+#:elif ubound_lev > 0
+  #:set ubound_lev = '+' + str (ubound_lev)
+#:endif
+
+#:for var in vars
+IF (YDTPTRSLB1%MSLB1${var}$ > 0) THEN
+  JFLD = YDTPTRSLB1%MSLB1${var}$
+  #:if vars[var][N3D]
+  SELF%${var}$%F_P => CREATE_FIELD_WRAP (SELF%ZDATA (:, JFLD:JFLD+NLEV${ubound_lev}$, :), PERSISTENT=LLPERSISTENT, LBOUNDS=[1,${lbound_lev}$,1])
+  #:else
+  SELF%${var}$%F_P => CREATE_FIELD_WRAP (SELF%ZDATA (:, JFLD, :), PERSISTENT=LLPERSISTENT)
+  #:endif
+ELSE
+  SELF%${var}$%F_P => NULL ()
+ENDIF
+#:endfor
+
+#:for v in gfl.variables
+  #:if v.array
+
+IF (ASSOCIATED (YGFL%Y${v.name}$)) THEN
+  ALLOCATE (SELF%${v.name}$ (SIZE (YGFL%Y${v.name}$)))
+
+  DO JGFL = 1, SIZE (YGFL%Y${v.name}$)
+    CALL CPG_SL1_TYPE_INIT_F3D (SELF%${v.name}$(JGFL), YGFL%Y${v.name}$(JGFL))
+  ENDDO
+ENDIF
+
+  #:elif v.dim == 3
+CALL CPG_SL1_TYPE_INIT_F3D (SELF%${v.name}$, YGFL%Y${v.name}$)
+
+  #:endif
+#:endfor
+
+
+CALL GREPVARS (SELF, YDMODEL, COND_GFL, SELF%GFL)
+
+CONTAINS
+
+LOGICAL FUNCTION COND_GFL (YDCOMP, YDMODEL)
+  USE YOM_YGFL, ONLY : TYPE_GFL_COMP
+  TYPE (TYPE_GFL_COMP), INTENT (IN) :: YDCOMP
+  TYPE (MODEL), INTENT(IN) :: YDMODEL
+  COND_GFL = .TRUE.
+END FUNCTION
+
+SUBROUTINE CPG_SL1_TYPE_INIT_F3D (YDF3D, YDGFC)
+
+USE YOM_YGFL, ONLY : TYPE_GFL_COMP
+
+TYPE (CPG_SL1_3D_TYPE), INTENT (INOUT) :: YDF3D
+TYPE(TYPE_GFL_COMP),    INTENT (IN)    :: YDGFC
+
+YDF3D%YCOMP = YDGFC
+
+IF (YDGFC%MP_SL1 > 0 .AND. YDGFC%MP1 > 0) THEN
+  JFLD = YDTPTRSLB1%MSLB1GFL9  + (YDGFC%MP_SL1-1)*(NLEV+${extra_levels2}$)
+!WRITE (0, *) "CPG_SL1_TYPE_INIT_F3D ", JFLD, TRIM(YDGFC%CNAME)//"P"
+  YDF3D%F_P => CREATE_FIELD_WRAP (SELF%ZDATA (:, JFLD:JFLD+NLEV${ubound_lev}$, :), PERSISTENT=LLPERSISTENT, LBOUNDS=[1,${lbound_lev}$,1])
+ELSE
+  YDF3D%F_P => NULL ()
+ENDIF
+
+IF (YDMODEL%YRML_DYN%YRDYN%LSPLTHOIGFL .OR. (YDMODEL%YRML_DYN%YRDYN%NSPLTHOI /= 0)) THEN
+  IF (YDGFC%MP_SL1 > 0 .AND. YDGFC%MP1 > 0) THEN
+    JFLD = YDTPTRSLB1%MSLB1GFLF9 + (YDGFC%MP_SL1-1)*(NLEV+${extra_levels2}$)
+    YDF3D%F_P_F => CREATE_FIELD_WRAP (SELF%ZDATA (:, JFLD:JFLD+NLEV${ubound_lev}$, :), PERSISTENT=LLPERSISTENT, LBOUNDS=[1,${lbound_lev}$,1])
+  ELSE
+    YDF3D%F_P_F => NULL ()
+  ENDIF
+ENDIF
+
+IF (YDGFC%MP_SPL > 0 .AND. YDGFC%MP1 > 0) THEN
+  JFLD = YDTPTRSLB1%MSLB1GFLSPF9  + (YDGFC%MP_SPL-1)*(NLEV+${extra_levels2}$)
+  YDF3D%F_P_SPF => CREATE_FIELD_WRAP (SELF%ZDATA (:, JFLD:JFLD+NLEV${ubound_lev}$, :), PERSISTENT=LLPERSISTENT, LBOUNDS=[1,${lbound_lev}$,1])
+ELSE
+  YDF3D%F_P_SPF => NULL ()
+ENDIF
+
+IF (YDGFC%MP_SPL > 0 .AND. YDGFC%MP1 > 0) THEN
+  JFLD = YDTPTRSLB1%MSLB1GFLSP9  + (YDGFC%MP_SPL-1)*(NLEV+${extra_levels2}$)
+  YDF3D%F_P_SP => CREATE_FIELD_WRAP (SELF%ZDATA (:, JFLD:JFLD+NLEV${ubound_lev}$, :), PERSISTENT=LLPERSISTENT, LBOUNDS=[1,${lbound_lev}$,1])
+ELSE
+  YDF3D%F_P_SP => NULL ()
+ENDIF
+
+IF (YDGFC%LPHY) THEN
+  JFLD = YDTPTRSLB1%MSLB1GFLP9  + (YDGFC%MPSLP-1)*(NLEV+${extra_levels2}$)
+  YDF3D%F_P_P => CREATE_FIELD_WRAP (SELF%ZDATA (:, JFLD:JFLD+NLEV${ubound_lev}$, :), PERSISTENT=LLPERSISTENT, LBOUNDS=[1,${lbound_lev}$,1])
+ELSE
+  YDF3D%F_P_P => NULL ()
+ENDIF
+
+END SUBROUTINE CPG_SL1_TYPE_INIT_F3D
+
+END SUBROUTINE CPG_SL1_TYPE_INIT
+
+SUBROUTINE CPG_SL1_TYPE_UPDATE_VIEW (SELF, BLOCK_INDEX)
+
+CLASS (CPG_SL1_TYPE)        :: SELF
+INTEGER(KIND=JPIM), INTENT (IN)   :: BLOCK_INDEX
+
+INTEGER (KIND=JPIM) :: JGFL
+
+IF (ASSOCIATED (SELF%F_DATA)) THEN
+  SELF%ZVIEW => SELF%F_DATA%GET_VIEW (BLOCK_INDEX)
+#:for var in vars
+  #:if vars[var][N3D]
+  IF (ASSOCIATED (SELF%${var}$%F_P)) THEN
+    IF ((.NOT. SELF%${var}$%F_P%THREAD_BUFFER) .OR. (.NOT. ASSOCIATED (SELF%${var}$%P))) THEN
+      SELF%${var}$%P => SELF%${var}$%F_P%GET_VIEW (BLOCK_INDEX)
+    ENDIF
+  ELSEIF (.NOT. ASSOCIATED (SELF%${var}$%P)) THEN
+    SELF%${var}$%P => ZDUM2
+  ENDIF
+  #:else
+  IF (ASSOCIATED (SELF%${var}$%F_P)) THEN
+    IF ((.NOT. SELF%${var}$%F_P%THREAD_BUFFER) .OR. (.NOT. ASSOCIATED (SELF%${var}$%P))) THEN
+      SELF%${var}$%P => SELF%${var}$%F_P%GET_VIEW (BLOCK_INDEX)
+    ENDIF
+  ELSEIF (.NOT. ASSOCIATED (SELF%${var}$%P)) THEN
+    SELF%${var}$%P => ZDUM1
+  ENDIF
+  #:endif
+#:endfor
+
+#:for v in gfl.variables
+  #:if v.array
+  IF (ALLOCATED (SELF%${v.name}$)) THEN
+    DO JGFL = 1, SIZE (SELF%${v.name}$)
+      CALL CPG_SL1_TYPE_UPDATE_VIEW_F3D (SELF%${v.name}$(JGFL))
+    ENDDO
+  ENDIF
+
+  #:elif v.dim == 3
+    CALL CPG_SL1_TYPE_UPDATE_VIEW_F3D (SELF%${v.name}$)
+
+  #:endif
+#:endfor
+
+ELSE
+  SELF%ZVIEW => ZDUM2
+
+#:for var in vars
+  #:if vars[var][N3D]
+  IF (.NOT. ASSOCIATED (SELF%${var}$%F_P)) SELF%${var}$%P => ZDUM2
+  #:else
+  IF (.NOT. ASSOCIATED (SELF%${var}$%F_P)) SELF%${var}$%P => ZDUM1
+  #:endif
+#:endfor
+
+#:for v in gfl.variables
+  #:if v.array
+  IF (ALLOCATED (SELF%${v.name}$)) THEN
+    DO JGFL = 1, SIZE (SELF%${v.name}$)
+      CALL NULLIFY_F3D (SELF%${v.name}$(JGFL))
+    ENDDO
+  ENDIF
+  #:elif v.dim == 3
+  CALL NULLIFY_F3D (SELF%${v.name}$)
+  #:endif
+#:endfor
+
+ENDIF
+
+DO JGFL = 1, SIZE (SELF%GFL)
+  CALL CPG_SL1_TYPE_UPDATE_VIEW_F3D (SELF%GFL(JGFL))
+ENDDO
+
+CONTAINS
+
+SUBROUTINE NULLIFY_F3D (YDF3D)
+
+TYPE (CPG_SL1_3D_TYPE), INTENT (INOUT) :: YDF3D
+
+IF (.NOT. ASSOCIATED (YDF3D%F_P    )) YDF3D%P     => ZDUM2
+IF (.NOT. ASSOCIATED (YDF3D%F_P_F  )) YDF3D%P_F   => ZDUM2
+IF (.NOT. ASSOCIATED (YDF3D%F_P_SPF)) YDF3D%P_SPF => ZDUM2
+IF (.NOT. ASSOCIATED (YDF3D%F_P_SP )) YDF3D%P_SP  => ZDUM2
+IF (.NOT. ASSOCIATED (YDF3D%F_P_P  )) YDF3D%P_P   => ZDUM2
+
+END SUBROUTINE NULLIFY_F3D
+
+SUBROUTINE CPG_SL1_TYPE_UPDATE_VIEW_F3D (YDF3D)
+
+TYPE (CPG_SL1_3D_TYPE), INTENT (INOUT) :: YDF3D
+
+IF (ASSOCIATED (YDF3D%F_P)) THEN
+  IF ((.NOT. YDF3D%F_P%THREAD_BUFFER) .OR. (.NOT. ASSOCIATED (YDF3D%P))) THEN
+    YDF3D%P => YDF3D%F_P%GET_VIEW (BLOCK_INDEX)
+  ENDIF
+ELSEIF (.NOT. ASSOCIATED (YDF3D%P)) THEN
+  YDF3D%P => ZDUM2
+ENDIF
+
+IF (ASSOCIATED (YDF3D%F_P_F)) THEN
+  IF ((.NOT. YDF3D%F_P_F%THREAD_BUFFER) .OR. (.NOT. ASSOCIATED (YDF3D%P_F))) THEN
+    YDF3D%P_F => YDF3D%F_P_F%GET_VIEW (BLOCK_INDEX)
+  ENDIF
+ELSEIF (.NOT. ASSOCIATED (YDF3D%P_F)) THEN
+  YDF3D%P_F => ZDUM2
+ENDIF
+
+IF (ASSOCIATED (YDF3D%F_P_SPF)) THEN
+  IF ((.NOT. YDF3D%F_P_SPF%THREAD_BUFFER) .OR. (.NOT. ASSOCIATED (YDF3D%P_SPF))) THEN
+    YDF3D%P_SPF => YDF3D%F_P_SPF%GET_VIEW (BLOCK_INDEX)
+  ENDIF
+ELSEIF (.NOT. ASSOCIATED (YDF3D%P_SPF)) THEN
+  YDF3D%P_SPF => ZDUM2
+ENDIF
+
+IF (ASSOCIATED (YDF3D%F_P_SP)) THEN
+  IF ((.NOT. YDF3D%F_P_SP%THREAD_BUFFER) .OR. (.NOT. ASSOCIATED (YDF3D%P_SP))) THEN
+    YDF3D%P_SP => YDF3D%F_P_SP%GET_VIEW (BLOCK_INDEX)
+  ENDIF
+ELSEIF (.NOT. ASSOCIATED (YDF3D%P_SP)) THEN
+  YDF3D%P_SP => ZDUM2
+ENDIF
+
+IF (ASSOCIATED (YDF3D%F_P_P)) THEN
+  IF ((.NOT. YDF3D%F_P_P%THREAD_BUFFER) .OR. (.NOT. ASSOCIATED (YDF3D%P_P))) THEN
+    YDF3D%P_P => YDF3D%F_P_P%GET_VIEW (BLOCK_INDEX)
+  ENDIF
+ELSEIF (.NOT. ASSOCIATED (YDF3D%P_P)) THEN
+  YDF3D%P_P => ZDUM2
+ENDIF
+
+END SUBROUTINE CPG_SL1_TYPE_UPDATE_VIEW_F3D
+
+END SUBROUTINE CPG_SL1_TYPE_UPDATE_VIEW
+
+SUBROUTINE CPG_SL1_TYPE_FINAL (SELF)
+CLASS (CPG_SL1_TYPE)          :: SELF
+
+INTEGER (KIND=JPIM) :: JGFL
+
+IF (ASSOCIATED (SELF%F_DATA)) CALL DELETE_TEMPORARY (SELF%F_DATA)
+SELF%F_DATA => NULL ()
+
+IF (SELF%LOWNED) THEN
+  DEALLOCATE (SELF%ZDATA)
+ENDIF
+
+SELF%ZDATA => NULL ()
+SELF%ZVIEW => NULL ()
+
+#:for var in reversed (list (vars.keys ()))
+IF (ASSOCIATED (SELF%${var}$%F_P)) CALL DELETE_TEMPORARY (SELF%${var}$%F_P)
+SELF%${var}$%F_P => NULL ()
+SELF%${var}$%P => NULL ()
+#:endfor
+
+#:for v in reversed (gfl.variables)
+  #:if v.array
+IF (ALLOCATED (SELF%${v.name}$)) THEN
+  DO JGFL = 1, SIZE (SELF%${v.name}$)
+    CALL CPG_SL1_TYPE_FINAL_F3D (SELF%${v.name}$(JGFL))
+  ENDDO
+ENDIF
+  #:elif v.dim == 3
+CALL CPG_SL1_TYPE_FINAL_F3D (SELF%${v.name}$)
+
+  #:endif
+#:endfor
+
+CONTAINS
+
+SUBROUTINE CPG_SL1_TYPE_FINAL_F3D (YDF3D)
+
+TYPE (CPG_SL1_3D_TYPE), INTENT (INOUT) :: YDF3D
+
+IF (ASSOCIATED (YDF3D%F_P)) CALL DELETE_TEMPORARY (YDF3D%F_P)
+YDF3D%F_P => NULL ()
+YDF3D%P => NULL ()
+
+IF (ASSOCIATED (YDF3D%F_P_F)) CALL DELETE_TEMPORARY (YDF3D%F_P_F)
+YDF3D%F_P_F => NULL ()
+YDF3D%P_F => NULL ()
+
+IF (ASSOCIATED (YDF3D%F_P_SPF)) CALL DELETE_TEMPORARY (YDF3D%F_P_SPF)
+YDF3D%F_P_SPF => NULL ()
+YDF3D%P_SPF => NULL ()
+
+IF (ASSOCIATED (YDF3D%F_P_SP)) CALL DELETE_TEMPORARY (YDF3D%F_P_SP)
+YDF3D%F_P_SP => NULL ()
+YDF3D%P_SP => NULL ()
+
+IF (ASSOCIATED (YDF3D%F_P_P)) CALL DELETE_TEMPORARY (YDF3D%F_P_P)
+YDF3D%F_P_P => NULL ()
+YDF3D%P_P => NULL ()
+
+END SUBROUTINE CPG_SL1_TYPE_FINAL_F3D
+
+END SUBROUTINE CPG_SL1_TYPE_FINAL
+#:enddef
+
+#:def pcpg_sl2_type_methods (vars)
+SUBROUTINE CPG_SL2_TYPE_INIT (SELF, REGISTRY, NLEV, YDTPTRSLB2 &
+                                & , PERSISTENT, PB2)
+
+USE PTRSLB2, ONLY : TPTRSLB2
+USE OML_MOD, ONLY: OML_MAX_THREADS
+
+CLASS (CPG_SL2_TYPE)                               :: SELF
+TYPE (FIELD_REGISTRY),              INTENT (IN)    :: REGISTRY
+INTEGER (KIND=JPIM),                INTENT (IN)    :: NLEV
+TYPE (TPTRSLB2),                    INTENT (IN)    :: YDTPTRSLB2
+LOGICAL, OPTIONAL,                  INTENT (IN)    :: PERSISTENT
+REAL (KIND=JPRB), OPTIONAL, TARGET, INTENT (IN)    :: PB2 (:, :, :)
+
+INTEGER (KIND=JPIM) :: JFLD
+
+LOGICAL :: LLPERSISTENT
+
+LLPERSISTENT = .FALSE.
+IF (PRESENT (PERSISTENT)) LLPERSISTENT = PERSISTENT
+
+SELF%NLEV = NLEV
+
+IF (PRESENT (PB2)) THEN
+  SELF%ZDATA => PB2
+  SELF%LOWNED = .FALSE.
+  LLPERSISTENT = .TRUE.
+ELSEIF (LLPERSISTENT) THEN
+  ALLOCATE (SELF%ZDATA (REGISTRY%GEOM%YRDIM%NPROMA, YDTPTRSLB2%NFLDSLB2, REGISTRY%GEOM%YRDIM%NGPBLKS))
+  SELF%LOWNED = .TRUE.
+ELSE
+  ALLOCATE (SELF%ZDATA (REGISTRY%GEOM%YRDIM%NPROMA, YDTPTRSLB2%NFLDSLB2, OML_MAX_THREADS ()))
+  SELF%LOWNED = .TRUE.
+ENDIF
+
+SELF%F_DATA => CREATE_FIELD_WRAP (SELF%ZDATA, PERSISTENT=LLPERSISTENT)
+
+
+#:for var in vars
+IF (YDTPTRSLB2%MSLB2${var}$ > 0) THEN
+  JFLD = YDTPTRSLB2%MSLB2${var}$
+  #:if vars[var][N3D]
+  SELF%F_${var}$ => CREATE_FIELD_WRAP (SELF%ZDATA (:, JFLD:JFLD+NLEV-1, :), PERSISTENT=LLPERSISTENT)
+  #:else
+  SELF%F_${var}$ => CREATE_FIELD_WRAP (SELF%ZDATA (:, JFLD, :), PERSISTENT=LLPERSISTENT)
+  #:endif
+ELSE
+  SELF%F_${var}$ => NULL ()
+ENDIF
+#:endfor
+
+END SUBROUTINE CPG_SL2_TYPE_INIT
+
+SUBROUTINE CPG_SL2_TYPE_UPDATE_VIEW (SELF, BLOCK_INDEX)
+
+CLASS (CPG_SL2_TYPE)        :: SELF
+INTEGER(KIND=JPIM), INTENT (IN)   :: BLOCK_INDEX
+
+IF (ASSOCIATED (SELF%F_DATA)) THEN
+  SELF%ZVIEW => SELF%F_DATA%GET_VIEW (BLOCK_INDEX)
+#:for var in vars
+  #:if vars[var][N3D]
+  IF (ASSOCIATED (SELF%F_${var}$)) THEN
+    IF ((.NOT. SELF%F_${var}$%THREAD_BUFFER) .OR. (.NOT. ASSOCIATED (SELF%${var}$))) THEN
+      SELF%${var}$ => SELF%F_${var}$%GET_VIEW (BLOCK_INDEX)
+    ENDIF
+  ELSEIF (.NOT. ASSOCIATED (SELF%${var}$)) THEN
+    SELF%${var}$ => ZDUM2
+  ENDIF
+  #:else
+  IF (ASSOCIATED (SELF%F_${var}$)) THEN
+    IF ((.NOT. SELF%F_${var}$%THREAD_BUFFER) .OR. (.NOT. ASSOCIATED (SELF%${var}$))) THEN
+      SELF%${var}$ => SELF%F_${var}$%GET_VIEW (BLOCK_INDEX)
+    ENDIF
+  ELSEIF (.NOT. ASSOCIATED (SELF%${var}$)) THEN
+    SELF%${var}$ => ZDUM1
+  ENDIF
+  #:endif
+#:endfor
+
+ELSE
+  SELF%ZVIEW => ZDUM2
+
+#:for var in vars
+  #:if vars[var][N3D]
+  IF (.NOT. ASSOCIATED (SELF%${var}$)) SELF%${var}$ => ZDUM2
+  #:else
+  IF (.NOT. ASSOCIATED (SELF%${var}$)) SELF%${var}$ => ZDUM1
+  #:endif
+#:endfor
+
+ENDIF
+
+END SUBROUTINE CPG_SL2_TYPE_UPDATE_VIEW
+
+SUBROUTINE CPG_SL2_TYPE_FINAL (SELF)
+CLASS (CPG_SL2_TYPE)          :: SELF
+
+IF (ASSOCIATED (SELF%F_DATA)) CALL DELETE_TEMPORARY (SELF%F_DATA)
+SELF%F_DATA => NULL ()
+
+IF (SELF%LOWNED) THEN
+  DEALLOCATE (SELF%ZDATA)
+ENDIF
+
+SELF%ZDATA => NULL ()
+SELF%ZVIEW => NULL ()
+
+#:for v in reversed (gfl.variables)
+IF (ASSOCIATED (SELF%F_${var}$)) CALL DELETE_TEMPORARY (SELF%F_${var}$)
+SELF%F_${var}$ => NULL ()
+SELF%${var}$ => NULL ()
+#:endfor
+
+END SUBROUTINE CPG_SL2_TYPE_FINAL
+#:enddef
+
+$:pcpg_sl1_type_methods (pb1_vars)
+
+$:pcpg_sl2_type_methods (pb2_vars)
+
+END MODULE CPG_TYPE_MOD
+
diff --git a/src/arome/ext/field_registry_mod.fypp b/src/arome/ext/field_registry_mod.fypp
new file mode 100644
index 0000000000000000000000000000000000000000..5deab7ffcddc260601f20635e83a062f0f98bf30
--- /dev/null
+++ b/src/arome/ext/field_registry_mod.fypp
@@ -0,0 +1,997 @@
+#:set surface_config_file = os.path.dirname(_THIS_FILE_) + '/surface_fields_config.yaml'
+#:set surface_config = field_config.VariableConfiguration(surface_config_file)
+#:set surface_prognostic = [field_config.VariableGroup(**group) for group in surface_config.schema['prognostic']]
+#:set surface_diagnostic = [field_config.VariableGroup(**group) for group in surface_config.schema['diagnostic']]
+#:set surface_variable_groups = surface_prognostic + surface_diagnostic
+
+#:set config_file = os.path.dirname(_THIS_FILE_) + '/field_config.yaml'
+
+
+#:set config = field_config.VariableConfiguration(config_file)
+#:set gfl = config.groups['GFL']
+MODULE FIELD_REGISTRY_MOD
+
+USE PARKIND1, ONLY : JPIM, JPRB, JPRD
+USE FIELD_MODULE, ONLY: FIELD_2D, FIELD_INT2D, FIELD_LOG2D, FIELD_3D, FIELD_INT3D, FIELD_4D, FIELD_5D, &
+ &                      FIELD_2D_EMPTY, FIELD_3D_EMPTY, FIELD_4D_EMPTY, ALLOCATE_FIELD
+USE GEOMETRY_MOD, ONLY: GEOMETRY
+USE VARIABLE_MODULE, ONLY: VARIABLE_2D, VARIABLE_3D, VARIABLE_4D, VARIABLE_3D_PTR
+#ifdef PARKIND1_SINGLE
+USE FIELD_MODULE, ONLY: FIELD_D2D, FIELD_D3D, FIELD_D4D, FIELD_D5D, &
+ &                      FIELD_D2D_EMPTY, FIELD_D3D_EMPTY, FIELD_D4D_EMPTY
+#endif
+USE FIELD_MANAGEMENT_MOD
+USE GEOMETRY_MOD, ONLY: GEOMETRY
+USE VARIABLE_MODULE, ONLY: VARIABLE_2D, VARIABLE_3D, VARIABLE_4D
+#ifdef PARKIND1_SINGLE
+USE VARIABLE_MODULE, ONLY: VARIABLE_D2D, VARIABLE_D3D, VARIABLE_D4D
+#endif
+USE FIELD_VARIABLES_MOD, ONLY: FIELD_VARIABLES
+USE SURFACE_VARIABLES_MOD, ONLY: SURFACE_VARIABLES
+USE YOMGMV, ONLY: TGMV
+USE YOM_YGFL, ONLY: TYPE_GFL_COMP, TYPE_GFLD
+USE YOMGFL, ONLY: TGFL
+USE SURFACE_FIELDS_MIX, ONLY: TSURF, TYPE_SURF_MTL_2D, TYPE_SURF_MTL_3D, TYPE_SURF_GEN
+USE EC_PHYS_FIELDS_MOD, ONLY: TEC_PHYS_FIELDS
+USE MODEL_PHYSICS_RADIATION_MOD, ONLY : MODEL_PHYSICS_RADIATION_TYPE
+
+IMPLICIT NONE
+
+TYPE :: FIELD_REGISTRY
+  TYPE(GEOMETRY), POINTER :: GEOM => NULL()
+  INTEGER(KIND=JPIM) :: NPROMA, NBLOCKS
+
+CONTAINS
+  PROCEDURE :: INIT => FIELD_REGISTRY_INIT
+  PROCEDURE :: FINAL => FIELD_REGISTRY_FINAL
+
+  PROCEDURE :: FIELD_REGISTRY_CREATE_VARIABLE_2D_GMV, FIELD_REGISTRY_CREATE_VARIABLE_3D_GMV
+  PROCEDURE :: FIELD_REGISTRY_CREATE_VARIABLE_GFL, FIELD_REGISTRY_CREATE_VARIABLE_ARRAY_GFL
+
+  PROCEDURE :: FIELD_REGISTRY_CREATE_VARIABLE_WRAP_2D, FIELD_REGISTRY_CREATE_VARIABLE_WRAP_PACKED_2D
+  PROCEDURE :: FIELD_REGISTRY_CREATE_VARIABLE_WRAP_3D, FIELD_REGISTRY_CREATE_VARIABLE_WRAP_PACKED_3D
+  PROCEDURE :: FIELD_REGISTRY_CREATE_VARIABLE_WRAP_4D, FIELD_REGISTRY_CREATE_VARIABLE_WRAP_PACKED_4D
+
+#ifdef PARKIND1_SINGLE
+  PROCEDURE :: FIELD_REGISTRY_CREATE_VARIABLE_WRAP_D2D
+#endif
+
+  GENERIC   :: CREATE_VARIABLE => &
+   & FIELD_REGISTRY_CREATE_VARIABLE_2D_GMV, FIELD_REGISTRY_CREATE_VARIABLE_3D_GMV, &
+   & FIELD_REGISTRY_CREATE_VARIABLE_GFL, FIELD_REGISTRY_CREATE_VARIABLE_ARRAY_GFL, &
+   & FIELD_REGISTRY_CREATE_VARIABLE_WRAP_2D, FIELD_REGISTRY_CREATE_VARIABLE_WRAP_PACKED_2D, &
+   & FIELD_REGISTRY_CREATE_VARIABLE_WRAP_3D, FIELD_REGISTRY_CREATE_VARIABLE_WRAP_PACKED_3D, &
+   & FIELD_REGISTRY_CREATE_VARIABLE_WRAP_4D, FIELD_REGISTRY_CREATE_VARIABLE_WRAP_PACKED_4D
+
+#ifdef PARKIND1_SINGLE
+  GENERIC   :: CREATE_VARIABLE => &
+   & FIELD_REGISTRY_CREATE_VARIABLE_WRAP_D2D
+#endif
+
+  PROCEDURE :: CREATE_SURFACE_VARIABLE_2D => FIELD_REGISTRY_CREATE_SURFACE_VARIABLE_2D
+  PROCEDURE :: CREATE_SURFACE_VARIABLE_ARRAY_2D => FIELD_REGISTRY_CREATE_SURFACE_VARIABLE_ARRAY_2D
+  PROCEDURE :: CREATE_SURFACE_VARIABLE_ARRAY2_2D => FIELD_REGISTRY_CREATE_SURFACE_VARIABLE_ARRAY2_2D
+  PROCEDURE :: CREATE_SURFACE_VARIABLE_3D => FIELD_REGISTRY_CREATE_SURFACE_VARIABLE_3D
+  PROCEDURE :: CREATE_SURFACE_VARIABLE_ARRAY_3D => FIELD_REGISTRY_CREATE_SURFACE_VARIABLE_ARRAY_3D
+  PROCEDURE :: CREATE_SURFACE_VARIABLE_ARRAY2_3D => FIELD_REGISTRY_CREATE_SURFACE_VARIABLE_ARRAY2_3D
+  PROCEDURE :: REGISTER_GEOMETRY => FIELD_REGISTRY_REGISTER_GEOMETRY
+  PROCEDURE :: REGISTER_GMV_FIELDS => FIELD_REGISTRY_REGISTER_GMV_FIELDS
+  PROCEDURE :: REGISTER_GFL_FIELDS => FIELD_REGISTRY_REGISTER_GFL_FIELDS
+  PROCEDURE :: REGISTER_SURFACE_FIELDS => FIELD_REGISTRY_REGISTER_SURFACE_FIELDS
+  PROCEDURE :: REGISTER_EC_PHYS_FIELDS => FIELD_REGISTRY_REGISTER_EC_PHYS_FIELDS
+  PROCEDURE :: REGISTER_PHYSICS_RADIATION_FIELDS => FIELD_REGISTRY_REGISTER_PHYSICS_RADIATION_FIELDS
+
+END TYPE FIELD_REGISTRY
+
+ABSTRACT INTERFACE 
+  LOGICAL FUNCTION FUN_GREP (YDVAR, YDCOMP, YDMODEL)
+    USE VARIABLE_MODULE, ONLY : VARIABLE_3D
+    USE YOM_YGFL, ONLY : TYPE_GFL_COMP
+    USE TYPE_MODEL, ONLY : MODEL
+    TYPE (VARIABLE_3D), INTENT (IN) :: YDVAR
+    TYPE (TYPE_GFL_COMP), INTENT (IN) :: YDCOMP
+    TYPE (MODEL),  INTENT (IN) :: YDMODEL
+  END FUNCTION
+END INTERFACE
+
+PRIVATE :: FUN_GREP, GREPVARS_PTR
+
+CONTAINS
+
+  FUNCTION CREATE_FIELD_EMPTY_2D(SHAPE) RESULT(FIELD_PTR)
+    ! Create an empty 2D field object with NULL data pointers
+    TYPE(FIELD_2D), POINTER :: FIELD_PTR
+    INTEGER(KIND=JPIM), OPTIONAL, INTENT(IN) :: SHAPE(1)
+
+    ALLOCATE(FIELD_PTR)
+    FIELD_PTR = FIELD_2D_EMPTY(SHAPE=SHAPE)
+  END FUNCTION CREATE_FIELD_EMPTY_2D
+
+  FUNCTION CREATE_FIELD_EMPTY_3D(SHAPE) RESULT(FIELD_PTR)
+    ! Create an empty 3D field object with NULL data pointers
+    TYPE(FIELD_3D), POINTER :: FIELD_PTR
+    INTEGER(KIND=JPIM), OPTIONAL, INTENT(IN) :: SHAPE(2)
+
+    ALLOCATE(FIELD_PTR)
+    FIELD_PTR = FIELD_3D_EMPTY(SHAPE=SHAPE)
+  END FUNCTION CREATE_FIELD_EMPTY_3D
+
+  FUNCTION CREATE_FIELD_EMPTY_4D(SHAPE) RESULT(FIELD_PTR)
+    ! Create an empty 4D field object with NULL data pointers
+    TYPE(FIELD_4D), POINTER :: FIELD_PTR
+    INTEGER(KIND=JPIM), OPTIONAL, INTENT(IN) :: SHAPE(3)
+
+    ALLOCATE(FIELD_PTR)
+    FIELD_PTR = FIELD_4D_EMPTY(SHAPE=SHAPE)
+  END FUNCTION CREATE_FIELD_EMPTY_4D
+
+
+  SUBROUTINE FIELD_REGISTRY_INIT(SELF, GEOM)
+    ! Constructor for global field registry
+    CLASS(FIELD_REGISTRY) :: SELF
+    TYPE(GEOMETRY), TARGET, INTENT(IN) :: GEOM
+
+    SELF%GEOM => GEOM
+    SELF%NBLOCKS = GEOM%YRDIM%NGPBLKS
+    SELF%NPROMA = GEOM%YRDIM%NPROMA
+  END SUBROUTINE FIELD_REGISTRY_INIT
+
+  SUBROUTINE FIELD_REGISTRY_FINAL(SELF)
+    ! Finalize and tear down the global field registry
+    CLASS(FIELD_REGISTRY) :: SELF
+    INTEGER(KIND=JPIM) :: I
+
+  END SUBROUTINE FIELD_REGISTRY_FINAL
+
+
+  FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_WRAP_2D(SELF, NAME, DATA) RESULT(VARIABLE)
+    ! Create the VARIABLE and FIELD metadata type and associate it with existing data.
+    CLASS(FIELD_REGISTRY) :: SELF
+    TYPE(VARIABLE_2D) :: VARIABLE
+    CHARACTER(LEN=*), INTENT(IN) :: NAME
+    REAL(KIND=JPRB), TARGET, INTENT(IN) :: DATA(:,:)
+
+    VARIABLE = VARIABLE_2D(NAME, LACTIVE=.TRUE.)
+    VARIABLE%FT0 => CREATE_FIELD_WRAP(DATA=DATA)
+  END FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_WRAP_2D
+
+#ifdef PARKIND1_SINGLE
+  FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_WRAP_D2D(SELF, NAME, DATA) RESULT(VARIABLE)
+    ! Create the VARIABLE and FIELD metadata type and associate it with existing data.
+    CLASS(FIELD_REGISTRY) :: SELF
+    TYPE(VARIABLE_D2D) :: VARIABLE
+    CHARACTER(LEN=*), INTENT(IN) :: NAME
+    REAL(KIND=JPRD), TARGET, INTENT(IN) :: DATA(:,:)
+
+    VARIABLE = VARIABLE_D2D(NAME, LACTIVE=.TRUE.)
+    VARIABLE%FT0 => CREATE_FIELD_WRAP(DATA=DATA)
+  END FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_WRAP_D2D
+#endif
+
+  FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_WRAP_3D(SELF, NAME, DATA) RESULT(VARIABLE)
+    ! Create the VARIABLE and FIELD metadata type and associate it with existing data.
+    CLASS(FIELD_REGISTRY) :: SELF
+    TYPE(VARIABLE_3D) :: VARIABLE
+    CHARACTER(LEN=*), INTENT(IN) :: NAME
+    REAL(KIND=JPRB), TARGET, INTENT(IN) :: DATA(:,:,:)
+
+    VARIABLE = VARIABLE_3D(NAME, LACTIVE=.TRUE.)
+    VARIABLE%FT0 => CREATE_FIELD_WRAP(DATA=DATA)
+  END FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_WRAP_3D
+
+  FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_WRAP_4D(SELF, NAME, DATA) RESULT(VARIABLE)
+    ! Create the VARIABLE and FIELD metadata type and associate it with existing data.
+    CLASS(FIELD_REGISTRY) :: SELF
+    TYPE(VARIABLE_4D) :: VARIABLE
+    CHARACTER(LEN=*), INTENT(IN) :: NAME
+    REAL(KIND=JPRB), TARGET, INTENT(IN) :: DATA(:,:,:,:)
+
+    VARIABLE = VARIABLE_4D(NAME, LACTIVE=.TRUE.)
+    VARIABLE%FT0 => CREATE_FIELD_WRAP(DATA=DATA)
+  END FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_WRAP_4D
+
+  FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_WRAP_PACKED_2D(SELF, NAME, DATA, IDX) RESULT(VARIABLE)
+    ! Create the VARIABLE and FIELD metadata type and associate it with existing data.
+    CLASS(FIELD_REGISTRY) :: SELF
+    TYPE(VARIABLE_2D) :: VARIABLE
+    CHARACTER(LEN=*), INTENT(IN) :: NAME
+    REAL(KIND=JPRB), TARGET, INTENT(IN) :: DATA(:,:,:)
+    INTEGER(KIND=JPIM), INTENT(IN) :: IDX
+
+    VARIABLE = VARIABLE_2D(NAME, LACTIVE=.TRUE.)
+    VARIABLE%FT0 => CREATE_FIELD_WRAP(DATA=DATA, IDX=IDX)
+  END FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_WRAP_PACKED_2D
+
+  FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_WRAP_PACKED_3D(SELF, NAME, DATA, IDX) RESULT(VARIABLE)
+    ! Create the VARIABLE and FIELD metadata type and associate it with existing data.
+    CLASS(FIELD_REGISTRY) :: SELF
+    TYPE(VARIABLE_3D) :: VARIABLE
+    CHARACTER(LEN=*), INTENT(IN) :: NAME
+    REAL(KIND=JPRB), TARGET, INTENT(IN) :: DATA(:,:,:,:)
+    INTEGER(KIND=JPIM), INTENT(IN) :: IDX
+
+    VARIABLE = VARIABLE_3D(NAME, LACTIVE=.TRUE.)
+    VARIABLE%FT0 => CREATE_FIELD_WRAP(DATA=DATA, IDX=IDX)
+  END FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_WRAP_PACKED_3D
+
+  FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_WRAP_PACKED_4D(SELF, NAME, DATA, IDX) RESULT(VARIABLE)
+    ! Create the VARIABLE and FIELD metadata type and associate it with existing data.
+    CLASS(FIELD_REGISTRY) :: SELF
+    TYPE(VARIABLE_4D) :: VARIABLE
+    CHARACTER(LEN=*), INTENT(IN) :: NAME
+    REAL(KIND=JPRB), TARGET, INTENT(IN) :: DATA(:,:,:,:,:)
+    INTEGER(KIND=JPIM), INTENT(IN) :: IDX
+
+    VARIABLE = VARIABLE_4D(NAME, LACTIVE=.TRUE.)
+    VARIABLE%FT0 => CREATE_FIELD_WRAP(DATA=DATA, IDX=IDX)
+  END FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_WRAP_PACKED_4D
+
+  FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_2D_GMV(SELF, NAME, GMV, GMVT1, PT0, PT1, PT9, PPH9, PDL, PDM, &
+   &                                             PDL9, PDM9, PERSISTENT) RESULT(VARIABLE)
+    ! Create the VARIABLE metadata type and associate it with fields and data.
+    CLASS(FIELD_REGISTRY) :: SELF
+    TYPE(VARIABLE_2D) :: VARIABLE
+    CHARACTER(LEN=*), INTENT(IN) :: NAME
+    REAL(KIND=JPRB), TARGET, INTENT(IN) :: GMV(:,:,:)
+    REAL(KIND=JPRB), TARGET, INTENT(IN) :: GMVT1(:,:,:)
+    INTEGER(KIND=JPIM), OPTIONAL, INTENT(IN) :: PT0, PT1, PT9, PPH9, PDL, PDM, PDL9, PDM9
+    LOGICAL, OPTIONAL, INTENT(IN) :: PERSISTENT
+    LOGICAL :: LT0, LT1, LT9, LPH9, LDL, LDM, LDL9, LDM9
+
+    LT0 = PRESENT_AND_ACTIVE(PT0)
+    LT1 = PRESENT_AND_ACTIVE(PT1)
+    LT9 = PRESENT_AND_ACTIVE(PT9)
+    LPH9 = PRESENT_AND_ACTIVE(PPH9)
+    LDL = PRESENT_AND_ACTIVE(PDL)
+    LDM = PRESENT_AND_ACTIVE(PDM)
+    LDL9 = PRESENT_AND_ACTIVE(PDL9)
+    LDM9 = PRESENT_AND_ACTIVE(PDM9)
+    VARIABLE = VARIABLE_2D(NAME, LACTIVE=.TRUE., LADV=.TRUE., LT1=LT1, LT9=LT9, LPH9=LPH9, LDL=LDL, LDM=LDM, &
+                         & LDL9=LDL9, LDM9=LDM9)
+
+    ! Associate FIELD objects with VARIABLE according to provided pointers
+    IF (LT0) THEN
+      VARIABLE%FT0 => CREATE_FIELD_WRAP(DATA=GMV(:,:,:), IDX=PT0)
+    ELSE
+      VARIABLE%FT0 => NULL ()
+    ENDIF
+    IF (LT1) THEN
+      VARIABLE%FT1 => CREATE_FIELD_WRAP(DATA=GMVT1(:,:,:), IDX=PT1)
+    ELSE
+      VARIABLE%FT1 => NULL()
+    END IF
+    IF (LT9) THEN
+      VARIABLE%FT9 => CREATE_FIELD_WRAP(DATA=GMV(:,:,:), IDX=PT9)
+    ELSE
+      VARIABLE%FT9 => NULL()
+    END IF
+    IF (LPH9) THEN
+      VARIABLE%FPH9 => CREATE_FIELD_WRAP(DATA=GMV(:,:,:), IDX=PPH9)
+    ELSE
+      VARIABLE%FPH9 => NULL()
+    END IF
+    IF (LDL) THEN
+      VARIABLE%FDL => CREATE_FIELD_WRAP(DATA=GMV(:,:,:), IDX=PDL)
+    ELSE
+      VARIABLE%FDL => NULL()
+    END IF
+    IF (LDM) THEN
+      VARIABLE%FDM => CREATE_FIELD_WRAP(DATA=GMV(:,:,:), IDX=PDM)
+    ELSE
+      VARIABLE%FDM => NULL()
+    END IF
+    IF (LDL9) THEN
+      VARIABLE%FDL9 => CREATE_FIELD_WRAP(DATA=GMV(:,:,:), IDX=PDL9)
+    ELSE
+      VARIABLE%FDL9 => NULL()
+    END IF
+    IF (LDM9) THEN
+      VARIABLE%FDM9 => CREATE_FIELD_WRAP(DATA=GMV(:,:,:), IDX=PDM9)
+    ELSE
+      VARIABLE%FDM9 => NULL()
+    END IF
+
+  CONTAINS
+
+    FUNCTION PRESENT_AND_ACTIVE(PTR)
+      INTEGER(KIND=JPIM), OPTIONAL, INTENT(IN) :: PTR
+      LOGICAL PRESENT_AND_ACTIVE
+      IF (PRESENT(PTR)) THEN
+        PRESENT_AND_ACTIVE = PTR >= 0
+      ELSE
+        PRESENT_AND_ACTIVE = .FALSE.
+      END IF
+    END FUNCTION PRESENT_AND_ACTIVE
+  END FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_2D_GMV
+
+  FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_3D_GMV(SELF, NAME, GMV, GMVT1, PT0, PT1, PT9, PPH9, PDL, PDM, &
+   &                                             PDL9, PDM9, PERSISTENT) RESULT(VARIABLE)
+    ! Create the VARIABLE metadata type and associate it with fields and data.
+    CLASS(FIELD_REGISTRY) :: SELF
+    TYPE(VARIABLE_3D) :: VARIABLE
+    CHARACTER(LEN=*), INTENT(IN) :: NAME
+    REAL(KIND=JPRB), TARGET, INTENT(IN) :: GMV(:,:,:,:)
+    REAL(KIND=JPRB), TARGET, INTENT(IN) :: GMVT1(:,:,:,:)
+    INTEGER(KIND=JPIM), OPTIONAL, INTENT(IN) :: PT0, PT1, PT9, PPH9, PDL, PDM, PDL9, PDM9
+    LOGICAL, OPTIONAL, INTENT(IN) :: PERSISTENT
+    LOGICAL :: LT0, LT1, LT9, LPH9, LDL, LDM, LDL9, LDM9
+
+    LT0 = PRESENT_AND_ACTIVE(PT0)
+    LT1 = PRESENT_AND_ACTIVE(PT1)
+    LT9 = PRESENT_AND_ACTIVE(PT9)
+    LPH9 = PRESENT_AND_ACTIVE(PPH9)
+    LDL = PRESENT_AND_ACTIVE(PDL)
+    LDM = PRESENT_AND_ACTIVE(PDM)
+    LDL9 = PRESENT_AND_ACTIVE(PDL9)
+    LDM9 = PRESENT_AND_ACTIVE(PDM9)
+    VARIABLE = VARIABLE_3D(NAME, LACTIVE=.TRUE., LADV=.TRUE., LT1=LT1, LT9=LT9, LPH9=LPH9, &
+                         & LDL=LDL, LDM=LDM, LDL9=LDL9, LDM9=LDM9)
+
+    ! Associate FIELD objects with VARIABLE according to provided pointers
+    IF (LT0) THEN
+      VARIABLE%FT0 => CREATE_FIELD_WRAP(DATA=GMV(:,:,:,:), IDX=PT0)
+    ELSE
+      VARIABLE%FT0 => NULL ()
+    ENDIF
+
+    IF (LT1) THEN
+      VARIABLE%FT1 => CREATE_FIELD_WRAP(DATA=GMVT1(:,:,:,:), IDX=PT1)
+    ELSE
+      VARIABLE%FT1 => NULL()
+    END IF
+    IF (LT9) THEN
+      VARIABLE%FT9 => CREATE_FIELD_WRAP(DATA=GMV(:,:,:,:), IDX=PT9)
+    ELSE
+      VARIABLE%FT9 => NULL()
+    END IF
+    IF (LPH9) THEN
+      VARIABLE%FPH9 => CREATE_FIELD_WRAP(DATA=GMV(:,:,:,:), IDX=PPH9)
+    ELSE
+      VARIABLE%FPH9 => NULL()
+    END IF
+    IF (LDL) THEN
+      VARIABLE%FDL => CREATE_FIELD_WRAP(DATA=GMV(:,:,:,:), IDX=PDL)
+   ELSE
+      VARIABLE%FDL => NULL()
+    END IF
+    IF (LDM) THEN
+      VARIABLE%FDM => CREATE_FIELD_WRAP(DATA=GMV(:,:,:,:), IDX=PDM)
+    ELSE
+      VARIABLE%FDM => NULL()
+    END IF
+    IF (LDL9) THEN
+      VARIABLE%FDL9 => CREATE_FIELD_WRAP(DATA=GMV(:,:,:,:), IDX=PDL9)
+    ELSE
+      VARIABLE%FDL9 => NULL()
+    END IF
+    IF (LDM9) THEN
+      VARIABLE%FDM9 => CREATE_FIELD_WRAP(DATA=GMV(:,:,:,:), IDX=PDM9)
+    ELSE
+      VARIABLE%FDM9 => NULL()
+    END IF
+
+  CONTAINS
+
+    FUNCTION PRESENT_AND_ACTIVE(PTR)
+      INTEGER(KIND=JPIM), OPTIONAL, INTENT(IN) :: PTR
+      LOGICAL PRESENT_AND_ACTIVE
+      IF (PRESENT(PTR)) THEN
+        PRESENT_AND_ACTIVE = PTR >= 0
+      ELSE
+        PRESENT_AND_ACTIVE = .FALSE.
+      END IF
+    END FUNCTION PRESENT_AND_ACTIVE
+  END FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_3D_GMV
+
+  FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_GFL(SELF, NAME, YDCOMP, GFL, PERSISTENT) RESULT(VARIABLE)
+    ! Create a single field from a set of defaults and internalized field options
+    CLASS(FIELD_REGISTRY) :: SELF
+    TYPE(VARIABLE_3D) :: VARIABLE
+    CHARACTER(LEN=*), INTENT(IN) :: NAME
+    TYPE(TYPE_GFL_COMP), INTENT(IN) :: YDCOMP
+    TYPE(TGFL), TARGET, INTENT(INOUT) :: GFL
+    LOGICAL, OPTIONAL, INTENT(IN) :: PERSISTENT
+
+    VARIABLE = VARIABLE_3D(NAME, CNAME=YDCOMP%CNAME, IGRBCODE=YDCOMP%IGRBCODE, LACTIVE=YDCOMP%LACTIVE, &
+     &                     LADV=YDCOMP%LADV, LT1=YDCOMP%LT1, LT9=YDCOMP%LT9, LPH9=YDCOMP%LPHY, LGP=YDCOMP%LGP, LWATER=YDCOMP%LWATER,&
+     &                     LTHERMACT=YDCOMP%LTHERMACT,RCP=YDCOMP%RCP,R=YDCOMP%R,LCDERS=YDCOMP%LCDERS)
+
+    VARIABLE%YCOMP = YDCOMP
+
+    ! Associate FIELD objects with VARIABLE according to provided pointers
+    IF (YDCOMP%LACTIVE .AND. YDCOMP%MP > 0) THEN
+      VARIABLE%FT0 => CREATE_FIELD_WRAP(DATA=GFL%GFL(:,:,:,:), IDX=YDCOMP%MP)
+    ELSE
+      VARIABLE%FT0 => NULL()
+    END IF
+    IF (YDCOMP%LACTIVE .AND. YDCOMP%MP1 > 0) THEN
+      VARIABLE%FT1 => CREATE_FIELD_WRAP(DATA=GFL%GFLT1(:,:,:,:), IDX=YDCOMP%MP1)
+    ELSE
+      VARIABLE%FT1 => NULL()
+    END IF
+    IF (YDCOMP%LACTIVE .AND. YDCOMP%MP9 > 0) THEN
+      VARIABLE%FT9 => CREATE_FIELD_WRAP(DATA=GFL%GFL(:,:,:,:), IDX=YDCOMP%MP9)
+    ELSE
+      VARIABLE%FT9 => NULL()
+    END IF
+    IF (YDCOMP%LACTIVE .AND. YDCOMP%MP9_PH > 0) THEN
+      VARIABLE%FPH9 => CREATE_FIELD_WRAP(DATA=GFL%GFL(:,:,:,:), IDX=YDCOMP%MP9_PH)
+    ELSE
+      VARIABLE%FPH9 => NULL()
+    END IF
+    IF (YDCOMP%LACTIVE .AND. YDCOMP%MPL > 0) THEN
+      VARIABLE%FDL => CREATE_FIELD_WRAP(DATA=GFL%GFL(:,:,:,:), IDX=YDCOMP%MPL)
+    ELSE
+      VARIABLE%FDL => NULL()
+    END IF
+    IF (YDCOMP%LACTIVE .AND. YDCOMP%MPM > 0) THEN
+      VARIABLE%FDM => CREATE_FIELD_WRAP(DATA=GFL%GFL(:,:,:,:), IDX=YDCOMP%MPM)
+    ELSE
+      VARIABLE%FDM => NULL()
+    END IF
+
+  CONTAINS
+
+    FUNCTION ACTIVE_AND_TRUE(LFLAG)
+      LOGICAL ACTIVE_AND_TRUE
+      LOGICAL, INTENT(IN) :: LFLAG
+      IF (YDCOMP%LACTIVE) THEN
+        ACTIVE_AND_TRUE = LFLAG
+      ELSE
+        ACTIVE_AND_TRUE = .FALSE.
+      END IF
+    END FUNCTION ACTIVE_AND_TRUE
+  END FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_GFL
+
+  FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_ARRAY_GFL(SELF, NAME, YDCOMP, GFL, PERSISTENT) RESULT(VARIABLES)
+    ! Create a single field from a set of defaults and internalized field options
+    CLASS(FIELD_REGISTRY) :: SELF
+    TYPE(VARIABLE_3D), ALLOCATABLE :: VARIABLES(:)
+    CHARACTER(LEN=*), INTENT(IN) :: NAME
+    TYPE(TYPE_GFL_COMP), POINTER, INTENT(IN) :: YDCOMP(:)
+    TYPE(TGFL), TARGET, INTENT(INOUT) :: GFL
+    LOGICAL, OPTIONAL, INTENT(IN) :: PERSISTENT
+    INTEGER(KIND=JPIM) :: I
+    CHARACTER(:), ALLOCATABLE :: VNAME
+    CHARACTER*8 :: CLI
+
+    IF (ASSOCIATED(YDCOMP)) THEN
+      ALLOCATE(VARIABLES(SIZE(YDCOMP)))
+      DO I=1, SIZE(YDCOMP)
+        WRITE (CLI, '(I0)') I
+        VNAME = NAME//"_"//TRIM(CLI)
+        VARIABLES(I) = SELF%CREATE_VARIABLE(VNAME, YDCOMP(I), GFL, PERSISTENT=PERSISTENT)
+        VARIABLES(I)%YCOMP = YDCOMP (I)
+      END DO
+    ELSE
+      ALLOCATE(VARIABLES(0))
+    END IF
+
+  END FUNCTION FIELD_REGISTRY_CREATE_VARIABLE_ARRAY_GFL
+
+  SUBROUTINE FIELD_REGISTRY_REGISTER_GEOMETRY(SELF, VARIABLES, GEOM)
+    ! Utility routine to register geometry fields in the current field container
+    !
+    ! Note that this is not meant to stay forever. It is required for gradual
+    ! migration of existing arrays to an Atlas-based memory management system.
+    CLASS(FIELD_REGISTRY) :: SELF
+    TYPE(FIELD_VARIABLES), POINTER, INTENT(INOUT) :: VARIABLES
+    TYPE(GEOMETRY), INTENT(IN) :: GEOM
+
+    IF (.NOT. ASSOCIATED(VARIABLES)) ALLOCATE(VARIABLES)
+
+    VARIABLES%GEOMETRY%RCORI  = SELF%CREATE_VARIABLE(NAME='RCORI', DATA=GEOM%YRGSGEOM_B%RCORI)
+    VARIABLES%GEOMETRY%RCORIC = SELF%CREATE_VARIABLE(NAME='RCORIC', DATA=GEOM%YRGSGEOM_B%RCORIC)
+    VARIABLES%GEOMETRY%GEMU   = SELF%CREATE_VARIABLE(NAME='GEMU', DATA=GEOM%YRGSGEOM_B%GEMU)
+    VARIABLES%GEOMETRY%GSQM2  = SELF%CREATE_VARIABLE(NAME='GSQM2', DATA=GEOM%YRGSGEOM_B%GSQM2)
+    VARIABLES%GEOMETRY%GELAM  = SELF%CREATE_VARIABLE(NAME='GELAM', DATA=GEOM%YRGSGEOM_B%GELAM)
+    VARIABLES%GEOMETRY%GELAT  = SELF%CREATE_VARIABLE(NAME='GELAT', DATA=GEOM%YRGSGEOM_B%GELAT)
+    VARIABLES%GEOMETRY%GECLO  = SELF%CREATE_VARIABLE(NAME='GECLO', DATA=GEOM%YRGSGEOM_B%GECLO)
+    VARIABLES%GEOMETRY%GESLO  = SELF%CREATE_VARIABLE(NAME='GESLO', DATA=GEOM%YRGSGEOM_B%GESLO)
+    VARIABLES%GEOMETRY%GM     = SELF%CREATE_VARIABLE(NAME='GM', DATA=GEOM%YRGSGEOM_B%GM)
+    VARIABLES%GEOMETRY%GMAPPA = SELF%CREATE_VARIABLE(NAME='GMAPPA', DATA=GEOM%YRGSGEOM_B%GMAPPA)
+    VARIABLES%GEOMETRY%GOMVRL = SELF%CREATE_VARIABLE(NAME='GOMVRL', DATA=GEOM%YRGSGEOM_B%GOMVRL)
+    VARIABLES%GEOMETRY%GOMVRM = SELF%CREATE_VARIABLE(NAME='GOMVRM', DATA=GEOM%YRGSGEOM_B%GOMVRM)
+    VARIABLES%GEOMETRY%GNORDL = SELF%CREATE_VARIABLE(NAME='GNORDL', DATA=GEOM%YRGSGEOM_B%GNORDL)
+    VARIABLES%GEOMETRY%GNORDM = SELF%CREATE_VARIABLE(NAME='GNORDM', DATA=GEOM%YRGSGEOM_B%GNORDM)
+    VARIABLES%GEOMETRY%GNORDLCL = SELF%CREATE_VARIABLE(NAME='GNORDLCL', DATA=GEOM%YRGSGEOM_B%GNORDLCL)
+    VARIABLES%GEOMETRY%GNORDMCL = SELF%CREATE_VARIABLE(NAME='GNORDMCL', DATA=GEOM%YRGSGEOM_B%GNORDMCL)
+    VARIABLES%GEOMETRY%GNORDMCM = SELF%CREATE_VARIABLE(NAME='GNORDMCM', DATA=GEOM%YRGSGEOM_B%GNORDMCM)
+    VARIABLES%GEOMETRY%GAW   = SELF%CREATE_VARIABLE(NAME='GAW', DATA=GEOM%YRGSGEOM_B%GAW)
+    ! INTEGER(KIND=JPIM), POINTER,CONTIGUOUS :: NGPLAT(:,:)    => NULL()
+    ! INTEGER(KIND=JPIM), POINTER,CONTIGUOUS :: NUNIQUEGP(:,:) => NULL()
+
+    VARIABLES%GEOMETRY%OROG  = SELF%CREATE_VARIABLE(NAME='OROG', DATA=GEOM%YROROG_B%OROG)
+    VARIABLES%GEOMETRY%OROGL = SELF%CREATE_VARIABLE(NAME='OROGL', DATA=GEOM%YROROG_B%OROGL)
+    VARIABLES%GEOMETRY%OROGM = SELF%CREATE_VARIABLE(NAME='OROGM', DATA=GEOM%YROROG_B%OROGM)
+
+    VARIABLES%GEOMETRY%OROGLL = SELF%CREATE_VARIABLE(NAME='OROGLL', DATA=GEOM%YROROG_B%OROGLL)
+    VARIABLES%GEOMETRY%OROGMM = SELF%CREATE_VARIABLE(NAME='OROGMM', DATA=GEOM%YROROG_B%OROGMM)
+    VARIABLES%GEOMETRY%OROGLM = SELF%CREATE_VARIABLE(NAME='OROGLM', DATA=GEOM%YROROG_B%OROGLM)
+
+    VARIABLES%GEOMETRY%RCOLON = SELF%CREATE_VARIABLE (NAME='RCOLON', DATA=GEOM%YRCSGEOM_B%RCOLON)
+    VARIABLES%GEOMETRY%RSILON = SELF%CREATE_VARIABLE (NAME='RSILON', DATA=GEOM%YRCSGEOM_B%RSILON)
+    VARIABLES%GEOMETRY%RINDX  = SELF%CREATE_VARIABLE (NAME='RINDX' , DATA=GEOM%YRCSGEOM_B%RINDX )
+    VARIABLES%GEOMETRY%RINDY  = SELF%CREATE_VARIABLE (NAME='RINDY' , DATA=GEOM%YRCSGEOM_B%RINDY )
+    VARIABLES%GEOMETRY%RATATH = SELF%CREATE_VARIABLE (NAME='RATATH', DATA=GEOM%YRCSGEOM_B%RATATH)
+    VARIABLES%GEOMETRY%RATATX = SELF%CREATE_VARIABLE (NAME='RATATX', DATA=GEOM%YRCSGEOM_B%RATATX)
+
+    IF (ASSOCIATED (GEOM%YRGSGEOM_B%GEXCO)) VARIABLES%GEOMETRY%GEXCO = SELF%CREATE_VARIABLE (NAME='GEXCO', DATA=GEOM%YRGSGEOM_B%GEXCO)
+    IF (ASSOCIATED (GEOM%YRGSGEOM_B%GEYCO)) VARIABLES%GEOMETRY%GEYCO = SELF%CREATE_VARIABLE (NAME='GEYCO', DATA=GEOM%YRGSGEOM_B%GEYCO)
+    IF (ASSOCIATED (GEOM%YRGSGEOM_B%GEZCO)) VARIABLES%GEOMETRY%GEZCO = SELF%CREATE_VARIABLE (NAME='GEZCO', DATA=GEOM%YRGSGEOM_B%GEZCO)
+
+  END SUBROUTINE FIELD_REGISTRY_REGISTER_GEOMETRY
+
+  SUBROUTINE FIELD_REGISTRY_REGISTER_GMV_FIELDS(SELF, VARIABLES, GMV)
+    ! Utility routine to register GMV fields with the global field registry
+    !
+    ! Note that this is not meant to stay forever. It is required for gradual
+    ! migration of existing arrays to the new object-based data management system.
+    CLASS(FIELD_REGISTRY) :: SELF
+    TYPE(FIELD_VARIABLES), POINTER, INTENT(INOUT) :: VARIABLES
+    TYPE(TGMV), INTENT(INOUT) :: GMV  ! Allocated arrays and pointers
+
+    IF (.NOT. ASSOCIATED(VARIABLES)) ALLOCATE(VARIABLES)
+
+    ASSOCIATE(GMVT1=>GMV%GMVT1, GMVS=>GMV%GMVS, GMVT1S=>GMV%GMVT1S, &
+     &        YT0=>GMV%YT0, YT1=>GMV%YT1, YT9=>GMV%YT9, YPH9=>GMV%YPH9)
+    VARIABLES%U = SELF%CREATE_VARIABLE('U', GMV%GMV, GMVT1, PT0=YT0%MU, PT1=YT1%MU, PT9=YT9%MU, PPH9=YPH9%MU, PDL=YT0%MUL, PDL9=YT9%MUL)
+    VARIABLES%V = SELF%CREATE_VARIABLE('V', GMV%GMV, GMVT1, PT0=YT0%MV, PT1=YT1%MV, PT9=YT9%MV, PPH9=YPH9%MV, PDL=YT0%MVL, PDL9=YT9%MVL)
+    VARIABLES%T = SELF%CREATE_VARIABLE('T', GMV%GMV, GMVT1, PT0=YT0%MT, PT1=YT1%MT, PT9=YT9%MT, PPH9=YPH9%MT, PDL=YT0%MTL, PDM=YT0%MTM, PDL9=YT9%MTL, PDM9=YT9%MTM)
+    VARIABLES%DIV = SELF%CREATE_VARIABLE('DIV', GMV%GMV, GMVT1, PT0=YT0%MDIV, PT1=YT1%MDIV, PT9=YT9%MDIV)
+    VARIABLES%VOR = SELF%CREATE_VARIABLE('VOR', GMV%GMV, GMVT1, PT0=YT0%MVOR, PT1=YT1%MVOR, PT9=YT9%MVOR)
+    VARIABLES%SPD = SELF%CREATE_VARIABLE('SPD', GMV%GMV, GMVT1, PT0=YT0%MSPD, PT1=YT1%MSPD, PT9=YT9%MSPD, PDL=YT0%MSPDL, PDM=YT0%MSPDM, PDL9=YT9%MSPDL, PDM9=YT9%MSPDM)
+    VARIABLES%SVD = SELF%CREATE_VARIABLE('SVD', GMV%GMV, GMVT1, PT0=YT0%MSVD, PT1=YT1%MSVD, PT9=YT9%MSVD, PDL=YT0%MSVDL, PDM=YT0%MSVDM, PDL9=YT9%MSVDL, PDM9=YT9%MSVDM)
+    
+    VARIABLES%CSPDNL = SELF%CREATE_VARIABLE('CSPDNL', GMV%GMV, GMVT1, PT9=YT9%MCSPDNL)
+    VARIABLES%CSVDPT = SELF%CREATE_VARIABLE('CSVDPT', GMV%GMV, GMVT1, PT9=YT9%MCSVDPT)
+    VARIABLES%CSPNL  = SELF%CREATE_VARIABLE('CSPNL' , GMV%GMV, GMVT1, PT9=YT9%MCSPNL)
+    VARIABLES%CTNL   = SELF%CREATE_VARIABLE('CTNL'  , GMV%GMV, GMVT1, PT9=YT9%MCTNL)
+    VARIABLES%CTPT   = SELF%CREATE_VARIABLE('CTPT'  , GMV%GMV, GMVT1, PT9=YT9%MCTPT)
+    VARIABLES%CUNL   = SELF%CREATE_VARIABLE('CUNL'  , GMV%GMV, GMVT1, PT9=YT9%MCUNL)
+    VARIABLES%CUPT   = SELF%CREATE_VARIABLE('CUPT'  , GMV%GMV, GMVT1, PT9=YT9%MCUPT)
+    VARIABLES%CVNL   = SELF%CREATE_VARIABLE('CVNL'  , GMV%GMV, GMVT1, PT9=YT9%MCVNL)
+    VARIABLES%CVPT   = SELF%CREATE_VARIABLE('CVPT'  , GMV%GMV, GMVT1, PT9=YT9%MCVPT)
+    VARIABLES%CVWVNL = SELF%CREATE_VARIABLE('CVWVNL', GMV%GMV, GMVT1, PT9=YT9%MCVWVNL)
+    VARIABLES%DPHI   = SELF%CREATE_VARIABLE('DPHI'  , GMV%GMV, GMVT1, PT9=YT9%MDPHI)
+
+    VARIABLES%EDOT = SELF%CREATE_VARIABLE('EDOT', GMV%GMV, GMVT1, PT0=YT0%MEDOT, PT9=YT9%MEDOT)
+
+    VARIABLES%GW     = SELF%CREATE_VARIABLE('GW'  , GMV%GMV, GMVT1, PT9=YT9%MGW)
+
+    VARIABLES%NHX = SELF%CREATE_VARIABLE('NHX', GMV%GMV, GMVT1, PT0=YT0%MNHX, PT1=YT1%MNHX, PT9=YT9%MNHX, &
+     &                                   PDL=YT0%MNHXL, PDM=YT0%MNHXM)
+
+    VARIABLES%NHY    = SELF%CREATE_VARIABLE('NHY'  , GMV%GMV, GMVT1, PT9=YT9%MNHY)
+
+    VARIABLES%SGRTL = SELF%CREATE_VARIABLE('SGRTL', GMV%GMV, GMVT1, PT0=YT0%MSGRTL, PT9=YT9%MSGRTL)
+    VARIABLES%SGRTM = SELF%CREATE_VARIABLE('SGRTM', GMV%GMV, GMVT1, PT0=YT0%MSGRTM, PT9=YT9%MSGRTM)
+
+    VARIABLES%SPDNL      = SELF%CREATE_VARIABLE('SPDNL'    , GMV%GMV, GMVT1, PT9=YT9%MSPDNL    )
+    VARIABLES%SPDNL_SI   = SELF%CREATE_VARIABLE('SPDNL_SI' , GMV%GMV, GMVT1, PT9=YT9%MSPDNL_SI )
+    VARIABLES%SPNL       = SELF%CREATE_VARIABLE('SPNL'     , GMV%GMV, GMVT1, PT9=YT9%MSPNL     )
+    VARIABLES%SPNL_SI    = SELF%CREATE_VARIABLE('SPNL_SI'  , GMV%GMV, GMVT1, PT9=YT9%MSPNL_SI  )
+    VARIABLES%SVDNL_SI   = SELF%CREATE_VARIABLE('SVDNL_SI' , GMV%GMV, GMVT1, PT9=YT9%MSVDNL_SI )
+    VARIABLES%TNL        = SELF%CREATE_VARIABLE('TNL'      , GMV%GMV, GMVT1, PT9=YT9%MTNL      )
+    VARIABLES%TNL_SI     = SELF%CREATE_VARIABLE('TNL_SI'   , GMV%GMV, GMVT1, PT9=YT9%MTNL_SI   )
+    VARIABLES%UNL        = SELF%CREATE_VARIABLE('UNL'      , GMV%GMV, GMVT1, PT9=YT9%MUNL      )
+    VARIABLES%UNL_SI     = SELF%CREATE_VARIABLE('UNL_SI'   , GMV%GMV, GMVT1, PT9=YT9%MUNL_SI   )
+    VARIABLES%VNL        = SELF%CREATE_VARIABLE('VNL'      , GMV%GMV, GMVT1, PT9=YT9%MVNL      )
+    VARIABLES%VNL_SI     = SELF%CREATE_VARIABLE('VNL_SI'   , GMV%GMV, GMVT1, PT9=YT9%MVNL_SI   )
+    VARIABLES%VWVNL      = SELF%CREATE_VARIABLE('VWVNL'    , GMV%GMV, GMVT1, PT9=YT9%MVWVNL    )
+    VARIABLES%CURHS      = SELF%CREATE_VARIABLE('CURHS'    , GMV%GMV, GMVT1, PT9=YT9%MCURHS     )
+    VARIABLES%CVRHS      = SELF%CREATE_VARIABLE('CVRHS'    , GMV%GMV, GMVT1, PT9=YT9%MCVRHS     )
+    VARIABLES%CTRHS      = SELF%CREATE_VARIABLE('CTRHS'    , GMV%GMV, GMVT1, PT9=YT9%MCTRHS     )
+    VARIABLES%CSPDRHS    = SELF%CREATE_VARIABLE('CSPDRHS'  , GMV%GMV, GMVT1, PT9=YT9%MCSPDRHS   )
+    VARIABLES%CSVDRHS    = SELF%CREATE_VARIABLE('CSVDRHS'  , GMV%GMV, GMVT1, PT9=YT9%MCSVDRHS   )
+    VARIABLES%NHXNL      = SELF%CREATE_VARIABLE('NHXNL'  , GMV%GMV, GMVT1, PT9=YT9%MNHXNL   )
+    VARIABLES%CNHXNL     = SELF%CREATE_VARIABLE('CNHXNL'  , GMV%GMV, GMVT1, PT9=YT9%MCNHXNL   )
+
+    ! Field   pointers in GMVS
+    VARIABLES%SP  = SELF%CREATE_VARIABLE('SP', GMVS, GMVT1S, PT0=YT0%MSP, PT1=YT1%MSP, PT9=YT9%MSP, &
+     &                                   PPH9=YPH9%MSP, PDL=YT0%MSPL, PDM=YT0%MSPM, PDL9=YT9%MSPL, PDM9=YT9%MSPM)
+
+    VARIABLES%SPNL2    = SELF%CREATE_VARIABLE('SPNL2'    ,  GMVS, GMVT1S, PT9=YT9%MSPNL2  )
+    VARIABLES%PREHYDS  = SELF%CREATE_VARIABLE('PREHYDS'  ,  GMVS, GMVT1S, PT9=YT9%MPREHYDS)
+    VARIABLES%DBBC     = SELF%CREATE_VARIABLE('DBBC'     ,  GMVS, GMVT1S, PT9=YT9%MDBBC   )
+    VARIABLES%CSPPT    = SELF%CREATE_VARIABLE('CSPPT'    ,  GMVS, GMVT1S, PT9=YT9%MCSPPT  )
+    VARIABLES%CSPNL2   = SELF%CREATE_VARIABLE('CSPNL2'   ,  GMVS, GMVT1S, PT9=YT9%MCSPNL2 )
+    VARIABLES%CSPRHS   = SELF%CREATE_VARIABLE('CSPRHS'   ,  GMVS, GMVT1S, PT9=YT9%MCSPRHS )
+    VARIABLES%GWS      = SELF%CREATE_VARIABLE('GWS'      ,  GMVS, GMVT1S, PT9=YT9%MGWS    )
+
+
+    END ASSOCIATE
+
+  END SUBROUTINE FIELD_REGISTRY_REGISTER_GMV_FIELDS
+
+  SUBROUTINE FIELD_REGISTRY_REGISTER_GFL_FIELDS(SELF, VARIABLES, GFL_ARRAY, GFL_META, YDMODEL)
+    USE TYPE_MODEL, ONLY : MODEL
+    ! Utility routine to register GFL fields with the global field registry
+    !
+    ! Note that this is not meant to stay forever. It is required for gradual
+    ! migration of existing arrays to an Atlas-based memory management system.
+    CLASS(FIELD_REGISTRY) :: SELF
+    TYPE(FIELD_VARIABLES), POINTER, INTENT(INOUT) :: VARIABLES
+    TYPE(TGFL), INTENT(INOUT) :: GFL_ARRAY  ! Actual allcoated arrays
+    TYPE(TYPE_GFLD), INTENT(INOUT) :: GFL_META   ! Array of component metadata
+    TYPE (MODEL), INTENT(IN) :: YDMODEL
+
+    IF (.NOT. ASSOCIATED(VARIABLES)) ALLOCATE(VARIABLES)
+
+#:for v in gfl.variables
+#:if v.array == 1
+    VARIABLES%${v.name}$_G = SELF%CREATE_VARIABLE('${v.name}$', GFL_META%Y${v.name}$, GFL_ARRAY)
+    VARIABLES%${v.name}$ => VARIABLES%${v.name}$_G
+#:else
+    VARIABLES%${v.name}$ = SELF%CREATE_VARIABLE('${v.name}$', GFL_META%Y${v.name}$, GFL_ARRAY)
+#:endif
+#:endfor
+
+    CALL GREPVARS_PTR (VARIABLES, YDMODEL, COND, VARIABLES%GFL_PTR_G)
+
+  CONTAINS
+
+    LOGICAL FUNCTION COND (YDVAR, YDCOMP, YDMODEL)
+      USE YOM_YGFL, ONLY : TYPE_GFL_COMP
+      TYPE (VARIABLE_3D), INTENT (IN) :: YDVAR
+      TYPE (TYPE_GFL_COMP), INTENT (IN) :: YDCOMP
+      TYPE (MODEL), INTENT(IN) :: YDMODEL
+      COND = .TRUE.
+    END FUNCTION
+
+  END SUBROUTINE FIELD_REGISTRY_REGISTER_GFL_FIELDS
+
+  SUBROUTINE FIELD_REGISTRY_REGISTER_EC_PHYS_FIELDS(SELF, VARIABLES, FIELDS)
+    ! Utility routine to register EC physics fields in the current field container
+    !
+    ! Note that this is not meant to stay forever. It is required for gradual
+    ! migration of existing arrays to an Atlas-based memory management system.
+    CLASS(FIELD_REGISTRY) :: SELF
+    TYPE(FIELD_VARIABLES), INTENT(INOUT) :: VARIABLES
+    TYPE(TEC_PHYS_FIELDS), INTENT(INOUT) :: FIELDS
+
+    VARIABLES%ECPHYS%USTRTI = SELF%CREATE_VARIABLE(NAME='USTRTI', DATA=FIELDS%YRTILEPROP%RUSTRTI) ! E-W  SURFACE STRESS
+    VARIABLES%ECPHYS%VSTRTI = SELF%CREATE_VARIABLE(NAME='VSTRTI', DATA=FIELDS%YRTILEPROP%RVSTRTI) ! N-S  SURFACE STRESS
+    VARIABLES%ECPHYS%AHFSTI = SELF%CREATE_VARIABLE(NAME='AHFSTI', DATA=FIELDS%YRTILEPROP%RAHFSTI) ! SURFACE SENSIBLE HEAT FLUX
+    VARIABLES%ECPHYS%EVAPTI = SELF%CREATE_VARIABLE(NAME='EVAPTI', DATA=FIELDS%YRTILEPROP%REVAPTI) ! EVAPORATION
+    VARIABLES%ECPHYS%TSKTI  = SELF%CREATE_VARIABLE(NAME='TSKTI',  DATA=FIELDS%YRTILEPROP%RTSKTI)  ! SKIN TEMPERATURE
+  END SUBROUTINE FIELD_REGISTRY_REGISTER_EC_PHYS_FIELDS
+
+  SUBROUTINE FIELD_REGISTRY_REGISTER_PHYSICS_RADIATION_FIELDS(SELF, VARIABLES, PHYS_RADI)
+    ! Utility routine to register EC physics fields in the current field container
+    CLASS(FIELD_REGISTRY) :: SELF
+    TYPE(FIELD_VARIABLES), INTENT(INOUT) :: VARIABLES
+    TYPE(MODEL_PHYSICS_RADIATION_TYPE), TARGET, INTENT(IN) :: PHYS_RADI
+
+    VARIABLES%RADIATION%EMTD     = SELF%CREATE_VARIABLE(NAME='EMTD', DATA=PHYS_RADI%YRRADF%EMTD)
+    VARIABLES%RADIATION%TRSW     = SELF%CREATE_VARIABLE(NAME='TRSW', DATA=PHYS_RADI%YRRADF%TRSW)
+    VARIABLES%RADIATION%EMTC     = SELF%CREATE_VARIABLE(NAME='EMTC', DATA=PHYS_RADI%YRRADF%EMTC)
+    VARIABLES%RADIATION%TRSC     = SELF%CREATE_VARIABLE(NAME='TRSC', DATA=PHYS_RADI%YRRADF%TRSC)
+    VARIABLES%RADIATION%EMTU     = SELF%CREATE_VARIABLE(NAME='EMTU', DATA=PHYS_RADI%YRRADF%EMTU)
+    VARIABLES%RADIATION%TAUAER   = SELF%CREATE_VARIABLE(NAME='TAUAER', DATA=PHYS_RADI%YRRADF%TAUAER)
+    VARIABLES%RADIATION%SRSWD    = SELF%CREATE_VARIABLE(NAME='SRSWD', DATA=PHYS_RADI%YRRADF%SRSWD)
+    VARIABLES%RADIATION%SRLWDC   = SELF%CREATE_VARIABLE(NAME='SRLWDC', DATA=PHYS_RADI%YRRADF%SRLWDC)
+    VARIABLES%RADIATION%SRLWD    = SELF%CREATE_VARIABLE(NAME='SRLWD', DATA=PHYS_RADI%YRRADF%SRLWD)
+    VARIABLES%RADIATION%SRSWDC   = SELF%CREATE_VARIABLE(NAME='SRSWDC', DATA=PHYS_RADI%YRRADF%SRSWDC)
+    VARIABLES%RADIATION%SRSWDCS  = SELF%CREATE_VARIABLE(NAME='SRSWDCS', DATA=PHYS_RADI%YRRADF%SRSWDCS)
+    VARIABLES%RADIATION%SRLWDCS  = SELF%CREATE_VARIABLE(NAME='SRLWDCS', DATA=PHYS_RADI%YRRADF%SRLWDCS)
+    VARIABLES%RADIATION%SRSWDV   = SELF%CREATE_VARIABLE(NAME='SRSWDV', DATA=PHYS_RADI%YRRADF%SRSWDV)
+    VARIABLES%RADIATION%SRSWDUV  = SELF%CREATE_VARIABLE(NAME='SRSWDUV', DATA=PHYS_RADI%YRRADF%SRSWDUV)
+    VARIABLES%RADIATION%EDRO     = SELF%CREATE_VARIABLE(NAME='EDRO', DATA=PHYS_RADI%YRRADF%EDRO)
+    VARIABLES%RADIATION%SRSWPAR  = SELF%CREATE_VARIABLE(NAME='SRSWPAR', DATA=PHYS_RADI%YRRADF%SRSWPAR)
+    VARIABLES%RADIATION%SRSWUVB  = SELF%CREATE_VARIABLE(NAME='SRSWUVB', DATA=PHYS_RADI%YRRADF%SRSWUVB)
+    VARIABLES%RADIATION%SRSWPARC = SELF%CREATE_VARIABLE(NAME='SRSWPARC', DATA=PHYS_RADI%YRRADF%SRSWPARC)
+    VARIABLES%RADIATION%SRSWTINC = SELF%CREATE_VARIABLE(NAME='SRSWTINC', DATA=PHYS_RADI%YRRADF%SRSWTINC)
+    VARIABLES%RADIATION%SRFDIR   = SELF%CREATE_VARIABLE(NAME='SRFDIR', DATA=PHYS_RADI%YRRADF%SRFDIR)
+    VARIABLES%RADIATION%SRCDIR   = SELF%CREATE_VARIABLE(NAME='SRCDIR', DATA=PHYS_RADI%YRRADF%SRCDIR)
+    VARIABLES%RADIATION%RMOON    = SELF%CREATE_VARIABLE(NAME='RMOON', DATA=PHYS_RADI%YRRADF%RMOON)
+    VARIABLES%RADIATION%DERIVATIVELW = SELF%CREATE_VARIABLE(NAME='DERIVATIVELW', DATA=PHYS_RADI%YRRADF%DERIVATIVELW)
+  END SUBROUTINE FIELD_REGISTRY_REGISTER_PHYSICS_RADIATION_FIELDS
+
+
+  SUBROUTINE GREPVARS_PTR (VARIABLES, YDMODEL, COND, YDVARS_LIST)
+    USE TYPE_MODEL, ONLY : MODEL
+    TYPE(FIELD_VARIABLES), INTENT(INOUT), TARGET :: VARIABLES
+    TYPE(MODEL), INTENT(IN) :: YDMODEL
+    PROCEDURE (FUN_GREP) :: COND
+    TYPE(VARIABLE_3D_PTR), ALLOCATABLE :: YDVARS_LIST (:)
+
+    INTEGER (KIND=JPIM) :: ISIZE, JFLD, IPNTR
+ 
+    ISIZE = 0
+
+#:for v in gfl.variables
+#:if v.array == 1
+    IF (ASSOCIATED (VARIABLES%${v.name}$)) THEN
+      DO JFLD = 1, SIZE (VARIABLES%${v.name}$)
+        IF (COND (VARIABLES%${v.name}$(JFLD), YDMODEL%YRML_GCONF%YGFL%Y${v.name}$(JFLD), YDMODEL)) ISIZE = ISIZE + 1
+      ENDDO
+    ENDIF
+#:else
+    IF (COND (VARIABLES%${v.name}$, YDMODEL%YRML_GCONF%YGFL%Y${v.name}$, YDMODEL)) ISIZE = ISIZE + 1
+#:endif
+#:endfor
+
+   ALLOCATE (YDVARS_LIST (ISIZE))
+
+   IPNTR = 1
+
+#:for v in gfl.variables
+#:if v.array == 1
+    IF (ASSOCIATED (VARIABLES%${v.name}$)) THEN
+      DO JFLD = 1, SIZE (VARIABLES%${v.name}$)
+        IF (COND (VARIABLES%${v.name}$(JFLD), YDMODEL%YRML_GCONF%YGFL%Y${v.name}$(JFLD), YDMODEL)) THEN
+          YDVARS_LIST (IPNTR)%YV => VARIABLES%${v.name}$(JFLD)
+          YDVARS_LIST (IPNTR)%YCOMP = VARIABLES%${v.name}$(JFLD)%YCOMP
+          IPNTR = IPNTR + 1
+        ENDIF
+      ENDDO
+    ENDIF
+#:else
+    IF (COND (VARIABLES%${v.name}$, YDMODEL%YRML_GCONF%YGFL%Y${v.name}$, YDMODEL)) THEN
+      YDVARS_LIST (IPNTR)%YV => VARIABLES%${v.name}$
+      YDVARS_LIST (IPNTR)%YCOMP = VARIABLES%${v.name}$%YCOMP
+      IPNTR = IPNTR + 1
+    ENDIF
+#:endif
+#:endfor
+    
+
+  END SUBROUTINE
+
+
+  !----   Utility wrapper routines for surface variables   ----!
+
+  SUBROUTINE FIELD_REGISTRY_CREATE_SURFACE_VARIABLE_2D(SELF, NAME, VARIABLE, ARRAY, META, DESCR, ACTIVE, PERSISTENT)
+    ! Create a single field from a set of defaults and internalized field options
+    CLASS(FIELD_REGISTRY) :: SELF
+    CHARACTER(LEN=*), INTENT(IN) :: NAME
+    TYPE(VARIABLE_2D), INTENT(INOUT) :: VARIABLE
+    REAL(KIND=JPRB), TARGET, INTENT(IN) :: ARRAY(:,:,:)
+    TYPE(TYPE_SURF_MTL_2D), INTENT(IN) :: META
+    TYPE(TYPE_SURF_GEN), INTENT(IN) :: DESCR
+    LOGICAL, INTENT(IN) :: ACTIVE
+    LOGICAL, OPTIONAL, INTENT(IN) :: PERSISTENT
+
+    IF (.NOT. ACTIVE) THEN
+      ! For inactive variables we still create full-sized temporaries,
+      ! since the SURF module expects full NPROMA-sized buffers.
+      VARIABLE = VARIABLE_2D(NAME, LACTIVE=.FALSE., LT1=.FALSE., LT9=.FALSE.)
+      VARIABLE%FT0 => CREATE_TEMPORARY(GEOM=SELF%GEOM, PERSISTENT=PERSISTENT)
+      VARIABLE%FT1 => CREATE_TEMPORARY(GEOM=SELF%GEOM, PERSISTENT=PERSISTENT)
+      VARIABLE%FT9 => CREATE_TEMPORARY(GEOM=SELF%GEOM, PERSISTENT=PERSISTENT)
+    ELSE
+      ! Create variable according to existing meta-data
+      VARIABLE = VARIABLE_2D(NAME, LACTIVE=META%MP > 0, LT1=META%MP1 > 0, LT9=META%MP9 > 0)
+
+      IF (META%MP > 0) THEN
+        VARIABLE%FT0 => CREATE_FIELD_WRAP(DATA=ARRAY(:,:,:), IDX=META%MP)
+      ELSE
+        VARIABLE%FT0 => CREATE_TEMPORARY(GEOM=SELF%GEOM, PERSISTENT=PERSISTENT)
+      END IF
+      IF (META%MP1 > 0) THEN
+        VARIABLE%FT1 => CREATE_FIELD_WRAP(DATA=ARRAY(:,:,:), IDX=META%MP1)
+      ELSE
+        VARIABLE%FT1 => CREATE_TEMPORARY(GEOM=SELF%GEOM, PERSISTENT=PERSISTENT)
+      END IF
+      IF (META%MP9 > 0) THEN
+        VARIABLE%FT9 => CREATE_FIELD_WRAP(DATA=ARRAY(:,:,:), IDX=META%MP9)
+      ELSE
+        VARIABLE%FT9 => CREATE_TEMPORARY(GEOM=SELF%GEOM, PERSISTENT=PERSISTENT)
+      END IF
+    END IF
+
+  END SUBROUTINE FIELD_REGISTRY_CREATE_SURFACE_VARIABLE_2D
+
+  SUBROUTINE FIELD_REGISTRY_CREATE_SURFACE_VARIABLE_ARRAY_2D(SELF, NAME, VARIABLES, ARRAY, META, DESCR, ACTIVE, PERSISTENT)
+    ! Create an array of fields from a set of defaults and internalized field options
+    CLASS(FIELD_REGISTRY) :: SELF
+    CHARACTER(LEN=*), INTENT(IN) :: NAME
+    TYPE(VARIABLE_2D), ALLOCATABLE, INTENT(INOUT) :: VARIABLES(:)
+    REAL(KIND=JPRB), TARGET, INTENT(IN) :: ARRAY(:,:,:)
+    TYPE(TYPE_SURF_MTL_2D), INTENT(IN) :: META(:)
+    TYPE(TYPE_SURF_GEN), INTENT(IN) :: DESCR
+    LOGICAL, INTENT(IN) :: ACTIVE
+    LOGICAL, OPTIONAL, INTENT(IN) :: PERSISTENT
+    INTEGER(KIND=JPIM) :: I
+    CHARACTER(:), ALLOCATABLE :: VNAME
+
+    ALLOCATE(VARIABLES(SIZE(META)))
+    DO I=1, SIZE(META)
+      VNAME = NAME//"_"//CHAR(I)
+      CALL SELF%CREATE_SURFACE_VARIABLE_2D(VNAME, VARIABLES(I), ARRAY, META(I), DESCR, ACTIVE, PERSISTENT)
+    END DO
+  END SUBROUTINE FIELD_REGISTRY_CREATE_SURFACE_VARIABLE_ARRAY_2D
+
+  SUBROUTINE FIELD_REGISTRY_CREATE_SURFACE_VARIABLE_ARRAY2_2D(SELF, NAME, VARIABLES, ARRAY, META, DESCR, ACTIVE, PERSISTENT)
+    ! Create an array of fields from a set of defaults and internalized field options
+    CLASS(FIELD_REGISTRY) :: SELF
+    CHARACTER(LEN=*), INTENT(IN) :: NAME
+    TYPE(VARIABLE_2D), ALLOCATABLE, INTENT(INOUT) :: VARIABLES(:,:)
+    REAL(KIND=JPRB), TARGET, INTENT(IN) :: ARRAY(:,:,:)
+    TYPE(TYPE_SURF_MTL_2D), INTENT(IN) :: META(:,:)
+    TYPE(TYPE_SURF_GEN), INTENT(IN) :: DESCR
+    LOGICAL, INTENT(IN) :: ACTIVE
+    LOGICAL, OPTIONAL, INTENT(IN) :: PERSISTENT
+    INTEGER(KIND=JPIM) :: I, J
+    CHARACTER(:), ALLOCATABLE :: VNAME
+
+    ALLOCATE(VARIABLES(SIZE(META, DIM=1), SIZE(META, DIM=2)))
+    DO J=1, SIZE(META, DIM=2)
+      DO I=1, SIZE(META, DIM=1)
+        VNAME = NAME//"_"//CHAR(I)//"_"//CHAR(J)
+        CALL SELF%CREATE_SURFACE_VARIABLE_2D(VNAME, VARIABLES(I,J), ARRAY, META(I,J), DESCR, ACTIVE, PERSISTENT)
+      END DO
+    END DO
+  END SUBROUTINE FIELD_REGISTRY_CREATE_SURFACE_VARIABLE_ARRAY2_2D
+
+  SUBROUTINE FIELD_REGISTRY_CREATE_SURFACE_VARIABLE_3D(SELF, NAME, VARIABLE, ARRAY, META, DESCR, ACTIVE, PERSISTENT)
+    ! Create a single field from a set of defaults and internalized field options
+    CLASS(FIELD_REGISTRY) :: SELF
+    CHARACTER(LEN=*), INTENT(IN) :: NAME
+    TYPE(VARIABLE_3D), INTENT(INOUT) :: VARIABLE
+    REAL(KIND=JPRB), TARGET, INTENT(IN) :: ARRAY(:,:,:,:)
+    TYPE(TYPE_SURF_MTL_3D), INTENT(IN) :: META
+    TYPE(TYPE_SURF_GEN), INTENT(IN) :: DESCR
+    LOGICAL, INTENT(IN) :: ACTIVE
+    LOGICAL, OPTIONAL, INTENT(IN) :: PERSISTENT
+
+    IF (.NOT. ACTIVE) THEN
+      ! For inactive variables we still create full-sized temporaries,
+      ! since the SURF module expects full NPROMA-sized buffers.
+      VARIABLE = VARIABLE_3D(NAME, LACTIVE=.FALSE., LT1=.FALSE., LT9=.FALSE.)
+      VARIABLE%FT0 => CREATE_TEMPORARY(GEOM=SELF%GEOM, NLEV=DESCR%NLEVS, PERSISTENT=PERSISTENT)
+      VARIABLE%FT1 => CREATE_TEMPORARY(GEOM=SELF%GEOM, NLEV=DESCR%NLEVS, PERSISTENT=PERSISTENT)
+      VARIABLE%FT9 => CREATE_TEMPORARY(GEOM=SELF%GEOM, NLEV=DESCR%NLEVS, PERSISTENT=PERSISTENT)
+    ELSE
+      ! Create variable according to existing meta-data
+      VARIABLE = VARIABLE_3D(NAME, LACTIVE=META%MP > 0, LT1=META%MP1 > 0, LT9=META%MP9 > 0)
+
+      IF (META%MP > 0) THEN
+        VARIABLE%FT0 => CREATE_FIELD_WRAP(DATA=ARRAY(:,:,:,:), IDX=META%MP)
+      ELSE
+        VARIABLE%FT0 => CREATE_TEMPORARY(GEOM=SELF%GEOM, NLEV=DESCR%NLEVS, PERSISTENT=PERSISTENT)
+      END IF
+      IF (META%MP1 > 0) THEN
+        VARIABLE%FT1 => CREATE_FIELD_WRAP(DATA=ARRAY(:,:,:,:), IDX=META%MP1)
+      ELSE
+        VARIABLE%FT1 => CREATE_TEMPORARY(GEOM=SELF%GEOM, NLEV=DESCR%NLEVS, PERSISTENT=PERSISTENT)
+      END IF
+      IF (META%MP9 > 0) THEN
+        VARIABLE%FT9 => CREATE_FIELD_WRAP(DATA=ARRAY(:,:,:,:), IDX=META%MP9)
+      ELSE
+        VARIABLE%FT9 => CREATE_TEMPORARY(GEOM=SELF%GEOM, NLEV=DESCR%NLEVS, PERSISTENT=PERSISTENT)
+      END IF
+    END IF
+
+  END SUBROUTINE FIELD_REGISTRY_CREATE_SURFACE_VARIABLE_3D
+
+  SUBROUTINE FIELD_REGISTRY_CREATE_SURFACE_VARIABLE_ARRAY_3D(SELF, NAME, VARIABLES, ARRAY, META, DESCR, ACTIVE, PERSISTENT)
+    ! Create an array of fields from a set of defaults and internalized field options
+    CLASS(FIELD_REGISTRY) :: SELF
+    CHARACTER(LEN=*), INTENT(IN) :: NAME
+    TYPE(VARIABLE_3D), ALLOCATABLE, INTENT(INOUT) :: VARIABLES(:)
+    REAL(KIND=JPRB), TARGET, INTENT(IN) :: ARRAY(:,:,:,:)
+    TYPE(TYPE_SURF_MTL_3D), INTENT(IN) :: META(:)
+    TYPE(TYPE_SURF_GEN), INTENT(IN) :: DESCR
+    LOGICAL, INTENT(IN) :: ACTIVE
+    LOGICAL, OPTIONAL, INTENT(IN) :: PERSISTENT
+    INTEGER(KIND=JPIM) :: I
+    CHARACTER(:), ALLOCATABLE :: VNAME
+
+    ALLOCATE(VARIABLES(SIZE(META)))
+    DO I=1, SIZE(META)
+      VNAME = NAME//"_"//CHAR(I)
+      CALL SELF%CREATE_SURFACE_VARIABLE_3D(VNAME, VARIABLES(I), ARRAY, META(I), DESCR, ACTIVE, PERSISTENT)
+    END DO
+  END SUBROUTINE FIELD_REGISTRY_CREATE_SURFACE_VARIABLE_ARRAY_3D
+
+  SUBROUTINE FIELD_REGISTRY_CREATE_SURFACE_VARIABLE_ARRAY2_3D(SELF, NAME, VARIABLES, ARRAY, META, DESCR, ACTIVE, PERSISTENT)
+    ! Create an array of fields from a set of defaults and internalized field options
+    CLASS(FIELD_REGISTRY) :: SELF
+    CHARACTER(LEN=*), INTENT(IN) :: NAME
+    TYPE(VARIABLE_3D), ALLOCATABLE, INTENT(INOUT) :: VARIABLES(:,:)
+    REAL(KIND=JPRB), TARGET, INTENT(IN) :: ARRAY(:,:,:,:)
+    TYPE(TYPE_SURF_MTL_3D), INTENT(IN) :: META(:,:)
+    TYPE(TYPE_SURF_GEN), INTENT(IN) :: DESCR
+    LOGICAL, INTENT(IN) :: ACTIVE
+    LOGICAL, OPTIONAL, INTENT(IN) :: PERSISTENT
+    INTEGER(KIND=JPIM) :: I, J
+    CHARACTER(:), ALLOCATABLE :: VNAME
+
+    ALLOCATE(VARIABLES(SIZE(META, DIM=1), SIZE(META, DIM=2)))
+    DO J=1, SIZE(META, DIM=2)
+      DO I=1, SIZE(META, DIM=1)
+        VNAME = NAME//"_"//CHAR(I)//"_"//CHAR(J)
+        CALL SELF%CREATE_SURFACE_VARIABLE_3D(VNAME, VARIABLES(I,J), ARRAY, META(I,J), DESCR, ACTIVE, PERSISTENT)
+      END DO
+    END DO
+  END SUBROUTINE FIELD_REGISTRY_CREATE_SURFACE_VARIABLE_ARRAY2_3D
+
+  SUBROUTINE FIELD_REGISTRY_REGISTER_SURFACE_FIELDS(SELF, SURFVARS, YDSURF, PERSISTENT)
+    ! Register all surface variables detailed in the configuration file
+    CLASS(FIELD_REGISTRY) :: SELF
+    TYPE(SURFACE_VARIABLES), POINTER, INTENT(INOUT) :: SURFVARS
+    TYPE(TSURF), TARGET, INTENT(INOUT) :: YDSURF
+    LOGICAL, OPTIONAL, INTENT(IN) :: PERSISTENT
+
+    IF (.NOT. ASSOCIATED(SURFVARS)) ALLOCATE(SURFVARS)
+
+#:for group in surface_prognostic
+    ASSOCIATE(SP_${group.short}$=>YDSURF%SP_${group.short}$, YSP_${group.short}$=>YDSURF%YSP_${group.short}$, YSP_${group.short}$D=>YDSURF%YSP_${group.short}$D)
+#:for v in group.variables
+#:if v.array == 1
+    IF (ASSOCIATED(YSP_${group.short}$%Y${v.name}$)) THEN
+      CALL SELF%CREATE_SURFACE_VARIABLE_ARRAY_${group.dimension}$D(NAME='SP_${group.short}$_${v.name}$', &
+       & VARIABLES=SURFVARS%GSP_${group.short}$%V${v.name}$, ARRAY=SP_${group.short}$, &
+       & META=YSP_${group.short}$%Y${v.name}$(:), DESCR=YSP_${group.short}$D, &
+       & ACTIVE=ASSOCIATED(YSP_${group.short}$%Y${v.name}$))
+    END IF
+#:elif v.array == 2
+    IF (ASSOCIATED(YSP_${group.short}$%Y${v.name}$)) THEN
+      CALL SELF%CREATE_SURFACE_VARIABLE_ARRAY_${group.dimension}$D(NAME='SP_${group.short}$_${v.name}$', &
+       & VARIABLES=SURFVARS%GSP_${group.short}$%V${v.name}$, ARRAY=SP_${group.short}$, &
+       & META=YSP_${group.short}$%Y${v.name}$(:,:), DESCR=YSP_${group.short}$D, &
+       & ACTIVE=ASSOCIATED(YSP_${group.short}$%Y${v.name}$))
+    END IF
+#:else
+    CALL SELF%CREATE_SURFACE_VARIABLE_${group.dimension}$D(NAME='SP_${group.short}$_${v.name}$', &
+     & VARIABLE=SURFVARS%GSP_${group.short}$%V${v.name}$, ARRAY=SP_${group.short}$, &
+     & META=YSP_${group.short}$%Y${v.name}$, DESCR=YSP_${group.short}$D, &
+     & ACTIVE=ASSOCIATED(YSP_${group.short}$%Y${v.name}$))
+#:endif
+#:endfor
+
+    IF (YSP_${group.short}$D%NDIM == 0) THEN
+#:if group.dimension == 2
+      SURFVARS%GSP_${group.short}$%F_GROUP = CREATE_TEMPORARY(GEOM=SELF%GEOM, NLEV=1, PERSISTENT=PERSISTENT)
+#:elif group.dimension == 3
+      SURFVARS%GSP_${group.short}$%F_GROUP = CREATE_TEMPORARY(GEOM=SELF%GEOM, NLEV=MAX(1,YSP_${group.short}$D%NLEVS), NDIM=1, PERSISTENT=PERSISTENT)
+#:endif
+    ELSE
+      SURFVARS%GSP_${group.short}$%F_GROUP = FIELD_${group.dimension+1}$D(DATA=SP_${group.short}$)
+    END IF
+    END ASSOCIATE
+
+#:endfor
+
+#:for group in surface_diagnostic
+    ASSOCIATE(SD_${group.short}$=>YDSURF%SD_${group.short}$, YSD_${group.short}$=>YDSURF%YSD_${group.short}$, YSD_${group.short}$D=>YDSURF%YSD_${group.short}$D)
+#:for v in group.variables
+#:if v.array == 1
+    IF (ASSOCIATED(YSD_${group.short}$%Y${v.name}$)) THEN
+      CALL SELF%CREATE_SURFACE_VARIABLE_ARRAY_${group.dimension}$D(NAME='SD_${group.short}$_${v.name}$', &
+       & VARIABLES=SURFVARS%GSD_${group.short}$%V${v.name}$, ARRAY=SD_${group.short}$, &
+       & META=YSD_${group.short}$%Y${v.name}$(:), DESCR=YSD_${group.short}$D, &
+       & ACTIVE=ASSOCIATED(YSD_${group.short}$%Y${v.name}$))
+    END IF
+#:elif v.array == 2
+    IF (ASSOCIATED(YSD_${group.short}$%Y${v.name}$)) THEN
+      CALL SELF%CREATE_SURFACE_VARIABLE_ARRAY2_${group.dimension}$D(NAME='SD_${group.short}$_${v.name}$', &
+       & VARIABLES=SURFVARS%GSD_${group.short}$%V${v.name}$, ARRAY=SD_${group.short}$, &
+       & META=YSD_${group.short}$%Y${v.name}$(:,:), DESCR=YSD_${group.short}$D, &
+       & ACTIVE=ASSOCIATED(YSD_${group.short}$%Y${v.name}$))
+    END IF
+#:else
+    CALL SELF%CREATE_SURFACE_VARIABLE_${group.dimension}$D(NAME='SD_${group.short}$_${v.name}$', &
+     & VARIABLE=SURFVARS%GSD_${group.short}$%V${v.name}$, ARRAY=SD_${group.short}$, &
+     & META=YSD_${group.short}$%Y${v.name}$, DESCR=YSD_${group.short}$D, &
+     & ACTIVE=ASSOCIATED(YSD_${group.short}$%Y${v.name}$))
+#:endif
+#:endfor
+
+    IF (YSD_${group.short}$D%NDIM == 0) THEN
+#:if group.dimension == 2
+      SURFVARS%GSD_${group.short}$%F_GROUP = CREATE_TEMPORARY(GEOM=SELF%GEOM, NLEV=1, PERSISTENT=PERSISTENT)
+#:elif group.dimension == 3
+      SURFVARS%GSD_${group.short}$%F_GROUP = CREATE_TEMPORARY(GEOM=SELF%GEOM, NLEV=MAX(1,YSD_${group.short}$D%NLEVS), NDIM=1, PERSISTENT=PERSISTENT)
+#:endif
+    ELSE
+      SURFVARS%GSD_${group.short}$%F_GROUP = FIELD_${group.dimension+1}$D(DATA=SD_${group.short}$)
+    END IF
+    END ASSOCIATE
+#:endfor
+
+  END SUBROUTINE FIELD_REGISTRY_REGISTER_SURFACE_FIELDS
+
+END MODULE FIELD_REGISTRY_MOD
diff --git a/src/arome/ext/field_variables_mod.fypp b/src/arome/ext/field_variables_mod.fypp
new file mode 100644
index 0000000000000000000000000000000000000000..f383c0744ea60ab149d0fa7aa08bfad9fe5fad95
--- /dev/null
+++ b/src/arome/ext/field_variables_mod.fypp
@@ -0,0 +1,339 @@
+#! Read variable and field configurations from file
+#:set config_file = os.path.dirname(_THIS_FILE_) + '/field_config.yaml'
+#:set config = field_config.VariableConfiguration(config_file)
+#:set gmv = config.groups['GMV']
+#:set gmvs = config.groups['GMVS']
+#:set gfl = config.groups['GFL']
+#:set variables = gmv.variables + gmvs.variables + gfl.variables
+ 
+
+MODULE FIELD_VARIABLES_MOD
+  ! The FIELD_VARIABLES type provides namespaced access to all core
+  ! VARIABLE objects used.
+  !
+  ! These VARIABLE objects are currently wrappers around GMV and GFL
+  ! fields and provide accessor methods to the individual FIELD
+  ! storage objects and NPROMA array views (sub-array blocks) in
+  ! OpenMP loops. The FIELD_VARIABLES%UPDATE_VIEW(BLOCK_INDEX) utility
+  ! ensures that all block pointers provided by the stored variable
+  ! objects are pointing to the correct sub-arrry block.
+
+USE PARKIND1, ONLY: JPIM, JPRB
+USE VARIABLE_MODULE, ONLY: VARIABLE_2D, VARIABLE_3D, VARIABLE_4D
+USE VARIABLE_MODULE, ONLY: VARIABLE_3D_PTR
+#ifdef PARKIND1_SINGLE
+USE VARIABLE_MODULE, ONLY: VARIABLE_D2D, VARIABLE_D3D, VARIABLE_D4D
+#endif
+USE YOMGMV, ONLY : TGMV
+USE YOMGFL, ONLY : TGFL
+
+IMPLICIT NONE
+
+TYPE GEOMETRY_VARIABLES
+#:set geometry_variables_s = ['RCORI', 'RCORIC', 'GEMU', 'GSQM2', 'GELAM', 'GELAT', &
+& 'GECLO', 'GESLO', 'GM', 'GMAPPA', 'GOMVRL', 'GOMVRM', 'GNORDL', 'GNORDM', 'GNORDLCL', &
+& 'GNORDMCL', 'GNORDMCM', 'GAW', 'OROG', 'OROGL', 'OROGM', 'RINDX', 'RINDY', 'RATATH',  &
+& 'RATATX',  'OROGLL', 'OROGMM', 'OROGLM', 'GEXCO', 'GEYCO', 'GEZCO']
+#:set geometry_variables_d = ['RCOLON', 'RSILON']
+#:set geometry_variables = geometry_variables_s + geometry_variables_d
+
+  ! Variables for arrays specific to the geometry
+#:for var in geometry_variables_s
+  TYPE(VARIABLE_2D) :: ${var}$
+#:endfor
+#:for var in geometry_variables_d
+#ifdef PARKIND1_SINGLE
+  TYPE(VARIABLE_D2D) :: ${var}$
+#else
+  TYPE(VARIABLE_2D) :: ${var}$
+#endif
+#:endfor
+
+CONTAINS
+  PROCEDURE :: UPDATE_VIEW => GEOMETRY_VARIABLES_UPDATE_VIEW
+  PROCEDURE :: FINAL => GEOMETRY_VARIABLES_FINAL
+END TYPE GEOMETRY_VARIABLES
+
+TYPE ECPHYS_VARIABLES
+  ! Variables for arrays in EC_PHYS_FIELDS_MOD
+  TYPE(VARIABLE_3D) :: USTRTI  ! E-W  SURFACE STRESS
+  TYPE(VARIABLE_3D) :: VSTRTI  ! N-S  SURFACE STRESS
+  TYPE(VARIABLE_3D) :: AHFSTI  ! SURFACE SENSIBLE HEAT FLUX
+  TYPE(VARIABLE_3D) :: EVAPTI  ! EVAPORATION
+  TYPE(VARIABLE_3D) :: TSKTI   ! SKIN TEMPERATURE
+END TYPE ECPHYS_VARIABLES
+
+TYPE RADIATION_VARIABLES
+  ! Variables for arrays specific to radiation
+  TYPE(VARIABLE_3D) :: EMTD      ! longwave net flux
+  TYPE(VARIABLE_3D) :: TRSW      ! shortwave net transmissivity (multiply by incoming SW to get flux)
+  TYPE(VARIABLE_3D) :: EMTC      ! clear-sky net longwave flux
+  TYPE(VARIABLE_3D) :: TRSC      ! clear-sky net shortwave transmissivity
+  TYPE(VARIABLE_3D) :: EMTU
+  TYPE(VARIABLE_4D) :: TAUAER    ! prognostic aerosol variable for radiation and clouds
+  TYPE(VARIABLE_2D) :: SRSWD     ! downward SW radiation at the surface
+  TYPE(VARIABLE_3D) :: SRLWD     ! downward LW radiation at the surface
+  TYPE(VARIABLE_2D) :: SRLWDC    ! clear-sky downward LW radiation at the surface
+  TYPE(VARIABLE_2D) :: SRSWDC    ! clear-sky downward SW radiation at the surface
+  TYPE(VARIABLE_2D) :: SRSWDCS   ! clear-sky NET SW radiation at the surface
+  TYPE(VARIABLE_2D) :: SRLWDCS   ! clear-sky NET LW radiation at the surface
+  TYPE(VARIABLE_2D) :: SRSWDV    ! downward SW visible radiation at the surface
+  TYPE(VARIABLE_2D) :: SRSWDUV   ! downward SW ultraviolet/visible radiation at the surface
+  TYPE(VARIABLE_2D) :: EDRO
+  TYPE(VARIABLE_2D) :: SRSWPAR   ! downward SW PAR radiation at the surface
+  TYPE(VARIABLE_2D) :: SRSWUVB   ! downward UV-B radiation at the surface
+  TYPE(VARIABLE_2D) :: SRSWPARC  ! downward clear-sky SW PAR radiation at the surface
+  TYPE(VARIABLE_2D) :: SRSWTINC  ! TOA incident solar radiation
+  TYPE(VARIABLE_2D) :: RMOON     ! M-F military application
+  TYPE(VARIABLE_2D) :: SRFDIR    ! total sky direct downward SW radiation
+  TYPE(VARIABLE_2D) :: SRCDIR    ! clear-sky direct downward SW radiation
+  TYPE(VARIABLE_3D) :: DERIVATIVELW  ! derivative to update LW radiation between calls to full radiation scheme
+END TYPE RADIATION_VARIABLES
+
+TYPE FIELD_VARIABLES
+#:for v in variables
+#:if v.array == 1
+  TYPE(VARIABLE_${v.dim}$D), ALLOCATABLE :: ${v.name}$_G(:)  ! ${v.comment}$
+  TYPE(VARIABLE_${v.dim}$D), POINTER :: ${v.name}$(:)  ! ${v.comment}$
+#:else
+  TYPE(VARIABLE_${v.dim}$D) :: ${v.name}$  ! ${v.comment}$
+#:endif
+#:endfor
+
+  TYPE(GEOMETRY_VARIABLES) :: GEOMETRY
+  TYPE(ECPHYS_VARIABLES) :: ECPHYS
+  TYPE(RADIATION_VARIABLES) :: RADIATION
+
+  TYPE(VARIABLE_3D_PTR), ALLOCATABLE :: GFL_PTR_G (:)
+  TYPE(VARIABLE_3D_PTR), POINTER :: GFL_PTR (:)
+
+CONTAINS
+  ! PROCEDURE :: CLONE => FIELD_VARIABLES_CLONE
+  PROCEDURE :: CLONE_ARRAYS => FIELD_VARIABLES_CLONE_ARRAYS
+  PROCEDURE :: UPDATE_VIEW => FIELD_VARIABLES_UPDATE_VIEW
+  PROCEDURE :: RESET_ARRAYS => FIELD_VARIABLES_RESET_ARRAYS
+  PROCEDURE :: FINAL => FIELD_VARIABLES_FINAL
+  ! Timestepping utilities
+  PROCEDURE :: GFL_PH9TOT0 => FIELD_VARIABLES_GFL_PH9TOT0
+  PROCEDURE :: GFL_PH9TOT9 => FIELD_VARIABLES_GFL_PH9TOT9
+  PROCEDURE :: GMV_RESET_PH9 => FIELD_VARIABLES_GMV_RESET_PH9
+END TYPE FIELD_VARIABLES
+
+CONTAINS
+
+!   FUNCTION FIELD_VARIABLES_CLONE(SELF) RESULT(NEWOBJ)
+!     ! Replicate objects by deep-copying through associated object pointers
+!     !
+!     ! This is required create per-thread replication of the data view pointers
+!     ! under the fields associated with these variables.
+!     CLASS(FIELD_VARIABLES) :: SELF
+!     TYPE(FIELD_VARIABLES) :: NEWOBJ
+!     INTEGER(KIND=JPIM) :: I
+
+! #:for v in variables
+! #:if v.array == 1
+!     IF (ALLOCATED(SELF%${v.name}$)) THEN
+!       ALLOCATE(NEWOBJ%${v.name}$(SIZE(SELF%${v.name}$)))
+!       DO I=1, SIZE(SELF%${v.name}$)
+!         NEWOBJ%${v.name}$(I) = SELF%${v.name}$(I)%CLONE()
+!       END DO
+!     END IF
+! #:else
+!     NEWOBJ%${v.name}$ = SELF%${v.name}$%CLONE()
+! #:endif
+! #:endfor
+!   END FUNCTION FIELD_VARIABLES_CLONE
+
+  SUBROUTINE FIELD_VARIABLES_CLONE_ARRAYS(SELF)
+    ! Replicate variable arrays by allocating a thread-local copy and
+    ! associating its variables with the underpinning storage fields.
+    !
+    ! This is required ensure that per-thread data view pointers under
+    ! variables don't alias.
+    CLASS(FIELD_VARIABLES), TARGET :: SELF
+    INTEGER(KIND=JPIM) :: I
+    INTEGER(KIND=JPIM) :: IPNTR
+    INTEGER(KIND=JPIM) :: JFLD
+
+#:for v in variables
+#:if v.array == 1
+    ! Allocate a thread-local copy of the array
+    NULLIFY(SELF%${v.name}$)
+    ALLOCATE(SELF%${v.name}$(SIZE(SELF%${v.name}$_G)))
+    SELF%${v.name}$ = SELF%${v.name}$_G
+!   DO I=1, SIZE(SELF%${v.name}$_G)
+!     ! Associate underpinning storage objects with thread-local variables
+!     IF (ASSOCIATED(SELF%${v.name}$_G(I)%FT0))  SELF%${v.name}$(I)%FT0 => SELF%${v.name}$_G(I)%FT0
+!     IF (ASSOCIATED(SELF%${v.name}$_G(I)%FT1))  SELF%${v.name}$(I)%FT1 => SELF%${v.name}$_G(I)%FT1
+!     IF (ASSOCIATED(SELF%${v.name}$_G(I)%FT9))  SELF%${v.name}$(I)%FT9 => SELF%${v.name}$_G(I)%FT9
+!     IF (ASSOCIATED(SELF%${v.name}$_G(I)%FPH9)) SELF%${v.name}$(I)%FPH9=> SELF%${v.name}$_G(I)%FPH9
+!     IF (ASSOCIATED(SELF%${v.name}$_G(I)%FDL))  SELF%${v.name}$(I)%FDL => SELF%${v.name}$_G(I)%FDL
+!     IF (ASSOCIATED(SELF%${v.name}$_G(I)%FDM))  SELF%${v.name}$(I)%FDM => SELF%${v.name}$_G(I)%FDM
+!   END DO
+#:endif
+#:endfor
+
+    NULLIFY (SELF%GFL_PTR)
+    ALLOCATE (SELF%GFL_PTR (SIZE (SELF%GFL_PTR_G)))
+
+    IPNTR = 1
+    
+#:for v in gfl.variables
+#:if v.array == 1
+    IF (ASSOCIATED (SELF%${v.name}$)) THEN
+      DO JFLD = 1, SIZE (SELF%${v.name}$)
+        SELF%GFL_PTR (IPNTR)%YV => SELF%${v.name}$(JFLD)
+        SELF%GFL_PTR (IPNTR)%YCOMP = SELF%${v.name}$(JFLD)%YCOMP
+        IPNTR = IPNTR + 1
+      ENDDO
+    ENDIF
+#:else
+    SELF%GFL_PTR (IPNTR)%YV => SELF%${v.name}$
+    SELF%GFL_PTR (IPNTR)%YCOMP = SELF%${v.name}$%YCOMP
+    IPNTR = IPNTR + 1
+#:endif
+#:endfor
+    
+  END SUBROUTINE FIELD_VARIABLES_CLONE_ARRAYS
+
+  SUBROUTINE FIELD_VARIABLES_UPDATE_VIEW(SELF, BLOCK_INDEX)
+    ! Update the internal data view pointers of all associated variables
+    CLASS(FIELD_VARIABLES) :: SELF
+    INTEGER(KIND=JPIM), INTENT(IN) :: BLOCK_INDEX
+    INTEGER(KIND=JPIM) :: I
+
+#:for v in variables
+#:if v.array == 1
+    ! Note, we assume allocation of size 0 for inactive variables!
+    DO I=1, SIZE(SELF%${v.name}$)
+      CALL SELF%${v.name}$(I)%UPDATE_VIEW(BLOCK_INDEX)
+    END DO
+#:else
+    CALL SELF%${v.name}$%UPDATE_VIEW(BLOCK_INDEX)
+#:endif
+#:endfor
+
+    ! Manually update variables in ECPHYS sub-type
+    CALL SELF%ECPHYS%USTRTI%UPDATE_VIEW(BLOCK_INDEX)
+    CALL SELF%ECPHYS%VSTRTI%UPDATE_VIEW(BLOCK_INDEX)
+    CALL SELF%ECPHYS%AHFSTI%UPDATE_VIEW(BLOCK_INDEX)
+    CALL SELF%ECPHYS%EVAPTI%UPDATE_VIEW(BLOCK_INDEX)
+    CALL SELF%ECPHYS%TSKTI%UPDATE_VIEW(BLOCK_INDEX)
+
+    CALL SELF%GEOMETRY%UPDATE_VIEW (BLOCK_INDEX)
+
+  END SUBROUTINE FIELD_VARIABLES_UPDATE_VIEW
+
+  SUBROUTINE FIELD_VARIABLES_FINAL(SELF)
+    ! Update the internal data view pointers of all associated variables
+    CLASS(FIELD_VARIABLES) :: SELF
+    INTEGER(KIND=JPIM) :: I
+
+#:for v in variables
+#:if v.array == 1
+    IF (ALLOCATED(SELF%${v.name}$_G)) THEN
+      DO I=1, SIZE(SELF%${v.name}$)
+        CALL SELF%${v.name}$(I)%FINAL()
+      END DO
+      DEALLOCATE(SELF%${v.name}$_G)
+      NULLIFY(SELF%${v.name}$)
+    END IF
+#:else
+    CALL SELF%${v.name}$%FINAL()
+#:endif
+#:endfor
+  END SUBROUTINE FIELD_VARIABLES_FINAL
+
+  SUBROUTINE FIELD_VARIABLES_RESET_ARRAYS(SELF)
+    ! Deallocate and reset thread-local variables arrays.
+    !
+    ! This ensures we are not leaking thread-local objects and should
+    ! be done after parallel regions.
+    CLASS(FIELD_VARIABLES), TARGET :: SELF
+    INTEGER(KIND=JPIM) :: I
+
+#:for v in variables
+#:if v.array == 1
+    ! Deallocate and reset thread-local variables arrays
+    DEALLOCATE(SELF%${v.name}$)
+    SELF%${v.name}$ => SELF%${v.name}$_G
+#:endif
+#:endfor
+
+    DEALLOCATE (SELF%GFL_PTR)
+    NULLIFY (SELF%GFL_PTR)
+
+  END SUBROUTINE FIELD_VARIABLES_RESET_ARRAYS
+
+  SUBROUTINE FIELD_VARIABLES_GFL_PH9TOT0(SELF)
+    ! Utility routine that aliases the PH9 field of GLF variables with T0
+    CLASS(FIELD_VARIABLES) :: SELF
+    INTEGER(KIND=JPIM) :: I
+
+#:for v in gfl.variables
+#:if v.array == 1
+    DO I=1, SIZE(SELF%${v.name}$)
+      CALL SELF%${v.name}$(I)%PH9TOT0()
+    END DO
+#:else
+    CALL SELF%${v.name}$%PH9TOT0()
+#:endif
+#:endfor
+  END SUBROUTINE FIELD_VARIABLES_GFL_PH9TOT0
+
+  SUBROUTINE FIELD_VARIABLES_GFL_PH9TOT9(SELF)
+    ! Utility routine that aliases the PH9 field of GLF variables with T9
+    CLASS(FIELD_VARIABLES) :: SELF
+    INTEGER(KIND=JPIM) :: I
+
+#:for v in gfl.variables
+#:if v.array == 1
+    DO I=1, SIZE(SELF%${v.name}$)
+      CALL SELF%${v.name}$(I)%PH9TOT9()
+    END DO
+#:else
+    CALL SELF%${v.name}$%PH9TOT9()
+#:endif
+#:endfor
+  END SUBROUTINE FIELD_VARIABLES_GFL_PH9TOT9
+
+  SUBROUTINE FIELD_VARIABLES_GMV_RESET_PH9(SELF, YDGMV, YDGFL)
+    ! Re-associate the PH9 field pointers of GMV variables
+    !
+    ! This is needed to ensure that certain time-stepping
+    ! schemes pass the right fields into the physics routines.
+    CLASS(FIELD_VARIABLES) :: SELF
+    TYPE(TGMV), TARGET, INTENT(INOUT) :: YDGMV
+    TYPE(TGFL), TARGET, INTENT(INOUT) :: YDGFL
+
+    SELF%U%FPH9%PTR => YDGMV%GMV(:,:,YDGMV%YPH9%MU,:)
+    SELF%V%FPH9%PTR => YDGMV%GMV(:,:,YDGMV%YPH9%MV,:)
+    SELF%T%FPH9%PTR => YDGMV%GMV(:,:,YDGMV%YPH9%MT,:)
+    SELF%SP%FPH9%PTR => YDGMV%GMVS(:,YDGMV%YPH9%MSP,:)
+
+    IF(ASSOCIATED(SELF%Q%FPH9))  SELF%Q%FPH9%PTR => YDGFL%GFL(:,:,YDGFL%YGFL%YQ%MP9_PH,:)
+    IF(ASSOCIATED(SELF%A%FPH9))  SELF%A%FPH9%PTR => YDGFL%GFL(:,:,YDGFL%YGFL%YA%MP9_PH,:)
+    IF(ASSOCIATED(SELF%O3%FPH9)) SELF%A%FPH9%PTR => YDGFL%GFL(:,:,YDGFL%YGFL%YO3%MP9_PH,:)
+    IF(ASSOCIATED(SELF%L%FPH9))  SELF%L%FPH9%PTR => YDGFL%GFL(:,:,YDGFL%YGFL%YL%MP9_PH,:)
+    IF(ASSOCIATED(SELF%I%FPH9))  SELF%I%FPH9%PTR => YDGFL%GFL(:,:,YDGFL%YGFL%YI%MP9_PH,:)
+    IF(ASSOCIATED(SELF%R%FPH9))  SELF%R%FPH9%PTR => YDGFL%GFL(:,:,YDGFL%YGFL%YR%MP9_PH,:)
+    IF(ASSOCIATED(SELF%S%FPH9))  SELF%S%FPH9%PTR => YDGFL%GFL(:,:,YDGFL%YGFL%YS%MP9_PH,:)
+    IF(ASSOCIATED(SELF%TKE%FPH9))SELF%S%FPH9%PTR => YDGFL%GFL(:,:,YDGFL%YGFL%YTKE%MP9_PH,:)
+  END SUBROUTINE FIELD_VARIABLES_GMV_RESET_PH9
+
+  SUBROUTINE GEOMETRY_VARIABLES_UPDATE_VIEW(SELF, BLOCK_INDEX)
+    CLASS (GEOMETRY_VARIABLES) :: SELF
+    INTEGER(KIND=JPIM), INTENT(IN) :: BLOCK_INDEX
+#:for var in geometry_variables
+    CALL SELF%${var}$%UPDATE_VIEW (BLOCK_INDEX)
+#:endfor
+  END SUBROUTINE GEOMETRY_VARIABLES_UPDATE_VIEW
+  
+  SUBROUTINE GEOMETRY_VARIABLES_FINAL (SELF)
+    CLASS (GEOMETRY_VARIABLES) :: SELF
+#:for var in geometry_variables
+    CALL SELF%${var}$%FINAL
+#:endfor
+  END SUBROUTINE GEOMETRY_VARIABLES_FINAL
+  
+END MODULE FIELD_VARIABLES_MOD
diff --git a/src/arome/ext/ini_wet_dep.F90 b/src/arome/ext/ini_wet_dep.F90
index 7bb24d1f0d014c3cf3211a44d07267b2cc7e42ac..197846d1b739b6e287fa7f98919645694c9df865 100644
--- a/src/arome/ext/ini_wet_dep.F90
+++ b/src/arome/ext/ini_wet_dep.F90
@@ -1,7 +1,7 @@
 !     ######spl
       SUBROUTINE INI_WET_DEP
       USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###########################################################
 !
 !!****  *INI_RAIN_ICE * - initialize the constants necessary for the warm and
@@ -132,7 +132,7 @@ REAL     :: ZTHVREFZ
 !*       1.1    Set the hailstones maximum fall velocity
 !
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('INI_WET_DEP',0,ZHOOK_HANDLE)
 IF (ALLOCATED(XRTMIN)) THEN       ! In case of nesting microphysics constants of
                                   ! MODD_RAIN_ICE_PARAM are computed only once,
diff --git a/src/arome/ext/mf_phys_next_state_type_mod.fypp b/src/arome/ext/mf_phys_next_state_type_mod.fypp
new file mode 100644
index 0000000000000000000000000000000000000000..f2551685327f60224a69f404235bd67bda36ad2f
--- /dev/null
+++ b/src/arome/ext/mf_phys_next_state_type_mod.fypp
@@ -0,0 +1,278 @@
+#:mute
+#:set config_file = os.path.dirname(_THIS_FILE_) + '/field_config.yaml'
+#:set config = field_config.VariableConfiguration(config_file)
+#:set gfl = config.groups['GFL'] 
+
+#:endmute
+MODULE MF_PHYS_NEXT_STATE_TYPE_MOD
+
+USE PARKIND1, ONLY : JPIM, JPRB
+USE FIELD_MODULE
+USE CPG_OPTS_TYPE_MOD, ONLY : CPG_DIMS_VARS_TYPE
+IMPLICIT NONE
+
+TYPE MF_PHYS_NEXT_STATE_2D_TYPE
+  REAL (KIND=JPRB), POINTER, CONTIGUOUS :: P (:) => NULL ()
+  TYPE (FIELD_2D), POINTER :: F_P => NULL ()
+END TYPE MF_PHYS_NEXT_STATE_2D_TYPE
+
+TYPE MF_PHYS_NEXT_STATE_3D_TYPE
+  REAL (KIND=JPRB), POINTER, CONTIGUOUS :: P (:, :) => NULL ()
+  TYPE (FIELD_3D), POINTER :: F_P => NULL ()
+END TYPE MF_PHYS_NEXT_STATE_3D_TYPE
+
+TYPE MF_PHYS_NEXT_STATE_TYPE
+
+  TYPE (MF_PHYS_NEXT_STATE_3D_TYPE) :: U
+  TYPE (MF_PHYS_NEXT_STATE_3D_TYPE) :: V
+  TYPE (MF_PHYS_NEXT_STATE_3D_TYPE) :: T
+  TYPE (MF_PHYS_NEXT_STATE_3D_TYPE) :: SVD
+  TYPE (MF_PHYS_NEXT_STATE_2D_TYPE) :: SP
+
+#:for v in gfl.variables
+  #:if v.array
+  TYPE (MF_PHYS_NEXT_STATE_3D_TYPE), ALLOCATABLE :: ${v.name}$ (:)
+  #:elif v.dim == 3
+  TYPE (MF_PHYS_NEXT_STATE_3D_TYPE) :: ${v.name}$
+  #:endif
+#:endfor
+
+
+  TYPE (CPG_DIMS_VARS_TYPE) :: DIMS
+
+CONTAINS
+
+  PROCEDURE :: INIT => MF_PHYS_NEXT_STATE_TYPE_INIT
+  PROCEDURE :: UPDATE_VIEW => MF_PHYS_NEXT_STATE_TYPE_UPDATE_VIEW
+
+END TYPE MF_PHYS_NEXT_STATE_TYPE
+
+CONTAINS
+
+SUBROUTINE MF_PHYS_NEXT_STATE_TYPE_INIT (SELF, YDCPG_SL1, YDGEOMETRY, YDVARS, YDMODEL)
+
+USE GEOMETRY_MOD, ONLY : GEOMETRY
+USE FIELD_VARIABLES_MOD, ONLY: FIELD_VARIABLES
+USE CPG_TYPE_MOD, ONLY : CPG_SL1_TYPE
+USE TYPE_MODEL  , ONLY : MODEL
+
+CLASS (MF_PHYS_NEXT_STATE_TYPE)     :: SELF
+TYPE (CPG_SL1_TYPE),    INTENT (IN) :: YDCPG_SL1
+TYPE(GEOMETRY),         INTENT (IN) :: YDGEOMETRY
+TYPE (FIELD_VARIABLES), INTENT (IN) :: YDVARS
+TYPE(MODEL),            INTENT (IN) :: YDMODEL
+
+INTEGER (KIND=JPIM) :: JGFL
+
+ASSOCIATE (YDDYN => YDMODEL%YRML_DYN%YRDYN)
+
+CALL SELF%DIMS%INIT (YDGEOMETRY, YDMODEL, YDVARS)
+
+IF (YDMODEL%YRML_DYN%YRDYNA%LSLAG) THEN
+
+  ! Taken from cp_ptrslb1.F90
+  
+  IF (YDDYN%NWLAG == 4) THEN
+    SELF%U%P   => YDCPG_SL1%U0%P 
+    SELF%U%F_P => YDCPG_SL1%U0%F_P
+    SELF%V%P   => YDCPG_SL1%V0%P 
+    SELF%V%F_P => YDCPG_SL1%V0%F_P
+  ELSE
+    IF (YDDYN%NSPLTHOI /= 0) THEN
+      SELF%U%P   => YDCPG_SL1%UF9%P 
+      SELF%U%F_P => YDCPG_SL1%UF9%F_P
+      SELF%V%P   => YDCPG_SL1%VF9%P 
+      SELF%V%F_P => YDCPG_SL1%VF9%F_P
+    ELSE
+      SELF%U%P   => YDCPG_SL1%U9%P 
+      SELF%U%F_P => YDCPG_SL1%U9%F_P
+      SELF%V%P   => YDCPG_SL1%V9%P 
+      SELF%V%F_P => YDCPG_SL1%V9%F_P
+    ENDIF
+  ENDIF
+  ! * temperature
+  IF (YDDYN%NTLAG == 4) THEN
+    SELF%T%P   => YDCPG_SL1%T0%P 
+    SELF%T%F_P => YDCPG_SL1%T0%F_P
+  ELSE
+    IF (YDDYN%NSPLTHOI /= 0) THEN
+      SELF%T%P   => YDCPG_SL1%TF9%P 
+      SELF%T%F_P => YDCPG_SL1%TF9%F_P
+    ELSE
+      SELF%T%P   => YDCPG_SL1%T9%P 
+      SELF%T%F_P => YDCPG_SL1%T9%F_P
+    ENDIF
+  ENDIF
+  ! * vertical divergence
+  IF (YDDYN%NSVDLAG == 4) THEN
+    SELF%SVD%P   => YDCPG_SL1%VD0%P
+    SELF%SVD%F_P => YDCPG_SL1%VD0%F_P
+  ELSE
+    IF (YDDYN%NSPLTHOI /= 0) THEN
+      SELF%SVD%P   => YDCPG_SL1%VDF9%P
+      SELF%SVD%F_P => YDCPG_SL1%VDF9%F_P
+    ELSE
+      SELF%SVD%P   => YDCPG_SL1%VD9%P
+      SELF%SVD%F_P => YDCPG_SL1%VD9%F_P
+    ENDIF
+  ENDIF
+
+  SELF%SP%P   => YDCPG_SL1%SP9%P
+  SELF%SP%F_P => YDCPG_SL1%SP9%F_P
+
+  ! * GFL arrays
+  IF (YDDYN%LSPLTHOIGFL.OR.(YDDYN%NSPLTHOI /= 0)) THEN
+#:for v in gfl.variables
+  #:if v.array
+    IF (ASSOCIATED (YDVARS%${v.name}$)) THEN
+      ALLOCATE (SELF%${v.name}$ (SIZE (YDVARS%${v.name}$)))
+      DO JGFL = 1, SIZE (YDVARS%${v.name}$)
+        CALL MF_PHYS_NEXT_STATE_TYPE_INIT_SPLTHOI_3D (YDVARS%${v.name}$(JGFL), SELF%${v.name}$(JGFL), YDCPG_SL1%${v.name}$(JGFL))
+      ENDDO
+    ENDIF
+  #:elif v.dim == 3
+    CALL MF_PHYS_NEXT_STATE_TYPE_INIT_SPLTHOI_3D (YDVARS%${v.name}$, SELF%${v.name}$, YDCPG_SL1%${v.name}$)
+  #:endif
+#:endfor
+  ELSE
+#:for v in gfl.variables
+  #:if v.array
+    IF (ASSOCIATED (YDVARS%${v.name}$)) THEN
+      ALLOCATE (SELF%${v.name}$ (SIZE (YDVARS%${v.name}$)))
+      DO JGFL = 1, SIZE (YDVARS%${v.name}$)
+        CALL MF_PHYS_NEXT_STATE_TYPE_INIT_3D (YDVARS%${v.name}$(JGFL), SELF%${v.name}$(JGFL), YDCPG_SL1%${v.name}$(JGFL))
+      ENDDO
+    ENDIF
+  #:elif v.dim == 3
+    CALL MF_PHYS_NEXT_STATE_TYPE_INIT_3D (YDVARS%${v.name}$, SELF%${v.name}$, YDCPG_SL1%${v.name}$)
+  #:endif
+#:endfor
+  ENDIF  
+
+ELSE
+
+  SELF%U%P     => YDVARS%U%T1
+  SELF%U%F_P   => YDVARS%U%FT1
+  SELF%V%P     => YDVARS%V%T1
+  SELF%V%F_P   => YDVARS%V%FT1
+  SELF%T%P     => YDVARS%T%T1
+  SELF%T%F_P   => YDVARS%T%FT1
+  SELF%SVD%P   => YDVARS%SVD%T1
+  SELF%SVD%F_P => YDVARS%SVD%FT1
+  SELF%SP%P    => YDVARS%SP%T1
+  SELF%SP%F_P  => YDVARS%SP%FT1
+
+#:for v in gfl.variables
+  #:if v.array
+  IF (ASSOCIATED (YDVARS%${v.name}$)) THEN
+    ALLOCATE (SELF%${v.name}$ (SIZE (YDVARS%${v.name}$)))
+    DO JGFL = 1, SIZE (YDVARS%${v.name}$)
+      CALL MF_PHYS_NEXT_STATE_TYPE_INIT_EUL_3D (YDVARS%${v.name}$(JGFL), SELF%${v.name}$(JGFL))
+    ENDDO
+  ENDIF
+  #:elif v.dim == 3
+  CALL MF_PHYS_NEXT_STATE_TYPE_INIT_EUL_3D (YDVARS%${v.name}$, SELF%${v.name}$)
+  #:endif
+#:endfor
+
+ENDIF
+
+END ASSOCIATE
+
+CONTAINS
+
+SUBROUTINE MF_PHYS_NEXT_STATE_TYPE_INIT_EUL_3D (YDV3D, YDN3D)
+
+USE VARIABLE_MODULE, ONLY: VARIABLE_3D
+
+TYPE (VARIABLE_3D),                INTENT (IN)    :: YDV3D
+TYPE (MF_PHYS_NEXT_STATE_3D_TYPE), INTENT (INOUT) :: YDN3D
+
+YDN3D%P   => YDV3D%T1
+YDN3D%F_P => YDV3D%FT1
+
+END SUBROUTINE 
+
+SUBROUTINE MF_PHYS_NEXT_STATE_TYPE_INIT_3D (YDV3D, YDN3D, YDF3D)
+
+USE CPG_TYPE_MOD, ONLY : CPG_SL1_3D_TYPE
+USE VARIABLE_MODULE, ONLY: VARIABLE_3D
+
+TYPE (VARIABLE_3D),                INTENT (IN)    :: YDV3D
+TYPE (MF_PHYS_NEXT_STATE_3D_TYPE), INTENT (INOUT) :: YDN3D
+TYPE (CPG_SL1_3D_TYPE),            INTENT (IN)    :: YDF3D
+
+IF (YDV3D%LADV) THEN
+  YDN3D%P   => YDF3D%P
+  YDN3D%F_P => YDF3D%F_P
+ELSE
+  YDN3D%P   => YDV3D%T1
+  YDN3D%F_P => YDV3D%FT1
+ENDIF
+
+END SUBROUTINE 
+
+SUBROUTINE MF_PHYS_NEXT_STATE_TYPE_INIT_SPLTHOI_3D (YDV3D, YDN3D, YDF3D)
+
+USE CPG_TYPE_MOD, ONLY : CPG_SL1_3D_TYPE
+USE VARIABLE_MODULE, ONLY: VARIABLE_3D
+
+TYPE (VARIABLE_3D),                INTENT (IN)    :: YDV3D
+TYPE (MF_PHYS_NEXT_STATE_3D_TYPE), INTENT (INOUT) :: YDN3D
+TYPE (CPG_SL1_3D_TYPE),            INTENT (IN)    :: YDF3D
+
+IF (YDV3D%LADV) THEN
+  YDN3D%P   => YDF3D%P_F
+  YDN3D%F_P => YDF3D%F_P_F
+ELSE
+  YDN3D%P   => YDV3D%T1
+  YDN3D%F_P => YDV3D%FT1
+ENDIF
+
+END SUBROUTINE
+
+END SUBROUTINE MF_PHYS_NEXT_STATE_TYPE_INIT
+
+SUBROUTINE MF_PHYS_NEXT_STATE_TYPE_UPDATE_VIEW (SELF, BLOCK_INDEX)
+CLASS (MF_PHYS_NEXT_STATE_TYPE)              :: SELF
+INTEGER(KIND=JPIM), INTENT (IN)   :: BLOCK_INDEX
+
+INTEGER (KIND=JPIM) :: JGFL
+
+IF (ASSOCIATED (SELF%U%F_P)) THEN
+  SELF%U%P => SELF%U%F_P%GET_VIEW (BLOCK_INDEX)
+ENDIF
+
+IF (ASSOCIATED (SELF%V%F_P)) THEN
+  SELF%V%P => SELF%V%F_P%GET_VIEW (BLOCK_INDEX)
+ENDIF
+
+IF (ASSOCIATED (SELF%T%F_P)) THEN
+  SELF%T%P => SELF%T%F_P%GET_VIEW (BLOCK_INDEX)
+ENDIF
+
+IF (ASSOCIATED (SELF%SVD%F_P)) THEN
+  SELF%SVD%P => SELF%SVD%F_P%GET_VIEW (BLOCK_INDEX)
+ENDIF
+
+IF (ASSOCIATED (SELF%SP%F_P)) THEN
+  SELF%SP%P => SELF%SP%F_P%GET_VIEW (BLOCK_INDEX)
+ENDIF
+
+#:for v in gfl.variables
+  #:if v.array
+DO JGFL = 1, SIZE (SELF%${v.name}$)
+  IF (ASSOCIATED (SELF%${v.name}$(JGFL)%F_P)) THEN
+    SELF%${v.name}$(JGFL)%P => SELF%${v.name}$(JGFL)%F_P%GET_VIEW (BLOCK_INDEX)
+  ENDIF
+ENDDO
+  #:elif v.dim == 3
+IF (ASSOCIATED (SELF%${v.name}$%F_P)) THEN
+  SELF%${v.name}$%P => SELF%${v.name}$%F_P%GET_VIEW (BLOCK_INDEX)
+ENDIF
+  #:endif
+#:endfor
+
+END SUBROUTINE MF_PHYS_NEXT_STATE_TYPE_UPDATE_VIEW 
+
+END MODULE MF_PHYS_NEXT_STATE_TYPE_MOD
diff --git a/src/arome/ext/spp_mod_type.F90 b/src/arome/ext/spp_mod_type.F90
deleted file mode 100644
index 9878fb5f795b5adaaaecdd8ead6c98015f905843..0000000000000000000000000000000000000000
--- a/src/arome/ext/spp_mod_type.F90
+++ /dev/null
@@ -1,123 +0,0 @@
-MODULE SPP_MOD_TYPE
-
- USE MODE_MSG,            ONLY: PRINT_MSG, NVERB_FATAL
- IMPLICIT NONE
-
- 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/su0yomb.F90 b/src/arome/ext/su0yomb.F90
index ce54f09d5079a427a5feb4c7e85168e16aa02993..b2c81e8ed5c8c6c12d78ed3401f56158052d989b 100644
--- a/src/arome/ext/su0yomb.F90
+++ b/src/arome/ext/su0yomb.F90
@@ -102,8 +102,9 @@ SUBROUTINE SU0YOMB(YDFPOS,YDGEOMETRY,YDFIELDS,YDMTRAJ,YDMODEL,YDJOT,YDVARBC,YDTC
 !        S. Massart   19-Feb-2019 Augmented control variable
 !        Y. Michel, MF,  Mar 2019 Extention of the control variable for sqrt EnVar
 !        C. Lupu 29-Mar-2019 Allow call to SUINSKTE
-!        R. El Khatib 20-Sep-2021 Manage dependency between post-processor and surface fields objects
 !        L. Descamps, MF, Feb 2020 : Add a call to random parameters scheme for PEARP
+!        M. Leutbecher Oct-2020 SPP abstraction
+!        R. El Khatib 20-Sep-2021 Manage dependency between post-processor and surface fields objects
 !        R. El Khatib 18-Jul-2022 LAPL_ARPEGE in YRPHY
 !     ------------------------------------------------------------------
 
@@ -113,17 +114,17 @@ USE VARIABLES_MOD   , ONLY : VARIABLES, VARIABLES_CREATE, VARIABLES_DELETE
 USE FIELDS_MOD      , ONLY : FIELDS, FIELDS_CREATE, FIELDS_DELETE, FIELDS_CONTAIN
 USE MTRAJ_MOD       , ONLY : MTRAJ
 USE PARKIND1        , ONLY : JPIM, JPRB
-USE YOMHOOK         , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK         , ONLY : LHOOK, DR_HOOK, JPHOOK
 USE YOMLUN          , ONLY : NULOUT
 USE JO_TABLE_MOD    , ONLY : JO_TABLE
 USE YOMCT0          , ONLY : LR2D ,NCONF, LBACKG, LSPBSBAL, LELAM,LARPEGEF,&
  &                           LOBS, LOBSC1, LSCREEN, LIFSTRAJ, LIFSMIN, NFPOS,&
  &                           NFRCO, LGRIB_API
 USE YOMARG          , ONLY : NGRIBFILE
-USE YOMVAR          , ONLY : LMODERR , LVARBC, LJCDFI, LMONITOR_FCDEPAR,LBACKGERENORM, LACV,LENSCV
+USE YOMVAR          , ONLY : LMODERR , LVARBC, LJCDFI, LMONITOR_FCDEPAR,LBACKGERENORM, LECV,LENSCV
 USE ALGORITHM_STATE_MOD  , ONLY : GET_NUPTRA
 USE YOMJG           , ONLY : JB_STRUCT
-USE YOMJQ           , ONLY : LSTATMERR
+USE YOMJQ           , ONLY : YGERRMOD, LSTATMERR
 USE YOMLCZ          , ONLY : L_SUBSPACE_SVS, LFORCEWR
 USE YOMCVA          , ONLY : CVA_STRUCT, SCALP_STRUCT, CVA_DATA
 USE YOMSKTER        , ONLY : YGSKTER
@@ -132,10 +133,9 @@ USE TRAJECTORY_MOD  , ONLY : LTRAJRESET, LTRAJHR, ALLOCATE_TRAJECTORY,&
 USE YOMGWDIAG       , ONLY : SETUP_GWDIAG
 USE YEMJK           , ONLY : LEJK
 USE YOMINI          , ONLY : LDFI
-USE YOMSPSDT        , ONLY : YSPPT_CONFIG, YSPPT
 USE YOE_CUCONVCA    , ONLY : INI_CUCONVCA
 USE MODULE_RADTC_MIX, ONLY : YM_RADTC ,SUPTRTC
-USE YEMLBC_MODEL      , ONLY : SUELBC_MODEL
+USE YEMLBC_MODEL    , ONLY : SUELBC_MODEL,SUELBC_INIT,SUELBC_FIELDS_DIM
 USE YEMLBC_FIELDS   , ONLY : SUELBC_FIELDS
 USE YOMIO_SERV      , ONLY : IO_SERV_C001
 USE YOM_GRIB_CODES  , ONLY : NGRBNOXLOG
@@ -143,13 +143,13 @@ USE SPNG_MOD        , ONLY : SUSPNG
 USE YOMTRAJ         , ONLY : LTRAJALLOC, TRAJEC
 USE YOMMP0          , ONLY : NPROC
 USE TESTVAR_MIX     , ONLY : SETUP_TESTVAR
-USE SPP_MOD         , ONLY : YSPP_CONFIG, YSPP
 USE VARBC_CLASS     , ONLY : CLASS_VARBC
-USE TOVSCV_MOD      , ONLY : TOVSCV,CREATE_TOVSCV
-USE TOVSCV_BGC_MOD  , ONLY : TOVSCV_BGC,CREATE_TOVSCV_BGC
+USE TOVSCV_MOD      , ONLY : TOVSCV
+USE TOVSCV_BGC_MOD  , ONLY : TOVSCV_BGC
 USE YOMSPJB         , ONLY : BACKGROUND, ALLOCATE_JB_REF_STATE
-USE YOMJBACV        , ONLY : LJB_HYBRID_ACV, LPAROPTIACV, READ_FG_ACV
-USE YOMJBPAR1DACV   , ONLY : SUPARACVMIN
+USE YOMJBECV        , ONLY : LJB_ALPHA_CV, LECPHYSPARECV, READ_FG_ECV
+USE YOMJBPAR1DECV   , ONLY : SUPARECVMIN
+USE YOMJBECPHYSECV   ,ONLY : SUINFCE_ECPHYS, LSOLARCST
 USE MPL_MODULE      , ONLY : MPL_END, MPL_BARRIER
 USE IOSTREAM_MIX    , ONLY : IOSTREAM_STATS,YGBH
 USE DBASE_MOD       , ONLY : DBASE
@@ -159,6 +159,8 @@ USE YOMXFU          , ONLY : TXFU_KEYS
 USE YOMFP_SERV, ONLY : FP_SERV_C001
 USE CONTROL_VECTORS_MOD
 USE SPECTRAL_FIELDS_MOD
+USE YOMMODERR       , ONLY : SPCTLMODERR
+USE OBS_STORE_OPTIONS_MOD, ONLY : YDOBS_STORE_OPTIONS
 
 
 
@@ -202,7 +204,7 @@ TYPE(VARIABLES)      :: YL_VARS, YNLVARS
 TYPE(FIELDS)         :: YL_TRAJ, YLINFCE
 !!$CHARACTER(LEN=9)   :: CLCONF
 
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !     ------------------------------------------------------------------
 
 #include "get_spp_conf.intfb.h"
@@ -250,6 +252,7 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE
 #include "suinfce.intfb.h"
 #include "suinskte.intfb.h"
 #include "sueinfce.intfb.h"
+#include "suinterpolator.intfb.h"
 #include "suensdim.intfb.h"
 #include "suenscov.intfb.h"
 #include "sufw.intfb.h"
@@ -296,7 +299,7 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE
 #include "suallr.intfb.h"
 #include "fp_serv_suiosctmpl.intfb.h"
 #include "fp_serv_cpfpfilter.intfb.h"
-#include "setjbhybacv.intfb.h"
+#include "setjbalphacv.intfb.h"
 #include "suapl_arpege.intfb.h"
 #include "supertpar.intfb.h"
 #include "su_surf_flds.intfb.h"
@@ -317,7 +320,9 @@ ASSOCIATE(YDGFL5=>YDMTRAJ%YRGFL5,YDGMV5=>YDMTRAJ%YRGMV5, YDGFL=>YDFIELDS%YRGFL,Y
  & YDLAP=>YDGEOMETRY%YRLAP, YDSTA=>YDGEOMETRY%YRSTA, YDVAB=>YDGEOMETRY%YRVAB, &
  & YDSIMPHL=>YDMODEL%YRML_PHY_MF%YRSIMPHL,YDLDDH=>YDMODEL%YRML_DIAG%YRLDDH, YDML_LBC=>YDMODEL%YRML_LBC, &
  & YDEWCOU=>YDMODEL%YREWCOU, &
- & YDRCOEF=>YDMODEL%YRML_PHY_RAD%YRRCOEF,YGFL=>YDMODEL%YRML_GCONF%YGFL,YDDIMF=>YDMODEL%YRML_GCONF%YRDIMF)
+ & YDRCOEF=>YDMODEL%YRML_PHY_RAD%YRRCOEF,YGFL=>YDMODEL%YRML_GCONF%YGFL,YDDIMF=>YDMODEL%YRML_GCONF%YRDIMF, &
+ & YDSPPT_CONFIG=>YDMODEL%YRML_GCONF%YRSPPT_CONFIG, YDSPPT=>YDMODEL%YRML_SPPT, &
+ & YDSPP_CONFIG=>YDMODEL%YRML_GCONF%YRSPP_CONFIG, YDSPP=>YDMODEL%YRML_SPP)
 
 ASSOCIATE(NCHEM_ASSIM=>YGFL%NCHEM_ASSIM, NDIM5=>YGFL%NDIM5, YCOMP=>YGFL%YCOMP, &
  & NCMAX=>YDDIM%NCMAX, NGPBLKS=>YDDIM%NGPBLKS, NMSMAX=>YDDIM%NMSMAX, &
@@ -331,7 +336,6 @@ ASSOCIATE(NCHEM_ASSIM=>YGFL%NCHEM_ASSIM, NDIM5=>YGFL%NDIM5, YCOMP=>YGFL%YCOMP, &
  & LSDDH=>YDLDDH%LSDDH, &
  & NALLMS=>YDMP%NALLMS, NPTRLL=>YDMP%NPTRLL, NPTRMS=>YDMP%NPTRMS, &
  & NUMLL=>YDMP%NUMLL, NPSURF=>YDMP%NPSURF, &
- & LWCOU=>YDEWCOU%LWCOU, &
  & LRCOEF=>YDRCOEF%LRCOEF, &
  & LRAYSP=>YDSIMPHL%LRAYSP)
 !     ------------------------------------------------------------------
@@ -362,7 +366,7 @@ IF (LBACKG .OR. LOBSC1 .OR. NCONF == 401 .OR. NCONF == 501 .OR. NCONF == 601 .OR
     WRITE(NULOUT,*) '------ Set up Jb parameters ------------',CLINE
     ALLOCATE(JB_STRUCT)
     ALLOCATE(CVA_DATA)
-    CALL SUJB(YDGEOMETRY,YDMODEL%YRML_GCONF%YRDIMACV,YGFL,JB_STRUCT,CVA_DATA)
+    CALL SUJB(YDGEOMETRY,YDMODEL%YRML_GCONF%YRDIMECV,YGFL,JB_STRUCT,CVA_DATA)
   ENDIF
 ENDIF
 
@@ -379,6 +383,8 @@ IF (LLDIMO) THEN ! OBSERVATION SETUP CAN BE SKIPPED WHEN COMPUTING JB
 
   !     Initialize dimensions for obs. processing, Jo and Jg related arrays
 
+  CALL YDOBS_STORE_OPTIONS%SETUP()
+
   IWINLEN = YDMODEL%YRML_GCONF%YRRIP%NSTOP*YDMODEL%YRML_GCONF%YRRIP%TSTEP
   CALL SUDIMO(YDGEOMETRY,IWINLEN,NULOUT,YDODB)
 
@@ -395,27 +401,29 @@ IF (LLDIMO) THEN ! OBSERVATION SETUP CAN BE SKIPPED WHEN COMPUTING JB
   IF (LOBS .AND. LVARBC) THEN
     IF (IABS(NCONF/100)==1) THEN
       IF (.NOT.ASSOCIATED(CVA_DATA)) CALL ABOR1('CVA_DATA has not been set up')
-      CALL YDVARBC%SETUP_MIN(CVA_DATA%NVAPARAM)
+      CALL YDVARBC%SETUP_MIN(CVA_DATA%NVAPARAM, YDODB)
     ENDIF
   ENDIF
   IF (LOBS) THEN
     IF (IABS(NCONF/100)==1) THEN
-      CALL CREATE_TOVSCV(YDTCV)
-      CALL CREATE_TOVSCV_BGC(YDTCV_BGC)
+      CALL YDTCV%CREATE_TOVSCV()
+      CALL YDTCV_BGC%CREATE_TOVSCV_BGC()
     ENDIF
   ENDIF
 ENDIF
 
 !*     Allocate spectral arrays
 WRITE(NULOUT,*) '-- Set up spectral arrays allocation-',CLINE
-CALL SUSPVARIABLES(YDMODEL%YRML_GCONF)
+CALL SUSPVARIABLES(YDMODEL%YRML_GCONF,YDMODEL%YRML_DYN%YRDYNA%LNHX,&
+ & YDMODEL%YRML_DYN%YRDYNA%LNHDYN)
 IF(NCONF /= 901.AND.NCONF /= 923) THEN
   IGRIB(1:NS3D)=YDMODEL%YRML_GCONF%YRDIMF%NGRBSP3(:)
   IGRIB(NS3D+1:NS3D+NS2D)=YDMODEL%YRML_GCONF%YRDIMF%NGRBSP2(:)
   WRITE(NULOUT,*)'-- Calling ALLOCATE_SPEC ',IGRIB(1:NS3D+NS2D)
-  CALL ALLOCATE_SPEC(YDFIELDS%YRSPEC, NFLEVL, NFLEVG, NUMP, MYMS, NSMAX, NMSMAX, NALLMS,&
+!!  CALL ALLOCATE_SPEC(YDFIELDS%YRSPEC, NFLEVL, NFLEVG, NUMP, MYMS, NSMAX, NMSMAX, NALLMS,&
+  CALL CREATE_SPEC(YDFIELDS%YRSPEC, NFLEVL, NFLEVG, NUMP, MYMS, NSMAX, NMSMAX, NALLMS,&
                    & NPTRMS, NUMLL, NPTRLL, NPSURF, NS3D, NS2D, IGRIB)
-  CALL SUALSPA(YDGEOMETRY)
+  CALL SUALSPA(YDGEOMETRY,YDMODEL%YRML_DYN%YRDYNA%LGRADSP)
 ELSE
   WRITE(NULOUT,*) 'SU0YOMB: No call for SUALSPA1'
 ENDIF
@@ -445,7 +453,8 @@ SETUP_JB: IF (LBACKG .OR. LOBSC1 .OR. NCONF == 401 .OR. NCONF == 501 .OR. NCONF
     & (LTRAJHR .AND. LIFSTRAJ)) THEN
     ALLOCATE(BACKGROUND)
   ENDIF
-  CALL ALLOCATE_SPEC(JB_STRUCT%JB_DATA%SPJB, YDGEOMETRY, JB_STRUCT%CONFIG%SPVARS)
+!!  CALL ALLOCATE_SPEC(JB_STRUCT%JB_DATA%SPJB, YDGEOMETRY, JB_STRUCT%CONFIG%SPVARS)
+  CALL ALLOC_SPEC(JB_STRUCT%JB_DATA%SPJB, YDGEOMETRY, JB_STRUCT%CONFIG%SPVARS)
   IF(NCONF == 801)CALL SUALLR(YDGEOMETRY,JB_STRUCT)
 
 !     Setup dimensioning for wavelet Jb
@@ -497,7 +506,8 @@ ENDIF
 !*    Set up DFI (we need geometry for SSDFI)
 IF (LDFI .OR. LJCDFI) THEN
   WRITE(NULOUT,*) '---- Set up DFI: SUDFI -----',CLINE
-  CALL SUDFI(YDMODEL%YRML_PHY_EC%YREPHY,YDMODEL%YRML_GCONF%YRRIP,YDMODEL%YRML_PHY_MF%YRPHY)
+  CALL SUDFI(YDMODEL%YRML_PHY_EC%YREPHY,YDMODEL%YRML_GCONF%YRRIP,YDMODEL%YRML_PHY_MF%YRPHY, &
+   & YDMODEL%YRML_LBC%LTENC)
 ENDIF
 
 !*    Allocate OI CANARI grid points arrays
@@ -522,13 +532,17 @@ CALL SETUP_TESTVAR(YDMODEL%YRML_GCONF%YRRIP)
 WRITE(NULOUT,*) '---- Set up model dynamics ----------',CLINE
 CALL SUDYN(YDGEOMETRY,YDMODEL,NULOUT)
 
+!*    Initialize vertical interpolator
+WRITE(NULOUT,*) '---- Set up vertical interpolator -------',CLINE
+CALL SUINTERPOLATOR(YDGEOMETRY,YDMODEL%YRML_DYN%YRDYNA,YDMODEL%YRML_DYN%YRSLINT)
+
 !*    Initialize Relaxation
 WRITE(NULOUT,*) '------ Set up Relaxation ',CLINE
 CALL SURLX(YDDIM,YDDIMV,YDMODEL%YRML_GCONF%YRRIP,NULOUT)
 
 !*    Initialize new sponge
 WRITE(NULOUT,*) '---- Set up new sponge ----------',CLINE
-CALL SUSPNG(YDMODEL%YRML_DYN%YRSPNG,YDMODEL%YRML_GCONF%YRRIP,YDDIMV%NFLEVG,YDSTA%STZ)
+CALL SUSPNG(YDMODEL%YRML_DYN%YRSPNG,YDMODEL%YRML_GCONF%YRRIP,YDMODEL%YRML_DYN%YRDYNA,YDDIMV%NFLEVG,YDSTA%STZ)
 
 !*    Initialize control of DFI: SUFW
 IF (LDFI .OR. LJCDFI ) THEN
@@ -552,7 +566,8 @@ IF (.NOT.LR2D) THEN
   !*    Initialize special keys for the climate version 2nd part
   WRITE(NULOUT,*) '---- Set up MCC climate model keys (lagged part) --',CLINE
   CALL SUMCCLAG(YDGEM,YDMODEL%YRML_GCONF,YDMODEL%YRML_AOC,YDMODEL%YRML_CHEM%YRCOMPO, &
-       &  YDMODEL%YRML_CHEM%YRCHEM, YDMODEL%YRML_PHY_EC%YREPHY, NULOUT, YDSURF=YDSURF)
+       &  YDMODEL%YRML_CHEM%YRCHEM, YDMODEL%YRML_PHY_AER%YREAERSRC, &
+       &  YDMODEL%YRML_PHY_EC%YREPHY, NULOUT, YDSURF=YDSURF)
 ENDIF
 
 !*    Initialize variables for VAREPS (NB: must be called before SUGRIB)
@@ -573,6 +588,11 @@ IF (NCONF /= 901 .AND. NCONF /= 903) THEN
   CALL SUSC2B(YDGEOMETRY,YDMODEL)
 ENDIF
 
+
+
+
+
+
 !*    Initialize IAU handling
 WRITE(NULOUT,*) '---- Set up IAU handling -',CLINE
 CALL SUIAU(YDMODEL%YRML_GCONF%YRRIP)
@@ -646,7 +666,7 @@ CALL SU_SURF_FLDS(YDGEOMETRY%YRDIMV,YDFIELDS%YRSURF,YDMODEL,KPPVCLIX=IVCLIX,KPPE
 
 !*    Initialize DDH (Horizontal domains diagnostics)
 WRITE(NULOUT,*) '------ Set up DDH diagnostics --------',CLINE
-CALL SUNDDH(YDGEOMETRY,YDFIELDS%YRSURF,YDMODEL)
+CALL SUNDDH(YDGEOMETRY,YDMODEL)
 
 !The call to SUNDDH is too late because the LSDDH key is needed in SUPHMPA
 !The folowing lines are a workaround for this problem (the call to
@@ -672,20 +692,25 @@ ENDIF
 
 !*    Initialize buffers for gridpoint scanning, part C
 WRITE(NULOUT,*) '---- Set up gridpoint scanning, part C ----',CLINE
-CALL SUSC2C(YDGEOMETRY,YDMODEL%YRML_PHY_EC%YREPHY,YDMODEL%YRML_GCONF,YDMODEL%YRML_PHY_MF%YRPHY,YNLVARS,YDFIELDS%YRGFL, &
+CALL SUSC2C(YDGEOMETRY,YDMODEL%YRML_PHY_EC%YREPHY,YDMODEL%YRML_GCONF,YDMODEL%YRML_PHY_MF%YRPHY, &
+ & YDMODEL%YRML_DYN%YRDYNA,YDMODEL%YRML_LBC%LTENC,YNLVARS,YDFIELDS%YRGFL, &
  & YDFIELDS%YRGMV,YDFIELDS%YRSURF)
 CALL VARIABLES_DELETE(YNLVARS)
 
-!*    Initialize forcing by coarser model: part C
-IF (LELAM) THEN
+!*    Initialize forcing by coarser model
+WRITE(NULOUT,*) '--- Set up forcing by coarser model part A ---------',CLINE
+CALL SUELBC_INIT(YDMODEL%YRML_DYN%YRDYNA,YDMODEL%YRML_LBC)
+
+IF (LELAM .AND. NCONF /= 923) THEN
   WRITE(NULOUT,*) '--- Set up forcing by coarser model part C ---------',CLINE
-  CALL SUELBC_FIELDS(YDFIELDS%YRELBC_FIELDS,YDGEOMETRY,YDFIELDS%YRGMV,YDMODEL%YRML_GCONF%YGFL,YDDIMF%NFD2D,YDDIMF%NS3D)
-ENDIF
+  CALL SUELBC_FIELDS_DIM(YDMODEL%YRML_LBC,YDGEOMETRY,YDMODEL%YRML_DYN%YRDYNA, &
+   & YDMODEL%YRML_GCONF%YGFL,YDDIMF%NFD2D,YDDIMF%NS3D)
 
-!*    Initialize forcing by coarser model: part B
-IF (LELAM) THEN
   WRITE(NULOUT,*) '--- Set up forcing by coarser model part B ---------',CLINE
-  CALL SUELBC_MODEL(YDMODEL%YRML_LBC,YDFIELDS%YRELBC_FIELDS,YDGEOMETRY,YDFIELDS%YRGMV,YDMODEL%YRML_GCONF)
+  CALL SUELBC_MODEL(YDMODEL%YRML_LBC,YDGEOMETRY,YDMODEL%YRML_DYN%YRDYNA,YDFIELDS%YRGMV,YDMODEL%YRML_GCONF)
+
+  CALL SUELBC_FIELDS(YDFIELDS%YRELBC_FIELDS,YDMODEL%YRML_LBC,YDGEOMETRY,YDMODEL%YRML_DYN%YRDYNA,YDFIELDS%YRGMV,&
+   & YDMODEL%YRML_GCONF%YGFL,YDDIMF%NFD2D,YDDIMF%NS3D)
 ENDIF
 
 !*    Initialize cumulated fluxes requests
@@ -706,7 +731,8 @@ CALL SUALTDH(YDDIMV,YDMODEL%YRML_DIAG,YDMODEL%YRML_PHY_MF%YRARPHY,YDMODEL%YRML_P
 
 !*    Memory allocation for dynamical DDH tendencies arrays
 WRITE(NULOUT,*) '---- Set up dynamical DDH arrays allocation --',CLINE
-CALL SUALDYN_DDH(YDGEOMETRY,YDMODEL%YRML_DIAG,YDMODEL%YRML_GCONF)
+CALL SUALDYN_DDH(YDGEOMETRY,YDMODEL%YRML_DIAG,YDMODEL%YRML_GCONF,&
+ & YDMODEL%YRML_DYN%YRDYNA%LNHDYN,YDMODEL%YRML_DYN%YRDYNA%LNHX)
 
 !     Setup model error arrays
 IF (LMODERR.OR.LSTATMERR) THEN
@@ -718,10 +744,10 @@ ENDIF
 IF (NCONF/100 /= 9 .AND. NCONF /= 1 .AND. NCONF /= 302 .AND. NCONF /= 201 .AND. NCONF /= 701) THEN
    IF(ASSOCIATED(JB_STRUCT)) THEN
      IF (.NOT.ASSOCIATED(CVA_DATA)) CALL ABOR1('Call SUALCTV, but CVA_DATA is not set up')
-     IF (LPAROPTIACV) THEN
-       CVA_DATA%NVPARACV=YDMODEL%YRML_GCONF%YRDIMACV%NACV_1D
+     IF (LECPHYSPARECV) THEN
+       CVA_DATA%NVPARECV=YDMODEL%YRML_GCONF%YRDIMECV%NECV_1D
      ELSE
-       CVA_DATA%NVPARACV=0
+       CVA_DATA%NVPARECV=0
      ENDIF
      IF (LENSCV) THEN
        WRITE(NULOUT,*) '-- Allocate ens. control variable-',CLINE
@@ -733,7 +759,7 @@ IF (NCONF/100 /= 9 .AND. NCONF /= 1 .AND. NCONF /= 302 .AND. NCONF /= 201 .AND.
      ENDIF
      WRITE(NULOUT,*) '-- Allocate static control variable-',CLINE
      ALLOCATE(CTLVEC_STRUCT)
-     CALL SUALCTV(YDGEOMETRY,CTLVEC_STRUCT,CVA_DATA,JB_STRUCT,YDMODEL%YRML_GCONF%YRDIMACV)      
+     CALL SUALCTV(YDGEOMETRY,CTLVEC_STRUCT,CVA_DATA,JB_STRUCT,YDMODEL%YRML_GCONF%YRDIMECV)      
    ELSE
      CALL ABOR1(' SU0YOMB: case where JB_STRUCT is used, but is not yet set up')
    ENDIF
@@ -929,41 +955,42 @@ IF (LBACKG) THEN
     ENDIF
     CALL SUECGES(YDGEOMETRY,YDFIELDS,YDMTRAJ,YDMODEL,BACKGROUND,JB_STRUCT)
 
-     IF(.NOT.LELAM .OR. .NOT.JB_STRUCT%CONFIG%LSPFCE) THEN
-       CALL VARIABLES_CREATE(YL_VARS, .FALSE.)
-       CALL FIELDS_CREATE(YLINFCE,YDGEOMETRY,YDMODEL,YL_VARS)
-       CALL VARIABLES_DELETE(YL_VARS)
-!!$       IF(LTRAJHR) THEN
-         CALL GET_TRAJ_GRID(YDGEOMETRY,YDMODEL%YRML_GCONF,BACKGROUND,YDGMV,YDGMV5,YLINFCE%YRGMV%GMV,&
-          & YLINFCE%YRGMV%GMVS,YLINFCE%YRGFL%GFL,GET_NUPTRA())
-!!$       ELSE
-!!$         CALL SUINIF(YDGEOMETRY,YLINFCE%YRGFL,YLINFCE%YRSURF,0,YLINFCE%YRSPEC)
-!!$         CLCONF(1:9)='0AAX00000'
-!!$         CALL TRANSINVH(YLINFCE%GEOM,YLINFCE%YRGFL,YLINFCE%YRGMV,CLCONF,YLINFCE%YRSPEC)
-!!$       ENDIF
-         WRITE(NULOUT,*) '---- Set up Jb gridpoint background error stdev --',CLINE
-         IF (LELAM) THEN
-            CALL SUEINFCE(YDGEOMETRY,JB_STRUCT)
-         ELSE
-            CALL SUINFCE(YDGEOMETRY,YDMODEL%YRML_GCONF,YLINFCE,JB_STRUCT)
-         ENDIF
-       CALL FIELDS_DELETE(YLINFCE)
-     ENDIF
-     IF (.NOT.LELAM .AND. LACV .AND. IABS(NCONF/100)==1) THEN
-       WRITE(NULOUT,*) '---- Set up JB augmented control variable --',CLINE
-       CALL READ_FG_ACV(YDGEOMETRY,YDMODEL%YRML_GCONF%YRDIMACV,LDBCK=.TRUE.)
-       CALL READ_FG_ACV(YDGEOMETRY,YDMODEL%YRML_GCONF%YRDIMACV)
-       IF (LPAROPTIACV) CALL SUPARACVMIN(YDGEOMETRY)
-       IF (LJB_HYBRID_ACV) CALL SETJBHYBACV(YDGEOMETRY, YDMTRAJ, YDFIELDS, YDMODEL, BACKGROUND, JB_STRUCT)
-     ENDIF
-
-
+    IF(.NOT.LELAM .OR. .NOT.JB_STRUCT%CONFIG%LSPFCE) THEN
+      CALL VARIABLES_CREATE(YL_VARS, .FALSE.)
+      CALL FIELDS_CREATE(YLINFCE,YDGEOMETRY,YDMODEL,YL_VARS)
+      CALL VARIABLES_DELETE(YL_VARS)
+!!$      IF(LTRAJHR) THEN
+        CALL GET_TRAJ_GRID(YDGEOMETRY,YDMODEL%YRML_GCONF,BACKGROUND,YDGMV,YDGMV5,YLINFCE%YRGMV%GMV,&
+         & YLINFCE%YRGMV%GMVS,YLINFCE%YRGFL%GFL,GET_NUPTRA())
+!!$      ELSE
+!!$        CALL SUINIF(YDGEOMETRY,YLINFCE%YRGFL,YLINFCE%YRSURF,0,YLINFCE%YRSPEC)
+!!$        CLCONF(1:9)='0AAX00000'
+!!$        CALL TRANSINVH(YLINFCE%GEOM,YLINFCE%YRGFL,YLINFCE%YRGMV,CLCONF,YLINFCE%YRSPEC)
+!!$      ENDIF
+        WRITE(NULOUT,*) '---- Set up Jb gridpoint background error stdev --',CLINE
+        IF (LELAM) THEN
+           CALL SUEINFCE(YDGEOMETRY,JB_STRUCT)
+        ELSE
+           CALL SUINFCE(YDGEOMETRY,YDMODEL%YRML_GCONF,YLINFCE,JB_STRUCT)
+        ENDIF
+      CALL FIELDS_DELETE(YLINFCE)
+    ENDIF
+    IF (.NOT.LELAM .AND. LECV .AND. IABS(NCONF/100)==1) THEN
+      WRITE(NULOUT,*) '---- Set up JB extended control variable --',CLINE
+      CALL READ_FG_ECV(YDGEOMETRY,YDMODEL%YRML_GCONF%YRDIMECV,YDFIELDS%YRSURF,LDBCK=.TRUE.)
+      CALL READ_FG_ECV(YDGEOMETRY,YDMODEL%YRML_GCONF%YRDIMECV)
+      IF (LECPHYSPARECV) THEN
+        CALL SUINFCE_ECPHYS(YDGEOMETRY,JB_STRUCT)
+        IF (LSOLARCST) CALL SUPARECVMIN(YDGEOMETRY)
+      ENDIF
+      IF (LJB_ALPHA_CV) CALL SETJBALPHACV(YDGEOMETRY, YDMTRAJ, YDFIELDS, YDMODEL, BACKGROUND, JB_STRUCT)
+    ENDIF
   ENDIF
 
 !*    Initialize Jq error covariances
   IF (LMODERR) THEN
     WRITE(NULOUT,*) '---- Set up Jq error covariances --',CLINE
-    CALL SUJQ(YDGEOMETRY,YDMODEL%YRML_GCONF%YRRIP)
+    CALL SUJQ(YGERRMOD,YDGEOMETRY,SPCTLMODERR)
   ENDIF
 
 !*    Delete temporary FIELDS-type trajectory structure
@@ -973,8 +1000,10 @@ ENDIF
 !     Set up spectral stochastic diabatic tendencies
 WRITE(NULOUT,'(A72)') '--- Set up stochastically perturbed parametrization tendencies '//CLINE
 WRITE(NULOUT,*)       '      SPPT a.k.a. stochastic physics with spectral pattern'
-CALL SUSPSDT(YDGEOMETRY,YDMODEL%YRML_GCONF%YRRIP,YSPPT_CONFIG,YSPPT)
+CALL SUSPSDT(YDGEOMETRY,YDMODEL%YRML_GCONF%YRRIP,YDSPPT_CONFIG,YDSPPT)
+#ifndef WITHOUT_SURFEX
 CALL SUPERTPAR(YDMODEL%YRML_PHY_MF,YDMODEL%YRML_PHY_EC%YRECUMF,YDMODEL%YRML_PHY_RAD%YRERAD)
+#endif
 
 !*    Initialize scalar product
 IF(.NOT.(NCONF == 1.OR.NCONF == 302.OR.ICONF == 2.OR.ICONF == 9.OR.ICONF == 7 )) THEN
@@ -1014,14 +1043,15 @@ IF (.NOT. LTRAJALLOC .AND. ((NCONF /= 401).AND.(NCONF /= 501).AND. (&
 ENDIF
 
 WRITE(NULOUT,'(A72)') '--- Set up stochastic physics, SPBS, CABS '//CLINE
-CALL INI_CUCONVCA(YDGEOMETRY,YDMODEL%YRML_PHY_EC%YRECUCONVCA,YDMODEL%YRML_DYN%YRSL)
+CALL INI_CUCONVCA(YDGEOMETRY,YDMODEL%YRML_DYN%YRDYNA,&
+ & YDMODEL%YRML_PHY_EC%YRECUCONVCA,YDMODEL%YRML_DYN%YRSL)
 CALL SURAND1(YDGEOMETRY,YDMODEL%YRML_PHY_STOCH,YDMODEL%YRML_DYN%YRDYN,YDMODEL%YRML_GCONF%YRRIP, &
  &           YDMODEL%YRML_PHY_EC%YRECUCONVCA)
 !     Set up stochastically perturbed parameterisation scheme
 
 WRITE(NULOUT,*) '--- Set up stochastically perturbed parametrization scheme (SPP)  ',CLINE
-CALL GET_SPP_CONF(YDMODEL%YRML_GCONF%YRRIP,YSPP_CONFIG)
-CALL INI_SPP(YDGEOMETRY,YDMODEL%YRML_GCONF%YRRIP,YSPP_CONFIG,YSPP)
+CALL GET_SPP_CONF(YDMODEL%YRML_GCONF%YRRIP,YDSPP_CONFIG)
+CALL INI_SPP(YDGEOMETRY,YDMODEL%YRML_GCONF%YRRIP,YDSPP_CONFIG,YDSPP)
 
 !     provide optional GEOMETRY argument here, since these are MODEL processes rather than IO_SERV ones
 WRITE(NULOUT,*) '---- Create io server file templates --',CLINE
@@ -1035,7 +1065,7 @@ CALL SETUP_GWDIAG(YDDIM)
 !    Set up flexible physics-dynamics interface
 WRITE(NULOUT,*) '---- Set up flexible physics-dynamics interface --',CLINE
 CALL SUINTFLEX(YGFL,YDMODEL%YRML_PHY_MF%YRARPHY,YDMODEL%YRML_PHY_MF%YRPHY)
-CALL FIELDS_CONTAIN(YDFIELDS,YDGEOMETRY)
+CALL FIELDS_CONTAIN(YDFIELDS,YDGEOMETRY,YDMODEL)
 
 IF (YDMODEL%YRML_PHY_MF%YRPHY%LAPL_ARPEGE) THEN
   !     Check LAPL_ARPEGE consistency 
diff --git a/src/arome/ext/suparar.F90 b/src/arome/ext/suparar.F90
index 95243b7c226a1c2b1e1f9e7f8cf82ff6e5838816..799230107f419e21a1b304f18b93ff9637719c50 100644
--- a/src/arome/ext/suparar.F90
+++ b/src/arome/ext/suparar.F90
@@ -59,7 +59,7 @@ SUBROUTINE SUPARAR(YDGEOMETRY,YGFL,YDML_PHY_MF,KULOUT)
 
 USE MODEL_PHYSICS_MF_MOD , ONLY : MODEL_PHYSICS_MF_TYPE
 USE PARKIND1  ,ONLY : JPIM     ,JPRB
-USE YOMHOOK   ,ONLY : LHOOK    ,DR_HOOK
+USE YOMHOOK   ,ONLY : LHOOK    ,DR_HOOK, JPHOOK
 USE YOM_YGFL  ,ONLY : TYPE_GFLD
 USE GEOMETRY_MOD, ONLY : GEOMETRY
 USE YOMCT0    ,ONLY : NUNDEFLD, LSFORCS
@@ -81,7 +81,7 @@ INTEGER(KIND=JPIM) :: INDEF
 
 !     ------------------------------------------------------------------
 
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 
 !     ------------------------------------------------------------------
 
diff --git a/src/arome/ext/suphmpa.F90 b/src/arome/ext/suphmpa.F90
index a1bfcd912127f26828e3a3985eafb4af9153ff7a..35ceb6164e74523771d371c78cd12f7b161a24ab 100644
--- a/src/arome/ext/suphmpa.F90
+++ b/src/arome/ext/suphmpa.F90
@@ -1,4 +1,4 @@
-SUBROUTINE SUPHMPA(YDGEOMETRY,YDLDDH,YDML_GCONF,YDML_PHY_MF,KULOUT)
+SUBROUTINE SUPHMPA(YDGEOMETRY,YDLDDH,YDML_GCONF,YDDYNA,YDML_PHY_MF,KULOUT)
 
 !**** *SUPHMPA*   - Initialize common meso_NH MODD_ used in physics for AROME
 
@@ -52,11 +52,12 @@ USE MODEL_GENERAL_CONF_MOD , ONLY : MODEL_GENERAL_CONF_TYPE
 USE MODEL_PHYSICS_MF_MOD , ONLY : MODEL_PHYSICS_MF_TYPE
 USE GEOMETRY_MOD , ONLY : GEOMETRY
 USE PARKIND1  ,ONLY : JPIM     ,JPRB
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
+USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK, JPHOOK
 USE YOMLUN    ,ONLY : NULNAM
 
+USE YOMDYNA  , ONLY  : TDYNA
 USE YOMLDDH   , ONLY : TLDDH
-USE YOMCT0 ,ONLY : LTWOTL, LELAM
+USE YOMCT0 ,ONLY : LELAM
 
 USE MODD_BUDGET, ONLY : TBUCONF_ASSOCIATE, TBUCONF
 USE MODI_INI_PHYEX, ONLY: INI_PHYEX
@@ -68,6 +69,7 @@ IMPLICIT NONE
 TYPE(GEOMETRY)    ,INTENT(IN)    :: YDGEOMETRY
 TYPE(TLDDH)       ,INTENT(INOUT) :: YDLDDH
 TYPE(MODEL_GENERAL_CONF_TYPE),INTENT(INOUT):: YDML_GCONF
+TYPE(TDYNA), INTENT(IN)          :: YDDYNA
 TYPE(MODEL_PHYSICS_MF_TYPE),INTENT(INOUT):: YDML_PHY_MF
 INTEGER(KIND=JPIM),INTENT(IN)    :: KULOUT
 
@@ -75,7 +77,7 @@ INTEGER(KIND=JPIM),INTENT(IN)    :: KULOUT
 
 
 REAL(KIND=JPRB) :: ZTSTEP, ZDZMIN
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 CHARACTER(LEN=4) :: CSCONV
 
 LOGICAL :: LLNOTMAP
@@ -129,8 +131,8 @@ IF (LELAM) THEN
 ELSE
   LLNOTMAP=.TRUE.
 ENDIF
-CALL AROINI_CONF (KULOUT,LTWOTL,LLNOTMAP) !only needed for LFLAT key used in turbulence
-                                          !call must be suppressed once turbulence source code will be updated
+CALL AROINI_CONF (KULOUT,YDDYNA%LTWOTL,LLNOTMAP) !only needed for LFLAT key used in turbulence
+                                                 !call must be suppressed once turbulence source code will be updated
 
 !       3. Initialisation of Budget
 
diff --git a/src/arome/ext/suphmse.F90 b/src/arome/ext/suphmse.F90
index 0a98bbb10772c95ecd186a5609b55c873e9538c7..b3f306ba1643ea1b69af5c4cc7562bdb63b82788 100644
--- a/src/arome/ext/suphmse.F90
+++ b/src/arome/ext/suphmse.F90
@@ -64,11 +64,11 @@ SUBROUTINE SUPHMSE(YDGEOMETRY,YDMODEL,KULOUT)
 USE GEOMETRY_MOD , ONLY : GEOMETRY
 USE TYPE_MODEL, ONLY : MODEL
 USE PARKIND1  ,ONLY : JPIM     ,JPRB, JPRD
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
+USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK, JPHOOK
 
 USE YOMCST    ,ONLY : YDCST=>YRCST ! allows use of included functions. REK.
 USE YOMRIP0   ,ONLY : NINDAT
-USE YOMCT0    ,ONLY : LTWOTL, LELAM, L_OOPS
+USE YOMCT0    ,ONLY : LELAM, L_OOPS
 USE YOMNSV    ,ONLY : NSV_CHEMBEG, NSV_CHEMEND, NSV_DSTBEG, NSV_DSTEND,&
  &                    NSV_AERBEG, NSV_AEREND, NSV_CO2,NSV_DSTDEPBEG,&
  &                    NSV_DSTDEPEND
@@ -89,7 +89,7 @@ INTEGER(KIND=JPIM) :: IDAY, IMONTH, IYEAR, IMYPROC
 
 LOGICAL :: LLNOTMAP
 
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 
 !     ------------------------------------------------------------------
 
@@ -106,7 +106,8 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE
 !     ------------------------------------------------------------------
 IF (LHOOK) CALL DR_HOOK('SUPHMSE',0,ZHOOK_HANDLE)
 ASSOCIATE(YDDIM=>YDGEOMETRY%YRDIM,YDDIMV=>YDGEOMETRY%YRDIMV,YDGEM=>YDGEOMETRY%YRGEM, YDMP=>YDGEOMETRY%YRMP, &
- & YDEGEO=>YDGEOMETRY%YREGEO, YDARPHY=>YDMODEL%YRML_PHY_MF%YRARPHY, YGFL=>YDMODEL%YRML_GCONF%YGFL)
+ & YDEGEO=>YDGEOMETRY%YREGEO, YDARPHY=>YDMODEL%YRML_PHY_MF%YRARPHY, YGFL=>YDMODEL%YRML_GCONF%YGFL, &
+ & YDDYNA=>YDMODEL%YRML_DYN%YRDYNA)
 ASSOCIATE(LRDUST=>YDARPHY%LRDUST, LINITDUST=>YDARPHY%LINITDUST, &
  & LRDEPOS=>YDARPHY%LRDEPOS, LUSECHEM=>YDARPHY%LUSECHEM, &
  & LINITORILAM=>YDARPHY%LINITORILAM, LMDUST=>YDARPHY%LMDUST, &
@@ -129,7 +130,7 @@ ENDIF
 IF (.NOT.LMPA) THEN
   CALL INI_CST
 ENDIF
-CALL AROINI_CONF(KULOUT,LTWOTL,LLNOTMAP)
+CALL AROINI_CONF(KULOUT,YDDYNA%LTWOTL,LLNOTMAP)
 
 !     initialisation of chemistry, aerosols and dust scheme
 ! ANNEE
diff --git a/src/arome/ext/vdfhghtnhl.F90 b/src/arome/ext/vdfhghtnhl.F90
index b71613613737f39ce31a87b7e161e0404f8864f6..ca6a3b016d90be0814a70612f79150c34bc78c7b 100644
--- a/src/arome/ext/vdfhghtnhl.F90
+++ b/src/arome/ext/vdfhghtnhl.F90
@@ -134,7 +134,7 @@ SUBROUTINE VDFHGHTNHL (YDVDF,YDEPHLI,YDECUMF,YDEPHY,YDPARAR,KIDIA   , KFDIA   ,
 USE YOEPHLI  , ONLY : TEPHLI
 USE PARKIND1  ,ONLY : JPIM     ,JPRB
 
-USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
+USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK, JPHOOK
 
 USE YOMCST   , ONLY : YDCST=>YRCST ! allows use of included functions. REK.
 USE YOETHF   , ONLY : YDTHF=>YRTHF ! allows use of included functions. REK.
@@ -303,7 +303,7 @@ REAL(KIND=JPRB) :: ZTAUEPS_TEST
 INTEGER(KIND=JPIM) :: IZI(KLON,KDRAFT)
 
 
-REAL(KIND=JPRB) ::    ZHOOK_HANDLE
+REAL(KIND=JPHOOK) ::    ZHOOK_HANDLE
 
 
 #include "surf_inq.h"
diff --git a/src/arome/ext/yemlbc_model.F90 b/src/arome/ext/yemlbc_model.F90
new file mode 100644
index 0000000000000000000000000000000000000000..2ca83584102a50ac7d90d1cc2431130fbd53f859
--- /dev/null
+++ b/src/arome/ext/yemlbc_model.F90
@@ -0,0 +1,1665 @@
+MODULE YEMLBC_MODEL
+
+! Purpose :
+! -------
+!    Forcing a LAM model by another model: part 0B
+!    - forcing by lateral boundary conditions
+!    - pressure tendency coupling
+!    - spectral nudging
+
+! Interface :
+! ---------
+!    Empty.
+
+! External :
+! --------
+!    None.
+
+! Method :
+! ------
+!    See Documentation.
+
+! Reference :
+! ---------
+
+! Author :
+! ------
+!    K. YESSAD (CNRM/GMAP) after YEMBICU, YEMDYN, YEMGT3B, SUEBICU, SUEDYN, SUESC2.
+! Original : December 2010
+
+! Modifications :
+! -------------
+! Daan Degrauwe: Feb 2012 Boyd biperiodization         
+! T. Wilhelmsson and K. Yessad (Oct 2013) Geometry and setup refactoring.
+! B. Bochenek (Oct 2013): Weights for LBC interpolation
+! K. Yessad (July 2014): Move some variables.
+! F. Taillefer (Aug 2015)  Add control of no coupling at all in canari by namelist
+! M. Hortal (Dec 2014): Upper boundary relaxation
+! P. Marguinaud (Oct 2016) : Port to single precision
+! J. Vivoda (Mar 2017): Fixing bug in options LQCPL and LCCPL
+! WARNING! The bug is in swapping LBC buffers P*CPL entering ESC2R. Fix does
+! not remove it, but adjusts interpolation weights EWB accordingly. Clean
+! solution is to correct swapping of LBC buffers, otherwise the code will
+! remain difficult to understand.
+! H. Dhouioui (Sep 2017) renamed from elbc0b_mod.F90
+! O. Vignes (Feb 2020): Upper boundary relaxation fixes
+! M. Hamrud (Oct 2021) incorporated YEMLBC_INIT. Forced by move of YOMDYNA 
+! into model object
+!-----------------------------------------------------------------------------
+
+USE PARKIND1 , ONLY : JPIM, JPRB, JPRD
+USE MODEL_GENERAL_CONF_MOD , ONLY : MODEL_GENERAL_CONF_TYPE
+USE YOMHOOK  , ONLY : LHOOK, DR_HOOK, JPHOOK
+USE YOMDFI   , ONLY : NSTDFI, NSTDFIA, RTDFI, RTDFIA
+USE YOMCT0   , ONLY : LRPLANE, LALLOPR, LCANARI,NCONF,LELAM
+USE YOMGMV   , ONLY : TGMV
+USE YOMINI   , ONLY : LDFI
+USE YOMLUN   , ONLY : NULOUT, NULNAM
+USE YOMMP0   , ONLY : MYSETB, MYSETV, LOUTPUT
+
+IMPLICIT NONE
+SAVE
+
+!=============================================================================
+
+!      1.    TYPE DEFINITION
+!            ---------------
+
+! Moved form YEMLBC_FIELDS
+! Structure for GMVS coupled fields in LTENC option.
+TYPE TGMVSTENC
+INTEGER(KIND=JPIM) :: MSP        ! surface pressure variable
+INTEGER(KIND=JPIM) :: MSPL       ! zonal component of grad(surface pressure variable)
+INTEGER(KIND=JPIM) :: MSPM       ! meridian component of grad(surface pressure variable)
+INTEGER(KIND=JPIM) :: NDIM       ! number of coupled fields (includes derivatives)
+INTEGER(KIND=JPIM) :: NDIMT      ! number of temporally interpolated fields (includes derivatives)
+END TYPE TGMVSTENC
+
+TYPE TGMVCPL
+! coupled GMV
+INTEGER(KIND=JPIM) :: MU         ! U-wind
+INTEGER(KIND=JPIM) :: MV         ! V-wind
+INTEGER(KIND=JPIM) :: MT         ! temperature
+INTEGER(KIND=JPIM) :: MSPD       ! pressure departure variable
+INTEGER(KIND=JPIM) :: MSVD       ! vertical divergence variable
+INTEGER(KIND=JPIM) :: MNHX       ! NHX term
+! derivatives required for linear terms calculation (in ESEIMPLS)
+INTEGER(KIND=JPIM) :: MDIV       ! horizontal divergence
+INTEGER(KIND=JPIM) :: MTL        ! zonal component of grad(temperature)
+INTEGER(KIND=JPIM) :: MTM        ! meridian component of grad(temperature)
+INTEGER(KIND=JPIM) :: MSPDL      ! zonal component of grad(pressure departure variable)
+INTEGER(KIND=JPIM) :: MSPDM      ! meridian component of grad(pressure departure variable)
+INTEGER(KIND=JPIM) :: NDIM       ! number of coupled fields (does not include derivatives)
+INTEGER(KIND=JPIM) :: NDIMT      ! number of temporally interpolated fields (includes derivatives)
+END TYPE TGMVCPL
+
+TYPE TGMVSCPL
+INTEGER(KIND=JPIM) :: MSP        ! surface pressure variable
+INTEGER(KIND=JPIM) :: MSPL       ! zonal component of grad(surface pressure variable)
+INTEGER(KIND=JPIM) :: MSPM       ! meridian component of grad(surface pressure variable)
+INTEGER(KIND=JPIM) :: NDIM       ! number of coupled fields (does not include derivatives)
+INTEGER(KIND=JPIM) :: NDIMT      ! number of temporally interpolated fields (includes derivatives)
+END TYPE TGMVSCPL
+
+! ** IMPORTED FROM YEMLBC_INIT
+INTEGER(KIND=JPIM), PARAMETER :: JPLSGT=20
+INTEGER(KIND=JPIM), PARAMETER :: JPALFNM=31
+
+TYPE :: TELBC_MODEL
+
+!      1.1   Coupling of surface pressure tendency
+
+! LTENC   : TRUE if tendency coupling of surface pressure is switched on
+! LALLTC  : used together with LTENC when LTENC=.T.
+!           - no meaning for quadratic tendency coupling, where just t1 coupling
+!             is applied at every NEFRCL time step
+!           - for lin. tendency coupling:
+!             TRUE if tendency coupling of surf. pres. at every step
+!             FALSE if tend. coupl., except at every NEFRCL time steps
+!             when just t1 coupling
+
+LOGICAL :: LTENC
+LOGICAL :: LALLTC
+LOGICAL :: LRFIRST   ! Force reading of first coupling file (usually, it is the
+                     ! same as the initial conditions file)
+
+!      1.2   Lateral forcing
+
+!   NBICOU  : controls coupling of wind components (GMV)
+!   NBICOT  : controls coupling of temperature (GMV)
+!   NBICPD  : controls coupling of pressure departure variable (GMV)
+!   NBICVD  : controls coupling of vertical divergence variable (GMV)
+!   NBICNHX : controls coupling of "NHX" term (GMV)
+!   NBICOP  : controls coupling of surface pressure (GMVS)
+!   Possible value for the NBIC[X] variables:
+!   * 0: no coupling
+!   * 1: default coupling
+!   * 2: specific coupling function
+
+!   NECRIPL : controls timelevel of coupling
+!   * 0: coupling at t
+!   * 1: coupling at t+dt
+!   * 2: coupling at t and t+dt
+!   LQCPL   : if T (resp. F), quadratic (resp. linear) temporal interpolation
+!   LCCPL   : if T (resp. F), cubic (resp. linear) temporal interpolation
+!   NECOTL  : Controls the coupling in the tangent linear model:
+!             0   - no coupling
+!             < 0 - coupling with the Davies relaxation
+!             -1  - the linear time interpolation is switched on
+!             > 0 - coupling other than Davies relaxation (to be implemented)
+!   NECOAD  : cf. NECOTL but for the adjoint model.
+!   LE0COTA : TRUE if the relaxation in the I+E zone is towards
+!             nullified boundary conditions (assumed exact);
+!             FALSE if the relaxation is towards a predefined forcing.
+!             LE0COTA has the same meaning in the TL and AD models
+!             (respectively, relaxation to 0 perturbation or sensitivity)
+!   LEREADINI: TRUE if initial historical file has to be read
+!              (used for E501, E801 - not a namelist parameter)
+!   N1LSG   : if =1, the gradient with respect to the large scale
+!             coupling data has to be written into a file.
+!   NFRLSG  : frequency of writing large scale gradients (time or steps)
+!   NLSGTS  : array containing large scale gradients timesteps
+!             * if NLSGTS(0)=0 action if MOD(JSTEP,NFRLSG)=0
+!             * if NLSGTS(0)>0 NLSGTS(0) significant numbers in NLSGTS
+!               are then considered and action for JSTEP=NLSGTS(.)*NFRLSG
+!             * if NLSGTS(0)<0 action for JSTEP=(NLSGTS(.)/DELTAT)*NFRLSG
+!   LRDLSG  : switch for using boundary data perturbation in conf 1
+!             for sensitivity forecast run.
+!   JPALFNM : Dimension for reading alpha function parameters
+
+INTEGER(KIND=JPIM) :: NBICOU
+INTEGER(KIND=JPIM) :: NBICOT
+INTEGER(KIND=JPIM) :: NBICPD
+INTEGER(KIND=JPIM) :: NBICVD
+INTEGER(KIND=JPIM) :: NBICNHX
+INTEGER(KIND=JPIM) :: NBICOP
+INTEGER(KIND=JPIM) :: NECRIPL
+LOGICAL :: LQCPL 
+LOGICAL :: LCCPL
+INTEGER(KIND=JPIM) :: NECOTL
+INTEGER(KIND=JPIM) :: NECOAD
+LOGICAL :: LE0COTA
+LOGICAL :: LEREADINI
+INTEGER(KIND=JPIM) :: N1LSG
+INTEGER(KIND=JPIM) :: NFRLSG
+INTEGER(KIND=JPIM) :: NLSGTS(0:JPLSGT)
+LOGICAL :: LRDLSG
+
+!      1.3   Spectral nudging
+
+!   LESPCPL  : control of spectral nudging
+
+LOGICAL :: LESPCPL
+LOGICAL :: LSPTENC
+
+!      1.4   Upper nesting boundary conditions
+
+!   LUNBC    : controls upper nesting boundary conditions
+
+LOGICAL :: LUNBC
+
+
+!      2.1   LECOBI.
+
+! LECOBI  : T if there is coupling and biperiodicisation
+
+LOGICAL :: LECOBI
+
+! ** END OF IMPORTED FROM YEMLBC_INIT
+
+! Moved from YEMLBC_FIELDS
+!      1.1   Number of coupled fields, structures for coupled fields.
+
+! YYTGMVSTENC  : contains pointers and number of coupled fields for GMVS in LTENC option
+! YYTGMVCPL    : contains pointers and number of coupled fields for GMV
+! YYTGMVSCPL   : contains pointers and number of coupled fields for GMVS
+! NDIMCPL      : number of GFL fields with true LCOUPLING attribute.
+! NGALEF       : total number of coupled fields.
+
+TYPE(TGMVSTENC) :: YYTGMVSTENC
+TYPE(TGMVCPL) :: YYTGMVCPL
+TYPE(TGMVSCPL) :: YYTGMVSCPL
+INTEGER(KIND=JPIM) :: NDIMCPL
+INTEGER(KIND=JPIM) :: NGALEF
+! End ofMoved from YEMLBC_FIELDS
+
+!      2.    DECLARATIONS
+!            ------------
+
+!      2.0   Control frequency of LBC.
+
+! NEFRCL   : frequency of updating the lateral boundary coupling fields.
+!            The LBC fields will be updated every NEFRCL time steps.
+! NETLS1   : Time step of the first set of lateral boundary  fields.
+! TEFRCL   : time interval between two updatings of the lateral boundary fields
+
+INTEGER(KIND=JPIM) :: NEFRCL
+INTEGER(KIND=JPIM) :: NETLS1
+REAL(KIND=JPRB) :: TEFRCL
+
+!      2.2   Namelist variables for relaxation coefficients (resp for GMV, GMVS, GFL).
+
+REAL(KIND=JPRB) :: EPA_GMV(JPALFNM)
+REAL(KIND=JPRB) :: EPA_GMVS(JPALFNM)
+REAL(KIND=JPRB) :: EPA_GFL(JPALFNM)
+
+!      2.3   Relaxation coefficients.
+
+! EALFA_GMV    : relaxation coefficients alpha for GMV.
+! EALFA_GMVS   : relaxation coefficients alpha for GMVS.
+! EALFA_GFL    : relaxation coefficients alpha for GFL.
+! EALFA_TENC   : relaxation coefficients alpha for LTENC (GMVS only).
+! EALFAGT3GMV  : ALFA (relax. coef.) of coupling points for GMV
+! EALFAGT3GMVS : ALFA (relax. coef.) of coupling points for GMVS
+! EALFAGT3GFL  : ALFA (relax. coef.) of coupling points for GFL
+! EALFAU_GMV   : relaxation coefficients alpha for GMV (upper boundary).
+! EALFAU_GFL   : relaxation coefficients alpha for GFL (upper boundary).
+
+REAL(KIND=JPRB),ALLOCATABLE:: EALFA_GMV(:,:)
+REAL(KIND=JPRB),ALLOCATABLE:: EALFA_GMVS(:,:)
+REAL(KIND=JPRB),ALLOCATABLE:: EALFA_GFL(:,:)
+REAL(KIND=JPRB),ALLOCATABLE:: EALFA_TENC(:,:)
+REAL(KIND=JPRB),ALLOCATABLE:: EALFAGT3GMV(:,:,:)
+REAL(KIND=JPRB),ALLOCATABLE:: EALFAGT3GMVS(:,:,:)
+REAL(KIND=JPRB),ALLOCATABLE:: EALFAGT3GFL(:,:,:)
+REAL(KIND=JPRB),ALLOCATABLE:: EALFAU_GMV(:,:)
+REAL(KIND=JPRB),ALLOCATABLE:: EALFAU_GFL(:,:)
+
+!      2.4   Other variables for grid-point coupling.
+
+! GMGT3        : GM array of coupling points
+! GMGT4        : GM array of coupling points (upper boundary).
+! EWB          : weights for couplings
+! EWBDFIFW     : weights for forward DFI
+! EWBDFIBW     : weights for backward DFI
+! RTENC        : multiplier of EALFA in the tendency coupling scheme
+!                for stability reasons (RTENC<=1. close to 1)
+
+REAL(KIND=JPRB),ALLOCATABLE:: GMGT3(:,:)
+REAL(KIND=JPRB),ALLOCATABLE:: GMGT4(:)
+REAL(KIND=JPRB),ALLOCATABLE:: EWB(:,:,:)
+REAL(KIND=JPRB),ALLOCATABLE:: EWBDFIFW(:,:,:,:)
+REAL(KIND=JPRB),ALLOCATABLE:: EWBDFIBW(:,:,:,:)
+REAL(KIND=JPRB) :: RTENC
+
+!      2.5   Other variables for spectral nudging.
+
+! LSPNUSPDL  : .TRUE. if spectral nudging on Ps is relevant on this MPI task
+! RNUDTFRAC  : Time fraction for spectral nudging
+! NEFRSPCPL  : frequency of spectral nudging
+! NEK0,NEK1  : lower and upper limits for total wavenumber for spectral nudging
+! NEN1,NEN2  : lower and upper model levels for spectral nudging
+! SPNUDVOR   : spectral nudging coeficient for vorticity
+! SPNUDDIV   : spectral nudging coeficient for divergence
+! SPNUDT     : spectral nudging coeficient for temperature
+! SPNUDQ     : spectral nudging coeficient for specific humidity
+! SPNUDSP    : spectral nudging coeficient for surface pressure
+! LNUDSPGFL  : An array to control if any spectral GFL, for nudging
+
+LOGICAL, ALLOCATABLE :: LNUDSPGFL(:)
+LOGICAL :: LSPNUSPDL
+REAL(KIND=JPRB) :: RNUDTFRAC
+INTEGER(KIND=JPIM) :: NEFRSPCPL
+INTEGER(KIND=JPIM) :: NEK0
+INTEGER(KIND=JPIM) :: NEK1
+INTEGER(KIND=JPIM) :: NEN1
+INTEGER(KIND=JPIM) :: NEN2
+REAL(KIND=JPRB) :: SPNUDVOR
+REAL(KIND=JPRB) :: SPNUDDIV
+REAL(KIND=JPRB) :: SPNUDT
+REAL(KIND=JPRB) :: SPNUDQ
+REAL(KIND=JPRB) :: SPNUDSP
+REAL(KIND=JPRB) :: RNUTENC
+
+END TYPE TELBC_MODEL
+
+
+!=============================================================================
+
+CONTAINS
+
+SUBROUTINE SUELBC_FIELDS_DIM(YDML_LBC,YDGEOMETRY,YDDYNA,YGFL,KNFD2D,KNS3D)
+!--------------------------------------------------------------------------
+! Sets-up part 0C of forcing a LAM model by another model
+!--------------------------------------------------------------------------
+
+!--------------------------------------------------------------------------
+
+USE GEOMETRY_MOD , ONLY : GEOMETRY
+USE YOM_YGFL     , ONLY : TYPE_GFLD
+USE YOMDYNA      , ONLY : TDYNA
+TYPE(TELBC_MODEL)     , INTENT(INOUT) :: YDML_LBC 
+TYPE(GEOMETRY)    , INTENT(IN)    :: YDGEOMETRY
+TYPE(TDYNA)       , INTENT(IN)    :: YDDYNA
+TYPE(TYPE_GFLD)   , INTENT(INOUT) :: YGFL
+INTEGER(KIND=JPIM), INTENT(IN)    :: KNFD2D
+INTEGER(KIND=JPIM), INTENT(IN)    :: KNS3D
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
+INTEGER(KIND=JPIM) :: IWS_TENC, ICPL, JGFL, IW, IW_TENC
+
+!--------------------------------------------------------------------------
+IF (LHOOK) CALL DR_HOOK('YEMLBC_FIELDS:SUELBC_FIELDS_DIM',0,ZHOOK_HANDLE)
+!--------------------------------------------------------------------------
+
+!      Part A: calculations and allocations.
+
+! * Calculation of YYGMVSTENC, YYTGMVCPL, YYGMVSCPL, NDIMCPL, NGALEF:
+
+
+! YYGMVSTENC:
+IF (YDML_LBC%LTENC) THEN
+  YDML_LBC%YYTGMVSTENC%MSP=1
+  YDML_LBC%YYTGMVSTENC%MSPL=2
+  YDML_LBC%YYTGMVSTENC%MSPM=3
+  YDML_LBC%YYTGMVSTENC%NDIM=3
+  YDML_LBC%YYTGMVSTENC%NDIMT=3
+ELSE
+  YDML_LBC%YYTGMVSTENC%MSP=1
+  YDML_LBC%YYTGMVSTENC%MSPL=1
+  YDML_LBC%YYTGMVSTENC%MSPM=1
+  YDML_LBC%YYTGMVSTENC%NDIM=1
+  YDML_LBC%YYTGMVSTENC%NDIMT=1
+ENDIF
+
+! YYTGMVCPL:
+IF (NCONF == 701) THEN
+  ! derivatives are useless because ESEIMPLS is not called.
+  IF (YDDYNA%LNHDYN.AND.YDDYNA%LNHX) THEN
+    YDML_LBC%YYTGMVCPL%MU   = 1
+    YDML_LBC%YYTGMVCPL%MV   = 2
+    YDML_LBC%YYTGMVCPL%MT   = 3
+    YDML_LBC%YYTGMVCPL%MSPD = 4
+    YDML_LBC%YYTGMVCPL%MSVD = 5
+    YDML_LBC%YYTGMVCPL%MNHX = 6
+    YDML_LBC%YYTGMVCPL%NDIM = 6
+    YDML_LBC%YYTGMVCPL%NDIMT= 6
+  ELSEIF (YDDYNA%LNHDYN.AND.(.NOT.YDDYNA%LNHX)) THEN
+    YDML_LBC%YYTGMVCPL%MU   = 1
+    YDML_LBC%YYTGMVCPL%MV   = 2
+    YDML_LBC%YYTGMVCPL%MT   = 3
+    YDML_LBC%YYTGMVCPL%MSPD = 4
+    YDML_LBC%YYTGMVCPL%MSVD = 5
+    YDML_LBC%YYTGMVCPL%MNHX = 5
+    YDML_LBC%YYTGMVCPL%NDIM = 5
+    YDML_LBC%YYTGMVCPL%NDIMT= 5
+  ELSE
+    YDML_LBC%YYTGMVCPL%MU   = 1
+    YDML_LBC%YYTGMVCPL%MV   = 2
+    YDML_LBC%YYTGMVCPL%MT   = 3
+    YDML_LBC%YYTGMVCPL%MSPD = 3
+    YDML_LBC%YYTGMVCPL%MSVD = 3
+    YDML_LBC%YYTGMVCPL%MNHX = 3
+    YDML_LBC%YYTGMVCPL%NDIM = 3
+    YDML_LBC%YYTGMVCPL%NDIMT= 3
+  ENDIF
+ELSE
+! derivatives are useful because ESEIMPLS is called.
+  IF (YDDYNA%LNHDYN.AND.YDDYNA%LNHX) THEN
+    YDML_LBC%YYTGMVCPL%MU   = 1
+    YDML_LBC%YYTGMVCPL%MV   = 2
+    YDML_LBC%YYTGMVCPL%MT   = 3
+    YDML_LBC%YYTGMVCPL%MSPD = 4
+    YDML_LBC%YYTGMVCPL%MSVD = 5
+    YDML_LBC%YYTGMVCPL%MNHX = 6
+    YDML_LBC%YYTGMVCPL%NDIM = 6
+    YDML_LBC%YYTGMVCPL%MDIV = 7
+    YDML_LBC%YYTGMVCPL%MTL  = 8
+    YDML_LBC%YYTGMVCPL%MTM  = 9
+    YDML_LBC%YYTGMVCPL%MSPDL=10
+    YDML_LBC%YYTGMVCPL%MSPDM=11
+    YDML_LBC%YYTGMVCPL%NDIMT=11
+  ELSEIF (YDDYNA%LNHDYN.AND.(.NOT.YDDYNA%LNHX)) THEN
+    YDML_LBC%YYTGMVCPL%MU   = 1
+    YDML_LBC%YYTGMVCPL%MV   = 2
+    YDML_LBC%YYTGMVCPL%MT   = 3
+    YDML_LBC%YYTGMVCPL%MSPD = 4
+    YDML_LBC%YYTGMVCPL%MSVD = 5
+    YDML_LBC%YYTGMVCPL%MNHX = 5
+    YDML_LBC%YYTGMVCPL%NDIM = 5
+    YDML_LBC%YYTGMVCPL%MDIV = 6
+    YDML_LBC%YYTGMVCPL%MTL  = 7
+    YDML_LBC%YYTGMVCPL%MTM  = 8
+    YDML_LBC%YYTGMVCPL%MSPDL= 9
+    YDML_LBC%YYTGMVCPL%MSPDM=10
+    YDML_LBC%YYTGMVCPL%NDIMT=10
+  ELSE
+    YDML_LBC%YYTGMVCPL%MU   = 1
+    YDML_LBC%YYTGMVCPL%MV   = 2
+    YDML_LBC%YYTGMVCPL%MT   = 3
+    YDML_LBC%YYTGMVCPL%MSPD = 3
+    YDML_LBC%YYTGMVCPL%MSVD = 3
+    YDML_LBC%YYTGMVCPL%MNHX = 3
+    YDML_LBC%YYTGMVCPL%NDIM = 3
+    YDML_LBC%YYTGMVCPL%MDIV = 4
+    YDML_LBC%YYTGMVCPL%MTL  = 5
+    YDML_LBC%YYTGMVCPL%MTM  = 6
+    YDML_LBC%YYTGMVCPL%MSPDL= 6
+    YDML_LBC%YYTGMVCPL%MSPDM= 6
+    YDML_LBC%YYTGMVCPL%NDIMT= 6
+  ENDIF
+ENDIF
+
+! YYGMVSCPL:
+IF (NCONF == 701) THEN
+  ! derivatives are useless because ESEIMPLS is not called.
+  YDML_LBC%YYTGMVSCPL%MSP=1
+  YDML_LBC%YYTGMVSCPL%NDIM=1
+  YDML_LBC%YYTGMVSCPL%NDIMT=1
+ELSE
+  ! derivatives are useful because ESEIMPLS is called.
+  YDML_LBC%YYTGMVSCPL%MSP=1
+  YDML_LBC%YYTGMVSCPL%MSPL=2
+  YDML_LBC%YYTGMVSCPL%MSPM=3
+  YDML_LBC%YYTGMVSCPL%NDIM=1
+  YDML_LBC%YYTGMVSCPL%NDIMT=3
+ENDIF
+
+! YDML_LBC%NDIMCPL:
+ICPL=0
+DO JGFL=1,YGFL%NUMFLDS
+  IF (YGFL%YCOMP(JGFL)%NCOUPLING /= 0) THEN
+    ICPL=ICPL+1
+  ENDIF
+ENDDO
+YDML_LBC%NDIMCPL=ICPL
+
+! YDML_LBC%NGALEF:
+YDML_LBC%NGALEF=YDML_LBC%YYTGMVCPL%NDIM+YDML_LBC%YYTGMVSCPL%NDIM+YDML_LBC%NDIMCPL
+
+
+!--------------------------------------------------------------------------
+
+!      Part B: printings.
+
+WRITE(NULOUT,*) ' --- PRINTINGS IN SUELBC_FIELDS_DIM --- '
+
+! * B1: Number of coupled fields.
+WRITE(UNIT=NULOUT,FMT='('' Grid-point coupling: '')')
+WRITE(UNIT=NULOUT,FMT='(''  nb of GMV fields with temporal interpolation: YDML_LBC%YYTGMVCPL%NDIMT = '',I4)')&
+  & YDML_LBC%YYTGMVCPL%NDIMT
+WRITE(UNIT=NULOUT,FMT='(''  nb of coupled GMV fields: YDML_LBC%YYTGMVCPL%NDIM = '',I4)') YDML_LBC%YYTGMVCPL%NDIM
+WRITE(UNIT=NULOUT,FMT='(''  nb of GMVS fields with temporal interpolation: YDML_LBC%YYTGMVSCPL%NDIMT = '',I4)')&
+ & YDML_LBC%YYTGMVSCPL%NDIMT
+WRITE(UNIT=NULOUT,FMT='(''  nb of coupled GMVS fields: YDML_LBC%YYTGMVSCPL%NDIM = '',I4)') YDML_LBC%YYTGMVSCPL%NDIM
+WRITE(UNIT=NULOUT,FMT='(''  nb of coupled GFL fields: YDML_LBC%NDIMCPL = '',I4)') YDML_LBC%NDIMCPL
+WRITE(UNIT=NULOUT,FMT='(''  total nb of coupled fields: YDML_LBC%NGALEF = '',I4)') YDML_LBC%NGALEF
+
+
+!--------------------------------------------------------------------------
+IF (LHOOK) CALL DR_HOOK('YEMLBC_FIELDS:SUELBC_FIELDS_DIM',1,ZHOOK_HANDLE)
+END SUBROUTINE SUELBC_FIELDS_DIM 
+!=====================================================================================
+SUBROUTINE SUELBC_INIT(YDDYNA,YDML_LBC)
+USE YOMDYNA      , ONLY : TDYNA
+
+!--------------------------------------------------------------------------
+! Sets-up part 0A of forcing a LAM model by another model
+!--------------------------------------------------------------------------
+TYPE(TDYNA)       , INTENT(IN)    :: YDDYNA
+TYPE(TELBC_MODEL),TARGET,INTENT(INOUT):: YDML_LBC
+
+!--------------------------------------------------------------------------
+
+INTEGER(KIND=JPIM) :: J
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
+!----POINTERS FOR ASSOCIATION --------------------------
+LOGICAL,POINTER :: LTENC,LALLTC,LRFIRST
+INTEGER(KIND=JPIM),POINTER :: NBICOU,NBICOT,NBICPD,NBICVD,NBICNHX,NBICOP,NECRIPL
+LOGICAL,POINTER :: LQCPL,LCCPL
+INTEGER(KIND=JPIM),POINTER :: NECOTL,NECOAD
+LOGICAL,POINTER :: LE0COTA,LEREADINI
+INTEGER(KIND=JPIM),POINTER :: N1LSG,NFRLSG,NLSGTS(:)
+LOGICAL,POINTER :: LRDLSG
+LOGICAL,POINTER :: LESPCPL,LSPTENC,LUNBC
+!--------------------------------------------------------------------------
+
+#include "abor1.intfb.h"
+#include "posnam.intfb.h"
+
+#include "nemelbc0a.nam.h"
+
+
+!--------------------------------------------------------------------------
+IF (LHOOK) CALL DR_HOOK('YEMLBC_INIT:SUELBC_INIT',0,ZHOOK_HANDLE)
+!--------------------------------------------------------------------------
+
+!--------------------------------------------------------------------------
+
+LTENC=>YDML_LBC%LTENC
+LALLTC=>YDML_LBC%LALLTC
+LRFIRST=>YDML_LBC%LRFIRST
+NBICOU=>YDML_LBC%NBICOU
+NBICOT=>YDML_LBC%NBICOT
+NBICPD=>YDML_LBC%NBICPD
+NBICVD=>YDML_LBC%NBICVD
+NBICNHX=>YDML_LBC%NBICNHX
+NBICOP=>YDML_LBC%NBICOP
+NECRIPL=>YDML_LBC%NECRIPL
+LQCPL=>YDML_LBC%LQCPL
+LCCPL=>YDML_LBC%LCCPL
+NECOTL=>YDML_LBC%NECOTL
+NECOAD=>YDML_LBC%NECOAD
+LE0COTA=>YDML_LBC%LE0COTA
+LEREADINI=>YDML_LBC%LEREADINI
+N1LSG=>YDML_LBC%N1LSG
+NFRLSG=>YDML_LBC%NFRLSG
+NLSGTS=>YDML_LBC%NLSGTS
+LRDLSG=>YDML_LBC%LRDLSG
+LESPCPL=>YDML_LBC%LESPCPL
+LSPTENC=>YDML_LBC%LSPTENC
+LUNBC=>YDML_LBC%LUNBC
+!      Part A: default values.
+
+! * Tendency coupling
+LTENC=.FALSE.
+LALLTC=.FALSE.
+LRFIRST=.TRUE.
+
+! * Lateral forcing
+IF (LELAM) THEN
+  NBICOU=1
+  NBICOT=1
+  IF (YDDYNA%LNHDYN) THEN
+    NBICPD=1
+    NBICVD=1
+    IF(YDDYNA%LNHX) THEN
+      NBICNHX=1
+    ELSE
+      NBICNHX=0
+    ENDIF
+  ELSE
+    NBICPD=0
+    NBICVD=0
+    NBICNHX=0
+  ENDIF
+  NBICOP=1
+  NECRIPL=1
+  LQCPL=.FALSE.
+  LCCPL=.FALSE.
+  NECOAD=0
+  NECOTL=0
+  LE0COTA=.FALSE.
+  LEREADINI=.TRUE.
+  N1LSG=0
+  NFRLSG=1
+  DO J=0,JPLSGT
+    NLSGTS(J)=0
+  ENDDO
+  LRDLSG=.FALSE.
+ELSE
+  NBICOU=0
+  NBICOT=0
+  NBICOP=0
+  NBICPD=0
+  NBICVD=0
+  NBICNHX=0
+  NECRIPL=1
+  LQCPL=.FALSE.
+  LCCPL=.FALSE.
+  NECOAD=0
+  NECOTL=0
+  LE0COTA=.FALSE.
+  LEREADINI=.FALSE.
+  N1LSG=0
+  NFRLSG=1
+  DO J=0,JPLSGT
+    NLSGTS(J)=0
+  ENDDO
+  LRDLSG=.FALSE.
+ENDIF
+
+! * Spectral nudging
+LESPCPL=.FALSE.
+LSPTENC=.FALSE.
+
+! * Upper nesting boundary conditions
+LUNBC=.FALSE.
+
+
+!--------------------------------------------------------------------------
+
+!      Part B: namelist reading.
+
+IF (LELAM) THEN
+  CALL POSNAM(NULNAM,'NEMELBC0A')
+  READ(NULNAM,NEMELBC0A)
+ENDIF
+
+!--------------------------------------------------------------------------
+
+!      Part C: checkings.
+
+! * checkings on tendency coupling
+IF (.NOT.LTENC.AND.LALLTC) THEN
+  CALL ABOR1('SUELBC_INIT: ABOR1 CALLED: .NOT.LTENC.AND.LALLTC')
+ENDIF
+IF (LTENC.AND.LRDLSG) THEN
+  CALL ABOR1('SUELBC_INIT: ABOR1 CALLED: LTENC.AND.LRDLSG')
+ENDIF
+
+! * checkings on lateral boundary forcing
+IF (NECRIPL /= 0.AND.NECRIPL /= 1.AND.NECRIPL /= 2) THEN
+  CALL ABOR1('SUELBC_INIT: IMPROPER VALUE FOR NECRIPL')
+ENDIF
+IF (LQCPL.AND.NCONF == 701) THEN
+  CALL ABOR1('SUELBC_INIT: LQCPL=.T. NOT PREPARED FOR NCONF=701')
+ENDIF
+IF (NECRIPL /= 0.AND.( NBICOU /= NBICOT.OR.NBICOU /= NBICOP ) ) THEN
+  WRITE(NULOUT,*) 'T1 COUPLING DOESNT LET COUPLING FUNCTIONS DIFFER'
+  CALL ABOR1 ('SUELBC_INIT: NECRIPL /= 0 and improper values of some NBIC..')
+ENDIF
+
+!--------------------------------------------------------------------------
+
+!      Part D: printings.
+
+IF (LELAM) THEN
+  WRITE(NULOUT,*) ' --- PRINTINGS IN SUELBC_INIT --- '
+  WRITE(NULOUT,*) ' LTENC = ',LTENC,' LALLTC = ',LALLTC
+  WRITE(NULOUT,*) ' LSPTENC = ',LSPTENC
+  WRITE(NULOUT,*) ' NBICOU = ',NBICOU,' NBICOT = ',NBICOT,' NBICOP = ',NBICOP
+  WRITE(NULOUT,*) ' NBICPD = ',NBICPD,' NBICVD = ',NBICVD,&
+   & ' NBICNHX = ',NBICNHX,' LQCPL = ',LQCPL,' LCCPL = ',LCCPL
+  WRITE(UNIT=NULOUT,FMT='('' NECRIPL = '',I2)') NECRIPL
+  WRITE(NULOUT,*) ' NECOAD = ',NECOAD,' NECOTL = ',NECOTL,' LE0COTA = ',LE0COTA
+  WRITE(NULOUT,FMT='('' NFRLSG = '',I2,'' N1LSG = '',I2)') NFRLSG,N1LSG
+  WRITE(NULOUT,*) ' NLSGTS =  ',NLSGTS(0),(NLSGTS(J),J=1,ABS(NLSGTS(0)))
+  WRITE(NULOUT,FMT='('' LRDLSG = '',L2)') LRDLSG
+  WRITE(NULOUT,*) 'LESPCPL = ',LESPCPL
+  WRITE(NULOUT,*) 'LUNBC = ',LUNBC
+  WRITE(NULOUT,*) ' '
+ENDIF
+
+!--------------------------------------------------------------------------
+IF (LHOOK) CALL DR_HOOK('YEMLBC_INIT:SUELBC_INIT',1,ZHOOK_HANDLE)
+END SUBROUTINE SUELBC_INIT
+
+SUBROUTINE SUELBC_MODEL(YDML_LBC,YDGEOMETRY,YDDYNA,YDGMV,YDML_GCONF)
+
+!--------------------------------------------------------------------------
+! Sets-up part 0B of forcing a LAM model by another model
+!--------------------------------------------------------------------------
+
+!--------------------------------------------------------------------------
+
+USE GEOMETRY_MOD           , ONLY : GEOMETRY
+USE MODEL_GENERAL_CONF_MOD , ONLY : MODEL_GENERAL_CONF_TYPE
+USE YOMDYNA                , ONLY : TDYNA
+
+TYPE(TELBC_MODEL) ,TARGET,INTENT(INOUT)    :: YDML_LBC 
+TYPE(GEOMETRY),INTENT(IN)                  :: YDGEOMETRY
+TYPE(TDYNA)   , INTENT(IN)                 :: YDDYNA
+TYPE(TGMV)    ,INTENT(INOUT)               :: YDGMV
+TYPE(MODEL_GENERAL_CONF_TYPE),INTENT(INOUT):: YDML_GCONF
+
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
+REAL(KIND=JPRB),ALLOCATABLE :: ZB(:,:),ZBU(:,:),ZEALP(:),ZREPA(:),ZEALFA(:,:,:)
+REAL(KIND=JPRB),ALLOCATABLE :: ZGP(:,:,:),ZSPM(:,:)
+INTEGER(KIND=JPIM),ALLOCATABLE :: INEAL(:),INNAL(:),INMAL(:)
+INTEGER(KIND=JPIM),ALLOCATABLE :: IBICO(:)
+
+INTEGER(KIND=JPIM) :: IENDLON, ISTLON, IBZONGL, IGPTOT
+INTEGER(KIND=JPIM) :: IA, IGLG, IIA, IJA, IROF, ISUP, ICPL
+INTEGER(KIND=JPIM) :: JFLD, JK, JA, JIA, JJA, JLON, JGL
+INTEGER(KIND=JPIM) :: INSTEP, ICANCPL, JLEV
+INTEGER(KIND=JPIM) :: IBL, JKGLO, JROF, IBLOCKCPL
+
+REAL(KIND=JPRB) :: ZA, ZE, ZO, ZRZONG, ZRZONL, ZRZONU, ZXA, ZYA, ZDIV, ZREM, ZYAOXA
+REAL(KIND=JPRB) :: ZT, ZT1, ZT2, ZT3, ZT4
+REAL(KIND=JPRB) :: ZEPS=1.E-4_JPRB
+REAL(KIND=JPRB) :: ZEPS2=1.E-10_JPRB
+INTEGER(KIND=JPIM) :: INEFRCLDFI, INEFRCLDFIA, ISWP
+
+!----POINTERS FOR ASSOCIATION --------------------------
+INTEGER(KIND=JPIM),POINTER :: NEFRSPCPL,NEK0,NEK1,NEN1,NEN2
+REAL(KIND=JPRB),POINTER :: EPA_GMV(:),EPA_GMVS(:),EPA_GFL(:)
+REAL(KIND=JPRB),POINTER :: TEFRCL,SPNUDVOR,SPNUDDIV,SPNUDT,SPNUDQ,SPNUDSP,RNUTENC,RTENC
+
+
+!--------------------------------------------------------------------------
+
+#include "abor1.intfb.h"
+#include "ereespe.intfb.h"
+#include "esperee.intfb.h"
+#include "posnam.intfb.h"
+#include "fctez.func.h"
+
+#include "nemelbc0b.nam.h"
+
+!--------------------------------------------------------------------------
+IF (LHOOK) CALL DR_HOOK('YEMLBC_MODEL:SUELBC_MODEL',0,ZHOOK_HANDLE)
+
+
+EPA_GMV=>YDML_LBC%EPA_GMV
+EPA_GMVS=>YDML_LBC%EPA_GMVS
+EPA_GFL=>YDML_LBC%EPA_GFL
+TEFRCL=>YDML_LBC%TEFRCL
+NEFRSPCPL=>YDML_LBC%NEFRSPCPL
+NEK0=>YDML_LBC%NEK0
+NEK1=>YDML_LBC%NEK1
+NEN1=>YDML_LBC%NEN1
+NEN2=>YDML_LBC%NEN2
+SPNUDVOR=>YDML_LBC%SPNUDVOR
+SPNUDDIV=>YDML_LBC%SPNUDDIV
+SPNUDT=>YDML_LBC%SPNUDT
+SPNUDQ=>YDML_LBC%SPNUDQ
+SPNUDSP=>YDML_LBC%SPNUDSP
+RNUTENC=>YDML_LBC%RNUTENC
+RTENC=>YDML_LBC%RTENC
+
+!--------------------------------------------------------------------------
+ASSOCIATE(YDGSGEOM_NB=>YDGEOMETRY%YRGSGEOM_NB, &
+ & NBZONG=>YDGEOMETRY%YREDIM%NBZONG, NBZONL=>YDGEOMETRY%YREDIM%NBZONL, NBZONU=>YDGEOMETRY%YREDIM%NBZONU,&
+ & NBIPINCIX=>YDGEOMETRY%YREDIM%NBIPINCIX, NBIPINCIY=>YDGEOMETRY%YREDIM%NBIPINCIY, &
+ & NDGLG=>YDGEOMETRY%YRDIM%NDGLG, NDLUXG=>YDGEOMETRY%YRDIM%NDLUXG, NDGUNG=>YDGEOMETRY%YRDIM%NDGUNG, &
+ & NDGUXG=>YDGEOMETRY%YRDIM%NDGUXG, NDLUNG=>YDGEOMETRY%YRDIM%NDLUNG, NDGENL=>YDGEOMETRY%YRDIM%NDGENL, &
+ & NPROMA=>YDGEOMETRY%YRDIM%NPROMA, NGPBLKS=>YDGEOMETRY%YRDIM%NGPBLKS, NSPEC2=>YDGEOMETRY%YRDIM%NSPEC2, &
+ & NDLON=>YDGEOMETRY%YRDIM%NDLON, NDGSAL=>YDGEOMETRY%YRDIM%NDGSAL, &
+ & NSTA=>YDGEOMETRY%YRMP%NSTA, NPTRFLOFF=>YDGEOMETRY%YRMP%NPTRFLOFF, MYLATS=>YDGEOMETRY%YRMP%MYLATS, &
+ & NONL=>YDGEOMETRY%YRMP%NONL, NBSETSP=>YDGEOMETRY%YRMP%NBSETSP, &
+ & NGPTOT=>YDGEOMETRY%YRGEM%NGPTOT, NSTAGP=>YDGEOMETRY%YRGEM%NSTAGP, &
+ & NFD2D=>YDML_GCONF%YRDIMF%NFD2D, NS3D=>YDML_GCONF%YRDIMF%NS3D, NFLEVG=>YDGEOMETRY%YRDIMV%NFLEVG, &
+ & NFLEVL=>YDGEOMETRY%YRDIMV%NFLEVL, YT0=>YDGMV%YT0, YT1=>YDGMV%YT1 , &
+ & NSTOP=>YDML_GCONF%YRRIP%NSTOP, TSTEP=>YDML_GCONF%YRRIP%TSTEP)
+!--------------------------------------------------------------------------
+
+!      Part A: default values.
+
+! * Relaxation coefficients
+YDML_LBC%EPA_GMV(:)=2.16_JPRB
+YDML_LBC%EPA_GMVS(:)=2.16_JPRB
+YDML_LBC%EPA_GFL(:)=5.52_JPRB
+
+! * Control frequency of LBC
+TEFRCL=TSTEP
+
+! * Spectral nudging
+YDML_LBC%NEFRSPCPL=1
+YDML_LBC%NEK0=0
+YDML_LBC%NEK1=0
+YDML_LBC%NEN1=0
+YDML_LBC%NEN2=0
+YDML_LBC%SPNUDVOR=0._JPRB
+YDML_LBC%SPNUDDIV=0._JPRB
+YDML_LBC%SPNUDT=0._JPRB
+YDML_LBC%SPNUDQ=0._JPRB
+YDML_LBC%SPNUDSP=0._JPRB
+YDML_LBC%RNUTENC=0.0_JPRB
+
+! * Tendency coupling
+YDML_LBC%RTENC=1.0_JPRB
+
+!--------------------------------------------------------------------------
+
+!      Part B: namelist reading.
+
+CALL POSNAM(NULNAM,'NEMELBC0B')
+READ(NULNAM,NEMELBC0B)
+
+!--------------------------------------------------------------------------
+
+!      Part C: checkings, modify values.
+
+! * C1: Control frequency of LBC (compute NEFRCL)
+
+! TEFRCL, NEFRCL:
+IF (TSTEP > ZEPS) THEN 
+  ZDIV = TEFRCL/TSTEP
+  ZREM = ZDIV - REAL(NINT(ZDIV),JPRB)
+  ! 1 second/coupling-interval error is tolerated
+  IF(ABS(ZREM) >= 1._JPRB/TSTEP) THEN
+    WRITE(UNIT=NULOUT,FMT='('' TEFRCL MUST BE A MULTIPLE '',''OF TSTEP'')')
+    CALL ABOR1('SUELBC_MODEL: TEFRCL MUST BE A MULTIPLE OF TSTEP')
+  ELSE
+    YDML_LBC%NEFRCL=NINT(TEFRCL/TSTEP)
+  ENDIF
+ELSE
+  YDML_LBC%NEFRCL=1
+ENDIF
+
+! * C2: Weights for LBC interpolation (compute EWB, EWBDFIFW, EWBDFIBW)
+
+! Fill EWB:
+IF ((NSTOP/=0).AND.(YDML_LBC%NEFRCL/=0)) THEN
+
+  ALLOCATE(YDML_LBC%EWB(0:NSTOP,1:4,0:9))
+  YDML_LBC%EWB(:,:,:)=0.0_JPRB
+
+  IF (YDML_LBC%LQCPL) THEN
+!DEC$ IVDEP
+    DO INSTEP=0,NSTOP
+      IF (INSTEP<YDML_LBC%NEFRCL) THEN
+        ! KTIMLEV=0
+        YDML_LBC%EWB(INSTEP,1,0)=REAL(YDML_LBC%NEFRCL-MOD(INSTEP,YDML_LBC%NEFRCL),JPRB)/REAL(YDML_LBC%NEFRCL,JPRB)
+        YDML_LBC%EWB(INSTEP,2,0)=REAL(MOD(INSTEP,YDML_LBC%NEFRCL),JPRB)/REAL(YDML_LBC%NEFRCL,JPRB)
+        YDML_LBC%EWB(INSTEP,3,:)=0.0_JPRB
+
+        ! KTIMLEV=1
+        YDML_LBC%EWB(INSTEP,1,1)=YDML_LBC%EWB(INSTEP,1,0)-1.0_JPRB/REAL(YDML_LBC%NEFRCL,JPRB)
+        YDML_LBC%EWB(INSTEP,2,1)=YDML_LBC%EWB(INSTEP,2,0)+1.0_JPRB/REAL(YDML_LBC%NEFRCL,JPRB)
+
+        ! KTIMLEV=9
+        YDML_LBC%EWB(INSTEP,1,9)=YDML_LBC%EWB(INSTEP,1,0)+1.0_JPRB/REAL(YDML_LBC%NEFRCL,JPRB)
+        YDML_LBC%EWB(INSTEP,2,9)=YDML_LBC%EWB(INSTEP,2,0)-1.0_JPRB/REAL(YDML_LBC%NEFRCL,JPRB)
+      ELSE
+        ISWP=MOD(INSTEP,YDML_LBC%NEFRCL)+1
+        ZT  =REAL(              ISWP,JPRB)
+        ZT1 =REAL(-1*YDML_LBC%NEFRCL,JPRB)
+        ZT2 =REAL( 0*YDML_LBC%NEFRCL,JPRB)
+        ZT3 =REAL(+1*YDML_LBC%NEFRCL,JPRB)
+
+        YDML_LBC%EWB(INSTEP,1,1)=(ZT -ZT2)*(ZT -ZT3)/ &
+         &                      ((ZT1-ZT2)*(ZT1-ZT3))
+        YDML_LBC%EWB(INSTEP,2,1)=(ZT -ZT1)*(ZT -ZT3)/ &
+         &                      ((ZT2-ZT1)*(ZT2-ZT3))
+        YDML_LBC%EWB(INSTEP,3,1)=(ZT -ZT1)*(ZT -ZT2)/ &
+         &                      ((ZT3-ZT1)*(ZT3-ZT2))
+      ENDIF
+    ENDDO
+  ELSEIF (YDML_LBC%LCCPL) THEN
+!DEC$ IVDEP
+    DO INSTEP=0,NSTOP
+      IF (INSTEP<YDML_LBC%NEFRCL) THEN
+        ! KTIMLEV=0
+        YDML_LBC%EWB(INSTEP,1,0)=REAL(YDML_LBC%NEFRCL-MOD(INSTEP,YDML_LBC%NEFRCL),JPRB)/REAL(YDML_LBC%NEFRCL,JPRB)
+        YDML_LBC%EWB(INSTEP,2,0)=REAL(MOD(INSTEP,YDML_LBC%NEFRCL),JPRB)/REAL(YDML_LBC%NEFRCL,JPRB)
+        YDML_LBC%EWB(INSTEP,3,:)=0.0_JPRB
+        YDML_LBC%EWB(INSTEP,4,:)=0.0_JPRB
+
+        ! KTIMLEV=1
+        YDML_LBC%EWB(INSTEP,1,1)=YDML_LBC%EWB(INSTEP,1,0)-1.0_JPRB/REAL(YDML_LBC%NEFRCL,JPRB)
+        YDML_LBC%EWB(INSTEP,2,1)=YDML_LBC%EWB(INSTEP,2,0)+1.0_JPRB/REAL(YDML_LBC%NEFRCL,JPRB)
+
+
+        ! KTIMLEV=9
+        YDML_LBC%EWB(INSTEP,1,9)=YDML_LBC%EWB(INSTEP,1,0)+1.0_JPRB/REAL(YDML_LBC%NEFRCL,JPRB)
+        YDML_LBC%EWB(INSTEP,2,9)=YDML_LBC%EWB(INSTEP,2,0)-1.0_JPRB/REAL(YDML_LBC%NEFRCL,JPRB)
+
+      ELSEIF (INSTEP<2*YDML_LBC%NEFRCL) THEN
+        ISWP=MOD(INSTEP,YDML_LBC%NEFRCL)+1
+        ZT  =REAL(              ISWP,JPRB)
+        ZT1 =REAL(-1*YDML_LBC%NEFRCL,JPRB)
+        ZT2 =REAL( 0*YDML_LBC%NEFRCL,JPRB)
+        ZT3 =REAL(+1*YDML_LBC%NEFRCL,JPRB)
+
+        YDML_LBC%EWB(INSTEP,1,1)=(ZT -ZT2)*(ZT -ZT3)/ &
+         &                      ((ZT1-ZT2)*(ZT1-ZT3))
+        YDML_LBC%EWB(INSTEP,2,1)=(ZT -ZT1)*(ZT -ZT3)/ &
+         &                      ((ZT2-ZT1)*(ZT2-ZT3))
+        YDML_LBC%EWB(INSTEP,3,1)=(ZT -ZT1)*(ZT -ZT2)/ &
+         &                      ((ZT3-ZT1)*(ZT3-ZT2))
+      ELSE
+        ISWP=MOD(INSTEP,YDML_LBC%NEFRCL)+1
+        ZT  =REAL(ISWP,JPRB)
+        IF (INSTEP >= NSTOP-YDML_LBC%NEFRCL) THEN
+          ZT1=REAL(-1*YDML_LBC%NEFRCL,JPRB)
+          ZT2=REAL( 0*YDML_LBC%NEFRCL,JPRB)
+          ZT3=REAL(+1*YDML_LBC%NEFRCL,JPRB)
+
+          YDML_LBC%EWB(INSTEP,1,1)=0.0_JPRB
+          YDML_LBC%EWB(INSTEP,2,1)=(ZT -ZT2)*(ZT -ZT3)/ &
+           &                      ((ZT1-ZT2)*(ZT1-ZT3))
+          YDML_LBC%EWB(INSTEP,3,1)=(ZT -ZT1)*(ZT -ZT3)/ &
+           &                      ((ZT2-ZT1)*(ZT2-ZT3))
+          YDML_LBC%EWB(INSTEP,4,1)=(ZT -ZT1)*(ZT -ZT2)/ &
+           &                      ((ZT3-ZT1)*(ZT3-ZT2))
+        ELSE
+          ZT1=REAL(-1*YDML_LBC%NEFRCL,JPRB)
+          ZT2=REAL( 0*YDML_LBC%NEFRCL,JPRB)
+          ZT3=REAL(+1*YDML_LBC%NEFRCL,JPRB)
+          ZT4=REAL(+2*YDML_LBC%NEFRCL,JPRB)
+
+          YDML_LBC%EWB(INSTEP,1,1)=(ZT -ZT2)*(ZT -ZT3)*(ZT -ZT4)/ &
+           &                      ((ZT1-ZT2)*(ZT1-ZT3)*(ZT1-ZT4))
+          YDML_LBC%EWB(INSTEP,2,1)=(ZT -ZT1)*(ZT -ZT3)*(ZT -ZT4)/ &
+           &                      ((ZT2-ZT1)*(ZT2-ZT3)*(ZT2-ZT4))
+          YDML_LBC%EWB(INSTEP,3,1)=(ZT -ZT1)*(ZT -ZT2)*(ZT -ZT4)/ &
+           &                      ((ZT3-ZT1)*(ZT3-ZT2)*(ZT3-ZT4))
+          YDML_LBC%EWB(INSTEP,4,1)=(ZT -ZT1)*(ZT -ZT2)*(ZT -ZT3)/ &
+           &                      ((ZT4-ZT1)*(ZT4-ZT2)*(ZT4-ZT3))
+        ENDIF
+      ENDIF
+    ENDDO
+  ELSE
+!DEC$ IVDEP
+    DO INSTEP=0,NSTOP
+
+      ! KTIMLEV=0
+      YDML_LBC%EWB(INSTEP,1,0)=REAL(YDML_LBC%NEFRCL-MOD(INSTEP,YDML_LBC%NEFRCL),JPRB)/REAL(YDML_LBC%NEFRCL,JPRB)
+      YDML_LBC%EWB(INSTEP,2,0)=REAL(MOD(INSTEP,YDML_LBC%NEFRCL),JPRB)/REAL(YDML_LBC%NEFRCL,JPRB)
+
+      ! KTIMLEV=1
+      YDML_LBC%EWB(INSTEP,1,1)=YDML_LBC%EWB(INSTEP,1,0)-1.0_JPRB/REAL(YDML_LBC%NEFRCL,JPRB)
+      YDML_LBC%EWB(INSTEP,2,1)=YDML_LBC%EWB(INSTEP,2,0)+1.0_JPRB/REAL(YDML_LBC%NEFRCL,JPRB)
+
+      ! KTIMLEV=9
+      YDML_LBC%EWB(INSTEP,1,9)=YDML_LBC%EWB(INSTEP,1,0)+1.0_JPRB/REAL(YDML_LBC%NEFRCL,JPRB)
+      YDML_LBC%EWB(INSTEP,2,9)=YDML_LBC%EWB(INSTEP,2,0)-1.0_JPRB/REAL(YDML_LBC%NEFRCL,JPRB)
+
+    ENDDO
+
+  ENDIF
+ENDIF
+
+IF (LDFI) THEN
+
+  ! Fill EWBDFIFW (DFI forward weights):
+  ALLOCATE(YDML_LBC%EWBDFIFW(0:2*NSTDFI,1:2,0:9,0:1))
+  INEFRCLDFI=YDML_LBC%TEFRCL/RTDFI
+
+  DO INSTEP=0,2*NSTDFI
+    ! KTIMLEV=0
+    YDML_LBC%EWBDFIFW(INSTEP,1,0,:)=REAL(INEFRCLDFI-MOD(INSTEP,INEFRCLDFI)+NSTDFI,JPRB)/&
+     & REAL(INEFRCLDFI,JPRB)
+    YDML_LBC%EWBDFIFW(INSTEP,2,0,:)=REAL(MOD(INSTEP,INEFRCLDFI)-NSTDFI,JPRB)/&
+     & REAL(INEFRCLDFI,JPRB)
+    ! KTIMLEV=1, LBIAS=F
+    YDML_LBC%EWBDFIFW(INSTEP,1,1,0)=YDML_LBC%EWBDFIFW(INSTEP,1,0,0)-1.0_JPRB/REAL(INEFRCLDFI,JPRB)
+    YDML_LBC%EWBDFIFW(INSTEP,2,1,0)=YDML_LBC%EWBDFIFW(INSTEP,2,0,0)+1.0_JPRB/REAL(INEFRCLDFI,JPRB)
+    ! KTIMLEV=1, LBIAS=T
+    YDML_LBC%EWBDFIFW(INSTEP,1,1,1)=REAL(INEFRCLDFI+MOD(INSTEP,INEFRCLDFI)-NSTDFI,JPRB)/&
+     & REAL(INEFRCLDFI,JPRB)+1.0_JPRB/REAL(INEFRCLDFI,JPRB)
+    YDML_LBC%EWBDFIFW(INSTEP,2,1,1)=REAL(-MOD(INSTEP,INEFRCLDFI)+NSTDFI,JPRB)/&
+     & REAL(INEFRCLDFI,JPRB)-1.0_JPRB/REAL(INEFRCLDFI,JPRB)
+    ! KTIMLEV=9, LBIAS=F
+    YDML_LBC%EWBDFIFW(INSTEP,1,9,0)=YDML_LBC%EWBDFIFW(INSTEP,1,0,0)+1.0_JPRB/REAL(INEFRCLDFI,JPRB)
+    YDML_LBC%EWBDFIFW(INSTEP,2,9,0)=YDML_LBC%EWBDFIFW(INSTEP,2,0,0)-1.0_JPRB/REAL(INEFRCLDFI,JPRB)
+    ! KTIMLEV=9, LBIAS=T
+    YDML_LBC%EWBDFIFW(INSTEP,1,9,1)=REAL(INEFRCLDFI+MOD(INSTEP,INEFRCLDFI)-NSTDFI,JPRB)/&
+     & REAL(INEFRCLDFI,JPRB)-1.0_JPRB/REAL(INEFRCLDFI,JPRB)
+    YDML_LBC%EWBDFIFW(INSTEP,2,9,1)=REAL(-MOD(INSTEP,INEFRCLDFI)+NSTDFI,JPRB)/&
+     & REAL(INEFRCLDFI,JPRB)+1.0_JPRB/REAL(INEFRCLDFI,JPRB)
+  ENDDO
+
+  ! Fill EWBDFIBW (DFI backward weights):
+  ALLOCATE(YDML_LBC%EWBDFIBW(0:2*NSTDFIA,1:2,0:9,0:1))
+  INEFRCLDFIA=YDML_LBC%TEFRCL/RTDFIA
+
+  DO INSTEP=0,2*NSTDFIA
+    YDML_LBC%EWBDFIBW(INSTEP,1,0,:)=REAL(INEFRCLDFIA+MOD(INSTEP,INEFRCLDFIA),JPRB)/REAL(INEFRCLDFIA,JPRB)
+    YDML_LBC%EWBDFIBW(INSTEP,2,0,:)=-REAL(MOD(INSTEP,INEFRCLDFIA),JPRB)/REAL(INEFRCLDFIA,JPRB)
+
+    ! KTIMLEV=1, LBIAS=F
+    YDML_LBC%EWBDFIBW(INSTEP,1,1,0)=YDML_LBC%EWBDFIBW(INSTEP,1,0,0)+1.0_JPRB/REAL(INEFRCLDFIA,JPRB)
+    YDML_LBC%EWBDFIBW(INSTEP,2,1,0)=YDML_LBC%EWBDFIBW(INSTEP,2,0,0)-1.0_JPRB/REAL(INEFRCLDFIA,JPRB)
+    ! KTIMLEV=1, LBIAS=T
+    YDML_LBC%EWBDFIBW(INSTEP,1,1,1)=REAL(INEFRCLDFIA-MOD(INSTEP,INEFRCLDFIA),JPRB)/REAL(INEFRCLDFIA,JPRB)&
+     & -1.0_JPRB/REAL(INEFRCLDFIA,JPRB)
+    YDML_LBC%EWBDFIBW(INSTEP,2,1,1)=REAL(MOD(INSTEP,INEFRCLDFIA),JPRB)/REAL(INEFRCLDFIA,JPRB)&
+     & +1.0_JPRB/REAL(INEFRCLDFIA,JPRB)
+    ! KTIMLEV=9, LBIAS=F
+    YDML_LBC%EWBDFIBW(INSTEP,1,9,0)=YDML_LBC%EWBDFIBW(INSTEP,1,0,0)-1.0_JPRB/REAL(INEFRCLDFIA,JPRB)
+    YDML_LBC%EWBDFIBW(INSTEP,2,9,0)=YDML_LBC%EWBDFIBW(INSTEP,2,0,0)+1.0_JPRB/REAL(INEFRCLDFIA,JPRB)
+    ! KTIMLEV=9, LBIAS=T
+    YDML_LBC%EWBDFIBW(INSTEP,1,9,1)=REAL(INEFRCLDFIA-MOD(INSTEP,INEFRCLDFIA),JPRB)/REAL(INEFRCLDFIA,JPRB)&
+     & +1.0_JPRB/REAL(INEFRCLDFIA,JPRB)
+    YDML_LBC%EWBDFIBW(INSTEP,2,9,1)=REAL(MOD(INSTEP,INEFRCLDFIA),JPRB)/REAL(INEFRCLDFIA,JPRB)&
+     & -1.0_JPRB/REAL(INEFRCLDFIA,JPRB)
+  ENDDO
+
+ENDIF
+
+! * C3: Calculation of IBICO and LECOBI.
+
+ALLOCATE(IBICO(YDML_LBC%NGALEF))
+! GMV:
+IBICO(YDML_LBC%YYTGMVCPL%MU)=YDML_LBC%NBICOU
+IBICO(YDML_LBC%YYTGMVCPL%MV)=YDML_LBC%NBICOU
+IBICO(YDML_LBC%YYTGMVCPL%MT)=YDML_LBC%NBICOT
+IF (YDDYNA%LNHDYN) IBICO(YDML_LBC%YYTGMVCPL%MSPD)=YDML_LBC%NBICPD
+IF (YDDYNA%LNHDYN) IBICO(YDML_LBC%YYTGMVCPL%MSVD)=YDML_LBC%NBICVD
+IF (YDDYNA%LNHDYN.AND.YDDYNA%LNHX) IBICO(YDML_LBC%YYTGMVCPL%MNHX)=YDML_LBC%NBICNHX
+! GMVS:
+IBICO(YDML_LBC%YYTGMVCPL%NDIM+YDML_LBC%YYTGMVSCPL%MSP)=YDML_LBC%NBICOP
+! GFL:
+DO JFLD=1,YDML_LBC%NDIMCPL
+  IBICO(YDML_LBC%YYTGMVCPL%NDIM+YDML_LBC%YYTGMVSCPL%NDIM+JFLD)=1
+ENDDO
+
+IF((NBZONL /= 0).OR.(NBZONG /= 0).OR.(NDLUXG /= NDLON).OR.(NDGUXG /= NDGLG)) THEN
+  IF ( MAXVAL(IBICO(1:YDML_LBC%NGALEF))==0 .AND. MINVAL(IBICO(1:YDML_LBC%NGALEF))==0 ) THEN
+    ! no field coupled; LECOBI set to F.
+    YDML_LBC%LECOBI=.FALSE.
+  ELSE
+    ! at least one field coupled; non-empty coupling zone.
+    YDML_LBC%LECOBI=.TRUE.
+  ENDIF
+ELSE
+  ! empty coupling zone.
+  YDML_LBC%LECOBI=.FALSE.
+ENDIF
+! For canari
+ICANCPL=YDML_LBC%NBICOU+YDML_LBC%NBICOT+YDML_LBC%NBICOP
+IF (LCANARI .AND. ICANCPL==0) YDML_LBC%LECOBI=.FALSE.
+
+! * C4: Relaxation coefficients EALFA_GMV, EALFA_GMVS, EALFA_GFL, EALFA_TENC (former SUEBICU).
+
+ALLOCATE(YDML_LBC%EALFA_GMV(NGPTOT+1,YDML_LBC%YYTGMVCPL%NDIM))
+IF (LALLOPR) WRITE(NULOUT,"(1X,'ARRAY ',A10,' ALLOCATED ',8I8)") 'EALFA_GMV ',&
+ & SIZE(YDML_LBC%EALFA_GMV ),SHAPE(YDML_LBC%EALFA_GMV )
+
+ALLOCATE(YDML_LBC%EALFA_GMVS(NGPTOT+1,YDML_LBC%YYTGMVSCPL%NDIM))
+IF (LALLOPR) WRITE(NULOUT,"(1X,'ARRAY ',A10,' ALLOCATED ',8I8)") 'EALFA_GMVS',&
+ & SIZE(YDML_LBC%EALFA_GMVS),SHAPE(YDML_LBC%EALFA_GMVS)
+
+ALLOCATE(YDML_LBC%EALFA_GFL(NGPTOT+1,YDML_LBC%NDIMCPL))
+IF (LALLOPR) WRITE(NULOUT,"(1X,'ARRAY ',A10,' ALLOCATED ',8I8)") 'EALFA_GFL ',&
+& SIZE(YDML_LBC%EALFA_GFL ),SHAPE(YDML_LBC%EALFA_GFL )
+
+IF(YDML_LBC%LUNBC) THEN
+  ALLOCATE(YDML_LBC%EALFAU_GMV(NFLEVG,YDML_LBC%YYTGMVCPL%NDIM))
+  IF (LALLOPR) WRITE(NULOUT,"(1X,'ARRAY ',A10,' ALLOCATED ',8I8)") 'EALFAU_GMV ',&
+   & SIZE(YDML_LBC%EALFAU_GMV ),SHAPE(YDML_LBC%EALFAU_GMV )
+
+  ALLOCATE(YDML_LBC%EALFAU_GFL(NFLEVG,YDML_LBC%NDIMCPL))
+  IF (LALLOPR) WRITE(NULOUT,"(1X,'ARRAY ',A10,' ALLOCATED ',8I8)") 'EALFAU_GFL ',&
+  & SIZE(YDML_LBC%EALFAU_GFL ),SHAPE(YDML_LBC%EALFAU_GFL )
+ENDIF
+
+IF (YDML_LBC%LTENC) THEN
+  ALLOCATE(YDML_LBC%EALFA_TENC(NGPTOT+1,YDML_LBC%YYTGMVSTENC%NDIM))
+  IF (LALLOPR) WRITE(NULOUT,"(1X,'ARRAY ',A10,' ALLOCATED ',8I8)") 'EALFA_TENC',&
+ & SIZE(YDML_LBC%EALFA_TENC),SHAPE(YDML_LBC%EALFA_TENC)
+ENDIF
+
+IF (YDML_LBC%LECOBI) THEN
+
+  ! * C4.1: allocations.
+
+  ALLOCATE(ZREPA(YDML_LBC%NGALEF))
+  ALLOCATE(ZEALP(YDML_LBC%NGALEF))
+  ALLOCATE(ZEALFA(NDLON,YDML_LBC%NGALEF,NDGLG))
+  ALLOCATE(INEAL(YDML_LBC%NGALEF))
+  ALLOCATE(INNAL(YDML_LBC%NGALEF))
+  ALLOCATE(INMAL(YDML_LBC%NGALEF))
+  ALLOCATE(ZB(NBZONL+1,NBZONG+1))
+  IF (YDML_LBC%LUNBC) THEN
+    IF (NBZONU > 0 .AND. NBZONU < NFLEVG) THEN
+      ALLOCATE(ZBU(NBZONU+1,YDML_LBC%NGALEF))
+    ELSE
+      CALL ABOR1('SUELBC_MODEL: NBZONU IS OUT OF BOUNDS')
+    ENDIF
+  ENDIF
+
+  ISUP=100
+  IBZONGL=MAX(NBZONL-NBIPINCIX,NBZONG-NBIPINCIY)
+
+  ! * C4.2: fill ZREPA.
+
+  ICPL=0
+  IF (SIZE(YDML_LBC%EPA_GMV) < YDML_LBC%YYTGMVCPL%NDIM) THEN
+    CALL ABOR1('SUELBC_MODEL:YDML_LBC%EPA_GMV TOO SMALL !')
+  ELSE
+    ZREPA(ICPL+1:ICPL+YDML_LBC%YYTGMVCPL%NDIM)=YDML_LBC%EPA_GMV(1:YDML_LBC%YYTGMVCPL%NDIM)
+  ENDIF
+  ICPL=YDML_LBC%YYTGMVCPL%NDIM
+  IF (SIZE(YDML_LBC%EPA_GMVS) < YDML_LBC%YYTGMVSCPL%NDIM) THEN
+    CALL ABOR1('SUELBC_MODEL:YDML_LBC%EPA_GMVS TOO SMALL !')
+  ELSE
+    ZREPA(ICPL+1:ICPL+YDML_LBC%YYTGMVSCPL%NDIM)=YDML_LBC%EPA_GMVS(1:YDML_LBC%YYTGMVSCPL%NDIM)
+  ENDIF
+  ICPL=YDML_LBC%YYTGMVCPL%NDIM+YDML_LBC%YYTGMVSCPL%NDIM
+  IF (SIZE(YDML_LBC%EPA_GFL) < YDML_LBC%NDIMCPL) THEN
+    CALL ABOR1('SUELBC_MODEL:YDML_LBC%EPA_GFL TOO SMALL !')
+  ELSE
+    ZREPA(ICPL+1:ICPL+YDML_LBC%NDIMCPL)=YDML_LBC%EPA_GFL(1:YDML_LBC%NDIMCPL)
+  ENDIF
+
+  DO JFLD =1,YDML_LBC%NGALEF
+    IF((ZREPA(JFLD) > -2.0_JPRB).AND.(ZREPA(JFLD) < 2.0_JPRB))THEN
+      WRITE(UNIT=NULOUT,FMT='("ERROR ZREPA CANT BE",F5.2)')ZREPA(JFLD)
+      CALL ABOR1('SUELBC_MODEL: ZREPA MUST NOT HAVE A VALUE STRICTLY BETWEEN -2.0 AND 2.0')
+    ENDIF
+  ENDDO
+
+  ! * C4.3: fill INEAL,INMAL,INNAL (identical for all coupled fields).
+
+  INEAL(1:YDML_LBC%NGALEF)=2
+  INMAL(1:YDML_LBC%NGALEF)=1
+
+  IF (IBZONGL>=11 .AND. IBZONGL<=26) THEN
+    INNAL(1:YDML_LBC%NGALEF)=2
+    WRITE(NULOUT,*) 'INNAL FORCED TO 2 FOR CONVERGENCE'
+  ELSEIF (IBZONGL>=27) THEN
+    INNAL(1:YDML_LBC%NGALEF)=1
+    WRITE(NULOUT,*) 'INNAL FORCED TO 1 FOR CONVERGENCE'
+  ELSE
+    INNAL(1:YDML_LBC%NGALEF)=3
+    WRITE(NULOUT,*) 'INNAL SET TO 3'
+  ENDIF
+
+  ! * C4.4: compute auxilary variables ZRZONL, ZRZONG, ZRZONU, ZEALP (identical for all
+  ! coupled fields).
+
+  IF (NBZONL > NBIPINCIX) THEN
+    ZRZONL=1.0_JPRB/REAL(NBZONL-NBIPINCIX,JPRB)
+  ENDIF
+  IF (NBZONG > NBIPINCIY) THEN
+    ZRZONG=1.0_JPRB/REAL(NBZONG-NBIPINCIY,JPRB)
+  ENDIF
+
+  IF (YDML_LBC%LUNBC) THEN
+    ZRZONU = 1.0_JPRB/(YDGEOMETRY%YRVETA%VETAF(NBZONU+1)-YDGEOMETRY%YRVETA%VETAF(1))
+  ENDIF
+
+  DO JFLD =1,YDML_LBC%NGALEF
+    ZEALP(JFLD)=&
+     & REAL((INMAL(JFLD)+INNAL(JFLD))**(INMAL(JFLD)+INNAL(JFLD)),JPRB)/&
+     & REAL((INNAL(JFLD)**INNAL(JFLD))*(INMAL(JFLD)**INMAL(JFLD))*INEAL(JFLD))
+  ENDDO
+
+  ! * C4.5: compute ZEALFA.
+
+  DO JFLD =1,YDML_LBC%NGALEF
+
+    IF (IBICO(JFLD) == 0) THEN
+
+      ! --- no coupling applied to this field; we simply set ZEALFA=0 everywhere.
+      ZEALFA(1:NDLON,JFLD,1:NDGLG)=0.0_JPRB
+
+    ELSE
+
+      ! --- coupling applied to this field.
+
+      ! * ZEALFA: initialize the center domain to 0. and the outer domain to 1.
+
+      ZEALFA(NDLUNG+NBZONL:NDLUXG-NBZONL,JFLD,NDGUNG+NBZONG:NDGUXG-NBZONG)=0.0_JPRB
+      ZEALFA(1:NDLON,JFLD,1:NDGUNG-1)=1.0_JPRB
+      ZEALFA(1:NDLON,JFLD,NDGUXG+1:NDGLG)=1.0_JPRB
+      ZEALFA(1:NDLUNG-1,JFLD,NDGUNG:NDGUXG)=1.0_JPRB
+      ZEALFA(NDLUXG+1:NDLON,JFLD,NDGUNG:NDGUXG)=1.0_JPRB
+
+      ! * compute ZEALFA in the relaxation area.
+
+      IF ((NBZONL > 0).OR.(NBZONG > 0))THEN
+
+        ! Compute ZB:
+        IF (NBZONL > 0) THEN
+          DO JA=2,NBZONL
+            ! relaxation function is 1 in 1:NBIPINCIX
+            IF (JA<=NBZONL-NBIPINCIX) THEN
+              ZA=REAL(JA-1,JPRB)*ZRZONL
+              IF(ZREPA(JFLD) <= -2.0_JPRB) THEN
+                ZB(JA,NBZONG+1)=FEZBM(ZA,-ZREPA(JFLD))
+              ELSE
+                ZB(JA,NBZONG+1)=FEZBP(ZA,ZREPA(JFLD))
+              ENDIF
+            ELSE
+              ZB(JA,NBZONG+1)=1._JPRB
+            ENDIF
+          ENDDO
+        ENDIF
+
+        IF (NBZONG > 0) THEN
+          DO JA=2,NBZONG
+            ! relaxation function is 1 in 1:NBIPINCIY
+            IF (JA<=NBZONG-NBIPINCIY) THEN
+              ZA=REAL(JA-1,JPRB)*ZRZONG
+              IF(ZREPA(JFLD) <= -2.0_JPRB) THEN
+                ZB(NBZONL+1,JA)=FEZBM(ZA,-ZREPA(JFLD))
+              ELSE
+                ZB(NBZONL+1,JA)=FEZBP(ZA,ZREPA(JFLD))
+              ENDIF
+            ELSE
+              ZB(NBZONL+1,JA)=1._JPRB
+            ENDIF
+          ENDDO
+        ENDIF
+
+        IF ((NBZONL > 0).AND.(NBZONG > 0)) THEN
+          DO JIA=2,NBZONL
+            IF (JIA<=NBZONL-NBIPINCIX) THEN
+              ZXA=REAL(JIA-1,JPRB)*ZRZONL
+              DO JJA=2,NBZONG
+                IF (JJA<=NBZONG-NBIPINCIY) THEN
+                  ZYA=REAL(JJA-1,JPRB)*ZRZONG
+                  ZYAOXA=ZYA/ZXA
+                  ZA=MAX(ZXA,ZYA)
+                  ZO=ZA
+                  DO JK=1,ISUP
+                    ZE=FEZE(ZA,ZEALP(JFLD),INNAL(JFLD),INMAL(JFLD))
+                    IF (JPRB == JPRD) THEN
+                      ZA=(ZXA**ZE+ZYA**ZE)**(1.0_JPRB/ZE)
+                    ELSE
+                      ZA=ZXA*(1._JPRB+ZYAOXA**ZE)**(1.0_JPRB/ZE)
+                    ENDIF
+                    ZT=ABS(ZA-ZO)/ZO
+                    IF (ZT <= ZEPS) EXIT
+                    IF (JK == ISUP) THEN
+                      WRITE(NULOUT,*) 'NO CONVERGENCE FOR EALFA'
+                      CALL ABOR1('SUELBC_MODEL: NO CONVERGENCE FOR EALFA')
+                    ENDIF
+                    ZA=0.5_JPRB*(ZA+ZO)
+                    ZO=ZA
+                  ENDDO
+                  IF(ZREPA(JFLD) <= -2.0_JPRB) THEN
+                    ZB(JIA,JJA)=FEZBM(ZA,-ZREPA(JFLD))
+                  ELSE
+                    ZB(JIA,JJA)=FEZBP(ZA,ZREPA(JFLD))
+                  ENDIF
+                ELSE
+                  ZB(JIA,JJA)=1._JPRB
+                ENDIF
+              ENDDO
+            ELSE
+              DO JJA=2,NBZONG
+                ZB(JIA,JJA)=1._JPRB
+              ENDDO
+            ENDIF
+          ENDDO
+        ENDIF
+
+        ! Initialize ZEALFA on the relaxation area
+
+        IF (NBZONG > 0)THEN
+          DO JLON=NDLUNG+NBZONL,NDLUXG-NBZONL
+            ZEALFA(JLON,JFLD,NDGUNG)=1.0_JPRB
+            DO JGL=NDGUNG+1,NDGUNG+NBZONG-1
+              IA=NDGUNG+NBZONG+1-JGL
+              ZEALFA(JLON,JFLD,JGL)=ZB(NBZONL+1,IA)
+            ENDDO
+            ZEALFA(JLON,JFLD,NDGUXG)=1.0_JPRB
+            DO JGL=NDGUXG-NBZONG+1,NDGUXG-1
+              IA=JGL-NDGUXG+NBZONG+1
+              ZEALFA(JLON,JFLD,JGL)=ZB(NBZONL+1,IA)
+            ENDDO
+          ENDDO
+        ENDIF
+
+        IF(NBZONL > 0)THEN
+          DO JGL=NDGUNG+NBZONG,NDGUXG-NBZONG
+            ZEALFA(NDLUNG,JFLD,JGL)=1.0_JPRB
+            DO JLON=NDLUNG+1,NDLUNG+NBZONL-1
+              IA=NDLUNG+NBZONL+1-JLON
+              ZEALFA(JLON,JFLD,JGL)=ZB(IA,NBZONG+1)
+            ENDDO
+            ZEALFA(NDLUXG,JFLD,JGL)=1.0_JPRB
+            DO JLON=NDLUXG-NBZONL+1,NDLUXG-1
+              IA=JLON-NDLUXG+NBZONL+1
+              ZEALFA(JLON,JFLD,JGL)=ZB(IA,NBZONG+1)
+            ENDDO
+          ENDDO
+        ENDIF
+
+        IF((NBZONL > 0).AND.(NBZONG > 0)) THEN
+          DO JLON=NDLUNG+1,NDLUNG+NBZONL-1
+            IIA=NDLUNG+NBZONL+1-JLON
+            DO JGL=NDGUNG+1,NDGUNG+NBZONG-1
+              IJA=NDGUNG+NBZONG+1-JGL
+              ZEALFA(JLON,JFLD,JGL)=ZB(IIA,IJA)
+            ENDDO
+            DO JGL=NDGUXG-NBZONG+1,NDGUXG-1
+              IJA=JGL-NDGUXG+NBZONG+1
+              ZEALFA(JLON,JFLD,JGL)=ZB(IIA,IJA)
+            ENDDO
+          ENDDO
+          DO JLON=NDLUXG-NBZONL+1,NDLUXG-1
+            IIA=JLON-NDLUXG+NBZONL+1
+            DO JGL=NDGUNG+1,NDGUNG+NBZONG-1
+              IJA=NDGUNG+NBZONG+1-JGL
+              ZEALFA(JLON,JFLD,JGL)=ZB(IIA,IJA)
+            ENDDO
+            DO JGL=NDGUXG-NBZONG+1,NDGUXG-1
+              IJA=JGL-NDGUXG+NBZONG+1
+              ZEALFA(JLON,JFLD,JGL)=ZB(IIA,IJA)
+            ENDDO
+          ENDDO
+          ZEALFA(NDLUNG:NDLUNG+NBZONL-1,JFLD,NDGUNG)=1.0_JPRB
+          ZEALFA(NDLUNG:NDLUNG+NBZONL-1,JFLD,NDGUXG)=1.0_JPRB
+          ZEALFA(NDLUXG-NBZONL+1:NDLUXG,JFLD,NDGUNG)=1.0_JPRB
+          ZEALFA(NDLUXG-NBZONL+1:NDLUXG,JFLD,NDGUXG)=1.0_JPRB
+          ZEALFA(NDLUNG,JFLD,NDGUNG:NDGUNG+NBZONG-1)=1.0_JPRB
+          ZEALFA(NDLUXG,JFLD,NDGUNG:NDGUNG+NBZONG-1)=1.0_JPRB
+          ZEALFA(NDLUNG,JFLD,NDGUXG-NBZONG+1:NDGUXG)=1.0_JPRB
+          ZEALFA(NDLUXG,JFLD,NDGUXG-NBZONG+1:NDGUXG)=1.0_JPRB
+        ENDIF
+
+        ! Feed the extra-longitudes and latitudes
+        ZEALFA(NDLUNG+NBZONL:NDLUXG-NBZONL,JFLD,NDGUNG+NBZONG:NDGUXG-NBZONG)=0.0_JPRB
+
+      ENDIF ! ((NBZONL > 0).OR.(NBZONG > 0))
+
+      IF (YDML_LBC%LUNBC) THEN
+        ! Compute ZBU:
+        DO JA=2,NBZONU
+          ZA=(YDGEOMETRY%YRVETA%VETAF(JA)-YDGEOMETRY%YRVETA%VETAF(1))*ZRZONU
+          IF(ZREPA(JFLD) <= -2.0_JPRB) THEN
+            ZBU(JA,JFLD)=FEZBM(ZA,-ZREPA(JFLD))
+          ELSE
+            ZBU(JA,JFLD)=FEZBP(ZA,ZREPA(JFLD))
+          ENDIF
+        ENDDO
+      ENDIF
+
+    ENDIF ! IBICO(JFLD)
+
+  ENDDO ! JFLD
+
+  ! * C4.6: compute EALFA_GMV, EALFA_GMVS, EALFA_GFL, EALFA_TENC from ZEALFA.
+
+  ! EALFA_GMV:
+  ICPL=0
+  DO JFLD=1,YDML_LBC%YYTGMVCPL%NDIM
+    IROF=1
+    DO JGL=1,NDGENL
+      IGLG=MYLATS(JGL)
+      ISTLON=NSTA(NPTRFLOFF+JGL,MYSETB)
+      IENDLON=NSTA(NPTRFLOFF+JGL,MYSETB)+NONL(NPTRFLOFF+JGL,MYSETB)-1
+!DEC$ IVDEP
+      DO JLON=ISTLON,IENDLON
+        YDML_LBC%EALFA_GMV(IROF,JFLD)=ZEALFA(JLON,ICPL+JFLD,IGLG)
+        IROF=IROF+1
+      ENDDO
+    ENDDO
+  ENDDO
+
+  ! EALFA_GMVS:
+  ICPL=YDML_LBC%YYTGMVCPL%NDIM
+  DO JFLD=1,YDML_LBC%YYTGMVSCPL%NDIM
+    IROF=1
+    DO JGL=1,NDGENL
+      IGLG=MYLATS(JGL)
+      ISTLON=NSTA(NPTRFLOFF+JGL,MYSETB)
+      IENDLON=NSTA(NPTRFLOFF+JGL,MYSETB)+NONL(NPTRFLOFF+JGL,MYSETB)-1
+!DEC$ IVDEP
+      DO JLON=ISTLON,IENDLON
+        YDML_LBC%EALFA_GMVS(IROF,JFLD)=ZEALFA(JLON,ICPL+JFLD,IGLG)
+        IROF=IROF+1
+      ENDDO
+    ENDDO
+  ENDDO
+
+  ! EALFA_GFL:
+  ICPL=YDML_LBC%YYTGMVCPL%NDIM+YDML_LBC%YYTGMVSCPL%NDIM
+  DO JFLD=1,YDML_LBC%NDIMCPL
+    IROF=1
+    DO JGL=1,NDGENL
+      IGLG=MYLATS(JGL)
+      ISTLON=NSTA(NPTRFLOFF+JGL,MYSETB)
+      IENDLON=NSTA(NPTRFLOFF+JGL,MYSETB)+NONL(NPTRFLOFF+JGL,MYSETB)-1
+!DEC$ IVDEP
+      DO JLON=ISTLON,IENDLON
+        YDML_LBC%EALFA_GFL(IROF,JFLD)=ZEALFA(JLON,ICPL+JFLD,IGLG)
+        IROF=IROF+1
+      ENDDO
+    ENDDO
+  ENDDO
+
+  IF(YDML_LBC%LUNBC) THEN
+  ! * C4.6.2: compute EALFAU_GMV, EALFAU_GFL from ZBU.
+
+  ! EALFAU_GMV:
+    DO JFLD=1,YDML_LBC%YYTGMVCPL%NDIM
+      YDML_LBC%EALFAU_GMV(1:NFLEVG,JFLD)=0._JPRB
+      IF (NBZONU > 0) YDML_LBC%EALFAU_GMV(1,JFLD)=1._JPRB
+
+      DO JLEV=2,NBZONU
+        YDML_LBC%EALFAU_GMV(JLEV,JFLD)=ZBU(NBZONU+2-JLEV,JFLD)
+      ENDDO
+    ENDDO
+
+  ! EALFAU_GFL:
+    ICPL=YDML_LBC%YYTGMVCPL%NDIM+YDML_LBC%YYTGMVSCPL%NDIM
+    DO JFLD=1,YDML_LBC%NDIMCPL
+      YDML_LBC%EALFAU_GFL(1:NFLEVG,JFLD)=0._JPRB
+      IF (NBZONU > 0) YDML_LBC%EALFAU_GFL(1,JFLD)=1._JPRB
+
+      DO JLEV=2,NBZONU
+        YDML_LBC%EALFAU_GFL(JLEV,JFLD)=ZBU(NBZONU+2-JLEV,JFLD+ICPL)
+      ENDDO
+    ENDDO
+  ENDIF
+
+ ! EALFA_TENC:
+  IF (YDML_LBC%LTENC .AND. LRPLANE) THEN
+
+    ! EALFA_TENC for surface pressure variable:
+    IROF=1
+    DO JGL=1,NDGENL
+      IGLG=MYLATS(JGL)
+      ISTLON=NSTA(NPTRFLOFF+JGL,MYSETB)
+      IENDLON=NSTA(NPTRFLOFF+JGL,MYSETB)+NONL(NPTRFLOFF+JGL,MYSETB)-1
+      DO JLON=ISTLON,IENDLON
+        YDML_LBC%EALFA_TENC(IROF,YDML_LBC%YYTGMVSTENC%MSP)=YDML_LBC%EALFA_GMVS(IROF,YDML_LBC%YYTGMVSCPL%MSP)
+        IROF=IROF+1
+      ENDDO
+    ENDDO
+
+    ! EALFA_TENC for horizontal derivatives of surface pressure variable:
+    ALLOCATE(ZSPM(1,NSPEC2))
+    ALLOCATE(ZGP(NGPTOT,1,3))
+    ZGP(1:NGPTOT,1,1)=YDML_LBC%EALFA_TENC(1:NGPTOT,YDML_LBC%YYTGMVSTENC%MSP)
+    CALL EREESPE(YDGEOMETRY,1,1,ZSPM,ZGP(1,1,1))
+    CALL ESPEREE(YDGEOMETRY,1,1,ZSPM,ZGP(1,1,1),PREELL=ZGP(1,1,2),PREELM=ZGP(1,1,3))
+    YDML_LBC%EALFA_TENC(1:NGPTOT,YDML_LBC%YYTGMVSTENC%MSPL)=ZGP(1:NGPTOT,1,2)
+    YDML_LBC%EALFA_TENC(1:NGPTOT,YDML_LBC%YYTGMVSTENC%MSPM)=ZGP(1:NGPTOT,1,3)
+    DEALLOCATE(ZGP)
+    DEALLOCATE(ZSPM)
+    DO JLON=1,NGPTOT
+      IF (YDML_LBC%EALFA_TENC(JLON,YDML_LBC%YYTGMVSTENC%MSP) == 1.0_JPRB&
+       & .OR.YDML_LBC%EALFA_TENC(JLON,YDML_LBC%YYTGMVSTENC%MSP) == 0.0_JPRB) THEN
+        YDML_LBC%EALFA_TENC(JLON,YDML_LBC%YYTGMVSTENC%MSPL) = 0.0_JPRB
+        YDML_LBC%EALFA_TENC(JLON,YDML_LBC%YYTGMVSTENC%MSPM) = 0.0_JPRB
+      ELSEIF (YDML_LBC%EALFA_TENC(JLON,YDML_LBC%YYTGMVSTENC%MSP) > 1.0_JPRB.OR.&
+       & YDML_LBC%EALFA_TENC(JLON,YDML_LBC%YYTGMVSTENC%MSP) < 0.0_JPRB) THEN
+        CALL ABOR1('SUELBC_MODEL: EALFA_TENC IS OUT OF [0,1]')
+      ENDIF
+    ENDDO
+  ENDIF
+
+  ! * C4.7: deallocations.
+
+  IF (ALLOCATED(ZEALP)) DEALLOCATE(ZEALP)
+  IF (ALLOCATED(ZREPA)) DEALLOCATE(ZREPA)
+  IF (ALLOCATED(ZEALFA)) DEALLOCATE(ZEALFA)
+  IF (ALLOCATED(INEAL)) DEALLOCATE(INEAL)
+  IF (ALLOCATED(INNAL)) DEALLOCATE(INNAL)
+  IF (ALLOCATED(INMAL)) DEALLOCATE(INMAL)
+  IF (ALLOCATED(ZB)) DEALLOCATE(ZB)
+  IF (ALLOCATED(ZBU)) DEALLOCATE(ZBU)
+
+ELSE
+
+  YDML_LBC%EALFA_GMV(:,:)=0.0_JPRB
+  YDML_LBC%EALFA_GMVS(:,:)=0.0_JPRB
+  YDML_LBC%EALFA_GFL(:,:)=0.0_JPRB
+  IF (YDML_LBC%LTENC) YDML_LBC%EALFA_TENC(:,:)=0.0_JPRB
+
+ENDIF ! LECOBI
+
+IF (ALLOCATED(IBICO)) DEALLOCATE(IBICO)
+
+! * C5: Other variables for grid-point coupling:
+!       Allocation and computation of GMGT3, EALFAGT3GMV, EALFAGT3GMVS, EALFAGT3GFL.
+
+ALLOCATE(YDML_LBC%GMGT3(NPROMA,YDGEOMETRY%YRELBC_GEO%NCPLBLKS))
+IF (LALLOPR) WRITE(NULOUT,"(1X,'ARRAY ',A10,' ALLOCATED ',8I8)") 'GMGT3 ',&
+ & SIZE(YDML_LBC%GMGT3 ),SHAPE(YDML_LBC%GMGT3 )
+
+ALLOCATE(YDML_LBC%EALFAGT3GMV(NPROMA,YDML_LBC%YYTGMVCPL%NDIM,YDGEOMETRY%YRELBC_GEO%NCPLBLKS))
+IF (LALLOPR) WRITE(NULOUT,"(1X,'ARRAY ',A12,' ALLOCATED ',8I8)") 'EALFAGT3GMV ',&
+ & SIZE(YDML_LBC%EALFAGT3GMV),SHAPE(YDML_LBC%EALFAGT3GMV)
+
+ALLOCATE(YDML_LBC%EALFAGT3GMVS(NPROMA,YDML_LBC%YYTGMVSCPL%NDIM,YDGEOMETRY%YRELBC_GEO%NCPLBLKS))
+IF (LALLOPR) WRITE(NULOUT,"(1X,'ARRAY ',A12,' ALLOCATED ',8I8)") 'EALFAGT3GMVS',&
+ & SIZE(YDML_LBC%EALFAGT3GMVS),SHAPE(YDML_LBC%EALFAGT3GMVS)
+
+ALLOCATE(YDML_LBC%EALFAGT3GFL(NPROMA,YDML_LBC%NDIMCPL,YDGEOMETRY%YRELBC_GEO%NCPLBLKS))
+IF (LALLOPR) WRITE(NULOUT,"(1X,'ARRAY ',A12,' ALLOCATED ',8I8)") 'EALFAGT3GFL ',&
+ & SIZE(YDML_LBC%EALFAGT3GFL),SHAPE(YDML_LBC%EALFAGT3GFL)
+
+IF(YDML_LBC%LUNBC) THEN
+  ALLOCATE(YDML_LBC%GMGT4(NGPTOT))
+  IF (LALLOPR) WRITE(NULOUT,"(1X,'ARRAY ',A10,' ALLOCATED ',8I8)") 'GMGT4 ',&
+   & SIZE(YDML_LBC%GMGT4 ),SHAPE(YDML_LBC%GMGT4 )
+ENDIF
+
+DO JKGLO=1,NGPTOT,NPROMA
+  IBL=(JKGLO-1)/NPROMA+1
+  IBLOCKCPL=YDGEOMETRY%YRELBC_GEO%MPTRCPLBLK(IBL)
+  IF (IBLOCKCPL > 0) THEN ! This block contains coupling points
+    DO JROF=1,YDGEOMETRY%YRELBC_GEO%NIND_LEN(IBLOCKCPL)
+      IGPTOT=JKGLO+YDGEOMETRY%YRELBC_GEO%NIND_LIST(JROF,IBLOCKCPL)-1
+      YDML_LBC%EALFAGT3GMV(JROF,:,IBLOCKCPL)=YDML_LBC%EALFA_GMV(IGPTOT,:)
+      YDML_LBC%EALFAGT3GMVS(JROF,:,IBLOCKCPL)=YDML_LBC%EALFA_GMVS(IGPTOT,:)
+      YDML_LBC%EALFAGT3GFL(JROF,:,IBLOCKCPL)=YDML_LBC%EALFA_GFL(IGPTOT,:)
+      YDML_LBC%GMGT3(JROF,IBLOCKCPL)=YDGSGEOM_NB%GM(IGPTOT)
+    ENDDO
+  ENDIF
+  IF (YDML_LBC%LUNBC) THEN
+    DO JROF=1,MIN(NPROMA,NGPTOT-JKGLO+1)
+      IGPTOT=JKGLO+JROF-1
+      YDML_LBC%GMGT4(IGPTOT)=YDGSGEOM_NB%GM(IGPTOT)
+    ENDDO
+  ENDIF
+ENDDO
+
+! * C6: Other variables for spectral nudging
+
+IF (YDML_LBC%LESPCPL) THEN
+  YDML_LBC%RNUDTFRAC=SIGN(1._JPRB,YDML_GCONF%YRRIP%TSTEP)/REAL(YDML_LBC%NEFRSPCPL,JPRB)
+  YDML_LBC%LSPNUSPDL=(SPNUDSP > ZEPS2).AND.(MYSETV==NBSETSP)
+ELSE
+  YDML_LBC%RNUDTFRAC=0._JPRB
+  YDML_LBC%LSPNUSPDL=.FALSE.
+ENDIF
+
+IF (YDML_LBC%LESPCPL) THEN
+  ALLOCATE(YDML_LBC%LNUDSPGFL(MAX(1,YDML_GCONF%YGFL%NUMSPFLDS)))
+  IF (LALLOPR) WRITE(NULOUT,"(1X,'ARRAY ',A10,' ALLOCATED ',8I8)") 'LNUDSPGFL',&
+ & SIZE(YDML_LBC%LNUDSPGFL),SHAPE(YDML_LBC%LNUDSPGFL)
+  YDML_LBC%LNUDSPGFL(:)=.FALSE.
+  IF ((SPNUDQ>ZEPS2).AND.YDML_GCONF%YGFL%YQ%MPSP>0.AND.YDML_GCONF%YGFL%YQ_NL%LSP) THEN
+    YDML_LBC%LNUDSPGFL(YDML_GCONF%YGFL%YQ%MPSP)=.TRUE.
+  ENDIF
+ENDIF
+
+!--------------------------------------------------------------------------
+
+!      Part D: printings.
+
+WRITE(NULOUT,*) ' --- PRINTINGS IN SUELBC_MODEL --- '
+
+! * D1: Control frequency of LBC.
+WRITE(UNIT=NULOUT,FMT='('' Frequency of LBC: '')')
+WRITE(UNIT=NULOUT,FMT='(''  TEFRCL = '',F10.1,'' NEFRCL = '',I15)') YDML_LBC%TEFRCL,YDML_LBC%NEFRCL
+
+! * D2: LECOBI.
+WRITE(NULOUT,'(''  LECOBI = '',L2)') YDML_LBC%LECOBI
+
+! * D3: Relaxation coefficients EALFA_GMV, EALFA_GMVS, EALFA_GFL, EALFA_TENC.
+IF (YDML_LBC%LECOBI) THEN
+  IF (LOUTPUT) THEN
+    WRITE(UNIT=NULOUT,FMT='('' Relaxation coefficients: '')')
+    DO JFLD=1,YDML_LBC%YYTGMVCPL%NDIM
+      WRITE(UNIT=NULOUT,FMT=' (''  JFLD = '',I3)') JFLD
+      WRITE(UNIT=NULOUT,FMT=' (''  EALFA_GMV FOR JFLD'')')
+      DO JGL=1,NDGENL,100
+        IGLG=MYLATS(JGL)
+        WRITE(UNIT=NULOUT,FMT='(2X,14(1X,E8.2))') (YDML_LBC%EALFA_GMV(JLON+NSTAGP(JGL),JFLD),JLON=1,NDLON,100)
+      ENDDO
+    ENDDO
+    DO JFLD=1,YDML_LBC%YYTGMVSCPL%NDIM
+      WRITE(UNIT=NULOUT,FMT=' (''  JFLD = '',I3)') JFLD
+      WRITE(UNIT=NULOUT,FMT=' (''  EALFA_GMVS FOR JFLD'')')
+      DO JGL=1,NDGENL,100
+        IGLG=MYLATS(JGL)
+        WRITE(UNIT=NULOUT,FMT='(2X,14(1X,E8.2))') (YDML_LBC%EALFA_GMVS(JLON+NSTAGP(JGL),JFLD),JLON=1,NDLON,100)
+      ENDDO
+    ENDDO
+    DO JFLD=1,YDML_LBC%NDIMCPL
+      WRITE(UNIT=NULOUT,FMT=' (''  JFLD = '',I3)') JFLD
+      WRITE(UNIT=NULOUT,FMT=' (''  EALFA_GFL FOR JFLD'')')
+      DO JGL=1,NDGENL,100
+        IGLG=MYLATS(JGL)
+        WRITE(UNIT=NULOUT,FMT='(2X,14(1X,E8.2))') (YDML_LBC%EALFA_GFL(JLON+NSTAGP(JGL),JFLD),JLON=1,NDLON,100)
+      ENDDO
+    ENDDO
+    IF(YDML_LBC%LUNBC) THEN
+      WRITE(UNIT=NULOUT,FMT='('' Upper Relaxation coefficients: '')')
+      DO JFLD=1,YDML_LBC%YYTGMVCPL%NDIM
+        WRITE(UNIT=NULOUT,FMT=' (''  JFLD = '',I3)') JFLD
+        WRITE(UNIT=NULOUT,FMT=' (''  EALFAU_GMV FOR JFLD'')')
+        WRITE(UNIT=NULOUT,FMT='(2X,14(1X,E8.2))')&
+          &YDML_LBC%EALFAU_GMV(1:NBZONU+1,JFLD)
+      ENDDO
+    ENDIF
+    IF (YDML_LBC%LTENC.AND.LRPLANE) THEN
+      DO JFLD=1,YDML_LBC%YYTGMVSTENC%NDIM
+        WRITE(UNIT=NULOUT,FMT=' (''  JFLD = '',I3)') JFLD
+        WRITE(UNIT=NULOUT,FMT=' (''  EALFA_TENC FOR JFLD'')')
+        DO JGL=1,NDGENL,100
+          IGLG=MYLATS(JGL)
+          WRITE(UNIT=NULOUT,FMT='(2X,14(1X,E8.2))') (YDML_LBC%EALFA_TENC(JLON+NSTAGP(JGL),JFLD),JLON=1,NDLON,100)
+        ENDDO
+      ENDDO
+    ENDIF
+  ENDIF
+ENDIF
+
+! * D4: Other variables for spectral nudging.
+IF (YDML_LBC%LESPCPL) THEN
+  WRITE(UNIT=NULOUT,FMT='('' Other variables for spectral nudging: '')')
+  WRITE(UNIT=NULOUT,FMT='(''  RNUDTFRAC = '',E20.14)') YDML_LBC%RNUDTFRAC
+  WRITE(UNIT=NULOUT,FMT='(''  LSPNUSPDL = '',L2)') YDML_LBC%LSPNUSPDL
+  WRITE(UNIT=NULOUT,FMT='(''  LNUDSPGFL = '',20(1X,L2))') YDML_LBC%LNUDSPGFL(:)
+  WRITE(UNIT=NULOUT,FMT='(''  NEFRSPCPL = '',I5)') YDML_LBC%NEFRSPCPL
+  WRITE(UNIT=NULOUT,FMT='(''   NEK0     = '',I5)') YDML_LBC%NEK0
+  WRITE(UNIT=NULOUT,FMT='(''   NEK1     = '',I5)') YDML_LBC%NEK1
+  WRITE(UNIT=NULOUT,FMT='(''   NEN1     = '',I5)') YDML_LBC%NEN1
+  WRITE(UNIT=NULOUT,FMT='(''   NEN2     = '',I5)') YDML_LBC%NEN2
+  WRITE(UNIT=NULOUT,FMT='(''  RNUTENC   = '',E20.14)') YDML_LBC%RNUTENC
+  WRITE(UNIT=NULOUT,FMT='(''   RTENC    = '',E20.14)') YDML_LBC%RTENC
+  WRITE(NULOUT, FMT='(&
+  & '' SPNUDVOR = '',E11.4,'' SPNUDDIV = '',E11.4,'' SPNUDT = '',E11.4,&
+  & '' SPNUDQ = '',E11.4,'' SPNUDSP = '',E11.4&
+  & )') YDML_LBC%SPNUDVOR,YDML_LBC%SPNUDDIV,YDML_LBC%SPNUDT,YDML_LBC%SPNUDQ,YDML_LBC%SPNUDSP
+ENDIF
+
+WRITE(NULOUT,*) ' '
+
+!--------------------------------------------------------------------------
+END ASSOCIATE
+IF (LHOOK) CALL DR_HOOK('YEMLBC_MODEL:SUELBC_MODEL',1,ZHOOK_HANDLE)
+END SUBROUTINE SUELBC_MODEL
+
+SUBROUTINE DEALLOCATE_ELBC0B(YDML_LBC)
+
+!--------------------------------------------------------------------------
+! deallocates 'ELBC0B' arrays
+!--------------------------------------------------------------------------
+
+IMPLICIT NONE
+
+TYPE(TELBC_MODEL) ,INTENT(INOUT) :: YDML_LBC 
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
+
+!     ------------------------------------------------------------------
+IF (LHOOK) CALL DR_HOOK('YEMLBC_MODEL:DEALLOCATE_ELBC0B',0,ZHOOK_HANDLE)
+!     ------------------------------------------------------------------
+
+IF (ALLOCATED(YDML_LBC%EALFA_GMV)) DEALLOCATE(YDML_LBC%EALFA_GMV)
+IF (ALLOCATED(YDML_LBC%EALFA_GMVS)) DEALLOCATE(YDML_LBC%EALFA_GMVS)
+IF (ALLOCATED(YDML_LBC%EALFA_GFL)) DEALLOCATE(YDML_LBC%EALFA_GFL)
+IF (ALLOCATED(YDML_LBC%EALFA_TENC)) DEALLOCATE(YDML_LBC%EALFA_TENC)
+IF (ALLOCATED(YDML_LBC%EALFAGT3GMV)) DEALLOCATE(YDML_LBC%EALFAGT3GMV)
+IF (ALLOCATED(YDML_LBC%EALFAGT3GMVS)) DEALLOCATE(YDML_LBC%EALFAGT3GMVS)
+IF (ALLOCATED(YDML_LBC%EALFAGT3GFL)) DEALLOCATE(YDML_LBC%EALFAGT3GFL)
+IF (ALLOCATED(YDML_LBC%EALFAU_GMV)) DEALLOCATE(YDML_LBC%EALFAU_GMV)
+IF (ALLOCATED(YDML_LBC%EALFAU_GFL)) DEALLOCATE(YDML_LBC%EALFAU_GFL)
+
+IF (ALLOCATED(YDML_LBC%GMGT3   )) DEALLOCATE(YDML_LBC%GMGT3)
+IF (ALLOCATED(YDML_LBC%GMGT4   )) DEALLOCATE(YDML_LBC%GMGT4)
+IF (ALLOCATED(YDML_LBC%EWB     )) DEALLOCATE(YDML_LBC%EWB)
+IF (ALLOCATED(YDML_LBC%EWBDFIBW)) DEALLOCATE(YDML_LBC%EWBDFIBW)
+IF (ALLOCATED(YDML_LBC%EWBDFIFW)) DEALLOCATE(YDML_LBC%EWBDFIFW)
+IF (ALLOCATED(YDML_LBC%LNUDSPGFL)) DEALLOCATE(YDML_LBC%LNUDSPGFL)
+
+!     ------------------------------------------------------------------
+
+IF (LHOOK) CALL DR_HOOK('YEMLBC_MODEL:DEALLOCATE_ELBC0B',1,ZHOOK_HANDLE)
+END SUBROUTINE DEALLOCATE_ELBC0B
+
+!=============================================================================
+
+END MODULE YEMLBC_MODEL
diff --git a/src/arome/gmkpack_ignored_files b/src/arome/gmkpack_ignored_files
index 7e7475d6743f9d2d0685616ded0f40f374f8eae9..9c15a90a667d6787a8624f7052a19ec9961ab8c5 100644
--- a/src/arome/gmkpack_ignored_files
+++ b/src/arome/gmkpack_ignored_files
@@ -79,6 +79,7 @@ phyex/micro/rzcolx.F90
 mpa/dummy/mask_compress.F90
 phyex/micro/cart_compress.F90
 phyex/micro/modi_add_bounds.F90
+mpa/micro/externals/add_bounds.F90
 phyex/micro/modi_cart_compress.F90
 phyex/micro/modi_mask_compress.F90
 phyex/micro/ini_budget.F90
diff --git a/src/arome/ial_version.json b/src/arome/ial_version.json
index 90e99859a7a2d0ca5ca7064f78a761544ffe6f54..86b5a45c2327c858c0309772d132c5c3bc5f4055 100644
--- a/src/arome/ial_version.json
+++ b/src/arome/ial_version.json
@@ -1,6 +1,6 @@
 {
-"cycle":"48t3",
+"cycle":"49t0",
 "branch":"main",
 "version":"01",
-"scripttag":"_nam8"
+"scripttag":"_nam1"
 }
diff --git a/src/common/aux/gamma.F90 b/src/common/aux/gamma.F90
index 6969c28cd46d69740ad6356478f1ba46ff2b6edf..6e3b9dd0916d63dfeece78666a25eb175d0d8bad 100644
--- a/src/common/aux/gamma.F90
+++ b/src/common/aux/gamma.F90
@@ -12,8 +12,7 @@
 !
 !     ######################################
       FUNCTION GAMMA_X0D(PX)  RESULT(PGAMMA)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ######################################
 !
 !
@@ -66,7 +65,7 @@ INTEGER                              :: JJ ! Loop index
 REAL                                 :: ZSER,ZSTP,ZTMP,ZX,ZY,ZCOEF(6)
 REAL                                 :: ZPI
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GAMMA_X0D',0,ZHOOK_HANDLE)
 !-------------------------------------------------------------------------------
 !
@@ -121,8 +120,7 @@ END FUNCTION GAMMA_X0D
 !
 !     ######################################
       FUNCTION GAMMA_X1D(PX)  RESULT(PGAMMA)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ######################################
 !
 !
@@ -177,7 +175,7 @@ INTEGER                              :: JI ! Loop index
 REAL                                 :: ZSER, ZSTP, ZTMP, ZX, ZY, ZCOEF(6)
 REAL                                 :: ZPI
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GAMMA_X1D',0,ZHOOK_HANDLE)
 !-------------------------------------------------------------------------------
 !
diff --git a/src/common/aux/gamma_inc.F90 b/src/common/aux/gamma_inc.F90
index abb9ebad8c19156a6108c0ce88c34806c7e70464..cff80e38169f0c45f7e0c18ece4a4ced3949fccc 100644
--- a/src/common/aux/gamma_inc.F90
+++ b/src/common/aux/gamma_inc.F90
@@ -3,8 +3,7 @@
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
       FUNCTION GAMMA_INC(PA,PX)  RESULT(PGAMMA_INC)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #############################################
 !
 !
@@ -72,7 +71,7 @@ REAL                                 :: ZFPMIN=1.E-30
 REAL                                 :: ZAP,ZDEL,ZSUM
 REAL                                 :: ZAN,ZB,ZC,ZD,ZH
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GAMMA_INC',0,ZHOOK_HANDLE)
 IF(PX<0.0 .OR. PA<=0.0) THEN
   CALL PRINT_MSG(NVERB_FATAL, 'GEN', 'GAMMA_INC', 'invalid arguments: PX<0.0 .OR. PA<=0.0')
diff --git a/src/common/aux/general_gamma.F90 b/src/common/aux/general_gamma.F90
index 7938d74fa1845b69c8871fb7e29f73f3210c2afb..c86a5fc1f3bd6a60f8c2b10af7f735aa6f0e3108 100644
--- a/src/common/aux/general_gamma.F90
+++ b/src/common/aux/general_gamma.F90
@@ -3,8 +3,7 @@
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
 !MNH_LIC for details. version 1.
       FUNCTION GENERAL_GAMMA(PALPHA,PNU,PLBDA,PX)  RESULT(PGENERAL_GAMMA)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###################################################################
 !
 !
@@ -60,7 +59,7 @@ REAL                                 :: PGENERAL_GAMMA
 !
 REAL                                 :: ZARG,ZPOWER
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GENERAL_GAMMA',0,ZHOOK_HANDLE)
 ZARG   = PLBDA*PX
 ZPOWER = PALPHA*PNU - 1.0
diff --git a/src/common/aux/gradient_m.F90 b/src/common/aux/gradient_m.F90
index b98d5acd8f7d79c84c8d296dac692f863fd20a8f..b73a164766d68688db3a620256630eef3969235b 100644
--- a/src/common/aux/gradient_m.F90
+++ b/src/common/aux/gradient_m.F90
@@ -4,8 +4,7 @@
 !MNH_LIC for details. version 1.
 !     ######spl
       FUNCTION GX_M_M(PA,PDXX,PDZZ,PDZX,KKA,KKU,KL)      RESULT(PGX_M_M)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #######################################################
 !
 !!****  *GX_M_M* - Cartesian Gradient operator: 
@@ -90,7 +89,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGX_M_M ! result mass point
 !*       1.    DEFINITION of GX_M_M
 !              --------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GX_M_M',0,ZHOOK_HANDLE)
 IF (.NOT. LFLAT) THEN 
   PGX_M_M(:,:,:)= (DXF(MXM(PA(:,:,:)))   -                     &
@@ -108,8 +107,7 @@ END FUNCTION GX_M_M
 !
 !     #######################################################
       FUNCTION GX_M_U(KKA, KKU, KL,PY,PDXX,PDZZ,PDZX) RESULT(PGX_M_U)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ##################################################
 !
 !!****  *GX_M_U * - Compute the gradient along x for a variable localized at
@@ -201,7 +199,7 @@ INTEGER :: JI_1JK, JIJK_1, JI_1JK_1, JIJKP1, JI_1JKP1
 !*       1.    COMPUTE THE GRADIENT ALONG X
 !              -----------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GX_M_U',0,ZHOOK_HANDLE)
 IIU=SIZE(PY,1)
 IJU=SIZE(PY,2)
@@ -265,8 +263,7 @@ IF (LHOOK) CALL DR_HOOK('GX_M_U',1,ZHOOK_HANDLE)
 END FUNCTION GX_M_U
 !     ######spl
       FUNCTION GY_M_M(PA,PDYY,PDZZ,PDZY, KKA, KKU, KL)      RESULT(PGY_M_M)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #######################################################
 !
 !!****  *GY_M_M* - Cartesian Gradient operator: 
@@ -350,7 +347,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGY_M_M ! result mass point
 !              --------------------
 !
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GY_M_M',0,ZHOOK_HANDLE)
 IF (.NOT. LFLAT) THEN 
   PGY_M_M(:,:,:)= (DYF(MYM(PA))-MZF(MYF(PDZY)*DZM(PA, KKA, KKU, KL)&
@@ -365,8 +362,7 @@ IF (LHOOK) CALL DR_HOOK('GY_M_M',1,ZHOOK_HANDLE)
 END FUNCTION GY_M_M
 !     ######spl
       FUNCTION GY_M_V(KKA,KKU,KL,PY,PDYY,PDZZ,PDZY) RESULT(PGY_M_V)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ##################################################
 !
 !!****  *GY_M_V * - Compute the gradient along y for a variable localized at
@@ -454,7 +450,7 @@ INTEGER  IJU,IKU,JJ,JK
 !*       1.    COMPUTE THE GRADIENT ALONG Y
 !              ----------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GY_M_V',0,ZHOOK_HANDLE)
 IJU=SIZE(PY,2)
 IKU=SIZE(PY,3)
@@ -494,8 +490,7 @@ IF (LHOOK) CALL DR_HOOK('GY_M_V',1,ZHOOK_HANDLE)
 END FUNCTION GY_M_V
 !     ######spl
       FUNCTION GZ_M_M(PA,PDZZ, KKA, KKU, KL)      RESULT(PGZ_M_M)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #######################################################
 !
 !!****  *GZ_M_M* - Cartesian Gradient operator: 
@@ -571,7 +566,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGZ_M_M ! result mass point
 !*       1.    DEFINITION of GZ_M_M
 !              --------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GZ_M_M',0,ZHOOK_HANDLE)
 PGZ_M_M(:,:,:)= MZF(DZM(PA(:,:,:), KKA, KKU, KL)/PDZZ(:,:,:), KKA, KKU, KL)
 !
@@ -581,8 +576,7 @@ IF (LHOOK) CALL DR_HOOK('GZ_M_M',1,ZHOOK_HANDLE)
 END FUNCTION GZ_M_M
 !     ######spl
       FUNCTION GZ_M_W(KKA, KKU, KL,PY,PDZZ) RESULT(PGZ_M_W)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #########################################
 !
 !!****  *GZ_M_W * - Compute the gradient along z direction for a
@@ -657,7 +651,7 @@ INTEGER :: IKT,IKTB,IKTE
 !*       1.    COMPUTE THE GRADIENT ALONG Z
 !              -----------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GZ_M_W',0,ZHOOK_HANDLE)
 IKT=SIZE(PY,3)
 IKTB=1+JPVEXT_TURB
diff --git a/src/common/aux/gradient_u.F90 b/src/common/aux/gradient_u.F90
index 2b92da6beb05bb643b4e223a44cbbad4bc5fc133..542c6cc0d7154cd734c1f2e6053633191591d2bd 100644
--- a/src/common/aux/gradient_u.F90
+++ b/src/common/aux/gradient_u.F90
@@ -1,7 +1,6 @@
 !     ######spl
       FUNCTION GX_U_M(PA,PDXX,PDZZ,PDZX, KKA, KKU, KL)      RESULT(PGX_U_M)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #######################################################
 !
 !!****  *GX_U_M* - Cartesian Gradient operator: 
@@ -85,7 +84,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGX_U_M ! result mass point
 !*       1.    DEFINITION of GX_U_M
 !              --------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GX_U_M',0,ZHOOK_HANDLE)
 IF (.NOT. LFLAT) THEN
   PGX_U_M(:,:,:)= ( DXF(PA)        -                 &
@@ -101,8 +100,7 @@ IF (LHOOK) CALL DR_HOOK('GX_U_M',1,ZHOOK_HANDLE)
 END FUNCTION GX_U_M
 !     ######spl
       FUNCTION GY_U_UV(PA,PDYY,PDZZ,PDZY, KKA, KKU, KL)      RESULT(PGY_U_UV)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #########################################################
 !
 !!****  *GY_U_UV* - Cartesian Gradient operator: 
@@ -187,7 +185,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGY_U_UV ! result UV point
 !*       1.    DEFINITION of GY_U_UV
 !              ---------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GY_U_UV',0,ZHOOK_HANDLE)
 IF (.NOT. LFLAT) THEN
   PGY_U_UV(:,:,:)=  (DYM(PA)- MZF(MYM(DZM(PA, KKA, KKU, KL)/&
@@ -202,8 +200,7 @@ IF (LHOOK) CALL DR_HOOK('GY_U_UV',1,ZHOOK_HANDLE)
 END FUNCTION GY_U_UV
 !     ######spl
       FUNCTION GZ_U_UW(PA,PDZZ, KKA, KKU, KL)      RESULT(PGZ_U_UW)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #######################################################
 !
 !!****  *GZ_U_UW - Cartesian Gradient operator: 
@@ -278,7 +275,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGZ_U_UW ! result UW point
 !*       1.    DEFINITION of GZ_U_UW
 !              ---------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GZ_U_UW',0,ZHOOK_HANDLE)
 PGZ_U_UW(:,:,:)= DZM(PA, KKA, KKU, KL) / MXM(PDZZ)    
 !
diff --git a/src/common/aux/gradient_v.F90 b/src/common/aux/gradient_v.F90
index 619c22a0dab214fdcfcad936aada6cf7a1d16f76..78c18d86ecdb4a47e3bb9698c40fa358df83d0d5 100644
--- a/src/common/aux/gradient_v.F90
+++ b/src/common/aux/gradient_v.F90
@@ -1,7 +1,6 @@
 !     ######spl
       FUNCTION GX_V_UV(PA,PDXX,PDZZ,PDZX, KKA, KKU, KL)      RESULT(PGX_V_UV)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #########################################################
 !
 !!****  *GX_V_UV* - Cartesian Gradient operator: 
@@ -85,7 +84,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGX_V_UV ! result UV point
 !*       1.    DEFINITION of GX_V_UV
 !              ---------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GX_V_UV',0,ZHOOK_HANDLE)
 IF (.NOT. LFLAT) THEN
   PGX_V_UV(:,:,:)= ( DXM(PA)- MZF(MXM(DZM(PA, KKA, KKU, KL)/&
@@ -100,8 +99,7 @@ IF (LHOOK) CALL DR_HOOK('GX_V_UV',1,ZHOOK_HANDLE)
 END FUNCTION GX_V_UV
 !     ######spl
       FUNCTION GY_V_M(PA,PDYY,PDZZ,PDZY, KKA, KKU, KL)      RESULT(PGY_V_M)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #######################################################
 !
 !!****  *GY_V_M* - Cartesian Gradient operator: 
@@ -184,7 +182,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGY_V_M ! result mass point
 !*       1.    DEFINITION of GY_V_M
 !              --------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GY_V_M',0,ZHOOK_HANDLE)
 IF (.NOT. LFLAT) THEN
   PGY_V_M(:,:,:)= (DYF(PA)        -                      &
@@ -200,8 +198,7 @@ IF (LHOOK) CALL DR_HOOK('GY_V_M',1,ZHOOK_HANDLE)
 END FUNCTION GY_V_M
 !     ######spl
       FUNCTION GZ_V_VW(PA,PDZZ, KKA, KKU, KL)      RESULT(PGZ_V_VW)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #######################################################
 !
 !!****  *GZ_V_VW - Cartesian Gradient operator: 
@@ -277,7 +274,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGZ_V_VW ! result VW point
 !*       1.    DEFINITION of GZ_V_VW
 !              ---------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GZ_V_VW',0,ZHOOK_HANDLE)
 PGZ_V_VW(:,:,:)= DZM(PA, KKA, KKU, KL) / MYM(PDZZ)     
 !
diff --git a/src/common/aux/gradient_w.F90 b/src/common/aux/gradient_w.F90
index 02a79fb7e922af5851c0d9e6043d68c06540b807..a8a946966c94b40e481a9c4e8e322382915be272 100644
--- a/src/common/aux/gradient_w.F90
+++ b/src/common/aux/gradient_w.F90
@@ -1,7 +1,6 @@
 !     ######spl
       FUNCTION GX_W_UW(PA,PDXX,PDZZ,PDZX, KKA, KKU, KL)      RESULT(PGX_W_UW)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #########################################################
 !
 !!****  *GX_W_UW* - Cartesian Gradient operator: 
@@ -75,7 +74,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGX_W_UW ! result UW point
 !*       1.    DEFINITION of GX_W_UW
 !              ---------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GX_W_UW',0,ZHOOK_HANDLE)
 IF (.NOT. LFLAT) THEN
   PGX_W_UW(:,:,:)= DXM(PA(:,:,:))/(MZM(PDXX(:,:,:), KKA, KKU, KL))    &
@@ -91,8 +90,7 @@ IF (LHOOK) CALL DR_HOOK('GX_W_UW',1,ZHOOK_HANDLE)
 END FUNCTION GX_W_UW
 !     ######spl
       FUNCTION GY_W_VW(PA,PDYY,PDZZ,PDZY, KKA, KKU, KL)      RESULT(PGY_W_VW)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #########################################################
 !
 !!****  *GY_W_VW* - Cartesian Gradient operator: 
@@ -166,7 +164,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGY_W_VW ! result VW point
 !*       1.    DEFINITION of GY_W_VW
 !              ---------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GY_W_VW',0,ZHOOK_HANDLE)
 IF (.NOT. LFLAT) THEN
   PGY_W_VW(:,:,:)= DYM(PA(:,:,:))/(MZM(PDYY(:,:,:), KKA, KKU, KL))    &
@@ -182,8 +180,7 @@ IF (LHOOK) CALL DR_HOOK('GY_W_VW',1,ZHOOK_HANDLE)
 END FUNCTION GY_W_VW
 !     ######spl
       FUNCTION GZ_W_M(PA,PDZZ, KKA, KKU, KL)      RESULT(PGZ_W_M)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #######################################################
 !
 !!****  *GZ_W_M* - Cartesian Gradient operator: 
@@ -253,7 +250,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGZ_W_M ! result mass point
 !*       1.    DEFINITION of GZ_W_M
 !              --------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GZ_W_M',0,ZHOOK_HANDLE)
 PGZ_W_M(:,:,:)= DZF(PA(:,:,:), KKA, KKU, KL)/(MZF(PDZZ(:,:,:), KKA, KKU, KL))    
 !
diff --git a/src/common/aux/mode_gradient_m_phy.F90 b/src/common/aux/mode_gradient_m_phy.F90
index 718599a9d74ac8e1a6f92a7c39b5226f82b7f9a5..71cd036b887808892fc0c639c534d52dd4fc22b3 100644
--- a/src/common/aux/mode_gradient_m_phy.F90
+++ b/src/common/aux/mode_gradient_m_phy.F90
@@ -106,8 +106,7 @@ PGZ_M_W(IIB:IIE,IJB:IJE,IKA)= PGZ_M_W(IIB:IIE,IJB:IJE,IKU) ! -999.
 END SUBROUTINE GZ_M_W_PHY
 !
 SUBROUTINE GX_M_M_PHY(D,OFLAT,PA,PDXX,PDZZ,PDZX,PGX_M_M)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #######################################################
 !
 !!****  *GX_M_M* - Cartesian Gradient operator: 
@@ -195,7 +194,7 @@ INTEGER :: JI,JJ,JK
 !*       1.    DEFINITION of GX_M_M
 !              --------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GX_M_M',0,ZHOOK_HANDLE)
 !
 IIE=D%NIEC
@@ -232,8 +231,7 @@ IF (LHOOK) CALL DR_HOOK('GX_M_M',1,ZHOOK_HANDLE)
 END SUBROUTINE GX_M_M_PHY
 !
       SUBROUTINE GY_M_M_PHY(D,OFLAT,PA,PDYY,PDZZ,PDZY,PGY_M_M)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #######################################################
 !
 !!****  *GY_M_M* - Cartesian Gradient operator: 
@@ -312,7 +310,7 @@ INTEGER :: JI,JJ,JK
 !
 !*       0.2   declaration of local variables
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GY_M_M',0,ZHOOK_HANDLE)
 !
 IIE=D%NIEC
@@ -356,8 +354,7 @@ END SUBROUTINE GY_M_M_PHY
 !
 !     #######################################################
       SUBROUTINE GX_M_U_PHY(D,OFLAT,PY,PDXX,PDZZ,PDZX,PGX_M_U)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ##################################################
 !
 !!****  *GX_M_U * - Compute the gradient along x for a variable localized at
@@ -449,7 +446,7 @@ INTEGER :: JI_1JK, JIJK_1, JI_1JK_1, JIJKP1, JI_1JKP1
 !*       1.    COMPUTE THE GRADIENT ALONG X
 !              -----------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GX_M_U',0,ZHOOK_HANDLE)
 IIU=D%NIT
 IJU=D%NJT
@@ -506,8 +503,7 @@ IF (LHOOK) CALL DR_HOOK('GX_M_U',1,ZHOOK_HANDLE)
 END SUBROUTINE GX_M_U_PHY
 !
       SUBROUTINE GY_M_V_PHY(D,OFLAT,PY,PDYY,PDZZ,PDZY,PGY_M_V)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ##################################################
 !
 !!****  *GY_M_V * - Compute the gradient along y for a variable localized at
@@ -595,7 +591,7 @@ INTEGER  IJU,IKU,JI,JJ,JK,IKL, IKA
 !*       1.    COMPUTE THE GRADIENT ALONG Y
 !              ----------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GY_M_V',0,ZHOOK_HANDLE)
 IJU=D%NJT
 IKU=D%NKT
diff --git a/src/common/aux/mode_gradient_u_phy.F90 b/src/common/aux/mode_gradient_u_phy.F90
index ab37275be8562c2f2caf9ba01bdf50373123af6c..9151e6e3aa362ac8a87df1b502a49dc526e67a88 100644
--- a/src/common/aux/mode_gradient_u_phy.F90
+++ b/src/common/aux/mode_gradient_u_phy.F90
@@ -100,8 +100,7 @@ PGZ_U_UW(IIB:IIE,IJB:IJE,1:IKT)= PA_WORK(IIB:IIE,IJB:IJE,1:IKT) &
 END SUBROUTINE GZ_U_UW_PHY
 !
       SUBROUTINE GX_U_M_PHY(D,OFLAT,PA,PDXX,PDZZ,PDZX,PGX_U_M)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #######################################################
 !
 !!****  *GX_U_M* - Cartesian Gradient operator: 
@@ -189,7 +188,7 @@ INTEGER :: JI,JJ,JK
 !*       1.    DEFINITION of GX_U_M
 !              --------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GX_U_M',0,ZHOOK_HANDLE)
 !
 IIE=D%NIEC
diff --git a/src/common/aux/mode_gradient_v_phy.F90 b/src/common/aux/mode_gradient_v_phy.F90
index bd9fece3ed0670056c2078f77d9518f4b8456c4a..f8d0aa401d24b09f5b56f7fc414167dfe9187801 100644
--- a/src/common/aux/mode_gradient_v_phy.F90
+++ b/src/common/aux/mode_gradient_v_phy.F90
@@ -97,8 +97,7 @@ PGZ_V_VW(IIB:IIE,IJB:IJE,1:IKT)= PA_WORK(IIB:IIE,IJB:IJE,1:IKT) &
 !
 END SUBROUTINE GZ_V_VW_PHY
       SUBROUTINE GY_V_M_PHY(D,OFLAT,PA,PDYY,PDZZ,PDZY,PGY_V_M)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #######################################################
 !
 !!****  *GY_V_M* - Cartesian Gradient operator: 
@@ -178,7 +177,7 @@ INTEGER :: JI,JJ,JK
 !
 !*       0.2   declaration of local variables
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GY_V_M',0,ZHOOK_HANDLE)
 !
 IIE=D%NIEC
diff --git a/src/common/aux/mode_gradient_w_phy.F90 b/src/common/aux/mode_gradient_w_phy.F90
index b9b43a2b41c9c46307e40ac5893731f555d1f811..a2651ee51c7f9d32f65cd428e1c80864305cf5d8 100644
--- a/src/common/aux/mode_gradient_w_phy.F90
+++ b/src/common/aux/mode_gradient_w_phy.F90
@@ -2,8 +2,7 @@ MODULE MODE_GRADIENT_W_PHY
 IMPLICIT NONE
 CONTAINS
       SUBROUTINE GX_W_UW_PHY(D,OFLAT,PA,PDXX,PDZZ,PDZX,PGX_W_UW)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #########################################################
 !
 !!****  *GX_W_UW* - Cartesian Gradient operator: 
@@ -80,7 +79,7 @@ INTEGER :: JI,JJ,JK
 !*       1.    DEFINITION of GX_W_UW
 !              ---------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GX_W_UW',0,ZHOOK_HANDLE)
 IIE=D%NIEC
 IIB=D%NIBC
@@ -114,8 +113,7 @@ IF (LHOOK) CALL DR_HOOK('GX_W_UW',1,ZHOOK_HANDLE)
 END SUBROUTINE GX_W_UW_PHY
 !
       SUBROUTINE GY_W_VW_PHY(D,OFLAT,PA,PDYY,PDZZ,PDZY,PGY_W_VW)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #########################################################
 !
 !!****  *GY_W_VW* - Cartesian Gradient operator: 
@@ -191,7 +189,7 @@ INTEGER :: JI,JJ,JK
 !*       1.    DEFINITION of GY_W_VW
 !              ---------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GY_W_VW',0,ZHOOK_HANDLE)
 !IF (.NOT. LFLAT) THEN
 !  PGY_W_VW(:,:,:)= DYM(PA(:,:,:))/(MZM(PDYY(:,:,:), KKA, KKU, KL))    &
@@ -233,8 +231,7 @@ IF (LHOOK) CALL DR_HOOK('GY_W_VW',1,ZHOOK_HANDLE)
 END SUBROUTINE GY_W_VW_PHY
 !
       SUBROUTINE GZ_W_M_PHY(D,PA,PDZZ,PGZ_W_M)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #######################################################
 !
 !!****  *GZ_W_M* - Cartesian Gradient operator: 
@@ -307,7 +304,7 @@ INTEGER :: JI,JJ,JK
 !*       1.    DEFINITION of GZ_W_M
 !              --------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('GZ_W_M',0,ZHOOK_HANDLE)
 IIE=D%NIEC
 IIB=D%NIBC
diff --git a/src/common/aux/mode_ini_cst.F90 b/src/common/aux/mode_ini_cst.F90
index 124cde9d185ed19c5ac870c1dfcc9eb5c6a2a25e..89eef4a6023da4a4be1ea9a11f9d65aff426d3e6 100644
--- a/src/common/aux/mode_ini_cst.F90
+++ b/src/common/aux/mode_ini_cst.F90
@@ -62,12 +62,11 @@ CONTAINS
 USE MODD_CST
 USE MODD_PRECISION, ONLY: MNHREAL, MNHREAL32, MNHREAL64
 USE MODE_MSG,       ONLY: PRINT_MSG, NVERB_FATAL
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !  
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !-------------------------------------------------------------------------------
 IF (LHOOK) CALL DR_HOOK('INI_CST',0,ZHOOK_HANDLE)
 CALL CST_ASSOCIATE()
diff --git a/src/common/aux/mode_thermo.F90 b/src/common/aux/mode_thermo.F90
index eff0e8cef3a7ae57c05c29b73845228170a054ca..7bfd386efffaeac3245ff23d032ea92ef21b4f57 100644
--- a/src/common/aux/mode_thermo.F90
+++ b/src/common/aux/mode_thermo.F90
@@ -41,8 +41,7 @@
 !
 !-------------------------------------------------------------------------------
 USE MODE_MSG
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 IMPLICIT NONE
 
 PRIVATE
@@ -161,7 +160,7 @@ REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2),SIZE(PT,3)) :: PFOES  ! saturation vapor
 !*       1.    COMPUTE SATURATION VAPOR PRESSURE
 !              ---------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:SM_FOES_3D',0,ZHOOK_HANDLE)
 PFOES(:,:,:) = EXP( XALPW - XBETAW/PT(:,:,:) - XGAMW*LOG(PT(:,:,:))  )
 !-------------------------------------------------------------------------------
@@ -243,7 +242,7 @@ REAL, DIMENSION(SIZE(PT)) :: PFOES  ! saturation vapor
 !*       1.    COMPUTE SATURATION VAPOR PRESSURE
 !              ---------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:SM_FOES_1D',0,ZHOOK_HANDLE)
 PFOES(:) = EXP( XALPW - XBETAW/PT(:) - XGAMW*LOG(PT(:))  )
 !-------------------------------------------------------------------------------
@@ -357,7 +356,7 @@ INTEGER                                           :: JRR     ! loop counter
 !*       1.    COMPUTE VAPOR MIXING RATIO
 !              --------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:SM_PMR_HU_3D',0,ZHOOK_HANDLE)
 ITERMAX = 10
 IF (PRESENT(KITERMAX)) ITERMAX=KITERMAX
@@ -501,7 +500,7 @@ INTEGER                                           :: ILUOUT,IRESP
 !*       1.    COMPUTE VAPOR MIXING RATIO
 !              --------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:SM_PMR_HU_1D',0,ZHOOK_HANDLE)
 ITERMAX = 10
 IF (PRESENT(KITERMAX)) ITERMAX=KITERMAX
@@ -618,7 +617,7 @@ REAL                                   :: PFOES  ! saturation vapor
 !*       1.    COMPUTE SATURATION VAPOR PRESSURE
 !              ---------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:SM_FOES_0D',0,ZHOOK_HANDLE)
 PFOES = EXP( XALPW - XBETAW/PT - XGAMW*LOG(PT)  )
 !-------------------------------------------------------------------------------
@@ -703,7 +702,7 @@ REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2)) :: PFOES  ! saturation vapor
 !*       1.    COMPUTE SATURATION VAPOR PRESSURE
 !              ---------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:SM_FOES_2D',0,ZHOOK_HANDLE)
 PFOES(:,:) = EXP( XALPW - XBETAW/PT(:,:) - XGAMW*LOG(PT(:,:))  )
 !-------------------------------------------------------------------------------
@@ -790,7 +789,7 @@ REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2)) :: PFOES  ! saturation vapor
 !*       1.    COMPUTE SATURATION VAPOR PRESSURE
 !              ---------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:SM_FOES_2D_MASK',0,ZHOOK_HANDLE)
 WHERE (OMASK(:,:))
   PFOES(:,:) = EXP( XALPW - XBETAW/PT(:,:) - XGAMW*LOG(PT(:,:))  )
@@ -888,7 +887,7 @@ REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2),SIZE(PT,3)) :: ZFOES  ! saturation vapor
 !*       1.    COMPUTE SATURATION VAPOR PRESSURE
 !              ---------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:QSATW_3D',0,ZHOOK_HANDLE)
 ZFOES(:,:,:) = MIN(EXP( XALPW - XBETAW/PT(:,:,:) - XGAMW*LOG(PT(:,:,:))  ), 0.99*PP(:,:,:))
 !
@@ -990,7 +989,7 @@ REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2))          :: ZFOES  ! saturation vapor
 !*       1.    COMPUTE SATURATION VAPOR PRESSURE
 !              ---------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:QSATW_2D',0,ZHOOK_HANDLE)
 ZFOES(:,:) = MIN(EXP( XALPW - XBETAW/PT(:,:) - XGAMW*LOG(PT(:,:))  ), 0.99*PP(:,:))
 !
@@ -1090,7 +1089,7 @@ REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2))          :: ZFOES  ! saturation vapor
 !
 !-------------------------------------------------------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:QSATW_2D_MASK',0,ZHOOK_HANDLE)
 WHERE (OMASK(:,:))
 !
@@ -1204,7 +1203,7 @@ REAL, DIMENSION(SIZE(PT,1))                   :: ZFOES  ! saturation vapor
 !*       1.    COMPUTE SATURATION VAPOR PRESSURE
 !              ---------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:QSATW_1D',0,ZHOOK_HANDLE)
 ZFOES(:) = MIN(EXP( XALPW - XBETAW/PT(:) - XGAMW*LOG(PT(:))  ), 0.99*PP(:))
 !
@@ -1306,7 +1305,7 @@ REAL                            :: ZFOES  ! saturation vapor
 !*       1.    COMPUTE SATURATION VAPOR PRESSURE
 !              ---------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:QSATW_0D',0,ZHOOK_HANDLE)
 ZFOES = MIN(EXP( XALPW - XBETAW/PT - XGAMW*LOG(PT)  ), 0.99*PP)
 !
@@ -1412,7 +1411,7 @@ REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2))          :: ZFOES  ! saturation vapor
 !
 !-------------------------------------------------------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:DQSATW_O_DT_2D_MASK',0,ZHOOK_HANDLE)
 WHERE (OMASK(:,:))
 !
@@ -1533,7 +1532,7 @@ REAL, DIMENSION(SIZE(PT))                       :: ZFOES  ! saturation vapor
 !*       1.    COMPUTE SATURATION VAPOR PRESSURE
 !              ---------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:DQSATW_O_DT_1D',0,ZHOOK_HANDLE)
 ZFOES(:) = PP(:) / (1.+XRD/XRV*(1./PQSAT(:)-1.))
 !
@@ -1749,7 +1748,7 @@ REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2))          :: ZFOES  ! saturation vapor
 !
 !-------------------------------------------------------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:DQSATI_O_DT_2D_MASK',0,ZHOOK_HANDLE)
 WHERE (OMASK(:,:))
 !
@@ -1871,7 +1870,7 @@ REAL, DIMENSION(SIZE(PT))                       :: ZFOES  ! saturation vapor
 !*       1.    COMPUTE SATURATION VAPOR PRESSURE
 !              ---------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:DQSATI_O_DT_1D',0,ZHOOK_HANDLE)
 ZFOES(:) = PP(:) / (1.+XRD/XRV*(1./PQSAT(:)-1.))
 !
@@ -2083,7 +2082,7 @@ REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2),SIZE(PT,3)) :: ZFOES  ! saturation vapor
 !*       1.    COMPUTE SATURATION VAPOR PRESSURE
 !              ---------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:QSATI_3D',0,ZHOOK_HANDLE)
 ZFOES(:,:,:) = MIN(EXP( XALPI - XBETAI/PT(:,:,:) - XGAMI*LOG(PT(:,:,:))  ), 0.99*PP(:,:,:))
 !
@@ -2185,7 +2184,7 @@ REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2))          :: ZFOES  ! saturation vapor
 !*       1.    COMPUTE SATURATION VAPOR PRESSURE
 !              ---------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:QSATI_2D',0,ZHOOK_HANDLE)
 ZFOES(:,:) = MIN(EXP( XALPI - XBETAI/PT(:,:) - XGAMI*LOG(PT(:,:))  ), 0.99*PP(:,:))
 !
@@ -2285,7 +2284,7 @@ REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2))          :: ZFOES  ! saturation vapor
 !
 !-------------------------------------------------------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:QSATI_2D_MASK',0,ZHOOK_HANDLE)
 WHERE (OMASK(:,:))
 !
@@ -2399,7 +2398,7 @@ REAL, DIMENSION(SIZE(PT,1))                   :: ZFOES  ! saturation vapor
 !*       1.    COMPUTE SATURATION VAPOR PRESSURE
 !              ---------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:QSATI_1D',0,ZHOOK_HANDLE)
 ZFOES(:) = MIN(EXP( XALPI - XBETAI/PT(:) - XGAMI*LOG(PT(:))  ), 0.99*PP(:))
 !
@@ -2501,7 +2500,7 @@ REAL                            :: ZFOES  ! saturation vapor
 !*       1.    COMPUTE SATURATION VAPOR PRESSURE
 !              ---------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_THERMO:QSATI_0D',0,ZHOOK_HANDLE)
 ZFOES = MIN(EXP( XALPI - XBETAI/PT - XGAMI*LOG(PT)  ), 0.99*PP)
 !
diff --git a/src/common/aux/shuman.F90 b/src/common/aux/shuman.F90
index be56b4cce204a0f76d1ab132de20f8bd8796e00a..2da0d5c5f2d73dc4036c5b48a4a91e87aee2baf4 100644
--- a/src/common/aux/shuman.F90
+++ b/src/common/aux/shuman.F90
@@ -2,8 +2,7 @@
 
 !     ###############################
       FUNCTION MXF(PA)  RESULT(PMXF)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *MXF* -  Shuman operator : mean operator in x direction for a
@@ -73,7 +72,7 @@ INTEGER :: IIU            ! upper bound in x direction of PA
 !*       1.    DEFINITION OF MXF
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MXF',0,ZHOOK_HANDLE)
 IIU = SIZE(PA,1)
 !
@@ -96,8 +95,7 @@ END FUNCTION MXF
 !
 !     ###############################
       FUNCTION MXM(PA)  RESULT(PMXM)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *MXM* -  Shuman operator : mean operator in x direction for a
@@ -165,7 +163,7 @@ INTEGER :: IIU            ! Size of the array in the x direction
 !*       1.    DEFINITION OF MXM
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MXM',0,ZHOOK_HANDLE)
 IIU = SIZE(PA,1)
 !
@@ -188,8 +186,7 @@ END FUNCTION MXM
 !
 !     ###############################
       FUNCTION MYF(PA)  RESULT(PMYF)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *MYF* -  Shuman operator : mean operator in y direction for a
@@ -259,7 +256,7 @@ INTEGER :: IJU            ! upper bound in y direction of PA
 !*       1.    DEFINITION OF MYF
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MYF',0,ZHOOK_HANDLE)
 IJU = SIZE(PA,2)
 
@@ -281,8 +278,7 @@ END FUNCTION MYF
 !
 !     ###############################
       FUNCTION MYM(PA)  RESULT(PMYM)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *MYM* -  Shuman operator : mean operator in y direction for a
@@ -350,7 +346,7 @@ INTEGER :: IJU            ! Size of the array in the y direction
 !*       1.    DEFINITION OF MYM
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MYM',0,ZHOOK_HANDLE)
 IJU=SIZE(PA,2)
 
@@ -373,8 +369,7 @@ END FUNCTION MYM
 !
 !     ###############################
       FUNCTION MZF(PA, KKA, KKU, KL)  RESULT(PMZF)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *MZF* -  Shuman operator : mean operator in z direction for a
@@ -440,7 +435,7 @@ INTEGER :: IKT          ! upper bound in z direction of PA
 !*       1.    DEFINITION OF MZF
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MZF',0,ZHOOK_HANDLE)
 IKT = SIZE(PA,3)
 DO JK=2,IKT-1
@@ -457,8 +452,7 @@ END FUNCTION MZF
 !
 !     ###############################
       FUNCTION MZM(PA, KKA, KKU, KL)  RESULT(PMZM)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *MZM* -  Shuman operator : mean operator in z direction for a
@@ -522,7 +516,7 @@ INTEGER :: JK             ! Loop index in z direction
 !*       1.    DEFINITION OF MZM
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MZM',0,ZHOOK_HANDLE)
 DO JK=2,SIZE(PA,3)-1
   PMZM(:,:,JK) = 0.5*( PA(:,:,JK)+PA(:,:,JK-KL) )
@@ -536,8 +530,7 @@ IF (LHOOK) CALL DR_HOOK('MZM',1,ZHOOK_HANDLE)
 END FUNCTION MZM
 !     ###############################
       FUNCTION DXF(PA)  RESULT(PDXF)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *DXF* -  Shuman operator : finite difference operator in x direction
@@ -608,7 +601,7 @@ INTEGER :: IIU            ! upper bound in x direction of PA
 !*       1.    DEFINITION OF DXF
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('DXF',0,ZHOOK_HANDLE)
 IIU = SIZE(PA,1)
 !
@@ -626,8 +619,7 @@ END FUNCTION DXF
 !
 !     ###############################
       FUNCTION DXM(PA)  RESULT(PDXM)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *DXM* -  Shuman operator : finite difference operator in x direction
@@ -698,7 +690,7 @@ INTEGER :: IIU            ! Size of the array in the x direction
 !*       1.    DEFINITION OF DXM
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('DXM',0,ZHOOK_HANDLE)
 IIU = SIZE(PA,1)
 !
@@ -717,8 +709,7 @@ END FUNCTION DXM
 !
 !     ###############################
       FUNCTION DYF(PA)  RESULT(PDYF)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *DYF* -  Shuman operator : finite difference operator in y direction
@@ -789,7 +780,7 @@ INTEGER :: IJU           ! upper bound in y direction of PA
 !*       1.    DEFINITION OF DYF
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('DYF',0,ZHOOK_HANDLE)
 IJU = SIZE(PA,2)
 !
@@ -809,8 +800,7 @@ END FUNCTION DYF
 !
 !     ###############################
       FUNCTION DYM(PA)  RESULT(PDYM)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *DYM* -  Shuman operator : finite difference operator in y direction
@@ -881,7 +871,7 @@ INTEGER :: IJU            ! Size of the array in the y direction
 !*       1.    DEFINITION OF DYM
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('DYM',0,ZHOOK_HANDLE)
 IJU=SIZE(PA,2)
 !
@@ -900,8 +890,7 @@ END FUNCTION DYM
 !
 !     ###############################
       FUNCTION DZF(PA, KKA, KKU, KL)  RESULT(PDZF)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *DZF* -  Shuman operator : finite difference operator in z direction
@@ -967,7 +956,7 @@ INTEGER :: IKT          ! upper bound in z direction of PA
 !*       1.    DEFINITION OF DZF
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('DZF',0,ZHOOK_HANDLE)
 IKT = SIZE(PA,3)
 DO JK=2,IKT-1
@@ -984,8 +973,7 @@ END FUNCTION DZF
 !
 !     ###############################
       FUNCTION DZM(PA, KKA, KKU, KL)  RESULT(PDZM)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *DZM* -  Shuman operator : finite difference operator in z direction
@@ -1050,7 +1038,7 @@ INTEGER :: JK            ! Loop index in z direction
 !*       1.    DEFINITION OF DZM
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('DZM',0,ZHOOK_HANDLE)
 DO JK=2,SIZE(PA,3)-1
   PDZM(:,:,JK)          = PA(:,:,JK) -  PA(:,:,JK-KL)
diff --git a/src/common/aux/shuman_phy.F90 b/src/common/aux/shuman_phy.F90
index 59af8535c383cbaac824e394cfa0502ff16b77a6..7853a7528ac2d16016d32f417d8f80d97b535dfc 100644
--- a/src/common/aux/shuman_phy.F90
+++ b/src/common/aux/shuman_phy.F90
@@ -3,8 +3,7 @@ IMPLICIT NONE
 CONTAINS
 !     ###############################
       SUBROUTINE MYF_PHY(D,PA,PMYF)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *MYF* -  Shuman operator : mean operator in y direction for a
@@ -68,7 +67,7 @@ REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PMYF   ! result at flux local
 ! 1.    DEFINITION OF MYF
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MYF',0,ZHOOK_HANDLE)
 
 !POUR AROME
@@ -80,8 +79,7 @@ END SUBROUTINE MYF_PHY
 !
 !     ###############################
       SUBROUTINE MYF2D_PHY(D,PA,PMYF)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *MYF* -  Shuman operator : mean operator in y direction for a
@@ -145,7 +143,7 @@ REAL, DIMENSION(D%NIT,D%NJT), INTENT(OUT) :: PMYF   ! result at flux localizatio
 ! 1.    DEFINITION OF MYF
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MYF',0,ZHOOK_HANDLE)
 
 !POUR AROME
@@ -157,8 +155,7 @@ END SUBROUTINE MYF2D_PHY
 !
 !     ###############################
       SUBROUTINE MYM2D_PHY(D,PA,PMYM)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *MYM* -  Shuman operator : mean operator in y direction for a
@@ -218,7 +215,7 @@ TYPE(DIMPHYEX_t),       INTENT(IN)  :: D
 REAL, DIMENSION(D%NIT,D%NJT), INTENT(IN)  :: PA     ! variable at mass localization
 REAL, DIMENSION(D%NIT,D%NJT), INTENT(OUT) :: PMYM   ! result at flux localization 
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MYM',0,ZHOOK_HANDLE)
 
 !POUR AROME
@@ -231,8 +228,7 @@ IF (LHOOK) CALL DR_HOOK('MYM',1,ZHOOK_HANDLE)
 END SUBROUTINE MYM2D_PHY
 !     ###############################
       SUBROUTINE MYM_PHY(D,PA,PMYM)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *MYM* -  Shuman operator : mean operator in y direction for a
@@ -302,7 +298,7 @@ INTEGER :: IJU            ! Size of the array in the y direction
 !*       1.    DEFINITION OF MYM
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MYM',0,ZHOOK_HANDLE)
 IJU=SIZE(PA,2)
 
@@ -317,8 +313,7 @@ END SUBROUTINE MYM_PHY
 !     ###############################
       SUBROUTINE MZM_PHY(D,PA,PMZM)
 !     ###############################
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *MZM* -  Shuman operator : mean operator in z direction for a
@@ -384,7 +379,7 @@ INTEGER :: IKL,IKA,IKU
 !*       1.    DEFINITION OF MZM
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MZM',0,ZHOOK_HANDLE)
 IIJB = D%NIJB
 IIJE = D%NIJE
@@ -409,8 +404,7 @@ IF (LHOOK) CALL DR_HOOK('MZM',1,ZHOOK_HANDLE)
 END SUBROUTINE MZM_PHY
 !     ###############################
       SUBROUTINE DZM_PHY(D,PA,PDZM)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *DZM* -  Shuman operator : finite difference operator in z direction
@@ -476,7 +470,7 @@ INTEGER :: IKL, IKA, IKU
 !*       1.    DEFINITION OF DZM
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('DZM',0,ZHOOK_HANDLE)
 IIJB = D%NIJB
 IIJE = D%NIJE
@@ -501,8 +495,7 @@ END SUBROUTINE DZM_PHY
 
 !     ###############################
       SUBROUTINE MXM_PHY(D,PA,PMXM)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *MXM* -  Shuman operator : mean operator in x direction for a
@@ -571,7 +564,7 @@ INTEGER :: IIU            ! Size of the array in the x direction
 !*       1.    DEFINITION OF MXM
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MXM',0,ZHOOK_HANDLE)
 IIU = SIZE(PA,1)
 !
@@ -593,8 +586,7 @@ END SUBROUTINE MXM_PHY
 !
 !     ###############################
       SUBROUTINE MXM2D_PHY(D,PA,PMXM)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *MXM* -  Shuman operator : mean operator in x direction for a
@@ -658,7 +650,7 @@ REAL, DIMENSION(D%NIT,D%NJT), INTENT(OUT) :: PMXM   ! result at flux localizatio
 !*       1.    DEFINITION OF MXM
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MXM',0,ZHOOK_HANDLE)
 
 !POUR AROME
@@ -669,8 +661,7 @@ IF (LHOOK) CALL DR_HOOK('MXM',1,ZHOOK_HANDLE)
 END SUBROUTINE MXM2D_PHY
 !     ###############################
       SUBROUTINE MXF_PHY(D,PA,PMXF)      
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *MXF* -  Shuman operator : mean operator in x direction for a
@@ -731,7 +722,7 @@ REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PMXF   ! result at flux local
 !*       1.    DEFINITION OF MXF
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MXF',0,ZHOOK_HANDLE)
 !POUR AROME
 !
@@ -741,8 +732,7 @@ IF (LHOOK) CALL DR_HOOK('MXF',1,ZHOOK_HANDLE)
 END SUBROUTINE MXF_PHY
 !     ###############################
       SUBROUTINE MXF2D_PHY(D,PA,PMXF)      
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *MXF* -  Shuman operator : mean operator in x direction for a
@@ -803,7 +793,7 @@ REAL, DIMENSION(D%NIT,D%NJT), INTENT(OUT) :: PMXF   ! result at flux localizatio
 !*       1.    DEFINITION OF MXF
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MXF',0,ZHOOK_HANDLE)
 !POUR AROME
 !
@@ -813,8 +803,7 @@ IF (LHOOK) CALL DR_HOOK('MXF',1,ZHOOK_HANDLE)
 END SUBROUTINE MXF2D_PHY
 !     ###############################
       SUBROUTINE MZF_PHY(D,PA,PMZF)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *MZF* -  Shuman operator : mean operator in z direction for a
@@ -879,7 +868,7 @@ INTEGER :: IKL, IKA, IKU
 !*       1.    DEFINITION OF MZF
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MZF',0,ZHOOK_HANDLE)
 IIJB = D%NIJB
 IIJE = D%NIJE
@@ -903,8 +892,7 @@ IF (LHOOK) CALL DR_HOOK('MZF',1,ZHOOK_HANDLE)
 END SUBROUTINE MZF_PHY
 !     ###############################
       SUBROUTINE DZF_PHY(D,PA,PDZF)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *DZF* -  Shuman operator : finite difference operator in z direction
@@ -969,7 +957,7 @@ INTEGER :: IKL, IKA, IKU
 !*       1.    DEFINITION OF DZF
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('DZF',0,ZHOOK_HANDLE)
 IIJB = D%NIJB
 IIJE = D%NIJE
@@ -994,8 +982,7 @@ END SUBROUTINE DZF_PHY
 !
 !     ###############################
       SUBROUTINE DYM_PHY(D,PA,PDYM)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *DYM* -  Shuman operator : finite difference operator in y direction
@@ -1069,7 +1056,7 @@ INTEGER :: IJU            ! Size of the array in the y direction
 !*       1.    DEFINITION OF DYM
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('DYM',0,ZHOOK_HANDLE)
 IJU=SIZE(PA,2)
 !
@@ -1087,8 +1074,7 @@ END SUBROUTINE DYM_PHY
 !
 !     ###############################
       SUBROUTINE DXM_PHY(D,PA,PDXM)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *DXM* -  Shuman operator : finite difference operator in x direction
@@ -1161,7 +1147,7 @@ INTEGER :: IIU            ! Size of the array in the x direction
 !*       1.    DEFINITION OF DXM
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('DXM',0,ZHOOK_HANDLE)
 IIU = SIZE(PA,1)
 !
@@ -1178,8 +1164,7 @@ IF (LHOOK) CALL DR_HOOK('DXM',1,ZHOOK_HANDLE)
 END SUBROUTINE DXM_PHY
 !     ###############################
       SUBROUTINE DXF_PHY(D,PA,PDXF)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *DXF* -  Shuman operator : finite difference operator in x direction
@@ -1241,7 +1226,7 @@ REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PDXF   ! result at mass
                                                           ! localization
 !
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('DXF',0,ZHOOK_HANDLE)
 !
 CALL ABORT ! AROME SHOULD NOT CALLED HORIZONTAL FINITE DIFFERENCE
@@ -1253,8 +1238,7 @@ END SUBROUTINE DXF_PHY
 !
 !     ###############################
       SUBROUTINE DYF_PHY(D,PA,PDYF)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###############################
 !
 !!****  *DYF* -  Shuman operator : finite difference operator in y direction
@@ -1319,7 +1303,7 @@ REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(OUT) :: PDYF   ! result at mass
 !*       1.    DEFINITION OF DYF
 !              ------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('DYF',0,ZHOOK_HANDLE)
 !
 CALL ABORT ! AROME SHOULD NOT CALLED HORIZONTAL FINITE DIFFERENCE
diff --git a/src/common/micro/condensation.F90 b/src/common/micro/condensation.F90
index e75434de442cc36d24caafcbede1e74230538708..34015e1a1b615c72ab01d0469dd1c9620b81a3b2 100644
--- a/src/common/micro/condensation.F90
+++ b/src/common/micro/condensation.F90
@@ -86,8 +86,7 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 USE MODD_DIMPHYEX,       ONLY: DIMPHYEX_t
 USE MODD_CST,            ONLY: CST_t
 USE MODD_RAIN_ICE_PARAM_n, ONLY: RAIN_ICE_PARAM_t
@@ -188,7 +187,7 @@ REAL, DIMENSION(D%NIJT) :: ZDZ, ZARDUM, ZARDUM2, ZCLDINI
 REAL :: ZDZFACT,ZDZREF
 ! LHGT_QS END
 
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 INTEGER :: IERR
 !
 !
diff --git a/src/common/micro/ice_adjust.F90 b/src/common/micro/ice_adjust.F90
index 9db6f08fed52d23e7780b8fa2b53d185abfeb223..b480da71079ce570a02efe4b5e800f609bb1e9c6 100644
--- a/src/common/micro/ice_adjust.F90
+++ b/src/common/micro/ice_adjust.F90
@@ -109,8 +109,7 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 USE MODD_DIMPHYEX,   ONLY: DIMPHYEX_t
 USE MODD_CST,        ONLY: CST_t
 USE MODD_NEB_n,      ONLY: NEB_t
@@ -217,7 +216,7 @@ INTEGER :: IKTB, IKTE, IIJB, IIJE
 !
 REAL, DIMENSION(D%NIJT,D%NKT) :: ZSIGS, ZSRCS
 REAL, DIMENSION(D%NIJT) :: ZSIGQSAT
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/common/micro/mode_ice4_budgets.F90 b/src/common/micro/mode_ice4_budgets.F90
index 9aa4f2eb9519fc9a9b2c2380547042811dbbea84..f4c90e05da431016252e68994712c286542e6c1d 100644
--- a/src/common/micro/mode_ice4_budgets.F90
+++ b/src/common/micro/mode_ice4_budgets.F90
@@ -15,8 +15,7 @@ SUBROUTINE ICE4_BUDGETS(D, PARAMI, BUCONF, KSIZE, PTSTEP, KRR, K1, K2, &
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 
 USE MODD_DIMPHYEX,   ONLY: DIMPHYEX_t
 USE MODD_BUDGET,     ONLY: TBUDGETDATA, TBUDGETCONF_t, NBUDGET_TH, NBUDGET_RV, NBUDGET_RC, &
@@ -54,7 +53,7 @@ INTEGER,                                     INTENT(IN)    :: KBUDGETS
 !
 !*       0.2   Declarations of local variables :
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !
 INTEGER :: JIJ, JK, JL
 INTEGER :: IKTB, IKTE, IKB, IIJB, IIJE
diff --git a/src/common/micro/mode_ice4_compute_pdf.F90 b/src/common/micro/mode_ice4_compute_pdf.F90
index 5ef44c079c2811b75ff9092a319587434ae70773..b207f55ae1558ad3369d277cd6f86def5854bd45 100644
--- a/src/common/micro/mode_ice4_compute_pdf.F90
+++ b/src/common/micro/mode_ice4_compute_pdf.F90
@@ -31,8 +31,7 @@ SUBROUTINE ICE4_COMPUTE_PDF(CST, ICEP, ICED, KSIZE, HSUBG_AUCV_RC, HSUBG_AUCV_RI
 USE MODD_CST,            ONLY: CST_t
 USE MODD_RAIN_ICE_DESCR_n, ONLY: RAIN_ICE_DESCR_t
 USE MODD_RAIN_ICE_PARAM_n, ONLY: RAIN_ICE_PARAM_t
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 USE MODE_MSG
 !
@@ -77,7 +76,7 @@ REAL, DIMENSION(KSIZE) :: ZRCRAUTC,      & !RC value to begin rain formation =XC
                                                     !                     = PHLC_HRC/HCF+ PHLC_LRC/LCF
                           ZSUMRC, ZSUMRI
 REAL :: ZCOEFFRCM
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 INTEGER :: JI
 !-------------------------------------------------------------------------------
 !
diff --git a/src/common/micro/mode_ice4_correct_negativities.F90 b/src/common/micro/mode_ice4_correct_negativities.F90
index 637c73612e7179e2c8cc1f496ac55830372215bc..cf569687e9cf6ddaac782d09e9f869eb0c5dde51 100644
--- a/src/common/micro/mode_ice4_correct_negativities.F90
+++ b/src/common/micro/mode_ice4_correct_negativities.F90
@@ -10,8 +10,7 @@ SUBROUTINE ICE4_CORRECT_NEGATIVITIES(D, ICED, KRR, PRV, PRC, PRR, &
                                     &PRI, PRS, PRG, &
                                     &PTH, PLVFACT, PLSFACT, PRH)
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 USE MODD_DIMPHYEX,   ONLY: DIMPHYEX_t
 USE MODD_RAIN_ICE_DESCR_n, ONLY: RAIN_ICE_DESCR_t
 !
@@ -27,7 +26,7 @@ REAL, DIMENSION(D%NIJT, D%NKT), OPTIONAL, INTENT(INOUT) :: PRH
 REAL :: ZW
 INTEGER :: JIJ, JK, IKTB, IKTE, IIJB, IIJE
 
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !
 IF (LHOOK) CALL DR_HOOK('ICE4_CORRECT_NEGATIVITIES', 0, ZHOOK_HANDLE)
 !
diff --git a/src/common/micro/mode_ice4_fast_rg.F90 b/src/common/micro/mode_ice4_fast_rg.F90
index 33c14921788b371b835b3ff1cb9e761df19b082a..a66e47085a08a5357062a33638cf38d55c1e1f3d 100644
--- a/src/common/micro/mode_ice4_fast_rg.F90
+++ b/src/common/micro/mode_ice4_fast_rg.F90
@@ -40,8 +40,7 @@ USE MODD_CST,            ONLY: CST_t
 USE MODD_PARAM_ICE_n,      ONLY: PARAM_ICE_t
 USE MODD_RAIN_ICE_DESCR_n, ONLY: RAIN_ICE_DESCR_t
 USE MODD_RAIN_ICE_PARAM_n, ONLY: RAIN_ICE_PARAM_t
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -106,7 +105,7 @@ REAL, DIMENSION(KPROMA) :: ZZW, &
 REAL :: ZZW0D
 INTEGER :: JL
 
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !-------------------------------------------------------------------------------
 !
 IF (LHOOK) CALL DR_HOOK('ICE4_FAST_RG', 0, ZHOOK_HANDLE)
diff --git a/src/common/micro/mode_ice4_fast_rh.F90 b/src/common/micro/mode_ice4_fast_rh.F90
index 6ea2630e604d522c0a31e468ead21b4f646f4b75..0c0e8c5e38a363d61524e47f97cdf9d7744d7d1f 100644
--- a/src/common/micro/mode_ice4_fast_rh.F90
+++ b/src/common/micro/mode_ice4_fast_rh.F90
@@ -39,8 +39,7 @@ USE MODD_PARAM_ICE_n,      ONLY: PARAM_ICE_t
 USE MODD_RAIN_ICE_DESCR_n, ONLY: RAIN_ICE_DESCR_t
 USE MODD_RAIN_ICE_PARAM_n, ONLY: RAIN_ICE_PARAM_t
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -99,7 +98,7 @@ REAL, DIMENSION(KPROMA) :: ZZW, &
                            ZRDRYH_INIT, ZRWETH_INIT, &
                            ZRDRYHG
 INTEGER :: JL
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 LOGICAL, DIMENSION(KPROMA) :: LLWETH, LLDRYH
 !
 !-------------------------------------------------------------------------------
diff --git a/src/common/micro/mode_ice4_fast_ri.F90 b/src/common/micro/mode_ice4_fast_ri.F90
index 934ad5f66e67152e044f04b976770bad79e86641..74bb50a088b42b59cce1cb854291f571eb0e771f 100644
--- a/src/common/micro/mode_ice4_fast_ri.F90
+++ b/src/common/micro/mode_ice4_fast_ri.F90
@@ -32,8 +32,7 @@ SUBROUTINE ICE4_FAST_RI(ICEP, ICED, KPROMA, KSIZE, LDSOFT, LDCOMPUTE, &
 !
 USE MODD_RAIN_ICE_DESCR_n, ONLY: RAIN_ICE_DESCR_t
 USE MODD_RAIN_ICE_PARAM_n, ONLY: RAIN_ICE_PARAM_t
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -57,7 +56,7 @@ REAL, DIMENSION(KPROMA),      INTENT(INOUT) :: PRCBERI  ! Bergeron-Findeisen eff
 !
 !*       0.2  declaration of local variables
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 INTEGER :: JL
 !
 !-------------------------------------------------------------------------------
diff --git a/src/common/micro/mode_ice4_fast_rs.F90 b/src/common/micro/mode_ice4_fast_rs.F90
index 3545799c228bd8c1f7d67ed9881c2699267264b5..df7b233d0f139630532ecbb22f6a33226ff0b99a 100644
--- a/src/common/micro/mode_ice4_fast_rs.F90
+++ b/src/common/micro/mode_ice4_fast_rs.F90
@@ -41,8 +41,7 @@ USE MODD_CST,            ONLY: CST_t
 USE MODD_PARAM_ICE_n,      ONLY: PARAM_ICE_t
 USE MODD_RAIN_ICE_DESCR_n, ONLY: RAIN_ICE_DESCR_t
 USE MODD_RAIN_ICE_PARAM_n, ONLY: RAIN_ICE_PARAM_t
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -91,7 +90,7 @@ REAL, DIMENSION(KPROMA) :: ZBUF1, ZBUF2, ZBUF3
 REAL, DIMENSION(KPROMA) :: ZZW, ZZW1, ZZW2, ZZW3, ZFREEZ_RATE
 INTEGER :: JL
 REAL :: ZZW0D
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !-------------------------------------------------------------------------------
 !
 IF (LHOOK) CALL DR_HOOK('ICE4_FAST_RS', 0, ZHOOK_HANDLE)
diff --git a/src/common/micro/mode_ice4_nucleation.F90 b/src/common/micro/mode_ice4_nucleation.F90
index 4209d5f209f8beb1083dda607ceeac40b11ff08b..90a3fbba33b64d05decc1d75b8593f759ed98b83 100644
--- a/src/common/micro/mode_ice4_nucleation.F90
+++ b/src/common/micro/mode_ice4_nucleation.F90
@@ -32,8 +32,7 @@ USE MODD_CST,            ONLY: CST_t
 USE MODD_PARAM_ICE_n,      ONLY: PARAM_ICE_t
 USE MODD_RAIN_ICE_DESCR_n, ONLY: RAIN_ICE_DESCR_t
 USE MODD_RAIN_ICE_PARAM_n, ONLY: RAIN_ICE_PARAM_t
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -58,7 +57,7 @@ REAL, DIMENSION(KSIZE),   INTENT(OUT)   :: PRVHENI_MR ! Mixing ratio change due
 !*       0.2  declaration of local variables
 !
 REAL, DIMENSION(KSIZE) :: ZW ! work array
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 LOGICAL, DIMENSION(KSIZE) :: GNEGT  ! Test where to compute the HEN process
 REAL, DIMENSION(KSIZE)  :: ZZW,      & ! Work array
                            ZUSW,     & ! Undersaturation over water
diff --git a/src/common/micro/mode_ice4_pack.F90 b/src/common/micro/mode_ice4_pack.F90
index 5e6a03346f77608db5b8bf76b7245fc5f9670ce9..54448b4ed82f19eb36ad560b1b8bab6554055c69 100644
--- a/src/common/micro/mode_ice4_pack.F90
+++ b/src/common/micro/mode_ice4_pack.F90
@@ -23,8 +23,7 @@ SUBROUTINE ICE4_PACK(D, CST, PARAMI, ICEP, ICED, BUCONF,                   &
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 
 USE MODD_DIMPHYEX,       ONLY: DIMPHYEX_t
 USE MODD_BUDGET,         ONLY: TBUDGETDATA, TBUDGETCONF_t
@@ -120,7 +119,7 @@ REAL, DIMENSION(D%NIJT,D%NKT), OPTIONAL,  INTENT(INOUT) :: PRHS    ! Hail m.r. s
 !
 !*       0.2   Declarations of local variables :
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !
 INTEGER :: JIJ, JK
 INTEGER :: IKTB, IKTE, IIJB, IIJE
diff --git a/src/common/micro/mode_ice4_rainfr_vert.F90 b/src/common/micro/mode_ice4_rainfr_vert.F90
index 38e3f495c8f2c9434861db97c4a49960f7e5eccd..43d8410c8399c909602dc320f6479bf76ef6584a 100644
--- a/src/common/micro/mode_ice4_rainfr_vert.F90
+++ b/src/common/micro/mode_ice4_rainfr_vert.F90
@@ -25,8 +25,7 @@ SUBROUTINE ICE4_RAINFR_VERT(D, ICED, PPRFR, PRR, PRS, PRG, PRH)
 !*      0. DECLARATIONS
 !          ------------
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
 USE MODD_RAIN_ICE_DESCR_n, ONLY : RAIN_ICE_DESCR_t
 !
@@ -45,7 +44,7 @@ REAL, DIMENSION(D%NIT,D%NJT,D%NKT), OPTIONAL, INTENT(IN)    :: PRH !Hail field
 INTEGER :: IKB, IKE, IKL, IIE, IIB, IJB, IJE
 !*       0.2  declaration of local variables
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 INTEGER :: JI, JJ, JK
 LOGICAL :: MASK
 !
diff --git a/src/common/micro/mode_ice4_rimltc.F90 b/src/common/micro/mode_ice4_rimltc.F90
index 52914d30fe740bd5fc19b6a6c874d39fc8b8837f..8eae95bf67409630fcc29e599bac3e90628608b5 100644
--- a/src/common/micro/mode_ice4_rimltc.F90
+++ b/src/common/micro/mode_ice4_rimltc.F90
@@ -31,8 +31,7 @@ SUBROUTINE ICE4_RIMLTC(CST, PARAMI, KPROMA, KSIZE, LDCOMPUTE, &
 !
 USE MODD_CST,       ONLY: CST_t
 USE MODD_PARAM_ICE_n, ONLY: PARAM_ICE_t
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -52,7 +51,7 @@ REAL, DIMENSION(KPROMA),       INTENT(OUT)   :: PRIMLTC_MR ! Mixing ratio change
 !
 !*       0.2  declaration of local variables
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 INTEGER :: JL
 !
 !-------------------------------------------------------------------------------
diff --git a/src/common/micro/mode_ice4_rrhong.F90 b/src/common/micro/mode_ice4_rrhong.F90
index a7ade9ab088a5ecce6d1ae7de6c7f29b578690d9..bdc95727d996905f907ee793d0a2b2c317bee806 100644
--- a/src/common/micro/mode_ice4_rrhong.F90
+++ b/src/common/micro/mode_ice4_rrhong.F90
@@ -31,8 +31,7 @@ SUBROUTINE ICE4_RRHONG(CST, PARAMI, ICED, KPROMA, KSIZE, LDCOMPUTE, &
 USE MODD_CST,            ONLY: CST_t
 USE MODD_PARAM_ICE_n,      ONLY: PARAM_ICE_t
 USE MODD_RAIN_ICE_DESCR_n, ONLY: RAIN_ICE_DESCR_t
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -53,7 +52,7 @@ REAL, DIMENSION(KPROMA),       INTENT(OUT)   :: PRRHONG_MR ! Mixing ratio change
 !
 !*       0.2  declaration of local variables
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 INTEGER :: JL
 !
 !-------------------------------------------------------------------------------
diff --git a/src/common/micro/mode_ice4_rsrimcg_old.F90 b/src/common/micro/mode_ice4_rsrimcg_old.F90
index dde4a8311301052f4f4ceba816e87bbbdc76193f..487c971987961338da1653eee02ef44eb66999aa 100644
--- a/src/common/micro/mode_ice4_rsrimcg_old.F90
+++ b/src/common/micro/mode_ice4_rsrimcg_old.F90
@@ -34,8 +34,7 @@ USE MODD_CST,            ONLY: CST_t
 USE MODD_PARAM_ICE_n,      ONLY: PARAM_ICE_t
 USE MODD_RAIN_ICE_DESCR_n, ONLY: RAIN_ICE_DESCR_t
 USE MODD_RAIN_ICE_PARAM_n, ONLY: RAIN_ICE_PARAM_t
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -63,7 +62,7 @@ REAL, DIMENSION(KPROMA) :: ZBUF1, ZBUF2
 INTEGER, DIMENSION(KPROMA) :: IBUF1, IBUF2
 REAL, DIMENSION(KPROMA) :: ZZW
 INTEGER :: JL
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !-------------------------------------------------------------------------------
 !
 IF (LHOOK) CALL DR_HOOK('ICE4_RSRIMCG_OLD', 0, ZHOOK_HANDLE)
diff --git a/src/common/micro/mode_ice4_sedimentation.F90 b/src/common/micro/mode_ice4_sedimentation.F90
index e0a0d6ab75ec02f2b03044b94cbdb16c5d1009b0..9bab7506fb3316a3eb26427f85e874da59020fb7 100644
--- a/src/common/micro/mode_ice4_sedimentation.F90
+++ b/src/common/micro/mode_ice4_sedimentation.F90
@@ -31,8 +31,7 @@ SUBROUTINE ICE4_SEDIMENTATION(D, CST, ICEP, ICED, PARAMI, BUCONF, &
 !*      0. DECLARATIONS
 !          ------------
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
 USE MODD_BUDGET,         ONLY: TBUDGETDATA, TBUDGETCONF_t, NBUDGET_RC, &
                                NBUDGET_RI, NBUDGET_RR, NBUDGET_RS, NBUDGET_RG, NBUDGET_RH
@@ -99,7 +98,7 @@ REAL, DIMENSION(D%NIJT,D%NKT,KRR), OPTIONAL, INTENT(OUT)   :: PFPR    ! upper-ai
 REAL, DIMENSION(D%NIJT,D%NKT) :: ZRCT, ZRRT, ZRIT, ZRST, ZRGT, ZRHT
 REAL, DIMENSION(D%NIJT) :: ZINPRI
 INTEGER :: JK, JIJ, IKTB, IKTE, IIJB, IIJE
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !
 IF (LHOOK) CALL DR_HOOK('ICE4_SEDIMENTATION', 0, ZHOOK_HANDLE)
 IKTB=D%NKTB
diff --git a/src/common/micro/mode_ice4_sedimentation_split.F90 b/src/common/micro/mode_ice4_sedimentation_split.F90
index e72dfba7dab58430fe3eb1bd987d82ffeb24dd12..5316637470e4e93c28cdab4dea0b1908f5a29a31 100644
--- a/src/common/micro/mode_ice4_sedimentation_split.F90
+++ b/src/common/micro/mode_ice4_sedimentation_split.F90
@@ -33,8 +33,7 @@ SUBROUTINE ICE4_SEDIMENTATION_SPLIT(D, CST, ICEP, ICED, PARAMI, &
 !*      0. DECLARATIONS
 !          ------------
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
 USE MODD_CST, ONLY: CST_t
 USE MODD_RAIN_ICE_DESCR_n, ONLY: RAIN_ICE_DESCR_t
@@ -106,7 +105,7 @@ REAL, DIMENSION(D%NIJT, D%NKT)                                      :: ZCONC3D,
                                                                      & ZRST, &
                                                                      & ZRGT, &
                                                                      & ZRHT
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !-------------------------------------------------------------------------------
 !
 IF (LHOOK) CALL DR_HOOK('ICE4_SEDIMENTATION_SPLIT', 0, ZHOOK_HANDLE)
@@ -323,7 +322,7 @@ REAL, DIMENSION(SIZE(ICED%XRTMIN))   :: ZRSMIN
 REAL, DIMENSION(D%NIJT)       :: ZREMAINT   ! Remaining time until the timestep end
 REAL, DIMENSION(D%NIJT, 0:D%NKT+1) :: ZWSED   ! Sedimentation fluxes
 INTEGER :: IKTB, IKTE, IKB, IKL, IIJE, IIJB
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('ICE4_SEDIMENTATION_SPLIT:INTERNAL_SEDIM_SPLIT', 0, ZHOOK_HANDLE)
 !
 IKTB=D%NKTB
diff --git a/src/common/micro/mode_ice4_sedimentation_stat.F90 b/src/common/micro/mode_ice4_sedimentation_stat.F90
index fe8e820df4ee516114b6280d61a14d38af10ad77..009d712e505a6ef58426f9fa8186dc723e1c9a97 100644
--- a/src/common/micro/mode_ice4_sedimentation_stat.F90
+++ b/src/common/micro/mode_ice4_sedimentation_stat.F90
@@ -38,8 +38,7 @@ SUBROUTINE ICE4_SEDIMENTATION_STAT(D, CST, ICEP, ICED, PARAMI, &
 !*      0. DECLARATIONS
 !          ------------
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
 USE MODD_CST, ONLY: CST_t
 USE MODD_RAIN_ICE_DESCR_n, ONLY: RAIN_ICE_DESCR_t
@@ -97,7 +96,7 @@ REAL, DIMENSION(D%NIJT) :: ZTSORHODZ        ! TimeStep Over (Rhodref times delta
 REAL, DIMENSION(D%NIJT,0:1,2:KRR) :: ZSED   ! sedimentation flux array for each species and for above and current levels
 REAL :: FWSED1, FWSED2, PWSEDW, PWSEDWSUP, PINVTSTEP, PTSTEP1, PDZZ1, PRHODREF1, PRXT1
 
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !
 #if defined(REPRO48) 
 ! 5 multiplications + 1 division => cost = 7X
@@ -253,7 +252,7 @@ CONTAINS
     REAL :: ZRAY    ! Cloud Mean radius
     REAL :: ZZWLBDA, ZZWLBDC, ZZCC
 
-    !!REAL(KIND=JPRB) :: ZHOOK_HANDLE
+    !!REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 
     !!IF (LHOOK) CALL DR_HOOK('ICE4_SEDIMENTATION_STAT:CLOUD',0,ZHOOK_HANDLE)
 
@@ -312,7 +311,7 @@ CONTAINS
 
     REAL, INTENT(IN)    :: PRXT(D%NIJT) ! mr of specy X
 
-    !!REAL(KIND=JPRB) :: ZHOOK_HANDLE
+    !!REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 
     !!IF (LHOOK) CALL DR_HOOK('ICE4_SEDIMENTATION_STAT:PRISTINE_ICE',0,ZHOOK_HANDLE)
 
@@ -359,7 +358,7 @@ CONTAINS
 
     REAL, INTENT(IN)    :: PRXT(D%NIJT) ! mr of specy X
 
-    !!REAL(KIND=JPRB) :: ZHOOK_HANDLE
+    !!REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 
     !!IF (LHOOK) CALL DR_HOOK('ICE4_SEDIMENTATION_STAT:SNOW',0,ZHOOK_HANDLE)
 
@@ -418,7 +417,7 @@ CONTAINS
     REAL, INTENT(IN)    :: PEXSED
     REAL, INTENT(IN)    :: PRXT(D%NIJT) ! mr of specy X
 
-    !!REAL(KIND=JPRB) :: ZHOOK_HANDLE
+    !!REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 
     !!IF (LHOOK) CALL DR_HOOK('ICE4_SEDIMENTATION_STAT:OTHER_SPECIES',0,ZHOOK_HANDLE)
 
diff --git a/src/common/micro/mode_ice4_slow.F90 b/src/common/micro/mode_ice4_slow.F90
index 03a55ed212bfed67af4528d057334e69b58c2239..b867f8692d2c35704dd7bc2d4cf66ea4ceb469ab 100644
--- a/src/common/micro/mode_ice4_slow.F90
+++ b/src/common/micro/mode_ice4_slow.F90
@@ -33,8 +33,7 @@ SUBROUTINE ICE4_SLOW(CST, ICEP, ICED, KPROMA, KSIZE, LDSOFT, LDCOMPUTE, PRHODREF
 USE MODD_CST,            ONLY: CST_t
 USE MODD_RAIN_ICE_DESCR_n, ONLY: RAIN_ICE_DESCR_t
 USE MODD_RAIN_ICE_PARAM_n, ONLY: RAIN_ICE_PARAM_t
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -72,7 +71,7 @@ REAL, DIMENSION(KPROMA),      INTENT(INOUT) :: PRVDEPG  ! Deposition on r_g
 !
 REAL, DIMENSION(KPROMA) :: ZCRIAUTI
 INTEGER                 :: JL
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !-------------------------------------------------------------------------------
 !
 IF (LHOOK) CALL DR_HOOK('ICE4_SLOW', 0, ZHOOK_HANDLE)
diff --git a/src/common/micro/mode_ice4_stepping.F90 b/src/common/micro/mode_ice4_stepping.F90
index 98a45c58301d884585cde64d7aadf06aefad60ba..54c84a75cee38507c8bc588491e2abd773e711f9 100644
--- a/src/common/micro/mode_ice4_stepping.F90
+++ b/src/common/micro/mode_ice4_stepping.F90
@@ -23,8 +23,7 @@ SUBROUTINE ICE4_STEPPING(D, CST, PARAMI, ICEP, ICED, BUCONF, &
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 
 USE MODD_DIMPHYEX,       ONLY: DIMPHYEX_t
 USE MODD_BUDGET,         ONLY: TBUDGETCONF_t
@@ -87,7 +86,7 @@ REAL,    DIMENSION(KPROMA),                     INTENT(OUT)   :: PRREVAV
 !
 !*       0.2   Declarations of local variables :
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !
 LOGICAL :: LSOFT ! Must we really compute tendencies or only adjust them to new T variables
 INTEGER :: INB_ITER_MAX ! Maximum number of iterations (with real tendencies computation)
diff --git a/src/common/micro/mode_ice4_tendencies.F90 b/src/common/micro/mode_ice4_tendencies.F90
index 46c7d8e035c578640f67363774342dd4b9e1df85..9a1c22328af74a25a7b4959c0178231660dc537c 100644
--- a/src/common/micro/mode_ice4_tendencies.F90
+++ b/src/common/micro/mode_ice4_tendencies.F90
@@ -58,8 +58,7 @@ USE MODE_ICE4_FAST_RH, ONLY: ICE4_FAST_RH
 USE MODE_ICE4_FAST_RI, ONLY: ICE4_FAST_RI
 USE MODE_ICE4_NUCLEATION, ONLY: ICE4_NUCLEATION
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -117,7 +116,7 @@ LOGICAL, DIMENSION(KPROMA) :: LLWETG ! .TRUE. if graupel growths in wet mode
 REAL :: ZZW
 LOGICAL :: LLRFR
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 
 IF (LHOOK) CALL DR_HOOK('ICE4_TENDENCIES', 0, ZHOOK_HANDLE)
 
diff --git a/src/common/micro/mode_ice4_warm.F90 b/src/common/micro/mode_ice4_warm.F90
index ea37debb12964f114f89e1a7245cb3cd09488691..875ba62b25ecac9b3a355dc0cf2c513a593b0800 100644
--- a/src/common/micro/mode_ice4_warm.F90
+++ b/src/common/micro/mode_ice4_warm.F90
@@ -36,8 +36,7 @@ USE MODD_RAIN_ICE_DESCR_n, ONLY: RAIN_ICE_DESCR_t
 USE MODD_RAIN_ICE_PARAM_n, ONLY: RAIN_ICE_PARAM_t
 !
 USE MODE_MSG
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -79,7 +78,7 @@ REAL, DIMENSION(KPROMA),      INTENT(INOUT) :: PRREVAV  ! Evaporation of r_r
 REAL :: ZZW2, ZZW3, ZZW4
 REAL, DIMENSION(KPROMA) :: ZUSW ! Undersaturation over water
 REAL, DIMENSION(KPROMA) :: ZTHLT    ! Liquid potential temperature
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 INTEGER :: JL
 LOGICAL :: LMASK, LMASK1, LMASK2
 !-------------------------------------------------------------------------------
diff --git a/src/common/micro/mode_icecloud.F90 b/src/common/micro/mode_icecloud.F90
index 8ba69db98ffa5d3591809183e51189c270b0414e..5f44bf9a07a50a38d50f8df88cba054496f40e19 100644
--- a/src/common/micro/mode_icecloud.F90
+++ b/src/common/micro/mode_icecloud.F90
@@ -7,8 +7,7 @@ SUBROUTINE ICECLOUD  &
 !   Output :
      &  SIFRC,SSIO,SSIU,W2D,RSI)
 
-  USE PARKIND1, ONLY : JPRB
-  USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+  USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
   USE MODD_DIMPHYEX,       ONLY: DIMPHYEX_t
   USE MODD_CST,ONLY : XCPD,XLVTT,XG,XRD,XEPSILO
   USE MODE_TIWMX, ONLY: ESATW, ESATI
@@ -77,7 +76,7 @@ REAL :: ZSIGMAX,ZSIGMAY,ZSIGMAZ,ZXDIST,ZYDIST,&
      & ZRHDIF,ZWCLD,ZI2W,ZRHLIMICE,ZRHLIMINV,ZA,ZRHI,ZR
 INTEGER :: JIJ, IIJB, IIJE
 
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('ICECLOUD',0,ZHOOK_HANDLE)
 !
 IIJB=D%NIJB
diff --git a/src/common/micro/mode_ini_rain_ice.F90 b/src/common/micro/mode_ini_rain_ice.F90
index 43f9d70315980c76d9e083229ce686c63510c9fc..fd144da492611b2237740771cdfa7d204e692966 100644
--- a/src/common/micro/mode_ini_rain_ice.F90
+++ b/src/common/micro/mode_ini_rain_ice.F90
@@ -112,8 +112,7 @@ USE MODE_READ_XKER_SWETH, ONLY: READ_XKER_SWETH
 USE MODE_READ_XKER_GWETH, ONLY: READ_XKER_GWETH
 USE MODE_READ_XKER_RWETH, ONLY: READ_XKER_RWETH
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -179,7 +178,7 @@ REAL     :: PDRYLBDAR_MAX,PDRYLBDAR_MIN
 REAL     :: PWETLBDAS_MAX,PWETLBDAG_MAX,PWETLBDAS_MIN,PWETLBDAG_MIN
 REAL     :: PWETLBDAR_MAX,PWETLBDAH_MAX,PWETLBDAR_MIN,PWETLBDAH_MIN
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !-------------------------------------------------------------------------------
 IF (LHOOK) CALL DR_HOOK('INI_RAIN_ICE',0,ZHOOK_HANDLE)
 !
diff --git a/src/common/micro/mode_ini_snow.F90 b/src/common/micro/mode_ini_snow.F90
index 0db7c4d743487da606611ec2e3070c40cc56e119..313659cb48675e0b94dbbc55f1b026f0ca1bcddd 100644
--- a/src/common/micro/mode_ini_snow.F90
+++ b/src/common/micro/mode_ini_snow.F90
@@ -3,8 +3,7 @@ MODULE MODE_INI_SNOW
 IMPLICIT NONE
 CONTAINS
       SUBROUTINE INI_SNOW ( KLUOUT )
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###########################################################
 !
 !!****  *INI_SNOW * - re-initialize the constants based on snow-size distubutio
@@ -79,7 +78,7 @@ REAL :: ZRHO00                ! Surface reference air density
 REAL :: ZCONC_MAX ! Maximal concentration for snow
 
 
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('INI_RAIN_ICE',0,ZHOOK_HANDLE)
 
 
diff --git a/src/common/micro/mode_ini_tiwmx.F90 b/src/common/micro/mode_ini_tiwmx.F90
index 4e69d5de76588151affacd7eeedadeb1349a53c7..1d0ab80f6b5c883ec63f8568cad9368a7867e5fc 100644
--- a/src/common/micro/mode_ini_tiwmx.F90
+++ b/src/common/micro/mode_ini_tiwmx.F90
@@ -2,19 +2,18 @@ MODULE MODE_INI_TIWMX
 IMPLICIT NONE
 CONTAINS
 SUBROUTINE INI_TIWMX
-  USE PARKIND1, ONLY  : JPRB
 ! 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
+  USE YOMHOOK, ONLY : LHOOK, DR_HOOK, JPHOOK
   IMPLICIT NONE
 
   INTEGER :: JK
   REAL :: ZTEMP
 
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 
   IF (LHOOK) CALL DR_HOOK('INI_TIWMX',0,ZHOOK_HANDLE)
 
diff --git a/src/common/micro/mode_init_aerosol_properties.F90 b/src/common/micro/mode_init_aerosol_properties.F90
index a936ac46f035e650fff35140e4a085be0d2dba00..4f4ddc8c32f410804042581d56ce42c557ccff5b 100644
--- a/src/common/micro/mode_init_aerosol_properties.F90
+++ b/src/common/micro/mode_init_aerosol_properties.F90
@@ -32,6 +32,7 @@ CONTAINS
 !!      Original             ??/??/13 
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !!  Philippe Wautelet: 22/01/2019: bugs correction: incorrect writes + unauthorized goto
+!!  R. El Khatib 23-Feb-2023 Portability fix for NEC Sx-Aurora : no goto out of its conditional block
 !  P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
 !  P. Wautelet 30/03/2021: move NINDICE_CCN_IMM and NIMM initializations from init_aerosol_properties to ini_nsv
 !  B. Vié         06/2021: kappa-kohler CCN activation parameters
@@ -162,7 +163,7 @@ IF ( NMOD_CCN .GE. 1 ) THEN
 !* INPUT : XBETAHEN_TEST is in 'percent' and XBETAHEN_MULTI in 'no units', 
 !  XK... and XMU... are invariant
 !
-  IF (.NOT.(ASSOCIATED(XKHEN_MULTI)))    CALL PARAM_LIMA_ALLOCATE('XKHEN_MULTI', NMOD_CCN)  
+  IF (.NOT.(ASSOCIATED(XKHEN_MULTI)))    CALL PARAM_LIMA_ALLOCATE('XKHEN_MULTI', NMOD_CCN)
   IF (.NOT.(ASSOCIATED(XMUHEN_MULTI)))   CALL PARAM_LIMA_ALLOCATE('XMUHEN_MULTI', NMOD_CCN)
   IF (.NOT.(ASSOCIATED(XBETAHEN_MULTI))) CALL PARAM_LIMA_ALLOCATE('XBETAHEN_MULTI', NMOD_CCN)
   IF (.NOT.(ASSOCIATED(XLIMIT_FACTOR)))  CALL PARAM_LIMA_ALLOCATE('XLIMIT_FACTOR', NMOD_CCN)
diff --git a/src/common/micro/mode_lima_ice4_nucleation.F90 b/src/common/micro/mode_lima_ice4_nucleation.F90
index 082b3c3e5f86ba5343e2bf2a243c58feb3a98253..387280c4b13619ef2d9e1cdbd43fd6a5b152a408 100644
--- a/src/common/micro/mode_lima_ice4_nucleation.F90
+++ b/src/common/micro/mode_lima_ice4_nucleation.F90
@@ -29,8 +29,7 @@ SUBROUTINE LIMA_ICE4_NUCLEATION(CST, KSIZE, &
 !          ------------
 !
 USE MODD_CST,            ONLY: CST_t
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 USE MODD_PARAM_LIMA_COLD, ONLY : XALPHA1, XBETA1, XALPHA2, XBETA2, XNU10, XNU20, XMNU0
 USE MODD_PARAM_LIMA, ONLY: LFEEDBACKT, XRTMIN
 !
@@ -53,7 +52,7 @@ REAL, DIMENSION(KSIZE),   INTENT(OUT)   :: PRVHENI_MR ! Mixing ratio change due
 !*       0.2  declaration of local variables
 !
 REAL, DIMENSION(KSIZE) :: ZW ! work array
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 LOGICAL, DIMENSION(KSIZE) :: GNEGT  ! Test where to compute the HEN process
 REAL, DIMENSION(KSIZE)  :: ZZW,      & ! Work array
                            ZUSW,     & ! Undersaturation over water
diff --git a/src/common/micro/mode_rain_ice_old_fast_rg.F90 b/src/common/micro/mode_rain_ice_old_fast_rg.F90
index a18241de170fbc2937d00cf36a449c63eafc6f84..9f8887655cd78a5fa266c190dc764c39944f9cd3 100644
--- a/src/common/micro/mode_rain_ice_old_fast_rg.F90
+++ b/src/common/micro/mode_rain_ice_old_fast_rg.F90
@@ -21,8 +21,7 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RG
                                   PTIW, PZT, PRES,                          &
                                   TBUDGETS, KBUDGETS)
 
-    USE PARKIND1,            ONLY: JPRB
-    USE YOMHOOK,             ONLY: LHOOK, DR_HOOK
+    USE YOMHOOK,             ONLY: LHOOK, DR_HOOK, JPHOOK
     USE MODD_DIMPHYEX,       ONLY: DIMPHYEX_T
     USE MODD_CST,            ONLY: CST_T
     USE MODD_RAIN_ICE_PARAM_n, ONLY: RAIN_ICE_PARAM_T
@@ -110,7 +109,7 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RG
     INTEGER :: IGDRY
     INTEGER :: JJ, JK
 
-    REAL(KIND=JPRB) :: ZHOOK_HANDLE
+    REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !-------------------------------------------------------------------------------
 !
 !*       6.1    rain contact freezing
diff --git a/src/common/micro/mode_rain_ice_old_fast_rh.F90 b/src/common/micro/mode_rain_ice_old_fast_rh.F90
index 6d9348523492dbe7cbeb4a1979692bf5ce09519f..45ef12888736e6149d348dd7046364289d546905 100644
--- a/src/common/micro/mode_rain_ice_old_fast_rh.F90
+++ b/src/common/micro/mode_rain_ice_old_fast_rh.F90
@@ -21,8 +21,7 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RH
                                   PZT, PRES, &
                                   TBUDGETS, KBUDGETS)
 
-    USE PARKIND1,            ONLY: JPRB
-    USE YOMHOOK,             ONLY: LHOOK, DR_HOOK
+    USE YOMHOOK,             ONLY: LHOOK, DR_HOOK, JPHOOK
     USE MODD_DIMPHYEX,       ONLY: DIMPHYEX_T
     USE MODD_CST,            ONLY: CST_T
     USE MODD_RAIN_ICE_PARAM_n, ONLY: RAIN_ICE_PARAM_T
@@ -101,7 +100,7 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RH
     INTEGER :: IGWET, IHAIL
     INTEGER :: JJ, JK
 
-    REAL(KIND=JPRB) :: ZHOOK_HANDLE
+    REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !-------------------------------------------------------------------------------
 !
     IF (LHOOK) CALL DR_HOOK('RAIN_ICE_OLD:RAIN_ICE_FAST_RH',0,ZHOOK_HANDLE)
diff --git a/src/common/micro/mode_rain_ice_old_fast_ri.F90 b/src/common/micro/mode_rain_ice_old_fast_ri.F90
index 776aa0080a4c7329babb5e7862f41c53448499cc..605da7149dc4116637b96fd4f72ca058b040b84f 100644
--- a/src/common/micro/mode_rain_ice_old_fast_ri.F90
+++ b/src/common/micro/mode_rain_ice_old_fast_ri.F90
@@ -25,7 +25,7 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RI
                                   TBUDGETS, KBUDGETS)
 
     USE PARKIND1,            ONLY: JPRB
-    USE YOMHOOK,             ONLY: LHOOK, DR_HOOK
+    USE YOMHOOK,             ONLY: LHOOK, DR_HOOK, JPHOOK
     USE MODD_DIMPHYEX,       ONLY: DIMPHYEX_T
     USE MODD_CST,            ONLY: CST_T
     USE MODD_RAIN_ICE_PARAM_N, ONLY: RAIN_ICE_PARAM_T
@@ -106,7 +106,7 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RI
 
     INTEGER :: JK, JL
 
-    REAL(KIND=JPRB) :: ZHOOK_HANDLE
+    REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !
 !*       7.1    cloud ice melting
 !
diff --git a/src/common/micro/mode_rain_ice_old_fast_rs.F90 b/src/common/micro/mode_rain_ice_old_fast_rs.F90
index 4cba8e31b7b4a82e999bd97db5fc76b49017d882..58bceabd877eeae23e2bfbeed44a02455a02b028 100644
--- a/src/common/micro/mode_rain_ice_old_fast_rs.F90
+++ b/src/common/micro/mode_rain_ice_old_fast_rs.F90
@@ -19,8 +19,7 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RS
                                   ZLBDAR, ZLBDAS, ZCOLF, ZPRES, ZZT,  &
                                   TBUDGETS, KBUDGETS)
 
-    USE PARKIND1,            ONLY: JPRB
-    USE YOMHOOK,             ONLY: LHOOK, DR_HOOK
+    USE YOMHOOK,             ONLY: LHOOK, DR_HOOK, JPHOOK
     USE MODD_DIMPHYEX,       ONLY: DIMPHYEX_T
     USE MODD_CST,            ONLY: CST_T
     USE MODD_RAIN_ICE_PARAM_n, ONLY: RAIN_ICE_PARAM_T
@@ -93,7 +92,7 @@ MODULE MODE_RAIN_ICE_OLD_FAST_RS
     INTEGER :: IGRIM, IGACC
     INTEGER :: JJ, JK
 
-    REAL(KIND=JPRB) :: ZHOOK_HANDLE
+    REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !-------------------------------------------------------------------------------
 !
 !*       5.1    cloud droplet riming of the aggregates
diff --git a/src/common/micro/mode_rain_ice_old_nucleation.F90 b/src/common/micro/mode_rain_ice_old_nucleation.F90
index 16c9d233fe2769938336897bd1a6edcf3560ebce..563a3c1558de8ee83bfb124a738bc486a03ea90b 100644
--- a/src/common/micro/mode_rain_ice_old_nucleation.F90
+++ b/src/common/micro/mode_rain_ice_old_nucleation.F90
@@ -16,8 +16,7 @@ MODULE MODE_RAIN_ICE_OLD_NUCLEATION
                                      PICENU, PT, PZZZ, &
                                      PRHT)
 !
-    USE PARKIND1,             ONLY: JPRB
-    USE YOMHOOK ,             ONLY: LHOOK, DR_HOOK
+    USE YOMHOOK ,             ONLY: LHOOK, DR_HOOK, JPHOOK
     USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_T
     USE MODD_CST,             ONLY: CST_T
     USE MODE_TIWMX,           ONLY: ESATI, ESATW, AM3, REDIN
@@ -93,7 +92,7 @@ MODULE MODE_RAIN_ICE_OLD_NUCLEATION
 !
 !   compute the temperature and the pressure
 !
-    REAL(KIND=JPRB) :: ZHOOK_HANDLE
+    REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 
     IF (LHOOK) CALL DR_HOOK('RAIN_ICE_OLD:RAIN_ICE_OLD_NUCLEATION',0,ZHOOK_HANDLE)
 
diff --git a/src/common/micro/mode_rain_ice_old_sedimentation_split.F90 b/src/common/micro/mode_rain_ice_old_sedimentation_split.F90
index 2732156dad6c0df4a7aec869e083777c2137b9db..63eb1f543928eed6b14d264b2ec71d6f5bd5a4d2 100644
--- a/src/common/micro/mode_rain_ice_old_sedimentation_split.F90
+++ b/src/common/micro/mode_rain_ice_old_sedimentation_split.F90
@@ -18,8 +18,7 @@ MODULE MODE_RAIN_ICE_OLD_SEDIMENTATION_SPLIT
                                               ZRAY, ZLBC, ZFSEDC, ZCONC3D,  &
                                               PRHT, PRHS, PINPRH, PFPR)
 
-    USE PARKIND1,             ONLY: JPRB
-    USE YOMHOOK ,             ONLY: LHOOK, DR_HOOK
+    USE YOMHOOK ,             ONLY: LHOOK, DR_HOOK, JPHOOK
     USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_T
     USE MODD_CST,             ONLY: CST_T
     USE MODD_RAIN_ICE_PARAM_n,  ONLY: RAIN_ICE_PARAM_T
@@ -132,7 +131,7 @@ MODULE MODE_RAIN_ICE_OLD_SEDIMENTATION_SPLIT
 
     INTEGER :: JN, JL, JK, JI, JJ
 
-    REAL(KIND=JPRB) :: ZHOOK_HANDLE
+    REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/common/micro/mode_rain_ice_old_sedimentation_stat.F90 b/src/common/micro/mode_rain_ice_old_sedimentation_stat.F90
index 44a4f3062bc2c26e25e5be3bffd0fa61ba9a8572..4843b63265a1a4d4545879b4c5926f7864631033 100644
--- a/src/common/micro/mode_rain_ice_old_sedimentation_stat.F90
+++ b/src/common/micro/mode_rain_ice_old_sedimentation_stat.F90
@@ -18,12 +18,11 @@ MODULE MODE_RAIN_ICE_OLD_SEDIMENTATION_STAT
                                              ZRAY, ZLBC, ZFSEDC, ZCONC3D,        &
                                              PRHT, PRHS, PINPRH, PFPR)
 
-    USE PARKIND1,             ONLY: JPRB
     USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_T
     USE MODD_CST,             ONLY: CST_T
     USE MODD_RAIN_ICE_PARAM_n,  ONLY: RAIN_ICE_PARAM_T
     USE MODD_RAIN_ICE_DESCR_n,  ONLY: RAIN_ICE_DESCR_T
-    USE YOMHOOK,              ONLY: LHOOK, DR_HOOK
+    USE YOMHOOK,              ONLY: LHOOK, DR_HOOK, JPHOOK
 
 !*      0. DECLARATIONS
 !          ------------
@@ -93,7 +92,7 @@ MODULE MODE_RAIN_ICE_OLD_SEDIMENTATION_STAT
 
     REAL :: ZINVTSTEP
 
-    REAL(KIND=JPRB) :: ZHOOK_HANDLE
+    REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/common/micro/mode_rain_ice_old_slow.F90 b/src/common/micro/mode_rain_ice_old_slow.F90
index 984b80124407277c6af698b6d0dcf861d9f08160..8b43b266b910bafbab5a9946682ddffc2c39ef59 100644
--- a/src/common/micro/mode_rain_ice_old_slow.F90
+++ b/src/common/micro/mode_rain_ice_old_slow.F90
@@ -24,7 +24,7 @@ MODULE MODE_RAIN_ICE_OLD_SLOW
                                TBUDGETS, KBUDGETS)
 
     USE PARKIND1,             ONLY: JPRB
-    USE YOMHOOK,              ONLY: LHOOK, DR_HOOK
+    USE YOMHOOK,              ONLY: LHOOK, DR_HOOK, JPHOOK
     USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_T
     USE MODD_CST,             ONLY: CST_T
     USE MODD_RAIN_ICE_PARAM_n,  ONLY: RAIN_ICE_PARAM_T
@@ -110,7 +110,7 @@ MODULE MODE_RAIN_ICE_OLD_SLOW
     INTEGER :: JL
     REAL    :: ZINVTSTEP
 
-    REAL(KIND=JPRB) :: ZHOOK_HANDLE
+    REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 
     IF (LHOOK) CALL DR_HOOK('RAIN_ICE_OLD:RAIN_ICE_SLOW',0,ZHOOK_HANDLE)
 
diff --git a/src/common/micro/mode_rain_ice_old_warm.F90 b/src/common/micro/mode_rain_ice_old_warm.F90
index 8b1d1520e26f45b115cbd64bdf2ebb72f62ea146..b53090d15af0f75c7dad8d90d6fe43a001acca63 100644
--- a/src/common/micro/mode_rain_ice_old_warm.F90
+++ b/src/common/micro/mode_rain_ice_old_warm.F90
@@ -23,8 +23,7 @@ MODULE MODE_RAIN_ICE_OLD_WARM
                                ZZT, ZPRES, ZESW,                             &
                                TBUDGETS, KBUDGETS)
 
-    USE PARKIND1,            ONLY: JPRB
-    USE YOMHOOK,             ONLY: LHOOK, DR_HOOK
+    USE YOMHOOK,             ONLY: LHOOK, DR_HOOK, JPHOOK
     USE MODD_DIMPHYEX,       ONLY: DIMPHYEX_T
     USE MODD_CST,            ONLY: CST_T
     USE MODD_PARAM_ICE_n,    ONLY: PARAM_ICE_t
@@ -114,7 +113,7 @@ MODULE MODE_RAIN_ICE_OLD_WARM
 
     REAL, DIMENSION(D%NIT,D%NKT) :: ZW ! work array
 
-    REAL(KIND=JPRB) :: ZHOOK_HANDLE
+    REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 
     INTEGER :: JK
     LOGICAL :: LTEST ! Only for test !
diff --git a/src/common/micro/mode_read_xker_gweth.F90 b/src/common/micro/mode_read_xker_gweth.F90
index c0e18f57e5bfad43bc9fe712abfcf7a5e2774595..bca7bc043c5d7eb9774ac03e54c2685dd5f5942a 100644
--- a/src/common/micro/mode_read_xker_gweth.F90
+++ b/src/common/micro/mode_read_xker_gweth.F90
@@ -12,8 +12,7 @@ CONTAINS
                     PWETLBDAH_MAX,PWETLBDAG_MAX,PWETLBDAH_MIN,PWETLBDAG_MIN, &
                     PFDINFTY,PKER_GWETH                                      )
 !DEC$ OPTIMIZE:0
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ########################################################################
 !
 !!****  * * - initialize the kernels for the graupel-hail wet growth process
@@ -81,7 +80,7 @@ REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PKER_GWETH
 ! #INSERT HERE THE OUTPUT OF INI_RAIN_ICE_HAIL IF THE KERNELS ARE UPDATED#
 ! ########################################################################
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('READ_XKER_GWETH',0,ZHOOK_HANDLE)
 KND= 50
 KWETLBDAH= 40
diff --git a/src/common/micro/mode_read_xker_raccs.F90 b/src/common/micro/mode_read_xker_raccs.F90
index 8ca45d9bfacfaee372868359d79a73fddbed233f..eeae9e13d8991d2b73ad9fe99bd75abeb5035d07 100644
--- a/src/common/micro/mode_read_xker_raccs.F90
+++ b/src/common/micro/mode_read_xker_raccs.F90
@@ -12,8 +12,7 @@ CONTAINS
                       PACCLBDAS_MAX,PACCLBDAR_MAX,PACCLBDAS_MIN,PACCLBDAR_MIN, &
                       PFDINFTY,PKER_RACCSS,PKER_RACCS,PKER_SACCRG              )
 !DEC$ OPTIMIZE:0
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ##########################################################################
 !
 !!****  * * - initialize the kernels for the rain-snow accretion process
@@ -85,7 +84,7 @@ REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PKER_SACCRG
 ! #INSERT HERE THE OUTPUT OF INI_RAIN_ICE IF THE KERNELS ARE UPDATED#
 ! ###################################################################
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('READ_XKER_RACCS',0,ZHOOK_HANDLE)
 KND= 50
 KACCLBDAS= 40
diff --git a/src/common/micro/mode_read_xker_rdryg.F90 b/src/common/micro/mode_read_xker_rdryg.F90
index 4ab0f47df6a4fd4cc7d263dacdc8385ddf49d8d0..20e0f6a45a3f2ee59fb6466124f750b30dcdf418 100644
--- a/src/common/micro/mode_read_xker_rdryg.F90
+++ b/src/common/micro/mode_read_xker_rdryg.F90
@@ -18,8 +18,7 @@ CONTAINS
                     PDRYLBDAG_MAX,PDRYLBDAR_MAX,PDRYLBDAG_MIN,PDRYLBDAR_MIN, &
                     PFDINFTY,PKER_RDRYG                                      )
 !DEC$ OPTIMIZE:0
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ########################################################################
 !
 !!****  * * - initialize the kernels for the snow-graupel dry growth process
@@ -86,7 +85,7 @@ REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PKER_RDRYG
 ! #INSERT HERE THE OUTPUT OF INI_RAIN_ICE IF THE KERNELS ARE UPDATED#
 ! ###################################################################
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('READ_XKER_RDRYG',0,ZHOOK_HANDLE)
 KND= 50
 KDRYLBDAG= 40
diff --git a/src/common/micro/mode_read_xker_rweth.F90 b/src/common/micro/mode_read_xker_rweth.F90
index 9f04157ad7bf94878e24ab0bc57ccb2c8438a3b9..1d011283bfe775421fbb8d5b8afaa32d86b32741 100644
--- a/src/common/micro/mode_read_xker_rweth.F90
+++ b/src/common/micro/mode_read_xker_rweth.F90
@@ -12,8 +12,7 @@ CONTAINS
                     PWETLBDAH_MAX,PWETLBDAR_MAX,PWETLBDAH_MIN,PWETLBDAR_MIN, &
                     PFDINFTY,PKER_RWETH                                      )
 !DEC$ OPTIMIZE:0
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ########################################################################
 !
 !!****  * * - initialize the kernels for the rain-hail wet growth process
@@ -80,7 +79,7 @@ REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PKER_RWETH
 ! #INSERT HERE THE OUTPUT OF INI_RAIN_ICE IF THE KERNELS ARE UPDATED#
 ! ###################################################################
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('READ_XKER_RWETH',0,ZHOOK_HANDLE)
 KND= 50
 KWETLBDAH= 40
diff --git a/src/common/micro/mode_read_xker_sdryg.F90 b/src/common/micro/mode_read_xker_sdryg.F90
index 088e569cd1b552ed48b8007d4fec57c04537ab2d..bb46c16be3eec47e6b274862f5951cec78b0956b 100644
--- a/src/common/micro/mode_read_xker_sdryg.F90
+++ b/src/common/micro/mode_read_xker_sdryg.F90
@@ -12,8 +12,7 @@ CONTAINS
                     PDRYLBDAG_MAX,PDRYLBDAS_MAX,PDRYLBDAG_MIN,PDRYLBDAS_MIN, &
                     PFDINFTY,PKER_SDRYG                                      )
 !DEC$ OPTIMIZE:0
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ########################################################################
 !
 !!****  * * - initialize the kernels for the snow-graupel dry growth process
@@ -82,7 +81,7 @@ REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PKER_SDRYG
 ! #INSERT HERE THE OUTPUT OF INI_RAIN_ICE IF THE KERNELS ARE UPDATED#
 ! ###################################################################
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('READ_XKER_SDRYG',0,ZHOOK_HANDLE)
 KND= 50
 KDRYLBDAG= 40
diff --git a/src/common/micro/mode_read_xker_sweth.F90 b/src/common/micro/mode_read_xker_sweth.F90
index 48d4b1aa4fdaaff9a24e2096f9ddd1e1137624c7..a10c94f466f70d1a44b1dabae9c8e69d3cb4f3fe 100644
--- a/src/common/micro/mode_read_xker_sweth.F90
+++ b/src/common/micro/mode_read_xker_sweth.F90
@@ -12,8 +12,7 @@ CONTAINS
                     PWETLBDAH_MAX,PWETLBDAS_MAX,PWETLBDAH_MIN,PWETLBDAS_MIN, &
                     PFDINFTY,PKER_SWETH                                      )
 !DEC$ OPTIMIZE:0
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ########################################################################
 !
 !!****  * * - initialize the kernels for the snow-hail wet growth process
@@ -82,7 +81,7 @@ REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PKER_SWETH
 ! #INSERT HERE THE OUTPUT OF INI_RAIN_ICE_HAIL IF THE KERNELS ARE UPDATED#
 ! ########################################################################
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('READ_XKER_SWETH',0,ZHOOK_HANDLE)
 KND= 50
 KWETLBDAH= 40
diff --git a/src/common/micro/mode_rrcolss.F90 b/src/common/micro/mode_rrcolss.F90
index a0b726e64353f3e2c7a7d0024159d947813ebc0d..d2458213204c117d0a7c07b783df3978f9158b33 100644
--- a/src/common/micro/mode_rrcolss.F90
+++ b/src/common/micro/mode_rrcolss.F90
@@ -13,8 +13,7 @@ CONTAINS
                          PESR, PEXMASSR, PFALLS, PEXFALLS, PFALLEXPS, PFALLR, PEXFALLR, &
                          PLBDASMAX, PLBDARMAX, PLBDASMIN, PLBDARMIN,         &
                          PDINFTY, PRRCOLSS, PAG, PBS, PAS                    )
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ########################################################################
 !
 !
@@ -177,7 +176,7 @@ REAL :: ZCST1
 !
 !*       1.0     Initialization
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('RRCOLSS',0,ZHOOK_HANDLE)
 PRRCOLSS(:,:) = 0.0
 ZCST1 = (3.0/XPI)/XRHOLW
diff --git a/src/common/micro/mode_rscolrg.F90 b/src/common/micro/mode_rscolrg.F90
index 99d241aad8c5767506e008f85f8e92d16d952191..8b4dad8b2bf73b290f4861d73e47c9d460f57123 100644
--- a/src/common/micro/mode_rscolrg.F90
+++ b/src/common/micro/mode_rscolrg.F90
@@ -13,8 +13,7 @@ CONTAINS
                          PESR, PEXMASSS, PFALLS, PEXFALLS, PFALLEXPS, PFALLR, PEXFALLR, &
                          PLBDASMAX, PLBDARMAX, PLBDASMIN, PLBDARMIN,         &
                          PDINFTY, PRSCOLRG,PAG, PBS, PAS                     )
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ########################################################################
 !
 !
@@ -174,7 +173,7 @@ REAL :: ZCST1
 !
 !*       1.0     Initialization
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('RSCOLRG',0,ZHOOK_HANDLE)
 PRSCOLRG(:,:) = 0.0
 ZCST1  = (3.0/XPI)/XRHOLW
diff --git a/src/common/micro/mode_rzcolx.F90 b/src/common/micro/mode_rzcolx.F90
index 3370bc01fc979498af1073544a4b7efa7013c3f6..2b910d5fc319a73297bba81b88c217ec81eafd54 100644
--- a/src/common/micro/mode_rzcolx.F90
+++ b/src/common/micro/mode_rzcolx.F90
@@ -14,8 +14,7 @@ CONTAINS
                          PFALLZ, PEXFALLZ, PFALLEXPZ,                        &
 		         PLBDAXMAX, PLBDAZMAX, PLBDAXMIN, PLBDAZMIN,         &
                          PDINFTY, PRZCOLX                                    )
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ########################################################################
 !
 !
@@ -173,7 +172,7 @@ REAL    :: ZFUNC   ! Ancillary function
 !
 !*       1.1     Compute the growth rate of the slope factors LAMBDA
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('RZCOLX',0,ZHOOK_HANDLE)
 ZDLBDAX = EXP( LOG(PLBDAXMAX/PLBDAXMIN)/REAL(SIZE(PRZCOLX(:,:),1)-1) )
 ZDLBDAZ = EXP( LOG(PLBDAZMAX/PLBDAZMIN)/REAL(SIZE(PRZCOLX(:,:),2)-1) )
diff --git a/src/common/micro/mode_tiwmx.F90 b/src/common/micro/mode_tiwmx.F90
index dbfbdc712330cd2f959e1bbccd1c0b3f642b9137..dc98d10c2bfa819b09dfea670358bbee73a1a176 100644
--- a/src/common/micro/mode_tiwmx.F90
+++ b/src/common/micro/mode_tiwmx.F90
@@ -29,7 +29,7 @@
 IMPLICIT NONE
 
 REAL, PARAMETER :: XNDEGR = 100.0
-INTEGER, PARAMETER :: NSTART = 10000
+INTEGER, PARAMETER :: NSTART = 13200 ! A too small value may result into a FPE in single precision mode. REK.
 INTEGER, PARAMETER :: NSTOP = 37316
 
 ! Saturation tables and derivatives
diff --git a/src/common/micro/mode_tiwmx_tab.F90 b/src/common/micro/mode_tiwmx_tab.F90
index e8e42bcd6ef2d9082705d9351d42db729ebca2d9..4921638028c7fdede4d22c1785736d3670ed9e64 100644
--- a/src/common/micro/mode_tiwmx_tab.F90
+++ b/src/common/micro/mode_tiwmx_tab.F90
@@ -49,9 +49,8 @@ FUNCTION TIWMX_TAB(P,T,QR,FICE,QRSN,RS,EPS)
 !     1.1 MODULES USED
  
   USE MODD_CST, ONLY  : XEPSILO, XCPD, XLSTT, XLVTT
+  USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
   USE MODE_TIWMX, ONLY : ESATI, ESATW, DESDTI, DESDTW
-  USE YOMHOOK , ONLY : LHOOK, DR_HOOK
-  USE PARKIND1, ONLY : JPRB
   
   IMPLICIT NONE
 
@@ -68,7 +67,7 @@ FUNCTION TIWMX_TAB(P,T,QR,FICE,QRSN,RS,EPS)
   REAL :: F,DFDT,T2,DT,QSN,DQSDT,B
   REAL :: ZES,ZDESDT
   INTEGER :: ITER
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 
   IF (LHOOK) CALL DR_HOOK('TIWMX_TAB',0,ZHOOK_HANDLE)
 
diff --git a/src/common/micro/rain_ice.F90 b/src/common/micro/rain_ice.F90
index 6f413b6acbb8efc5796a108851b1c28157a62d22..18b10bb3de19c5c346847d2688fd77479c0c4a74 100644
--- a/src/common/micro/rain_ice.F90
+++ b/src/common/micro/rain_ice.F90
@@ -176,8 +176,7 @@
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 
 USE MODD_DIMPHYEX,   ONLY: DIMPHYEX_t
 USE MODD_BUDGET,         ONLY: TBUDGETDATA, TBUDGETCONF_t, NBUDGET_TH, NBUDGET_RV, NBUDGET_RC, &
@@ -271,7 +270,7 @@ REAL, DIMENSION(D%NIJT,D%NKT,KRR), OPTIONAL, INTENT(OUT)  :: PFPR ! upper-air pr
 !
 !*       0.2   Declarations of local variables :
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !
 INTEGER :: JIJ, JK
 INTEGER :: IKTB, IKTE, IKB, IIJB, IIJE
diff --git a/src/common/micro/rain_ice_old.F90 b/src/common/micro/rain_ice_old.F90
index 6db99a7779d3fe1994d27741263f8956a804048b..71174a7f4efc77e504eff56234aeb9ee356f9891 100644
--- a/src/common/micro/rain_ice_old.F90
+++ b/src/common/micro/rain_ice_old.F90
@@ -15,7 +15,7 @@
                                PRHT, PRHS, PINPRH, PFPR)
 
       USE PARKIND1,            ONLY: JPRB
-      USE YOMHOOK,             ONLY: LHOOK, DR_HOOK
+      USE YOMHOOK,             ONLY: LHOOK, DR_HOOK, JPHOOK
       USE MODD_DIMPHYEX,       ONLY: DIMPHYEX_T
       USE MODD_CST,            ONLY: CST_T
       USE MODD_PARAM_ICE_N,    ONLY: PARAM_ICE_t
@@ -403,7 +403,7 @@ LOGICAL :: LCHECKNOISE ! Noise check on/off
 LOGICAL :: LTIW   ! Use TIW for graupel melting ( set by XFRMIN(18) ~ 1)
 !
 REAL, DIMENSION(D%NIT,D%NKT) :: ZBU0
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/common/turb/mode_bl89.F90 b/src/common/turb/mode_bl89.F90
index 24be3f32177ae7d323407dc999e3bdae4a0f983e..80e0dc0db96e00dc1b99e56414c80a10adbf7752 100644
--- a/src/common/turb/mode_bl89.F90
+++ b/src/common/turb/mode_bl89.F90
@@ -7,8 +7,7 @@ IMPLICIT NONE
 CONTAINS
 !     ######spl
       SUBROUTINE BL89(D,CST,CSTURB,TURBN,PZZ,PDZZ,PTHVREF,PTHLM,KRR,PRM,PTKEM,PSHEAR,PLM,OOCEAN)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #########################################################
 !
 !!****  *BL89* -
@@ -116,7 +115,7 @@ REAL    :: ZTEST,ZTEST0,ZTESTM ! test for vectorization
 REAL    :: Z2SQRT2,ZUSRBL89,ZBL89EXP
 !-------------------------------------------------------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('BL89',0,ZHOOK_HANDLE)
 Z2SQRT2=2.*SQRT(2.)
 !
diff --git a/src/common/turb/mode_bl_depth_diag.F90 b/src/common/turb/mode_bl_depth_diag.F90
index 1f91c292e89ed4a7eea037d9608a2fb1cb4b2ce7..d3a77f13e53ce9ea130b51d4513388870332e97b 100644
--- a/src/common/turb/mode_bl_depth_diag.F90
+++ b/src/common/turb/mode_bl_depth_diag.F90
@@ -13,8 +13,7 @@ END INTERFACE
 CONTAINS
 !
 SUBROUTINE BL_DEPTH_DIAG_3D(D,PSURF,PZS,PFLUX,PZZ,PFTOP_O_FSURF,BL_DEPTH_DIAG3D)
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 !
 !!****  *SBL_DEPTH* - computes SBL depth
@@ -73,7 +72,7 @@ REAL    :: ZFLX     ! flux at top of BL
 !
 !----------------------------------------------------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('BL_DEPTH_DIAG_3D',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -107,8 +106,7 @@ IF (LHOOK) CALL DR_HOOK('BL_DEPTH_DIAG_3D',1,ZHOOK_HANDLE)
 END SUBROUTINE BL_DEPTH_DIAG_3D
 !
 SUBROUTINE BL_DEPTH_DIAG_1D(D,PSURF,PZS,PFLUX,PZZ,PFTOP_O_FSURF,BL_DEPTH_DIAG1D)
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
 !
@@ -129,7 +127,7 @@ REAL, DIMENSION(1,1,D%NKT)       :: ZZZ
 REAL, DIMENSION(1,1)             :: ZBL_DEPTH_DIAG
 !
 INTEGER :: IKT
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('BL_DEPTH_DIAG_1D',0,ZHOOK_HANDLE)
 IKT=D%NKT
 ZSURF        = PSURF
diff --git a/src/common/turb/mode_compute_bl89_ml.F90 b/src/common/turb/mode_compute_bl89_ml.F90
index 36008959d5bba861c545aa3313ef83e96e0557f6..47d2b37a1be3a7c88a06270a72a89f28f42bca63 100644
--- a/src/common/turb/mode_compute_bl89_ml.F90
+++ b/src/common/turb/mode_compute_bl89_ml.F90
@@ -5,8 +5,7 @@ CONTAINS
       SUBROUTINE COMPUTE_BL89_ML(D, CST, CSTURB,PDZZ2D, &
              PTKEM_DEP,PG_O_THVREF,PVPT,KK,OUPORDN,OFLUX,PSHEAR,PLWORK)
 
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ###################################################################
 !!
 !!     COMPUTE_BL89_ML routine to:
@@ -88,7 +87,7 @@ REAL    :: ZTEST,ZTEST0,ZTESTM  !test for vectorization
 !
 !*       1.    INITIALISATION
 !              --------------
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('COMPUTE_BL89_ML',0,ZHOOK_HANDLE)
 !
 IIJE=D%NIJE
diff --git a/src/common/turb/mode_compute_function_thermo_mf.F90 b/src/common/turb/mode_compute_function_thermo_mf.F90
index fdb54d89b93374cc3fb1e4e25bd5fc3eb3c23060..89d7f3b129b3d6982bbf7354f697bff9052fc815 100644
--- a/src/common/turb/mode_compute_function_thermo_mf.F90
+++ b/src/common/turb/mode_compute_function_thermo_mf.F90
@@ -53,8 +53,7 @@ CONTAINS
 !
 USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_t
 USE MODD_CST,             ONLY: CST_t
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -95,7 +94,7 @@ REAL, DIMENSION(D%NIJT,D%NKT) ::      &
 INTEGER             :: JRR, JIJ, JK
 INTEGER :: IIJB,IIJE ! physical horizontal domain indices
 INTEGER :: IKTB,IKTE
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/common/turb/mode_compute_mf_cloud.F90 b/src/common/turb/mode_compute_mf_cloud.F90
index 86f921d12e63c414c6730468dde108c2ddefdc6b..a9a6d456848a4ccfc3ed64fa2c5798c134574f2e 100644
--- a/src/common/turb/mode_compute_mf_cloud.F90
+++ b/src/common/turb/mode_compute_mf_cloud.F90
@@ -72,8 +72,7 @@ USE MODE_COMPUTE_MF_CLOUD_DIRECT, ONLY: COMPUTE_MF_CLOUD_DIRECT
 USE MODE_COMPUTE_MF_CLOUD_STAT, ONLY: COMPUTE_MF_CLOUD_STAT
 USE MODE_COMPUTE_MF_CLOUD_BIGAUS, ONLY: COMPUTE_MF_CLOUD_BIGAUS
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 
 IMPLICIT NONE
 
@@ -110,7 +109,7 @@ REAL, DIMENSION(D%NIJT),     INTENT(IN)   ::  PDEPTH            ! Deepness of cl
 !
 !                       1.2  Declaration of local variables
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !------------------------------------------------------------------------
 
 !                     1. INITIALISATION
diff --git a/src/common/turb/mode_compute_mf_cloud_bigaus.F90 b/src/common/turb/mode_compute_mf_cloud_bigaus.F90
index a34c6e46f1d6db259eda3aa9062aeac8b481be3f..af8e11df3b30b733e3c83fb46fe43d71dd2b2e96 100644
--- a/src/common/turb/mode_compute_mf_cloud_bigaus.F90
+++ b/src/common/turb/mode_compute_mf_cloud_bigaus.F90
@@ -63,8 +63,7 @@ USE MODD_PARAM_MFSHALL_n, ONLY: PARAM_MFSHALL_t
 !
 USE MODI_SHUMAN_MF, ONLY: MZF_MF, GZ_M_W_MF
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -99,7 +98,7 @@ REAL, DIMENSION(D%NIJT,D%NKT) :: ZCOND ! condensate
 REAL, DIMENSION(D%NIJT,D%NKT) :: ZA, ZGAM ! used for integration
 INTEGER :: IIJB,IIJE ! physical horizontal domain indices
 INTEGER :: IKT,IKB,IKA,IKU,IKE,IKL
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 
 IF (LHOOK) CALL DR_HOOK('COMPUTE_MF_CLOUD_BIGAUS',0,ZHOOK_HANDLE)
 !
diff --git a/src/common/turb/mode_compute_mf_cloud_direct.F90 b/src/common/turb/mode_compute_mf_cloud_direct.F90
index 2323b77f523cf7d886bc038730eabe17d0052916..558b0e6449272114cd0aa0247ed5624b8187f959 100644
--- a/src/common/turb/mode_compute_mf_cloud_direct.F90
+++ b/src/common/turb/mode_compute_mf_cloud_direct.F90
@@ -55,8 +55,7 @@ CONTAINS
 !          ------------
 USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_t
 USE MODD_PARAM_MFSHALL_n, ONLY : PARAM_MFSHALL_t
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -72,8 +71,8 @@ REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(OUT)  :: PCF_MF         ! and cloud frac
 !
 !*                    0.1  Declaration of local variables
 !
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 INTEGER  :: JI,JK, JK0, IKB,IKE,IKL,IIJB,IIJE
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
 !
 !*                    0.2 Initialisation
 !
diff --git a/src/common/turb/mode_compute_mf_cloud_stat.F90 b/src/common/turb/mode_compute_mf_cloud_stat.F90
index 7ec25db412e4096fa4d06dc5569ca755863d971b..5e9cf63f92c27b2ec72b34a73b977fe19e09ab79 100644
--- a/src/common/turb/mode_compute_mf_cloud_stat.F90
+++ b/src/common/turb/mode_compute_mf_cloud_stat.F90
@@ -64,8 +64,7 @@ USE MODD_TURB_n,          ONLY: TURB_t
 USE MODI_SHUMAN_MF, ONLY: MZF_MF, MZM_MF, GZ_M_W_MF
 USE MODE_COMPUTE_FUNCTION_THERMO_MF, ONLY: COMPUTE_FUNCTION_THERMO_MF
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -100,7 +99,7 @@ REAL, DIMENSION(D%NIJT,D%NKT) :: ZWK,ZWK2
 INTEGER :: JIJ, JK
 INTEGER :: IIJB,IIJE ! physical horizontal domain indices
 INTEGER :: IKT
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !
 !*                    0.2 initialisation
 !
diff --git a/src/common/turb/mode_compute_updraft.F90 b/src/common/turb/mode_compute_updraft.F90
index 399400297f75f4261c5950d77033cbdbad226a6a..0f9ca09e4f75d5b0f9cb099452db9377788d665f 100644
--- a/src/common/turb/mode_compute_updraft.F90
+++ b/src/common/turb/mode_compute_updraft.F90
@@ -78,8 +78,7 @@ USE MODI_SHUMAN_MF, ONLY: MZM_MF, MZF_MF, GZ_M_W_MF
 
 USE MODE_COMPUTE_BL89_ML, ONLY: COMPUTE_BL89_ML
 USE MODE_MSG, ONLY: PRINT_MSG, NVERB_FATAL
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 
 IMPLICIT NONE
 
@@ -194,7 +193,7 @@ REAL, DIMENSION(D%NIJT,D%NKT) :: ZSHEAR,ZDUDZ,ZDVDZ ! vertical wind shear
 REAL, DIMENSION(D%NIJT,D%NKT) :: ZWK
 REAL, DIMENSION(D%NIJT,16) :: ZBUF
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !
 !                       1.3  Declaration of additional local variables for compute_entr_detr
 !
diff --git a/src/common/turb/mode_compute_updraft_raha.F90 b/src/common/turb/mode_compute_updraft_raha.F90
index 4914be2aedc14ed0423c51d72f31d7d0806b00c1..1c7731867c797fa43f52abfda3c8f9f3c221c2fc 100644
--- a/src/common/turb/mode_compute_updraft_raha.F90
+++ b/src/common/turb/mode_compute_updraft_raha.F90
@@ -65,8 +65,7 @@ USE MODD_PARAM_MFSHALL_n, ONLY: PARAM_MFSHALL_t
 !
 USE MODI_SHUMAN_MF, ONLY: MZM_MF
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 
 IMPLICIT NONE
 
@@ -174,7 +173,7 @@ REAL  :: ZDEPTH_MAX1, ZDEPTH_MAX2 ! control auto-extinction process
 REAL  :: ZTMAX,ZRMAX, ZEPS  ! control value
 REAL, DIMENSION(D%NIJT,16)           ::  ZBUF
 
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('COMPUTE_UPDRAF_RAHA',0,ZHOOK_HANDLE)
 !
 IIJE=D%NIJE
diff --git a/src/common/turb/mode_compute_updraft_rhcj10.F90 b/src/common/turb/mode_compute_updraft_rhcj10.F90
index aa87a5bcc8ca2e59ff4cff4b0aac497881d16248..f7a56f449ce9275a5e35fbc2eae30eaa6e80c8ab 100644
--- a/src/common/turb/mode_compute_updraft_rhcj10.F90
+++ b/src/common/turb/mode_compute_updraft_rhcj10.F90
@@ -71,8 +71,7 @@ USE MODD_CTURB,           ONLY: CSTURB_t
 USE MODI_SHUMAN_MF, ONLY: MZF_MF, MZM_MF, GZ_M_W_MF
 
 USE MODE_COMPUTE_BL89_ML, ONLY: COMPUTE_BL89_ML
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 
 
 IMPLICIT NONE
@@ -186,7 +185,7 @@ REAL, DIMENSION(D%NIJT,D%NKT) :: ZSHEAR,ZDUDZ,ZDVDZ ! vertical wind shear
 REAL, DIMENSION(D%NIJT,D%NKT) :: ZWK
 REAL, DIMENSION(D%NIJT,16)    :: ZBUF
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('COMPUTE_UPDRAFT_RHCJ10',0,ZHOOK_HANDLE)
 !
 IIJE=D%NIJE
diff --git a/src/common/turb/mode_emoist.F90 b/src/common/turb/mode_emoist.F90
index 6ad75d2481a47d202cd6f757e815dcc9f81ecd30..ec88edc6560ffc221b5442b6bc0a6c2188c8fc82 100644
--- a/src/common/turb/mode_emoist.F90
+++ b/src/common/turb/mode_emoist.F90
@@ -6,8 +6,7 @@ MODULE MODE_EMOIST
 IMPLICIT NONE
 CONTAINS
 SUBROUTINE EMOIST(D,CST,KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PAMOIST,PSRCM,OOCEAN,PEMOIST)
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !   ############################################################################
 !
 !      PURPOSE
@@ -98,7 +97,7 @@ INTEGER                               :: IIJB,IIJE,IKT
 !*       1. COMPUTE EMOIST
 !           --------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('EMOIST',0,ZHOOK_HANDLE)
 !
 IIJB=D%NIJB
diff --git a/src/common/turb/mode_etheta.F90 b/src/common/turb/mode_etheta.F90
index aec4eaa072ef72e4818cc65b3ee1b7cd18bbaa90..fd8e1b69f9f1a68f2938dd436fea007de627ba1a 100644
--- a/src/common/turb/mode_etheta.F90
+++ b/src/common/turb/mode_etheta.F90
@@ -6,8 +6,7 @@ MODULE MODE_ETHETA
 IMPLICIT NONE
 CONTAINS
 SUBROUTINE ETHETA(D,CST,KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PATHETA,PSRCM,OOCEAN,OCOMPUTE_SRC,PETHETA)
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !   ############################################################################
 !
 !      PURPOSE
@@ -102,7 +101,7 @@ INTEGER                               :: IIJB,IIJE,IKT
 !           --------------
 !
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('ETHETA',0,ZHOOK_HANDLE)
 !
 IIJB=D%NIJB
diff --git a/src/common/turb/mode_ini_mfshall.F90 b/src/common/turb/mode_ini_mfshall.F90
index 774f4ed0683bbe2153dcee5966da630fad600d20..56973284350b4d8a1d3665de3aab17f3ed5cef5b 100644
--- a/src/common/turb/mode_ini_mfshall.F90
+++ b/src/common/turb/mode_ini_mfshall.F90
@@ -38,8 +38,7 @@ SUBROUTINE INI_MFSHALL()
 !              ------------
 !
 USE MODD_PARAM_MFSHALL_n, ONLY: LTHETAS_MF, XLAMBDA_MF
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -50,7 +49,7 @@ IMPLICIT NONE
 !
 !*       0.2   Declarations of local variables :
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !-------------------------------------------------------------------------------
 IF (LHOOK) CALL DR_HOOK('INI_MFSHALL',0,ZHOOK_HANDLE)
 !
diff --git a/src/common/turb/mode_ini_turb.F90 b/src/common/turb/mode_ini_turb.F90
index 81ca343230079e99da1b2a332cde66cebb950378..321453659fe0918e7e873f1549f251500f444987 100644
--- a/src/common/turb/mode_ini_turb.F90
+++ b/src/common/turb/mode_ini_turb.F90
@@ -57,13 +57,12 @@ USE MODD_NEB_n, ONLY: LSTATNW
 USE MODD_CTURB ! For true constants (not tunable)
 USE MODD_PARAMETERS, ONLY : XUNDEF
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
 CHARACTER(LEN=6),  INTENT(IN) :: HPROGRAM
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !
 IF (LHOOK) CALL DR_HOOK('INI_TURB',0,ZHOOK_HANDLE)
 !
diff --git a/src/common/turb/mode_mf_turb.F90 b/src/common/turb/mode_mf_turb.F90
index f168dfc9606cf5ea552063937da23328a00a934e..fd87dd143fd5339f8a86658f5098ab5bf0fe0d24 100644
--- a/src/common/turb/mode_mf_turb.F90
+++ b/src/common/turb/mode_mf_turb.F90
@@ -67,8 +67,7 @@ USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_t
 USE MODI_SHUMAN_MF, ONLY: MZM_MF
 USE MODE_TRIDIAG_MASSFLUX, ONLY: TRIDIAG_MASSFLUX
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -131,7 +130,7 @@ INTEGER :: JSV          !number of scalar variables and Loop counter
 INTEGER :: JIJ, JK
 INTEGER :: IIJB,IIJE ! physical horizontal domain indices
 INTEGER :: IKT
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !
 !----------------------------------------------------------------------------
 !
diff --git a/src/common/turb/mode_mf_turb_expl.F90 b/src/common/turb/mode_mf_turb_expl.F90
index 79fc3919e2eaa1ad73986573b672e0ef3787812c..6ab461f4e37f0d0e3da0b8595807e59a3a5dad76 100644
--- a/src/common/turb/mode_mf_turb_expl.F90
+++ b/src/common/turb/mode_mf_turb_expl.F90
@@ -53,8 +53,7 @@ CONTAINS
 USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_t
 USE MODD_PARAM_MFSHALL_n, ONLY: PARAM_MFSHALL_t
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 USE MODI_SHUMAN_MF, ONLY: MZM_MF
 
 IMPLICIT NONE
@@ -100,7 +99,7 @@ REAL, DIMENSION(D%NIJT,D%NKT) :: ZTHLM_F,ZRTM_F
 INTEGER                              :: JK, JIJ            ! loop counter
 INTEGER :: IIJB,IIJE ! physical horizontal domain indices
 INTEGER :: IKT,IKB,IKE,IKL
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 
 !----------------------------------------------------------------------------
 !
diff --git a/src/common/turb/mode_prandtl.F90 b/src/common/turb/mode_prandtl.F90
index 2a0039c57bf7b92c4524e4b5668b543f1eac46fe..ca06510b284b06d69e8672066c2e240e951c205d 100644
--- a/src/common/turb/mode_prandtl.F90
+++ b/src/common/turb/mode_prandtl.F90
@@ -5,8 +5,7 @@
 !-----------------------------------------------------------------
 !    #################### 
      MODULE MODE_PRANDTL
-     USE PARKIND1, ONLY : JPRB
-     USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !    #################### 
 !
 !* modification 08/2010  V. Masson  smoothing of the discontinuity in functions 
@@ -142,8 +141,6 @@ CONTAINS
 !*      0. DECLARATIONS
 !          ------------
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 !
 USE MODD_CST,            ONLY: CST_t
 USE MODD_CTURB,          ONLY: CSTURB_t
@@ -237,7 +234,7 @@ TYPE(TFIELDMETADATA) :: TZFIELD
 !*      1.  DEFAULT VALUES,  1D REDELSPERGER NUMBERS 
 !           ----------------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('PRANDTL',0,ZHOOK_HANDLE)
 
 IF (OHARAT) THEN
@@ -781,7 +778,7 @@ SUBROUTINE PHI3(D,CSTURB,TURBN,PREDTH1,PREDR1,PRED2TH3,PRED2R3,PRED2THR3,HTURBDI
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZW1, ZW2
   INTEGER :: IKB, IKE, JIJ,JK, IIJB,IIJE, IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:PHI3',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -856,7 +853,7 @@ SUBROUTINE PSI_SV(D,CSTURB,TURBN,KSV,PREDTH1,PREDR1,PREDS1,PRED2THS,PRED2RS,PPHI
   INTEGER :: IKB, IKE, IIJB,IIJE, IKT
   INTEGER :: JSV,JIJ,JK
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:PSI_SV',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -909,7 +906,7 @@ SUBROUTINE D_PHI3DTDZ_O_DDTDZ(D,CSTURB,TURBN,PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_PHI3DTDZ_O_DDTDZ
   INTEGER :: IKB, IKE,JIJ,JK, IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_PHI3DTDZ_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1003,7 +1000,7 @@ SUBROUTINE D_PHI3DRDZ_O_DDRDZ(D,CSTURB,TURBN,PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_PHI3DRDZ_O_DDRDZ
   INTEGER :: IKB, IKE, JIJ,JK, IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_PHI3DRDZ_O_DDRDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1083,7 +1080,7 @@ SUBROUTINE D_PHI3DTDZ2_O_DDTDZ(D,CSTURB,TURBN,PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1 ! working array
   INTEGER :: IKB, IKE, JIJ,JK, IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_PHI3DTDZ2_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1140,7 +1137,7 @@ SUBROUTINE M3_WTH_WTH2(D,CSTURB,TURBN,PREDTH1,PREDR1,PD,PBLL_O_E,PETHETA,PM3_WTH
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_WTH_WTH2
   INTEGER :: IKB, IKE, JIJ,JK, IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_WTH2',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1172,7 +1169,7 @@ SUBROUTINE D_M3_WTH_WTH2_O_DDTDZ(D,CSTURB,TURBN,PM3_WTH_WTH2,PREDTH1,PREDR1,PD,P
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_WTH_WTH2_O_DDTDZ
   INTEGER :: IKB, IKE, JIJ,JK, IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_WTH2_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1207,7 +1204,7 @@ SUBROUTINE M3_WTH_W2TH(D,CSTURB,TURBN,PREDTH1,PREDR1,PD,PKEFF,PTKE,PM3_WTH_W2TH)
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1 ! working array
   INTEGER :: IKB, IKE, JIJ,JK, IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_W2TH',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1243,7 +1240,7 @@ SUBROUTINE D_M3_WTH_W2TH_O_DDTDZ(D,CSTURB,TURBN,PREDTH1,PREDR1,PD,PBLL_O_E,PETHE
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1 ! working array
   INTEGER :: IKB, IKE, JIJ,JK, IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_W2TH_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1281,7 +1278,7 @@ SUBROUTINE M3_WTH_W2R(D,CSTURB,TURBN,PD,PKEFF,PTKE,PBLL_O_E,PEMOIST,PDTDZ,PM3_WT
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_W2R',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1317,7 +1314,7 @@ SUBROUTINE D_M3_WTH_W2R_O_DDTDZ(D,CSTURB,TURBN,PREDTH1,PREDR1,PD,PKEFF,PTKE,PBLL
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_W2R_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1357,7 +1354,7 @@ SUBROUTINE M3_WTH_WR2(D,CSTURB,TURBN,PD,PKEFF,PTKE,PSQRT_TKE,PBLL_O_E,PBETA,PLEP
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_WR2',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1401,7 +1398,7 @@ SUBROUTINE D_M3_WTH_WR2_O_DDTDZ(D,CSTURB,TURBN,PREDTH1,PREDR1,PD,PKEFF,PTKE,PSQR
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_WR2_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1444,7 +1441,7 @@ SUBROUTINE M3_WTH_WTHR(D,CSTURB,TURBN,PREDR1,PD,PKEFF,PTKE,PSQRT_TKE,PBETA,PLEPS
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WTH_WTHR',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1482,7 +1479,7 @@ SUBROUTINE D_M3_WTH_WTHR_O_DDTDZ(D,CSTURB,TURBN,PM3_WTH_WTHR,PREDTH1,PREDR1,PD,P
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_WTH_WTHR_O_DDTDZ
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WTH_WTHR_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1517,7 +1514,7 @@ SUBROUTINE M3_TH2_W2TH(D,CSTURB,TURBN,PREDTH1,PREDR1,PD,PDTDZ,PLM,PLEPS,PTKE,PM3
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_W2TH',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1556,7 +1553,7 @@ SUBROUTINE D_M3_TH2_W2TH_O_DDTDZ(D,CSTURB,TURBN,PREDTH1,PREDR1,PD,PLM,PLEPS,PTKE
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_W2TH_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1609,7 +1606,7 @@ SUBROUTINE M3_TH2_WTH2(D,CSTURB,TURBN,PREDTH1,PREDR1,PD,PLEPS,PSQRT_TKE,PM3_TH2_
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_WTH2',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1648,7 +1645,7 @@ SUBROUTINE D_M3_TH2_WTH2_O_DDTDZ(D,CSTURB,TURBN,PREDTH1,PREDR1,PD,PLEPS,PSQRT_TK
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_WTH2_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1689,7 +1686,7 @@ SUBROUTINE M3_TH2_W2R(D,CSTURB,TURBN,PD,PLM,PLEPS,PTKE,PBLL_O_E,PEMOIST,PDTDZ,PM
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_W2R',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1730,7 +1727,7 @@ SUBROUTINE D_M3_TH2_W2R_O_DDTDZ(D,CSTURB,TURBN,PREDTH1,PREDR1,PD,PLM,PLEPS,PTKE,
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_W2R_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1769,7 +1766,7 @@ SUBROUTINE M3_TH2_WR2(D,CSTURB,TURBN,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PDTDZ,P
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_WR2',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1809,7 +1806,7 @@ SUBROUTINE D_M3_TH2_WR2_O_DDTDZ(D,CSTURB,TURBN,PREDTH1,PREDR1,PD,PLEPS,PSQRT_TKE
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_WR2_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1849,7 +1846,7 @@ SUBROUTINE M3_TH2_WTHR(D,CSTURB,TURBN,PREDR1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_TH2_WTHR',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1889,7 +1886,7 @@ SUBROUTINE D_M3_TH2_WTHR_O_DDTDZ(D,CSTURB,TURBN,PREDTH1,PREDR1,PD,PLEPS,PSQRT_TK
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_TH2_WTHR_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1927,7 +1924,7 @@ SUBROUTINE M3_THR_WTHR(D,CSTURB,TURBN,PREDTH1,PREDR1,PD,PLEPS,PSQRT_TKE,PM3_THR_
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_THR_WTHR',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -1966,7 +1963,7 @@ SUBROUTINE D_M3_THR_WTHR_O_DDTDZ(D,CSTURB,TURBN,PREDTH1,PREDR1,PD,PLEPS,PSQRT_TK
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_WTHR_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -2006,7 +2003,7 @@ SUBROUTINE M3_THR_WTH2(D,CSTURB,TURBN,PREDR1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_THR_WTH2',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -2046,7 +2043,7 @@ SUBROUTINE D_M3_THR_WTH2_O_DDTDZ(D,CSTURB,TURBN,PREDTH1,PREDR1,PD,PLEPS,PSQRT_TK
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_WTH2_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -2087,7 +2084,7 @@ SUBROUTINE D_M3_THR_WTH2_O_DDRDZ(D,CSTURB,TURBN,PREDTH1,PREDR1,PD,PLEPS,PSQRT_TK
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_WTH2_O_DDRDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -2126,7 +2123,7 @@ SUBROUTINE M3_THR_W2TH(D,CSTURB,TURBN,PREDR1,PD,PLM,PLEPS,PTKE,PDRDZ,PM3_THR_W2T
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_THR_W2TH',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -2166,7 +2163,7 @@ SUBROUTINE D_M3_THR_W2TH_O_DDTDZ(D,CSTURB,TURBN,PREDTH1,PREDR1,PD,PLM,PLEPS,PTKE
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_W2TH_O_DDTDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -2205,7 +2202,7 @@ SUBROUTINE D_M3_THR_W2TH_O_DDRDZ(D,CSTURB,TURBN,PREDTH1,PREDR1,PD,PLM,PLEPS,PTKE
   REAL, DIMENSION(D%NIJT,D%NKT) :: ZWORK1,ZWORK2 ! working array
   INTEGER :: IKB, IKE, JIJ,JK,IIJB,IIJE,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_W2TH_O_DDRDZ',0,ZHOOK_HANDLE)
 IKB=D%NKTB
 IKE=D%NKTE
@@ -2246,7 +2243,7 @@ SUBROUTINE PSI3(D,CSTURB,TURBN,PREDR1,PREDTH1,PRED2R3,PRED2TH3,PRED2THR3,HTURBDI
   LOGICAL,                INTENT(IN) :: OUSERV    ! flag to use vapor
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PPSI3
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:PSI3',0,ZHOOK_HANDLE)
 CALL PHI3(D,CSTURB,TURBN,PREDR1,PREDTH1,PRED2R3,PRED2TH3,PRED2THR3,HTURBDIM,OUSERV,PPSI3)
 !
@@ -2266,7 +2263,7 @@ SUBROUTINE D_PSI3DRDZ_O_DDRDZ(D,CSTURB,TURBN,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2T
   LOGICAL,                INTENT(IN) :: OUSERV    ! flag to use vapor
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_PSI3DRDZ_O_DDRDZ
 
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_PSI3DRDZ_O_DDRDZ',0,ZHOOK_HANDLE)
 CALL D_PHI3DTDZ_O_DDTDZ(D,CSTURB,TURBN,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,HTURBDIM,OUSERV,PD_PSI3DRDZ_O_DDRDZ)
 !
@@ -2288,7 +2285,7 @@ SUBROUTINE D_PSI3DTDZ_O_DDTDZ(D,CSTURB,TURBN,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2T
   LOGICAL,                INTENT(IN) :: OUSERV    ! flag to use vapor
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_PSI3DTDZ_O_DDTDZ
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_PSI3DTDZ_O_DDTDZ',0,ZHOOK_HANDLE)
 CALL D_PHI3DRDZ_O_DDRDZ(D,CSTURB,TURBN,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,HTURBDIM,OUSERV,PD_PSI3DTDZ_O_DDTDZ)
 !
@@ -2309,7 +2306,7 @@ SUBROUTINE D_PSI3DRDZ2_O_DDRDZ(D,CSTURB,TURBN,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2
   LOGICAL,                INTENT(IN) :: OUSERV    ! flag to use vapor
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_PSI3DRDZ2_O_DDRDZ
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_PSI3DRDZ2_O_DDRDZ',0,ZHOOK_HANDLE)
 CALL D_PHI3DTDZ2_O_DDTDZ(D,CSTURB,TURBN,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,PDRDZ,HTURBDIM,OUSERV,PD_PSI3DRDZ2_O_DDRDZ)
 !
@@ -2327,7 +2324,7 @@ SUBROUTINE M3_WR_WR2(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PBLL_O_E,PEMOIST,PM3_WR_WR
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_WR_WR2
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WR_WR2',0,ZHOOK_HANDLE)
 CALL M3_WTH_WTH2(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PBLL_O_E,PEMOIST,PM3_WR_WR2)
 !
@@ -2346,7 +2343,7 @@ SUBROUTINE D_M3_WR_WR2_O_DDRDZ(D,CSTURB,TURBN,PM3_WR_WR2,PREDR1,PREDTH1,PD,PBLL_
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_WR_WR2_O_DDRDZ
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WR_WR2_O_DDRDZ',0,ZHOOK_HANDLE)
 CALL D_M3_WTH_WTH2_O_DDTDZ(D,CSTURB,TURBN,PM3_WR_WR2,PREDR1,PREDTH1,PD,PBLL_O_E,PEMOIST,PD_M3_WR_WR2_O_DDRDZ)
 !
@@ -2364,7 +2361,7 @@ SUBROUTINE M3_WR_W2R(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PKEFF,PTKE,PM3_WR_W2R)
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_WR_W2R
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WR_W2R',0,ZHOOK_HANDLE)
 CALL M3_WTH_W2TH(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PKEFF,PTKE,PM3_WR_W2R)
 !
@@ -2384,7 +2381,7 @@ SUBROUTINE D_M3_WR_W2R_O_DDRDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PBLL_O_E,PEMOIST
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_WR_W2R_O_DDRDZ
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WR_W2R_O_DDRDZ',0,ZHOOK_HANDLE)
 CALL D_M3_WTH_W2TH_O_DDTDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PBLL_O_E,PEMOIST,PKEFF,PTKE,PD_M3_WR_W2R_O_DDRDZ)
 !
@@ -2403,7 +2400,7 @@ SUBROUTINE M3_WR_W2TH(D,CSTURB,TURBN,PD,PKEFF,PTKE,PBLL_O_E,PETHETA,PDRDZ,PM3_WR
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_WR_W2TH
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WR_W2TH',0,ZHOOK_HANDLE)
 CALL M3_WTH_W2R(D,CSTURB,TURBN,PD,PKEFF,PTKE,PBLL_O_E,PETHETA,PDRDZ,PM3_WR_W2TH)
 !
@@ -2423,7 +2420,7 @@ SUBROUTINE D_M3_WR_W2TH_O_DDRDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PKEFF,PTKE,PBLL
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_WR_W2TH_O_DDRDZ
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WR_W2TH_O_DDRDZ',0,ZHOOK_HANDLE)
 CALL D_M3_WTH_W2R_O_DDTDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PKEFF,PTKE,PBLL_O_E,PETHETA,PD_M3_WR_W2TH_O_DDRDZ)
 !
@@ -2445,7 +2442,7 @@ SUBROUTINE M3_WR_WTH2(D,CSTURB,TURBN,PD,PKEFF,PTKE,PSQRT_TKE,PBLL_O_E,PBETA,PLEP
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_WR_WTH2
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WR_WTH2',0,ZHOOK_HANDLE)
 CALL M3_WTH_WR2(D,CSTURB,TURBN,PD,PKEFF,PTKE,PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PETHETA,PDRDZ,PM3_WR_WTH2)
 !
@@ -2469,7 +2466,7 @@ SUBROUTINE D_M3_WR_WTH2_O_DDRDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PKEFF,PTKE,PSQR
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_WR_WTH2_O_DDRDZ
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WR_WTH2_O_DDRDZ',0,ZHOOK_HANDLE)
 CALL D_M3_WTH_WR2_O_DDTDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PKEFF,PTKE,PSQRT_TKE,PBLL_O_E,PBETA,PLEPS,PETHETA,PD_M3_WR_WTH2_O_DDRDZ)
 !
@@ -2490,7 +2487,7 @@ SUBROUTINE M3_WR_WTHR(D,CSTURB,TURBN,PREDTH1,PD,PKEFF,PTKE,PSQRT_TKE,PBETA,PLEPS
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PETHETA
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_WR_WTHR
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_WR_WTHR',0,ZHOOK_HANDLE)
 CALL M3_WTH_WTHR(D,CSTURB,TURBN,PREDTH1,PD,PKEFF,PTKE,PSQRT_TKE,PBETA,PLEPS,PETHETA,PM3_WR_WTHR)
 !
@@ -2509,7 +2506,7 @@ SUBROUTINE D_M3_WR_WTHR_O_DDRDZ(D,CSTURB,TURBN,PM3_WR_WTHR,PREDR1,PREDTH1,PD,PBL
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_WR_WTHR_O_DDRDZ
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_WR_WTHR_O_DDRDZ',0,ZHOOK_HANDLE)
 CALL D_M3_WTH_WTHR_O_DDTDZ(D,CSTURB,TURBN,PM3_WR_WTHR,PREDR1,PREDTH1,PD,PBLL_O_E,PEMOIST,PD_M3_WR_WTHR_O_DDRDZ)
 !
@@ -2529,7 +2526,7 @@ SUBROUTINE M3_R2_W2R(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PDRDZ,PLM,PLEPS,PTKE,PM3_R
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: PM3_R2_W2R
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_R2_W2R',0,ZHOOK_HANDLE)
 CALL M3_TH2_W2TH(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PDRDZ,PLM,PLEPS,PTKE,PM3_R2_W2R)
 !
@@ -2549,7 +2546,7 @@ SUBROUTINE D_M3_R2_W2R_O_DDRDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLM,PLEPS,PTKE,O
   LOGICAL,                INTENT(IN) :: OUSERV
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_R2_W2R_O_DDRDZ
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_R2_W2R_O_DDRDZ',0,ZHOOK_HANDLE)
 CALL D_M3_TH2_W2TH_O_DDTDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLM,PLEPS,PTKE,OUSERV,PD_M3_R2_W2R_O_DDRDZ)
 !
@@ -2567,7 +2564,7 @@ SUBROUTINE M3_R2_WR2(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE,PM3_R2_WR2
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PSQRT_TKE
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_R2_WR2
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_R2_WR2',0,ZHOOK_HANDLE)
 CALL M3_TH2_WTH2(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE,PM3_R2_WR2)
 !
@@ -2587,7 +2584,7 @@ SUBROUTINE D_M3_R2_WR2_O_DDRDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE,
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_R2_WR2_O_DDRDZ
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_R2_WR2_O_DDRDZ',0,ZHOOK_HANDLE)
 CALL D_M3_TH2_WTH2_O_DDTDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PD_M3_R2_WR2_O_DDRDZ)
 !
@@ -2607,7 +2604,7 @@ SUBROUTINE M3_R2_W2TH(D,CSTURB,TURBN,PD,PLM,PLEPS,PTKE,PBLL_O_E,PETHETA,PDRDZ,PM
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_R2_W2TH
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_R2_W2TH',0,ZHOOK_HANDLE)
 CALL M3_TH2_W2R(D,CSTURB,TURBN,PD,PLM,PLEPS,PTKE,PBLL_O_E,PETHETA,PDRDZ,PM3_R2_W2TH)
 !
@@ -2629,7 +2626,7 @@ SUBROUTINE D_M3_R2_W2TH_O_DDRDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLM,PLEPS,PTKE,
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_R2_W2TH_O_DDRDZ
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_R2_W2TH_O_DDRDZ',0,ZHOOK_HANDLE)
 CALL D_M3_TH2_W2R_O_DDTDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLM,PLEPS,PTKE,PBLL_O_E,PETHETA,PDRDZ,PD_M3_R2_W2TH_O_DDRDZ)
 !
@@ -2648,7 +2645,7 @@ SUBROUTINE M3_R2_WTH2(D,CSTURB,TURBN,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PDRDZ,P
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_R2_WTH2
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_R2_WTH2',0,ZHOOK_HANDLE)
 CALL M3_TH2_WR2(D,CSTURB,TURBN,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PDRDZ,PM3_R2_WTH2)
 !
@@ -2669,7 +2666,7 @@ SUBROUTINE D_M3_R2_WTH2_O_DDRDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_R2_WTH2_O_DDRDZ
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_R2_WTH2_O_DDRDZ',0,ZHOOK_HANDLE)
 CALL D_M3_TH2_WR2_O_DDTDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PDRDZ,PD_M3_R2_WTH2_O_DDRDZ)
 !
@@ -2689,7 +2686,7 @@ SUBROUTINE M3_R2_WTHR(D,CSTURB,TURBN,PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_R2_WTHR
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_R2_WTHR',0,ZHOOK_HANDLE)
 CALL M3_TH2_WTHR(D,CSTURB,TURBN,PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PDRDZ,PM3_R2_WTHR)
 !
@@ -2710,7 +2707,7 @@ SUBROUTINE D_M3_R2_WTHR_O_DDRDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDRDZ
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_R2_WTHR_O_DDRDZ
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_R2_WTHR_O_DDRDZ',0,ZHOOK_HANDLE)
 CALL D_M3_TH2_WTHR_O_DDTDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PETHETA,PDRDZ,PD_M3_R2_WTHR_O_DDRDZ)
 !
@@ -2730,7 +2727,7 @@ SUBROUTINE D_M3_THR_WTHR_O_DDRDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TK
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_THR_WTHR_O_DDRDZ
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_WTHR_O_DDRDZ',0,ZHOOK_HANDLE)
 CALL D_M3_THR_WTHR_O_DDTDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PD_M3_THR_WTHR_O_DDRDZ)
 !
@@ -2750,7 +2747,7 @@ SUBROUTINE M3_THR_WR2(D,CSTURB,TURBN,PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDTDZ
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_THR_WR2
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_THR_WR2',0,ZHOOK_HANDLE)
 CALL M3_THR_WTH2(D,CSTURB,TURBN,PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PDTDZ,PM3_THR_WR2)
 !
@@ -2771,7 +2768,7 @@ SUBROUTINE D_M3_THR_WR2_O_DDRDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDTDZ
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_THR_WR2_O_DDRDZ
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_WR2_O_DDRDZ',0,ZHOOK_HANDLE)
 CALL D_M3_THR_WTH2_O_DDTDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PDTDZ,PD_M3_THR_WR2_O_DDRDZ)
 !
@@ -2791,7 +2788,7 @@ SUBROUTINE D_M3_THR_WR2_O_DDTDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_THR_WR2_O_DDTDZ
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_WR2_O_DDTDZ',0,ZHOOK_HANDLE)
 CALL D_M3_THR_WTH2_O_DDRDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLEPS,PSQRT_TKE,PBLL_O_E,PEMOIST,PD_M3_THR_WR2_O_DDTDZ)
 !
@@ -2810,7 +2807,7 @@ SUBROUTINE M3_THR_W2R(D,CSTURB,TURBN,PREDTH1,PD,PLM,PLEPS,PTKE,PDTDZ,PM3_THR_W2R
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PDTDZ
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PM3_THR_W2R
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:M3_THR_W2R',0,ZHOOK_HANDLE)
 CALL M3_THR_W2TH(D,CSTURB,TURBN,PREDTH1,PD,PLM,PLEPS,PTKE,PDTDZ,PM3_THR_W2R)
 !
@@ -2832,7 +2829,7 @@ SUBROUTINE D_M3_THR_W2R_O_DDRDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLM,PLEPS,PTKE,
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PEMOIST
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_THR_W2R_O_DDRDZ
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_W2R_O_DDRDZ',0,ZHOOK_HANDLE)
 CALL D_M3_THR_W2TH_O_DDTDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLM,PLEPS,PTKE,PBLL_O_E,PDTDZ,PEMOIST,PD_M3_THR_W2R_O_DDRDZ)
 !
@@ -2851,7 +2848,7 @@ SUBROUTINE D_M3_THR_W2R_O_DDTDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLM,PLEPS,PTKE,
   REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PTKE
   REAL, DIMENSION(D%NIJT,D%NKT),INTENT(OUT) :: PD_M3_THR_W2R_O_DDTDZ
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('MODE_PRANDTL:D_M3_THR_W2R_O_DDTDZ',0,ZHOOK_HANDLE)
 CALL D_M3_THR_W2TH_O_DDRDZ(D,CSTURB,TURBN,PREDR1,PREDTH1,PD,PLM,PLEPS,PTKE,PD_M3_THR_W2R_O_DDTDZ)
 !
diff --git a/src/common/turb/mode_rmc01.F90 b/src/common/turb/mode_rmc01.F90
index ab2be9c6cf10a496e81004fe3cbe6bfcf7cb6485..73922adce825698186c4c68f0587f4ca4a593080 100644
--- a/src/common/turb/mode_rmc01.F90
+++ b/src/common/turb/mode_rmc01.F90
@@ -6,8 +6,7 @@ MODULE MODE_RMC01
 IMPLICIT NONE
 CONTAINS
 SUBROUTINE RMC01(D,CST,CSTURB,TURBN,PZZ,PDXX,PDYY,PDZZ,PDIRCOSZW,PSBL_DEPTH,PLMO,PLK,PLEPS)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ##############################################################
 !
 !!****  *RMC01* -
@@ -104,7 +103,7 @@ REAL, DIMENSION(D%NIJT,D%NKT) :: ZDH  ! hor. grid mesh
 !         ---------------
 !
 ! horizontal boundaries
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('RMC01',0,ZHOOK_HANDLE)
 IKTB=D%NKTB          
 IKTE=D%NKTE
diff --git a/src/common/turb/mode_sbl.F90 b/src/common/turb/mode_sbl.F90
index b5761ea72facaedd6b8d1037ef9b8f925c725824..1ccb9a47e061cb33e0179e140479c3c02b363806 100644
--- a/src/common/turb/mode_sbl.F90
+++ b/src/common/turb/mode_sbl.F90
@@ -39,8 +39,7 @@
 !!      V. Masson       06/11/02 optimization and add Businger fonction for TKE
 !!      V. Masson       01/01/03 use PAULSON_PSIM function
 !-----------------------------------------------------------------------------
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 IMPLICIT NONE
 !
 !*       0.    DECLARATIONS
@@ -86,7 +85,7 @@ SUBROUTINE BUSINGER_PHIM_3D(PZ_O_LMO,BUSINGER_PHIM3D)
   REAL, DIMENSION(SIZE(PZ_O_LMO,1), &
                   SIZE(PZ_O_LMO,2),SIZE(PZ_O_LMO,3)),INTENT(OUT) :: BUSINGER_PHIM3D
 !
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:BUSINGER_PHIM_3D',0,ZHOOK_HANDLE)
   WHERE ( PZ_O_LMO(:,:,:) < 0. )
     BUSINGER_PHIM3D(:,:,:) = (1.-15.*PZ_O_LMO)**(-0.25)
@@ -102,7 +101,7 @@ SUBROUTINE BUSINGER_PHIM_2D(PZ_O_LMO,BUSINGER_PHIM2D)
   REAL, DIMENSION(:,:), INTENT(IN)                   :: PZ_O_LMO
   REAL, DIMENSION(SIZE(PZ_O_LMO,1),SIZE(PZ_O_LMO,2)),INTENT(OUT) :: BUSINGER_PHIM2D
 !
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:BUSINGER_PHIM_2D',0,ZHOOK_HANDLE)
   WHERE ( PZ_O_LMO(:,:) < 0. )
     BUSINGER_PHIM2D(:,:) = (1.-15.*PZ_O_LMO)**(-0.25)
@@ -118,7 +117,7 @@ SUBROUTINE BUSINGER_PHIM_1D(PZ_O_LMO,BUSINGER_PHIM1D)
   REAL, DIMENSION(:), INTENT(IN)  :: PZ_O_LMO
   REAL, DIMENSION(SIZE(PZ_O_LMO)),INTENT(OUT) :: BUSINGER_PHIM1D
 !
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:BUSINGER_PHIM_1D',0,ZHOOK_HANDLE)
   WHERE ( PZ_O_LMO(:) < 0. )
     BUSINGER_PHIM1D(:) = (1.-15.*PZ_O_LMO)**(-0.25)
@@ -134,7 +133,7 @@ SUBROUTINE BUSINGER_PHIM_0D(PZ_O_LMO,BUSINGER_PHIM0D)
   REAL, INTENT(IN)                   :: PZ_O_LMO
   REAL,INTENT(OUT)                   :: BUSINGER_PHIM0D
 !
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:BUSINGER_PHIM_0D',0,ZHOOK_HANDLE)
   IF ( PZ_O_LMO < 0. ) THEN
     BUSINGER_PHIM0D = (1.-15.*PZ_O_LMO)**(-0.25)
@@ -152,7 +151,7 @@ SUBROUTINE BUSINGER_PHIH_3D(PZ_O_LMO,BUSINGER_PHIH3D)
   REAL, DIMENSION(SIZE(PZ_O_LMO,1), &
                   SIZE(PZ_O_LMO,2),SIZE(PZ_O_LMO,3)),INTENT(OUT) :: BUSINGER_PHIH3D
 !
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:BUSINGER_PHIH_3D',0,ZHOOK_HANDLE)
   WHERE ( PZ_O_LMO(:,:,:) < 0. )
     BUSINGER_PHIH3D(:,:,:) = 0.74 * (1.-9.*PZ_O_LMO)**(-0.5)
@@ -168,7 +167,7 @@ SUBROUTINE BUSINGER_PHIH_2D(PZ_O_LMO,BUSINGER_PHIH2D)
   REAL, DIMENSION(:,:), INTENT(IN)                   :: PZ_O_LMO
   REAL, DIMENSION(SIZE(PZ_O_LMO,1),SIZE(PZ_O_LMO,2)),INTENT(OUT) :: BUSINGER_PHIH2D
 !
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:BUSINGER_PHIH_2D',0,ZHOOK_HANDLE)
   WHERE ( PZ_O_LMO(:,:) < 0. )
     BUSINGER_PHIH2D(:,:) = 0.74 * (1.-9.*PZ_O_LMO)**(-0.5)
@@ -184,7 +183,7 @@ SUBROUTINE BUSINGER_PHIH_1D(PZ_O_LMO,BUSINGER_PHIH1D)
   REAL, DIMENSION(:), INTENT(IN)  :: PZ_O_LMO
   REAL, DIMENSION(SIZE(PZ_O_LMO)),INTENT(OUT) :: BUSINGER_PHIH1D
 !
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:BUSINGER_PHIH_1D',0,ZHOOK_HANDLE)
   WHERE ( PZ_O_LMO(:) < 0. )
     BUSINGER_PHIH1D(:) = 0.74 * (1.-9.*PZ_O_LMO)**(-0.5)
@@ -200,7 +199,7 @@ SUBROUTINE BUSINGER_PHIH_0D(PZ_O_LMO,BUSINGER_PHIH0D)
   REAL, INTENT(IN)                   :: PZ_O_LMO
   REAL,INTENT(OUT)                   :: BUSINGER_PHIH0D
 !
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:BUSINGER_PHIH_0D',0,ZHOOK_HANDLE)
   IF ( PZ_O_LMO < 0. ) THEN
     BUSINGER_PHIH0D = 0.74 * (1.-9.*PZ_O_LMO)**(-0.5)
@@ -219,7 +218,7 @@ SUBROUTINE BUSINGER_PHIE_3D(PZ_O_LMO,BUSINGER_PHIE3D)
   REAL, DIMENSION(SIZE(PZ_O_LMO,1), &
                   SIZE(PZ_O_LMO,2),SIZE(PZ_O_LMO,3)),INTENT(OUT) :: BUSINGER_PHIE3D
 !
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:BUSINGER_PHIE_3D',0,ZHOOK_HANDLE)
   WHERE ( PZ_O_LMO(:,:,:) < 0. )
     BUSINGER_PHIE3D(:,:,:) =   (1.+(-PZ_O_LMO)**(2./3.)/XALPSBL) &
@@ -240,7 +239,7 @@ SUBROUTINE PAULSON_PSIM_2D(PZ_O_LMO,PAULSON_PSIM2D)
 !
   REAL, DIMENSION(SIZE(PZ_O_LMO,1),SIZE(PZ_O_LMO,2)) :: ZX
 
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:PAULSON_PSIM_2D',0,ZHOOK_HANDLE)
   ZX=1.
   WHERE ( PZ_O_LMO(:,:) < 0. )
@@ -261,7 +260,7 @@ SUBROUTINE PAULSON_PSIM_1D(PZ_O_LMO,PAULSON_PSIM1D)
 !
   REAL, DIMENSION(SIZE(PZ_O_LMO,1)) :: ZX
 
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:PAULSON_PSIM_1D',0,ZHOOK_HANDLE)
   ZX=1.
   WHERE ( PZ_O_LMO(:) < 0. )
@@ -282,7 +281,7 @@ SUBROUTINE PAULSON_PSIM_0D(PZ_O_LMO,PAULSON_PSIM0D)
 !
   REAL                :: ZX
 
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:PAULSON_PSIM_0D',0,ZHOOK_HANDLE)
   ZX=1.
   IF ( PZ_O_LMO < 0. ) THEN
@@ -312,7 +311,7 @@ SUBROUTINE LMO_2D(PUSTAR,PTHETA,PRV,PSFTH,PSFRV,LMO2D)
   REAL                                           :: ZEPS
 !
 !
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:LMO_2D',0,ZHOOK_HANDLE)
   ZEPS=(XRV-XRD)/XRD
   ZTHETAV(:,:) = PTHETA(:,:) * ( 1. +ZEPS * PRV(:,:))
@@ -342,7 +341,7 @@ SUBROUTINE LMO_1D(PUSTAR,PTHETA,PRV,PSFTH,PSFRV,LMO1D)
   REAL                                           :: ZEPS
 !
 !
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:LMO_1D',0,ZHOOK_HANDLE)
   ZEPS=(XRV-XRD)/XRD
 !
@@ -372,7 +371,7 @@ SUBROUTINE LMO_0D(PUSTAR,PTHETA,PRV,PSFTH,PSFRV,LMO0D)
   REAL              :: ZEPS
 !
 !
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:LMO_0D',0,ZHOOK_HANDLE)
   ZEPS=(XRV-XRD)/XRD
 !
@@ -405,7 +404,7 @@ SUBROUTINE USTAR_2D(PU,PV,PZ,PZ0,PLMO,USTAR2D)
   REAL, DIMENSION(SIZE(PU,1),SIZE(PU,2))         :: ZWORK1,ZWORK2
 !
 !* purely unstable case
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:USTAR_2D',0,ZHOOK_HANDLE)
   USTAR2D(:,:) = 0.
   ZZ_O_LMO(:,:) = XUNDEF
@@ -449,7 +448,7 @@ SUBROUTINE USTAR_1D(PU,PV,PZ,PZ0,PLMO,USTAR1D)
   REAL, DIMENSION(SIZE(PU))                    :: ZWORK1,ZWORK2
 !
 !* purely unstable case
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:USTAR_1D',0,ZHOOK_HANDLE)
   USTAR1D(:) = 0.
   ZZ_O_LMO(:) = XUNDEF
@@ -490,7 +489,7 @@ SUBROUTINE USTAR_0D(PU,PV,PZ,PZ0,PLMO,USTAR0D)
   REAL :: ZWORK1, ZWORK2
 !
 !* purely unstable case
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:USTAR_0D',0,ZHOOK_HANDLE)
   USTAR0D = 0.
 !
diff --git a/src/common/turb/mode_sbl_depth.F90 b/src/common/turb/mode_sbl_depth.F90
index f9312586278142cdd23407ea05538d4d31f3b78c..2d5c804001b964a1351aa79aabf19b61a9a74b09 100644
--- a/src/common/turb/mode_sbl_depth.F90
+++ b/src/common/turb/mode_sbl_depth.F90
@@ -7,8 +7,7 @@ IMPLICIT NONE
 CONTAINS
 !     ######spl
       SUBROUTINE SBL_DEPTH(D,CSTURB,PZZ,PFLXU,PFLXV,PWTHV,PLMO,PSBL_DEPTH)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #################################################################
 !
 !
@@ -86,7 +85,7 @@ REAL, DIMENSION(D%NIJT) :: ZA       ! ponderation coefficient
 !* initialisations
 !
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('SBL_DEPTH',0,ZHOOK_HANDLE)
 !
 IKB=D%NKTB
diff --git a/src/common/turb/mode_sbl_phy.F90 b/src/common/turb/mode_sbl_phy.F90
index 72a416d08a0f4ea1b6a91c5956143b13a2ffd944..caecee741720370df0ae781ffaae506316524a76 100644
--- a/src/common/turb/mode_sbl_phy.F90
+++ b/src/common/turb/mode_sbl_phy.F90
@@ -39,8 +39,7 @@
 !!      V. Masson       06/11/02 optimization and add Businger fonction for TKE
 !!      V. Masson       01/01/03 use PAULSON_PSIM function
 !-----------------------------------------------------------------------------
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !-------------------------------------------------------------------------------
@@ -57,7 +56,7 @@ TYPE(DIMPHYEX_t),                   INTENT(IN)  :: D
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)  :: PZ_O_LMO
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: BUSINGERPHIM
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 INTEGER :: JIJ,JK,IIJB,IIJE,IKT
 !
 IF (LHOOK) CALL DR_HOOK('MODE_SBL:BUSINGER_PHIM',0,ZHOOK_HANDLE)
@@ -88,7 +87,7 @@ TYPE(DIMPHYEX_t),                   INTENT(IN)  :: D
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)  :: PZ_O_LMO
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT) :: BUSINGERPHIH
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 INTEGER :: JIJ,JK,IIJB,IIJE,IKT
 !
 IF (LHOOK) CALL DR_HOOK('MODE_SBL:BUSINGER_PHIH',0,ZHOOK_HANDLE)
@@ -120,7 +119,7 @@ TYPE(CSTURB_t),                     INTENT(IN)   :: CSTURB
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   :: PZ_O_LMO
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)  :: BUSINGERPHIE
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 INTEGER :: JIJ,JK,IIJB,IIJE,IKT
 !
 IF (LHOOK) CALL DR_HOOK('MODE_SBL:BUSINGER_PHIE',0,ZHOOK_HANDLE)
@@ -158,7 +157,7 @@ SUBROUTINE LMO(D,CST,PUSTAR,PTHETA,PRV,PSFTH,PSFRV,PLMO)
   REAL                            :: ZEPS
   INTEGER :: IIJB,IIJE, JIJ,IKT
 !
-  REAL(KIND=JPRB) :: ZHOOK_HANDLE
+  REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
   IF (LHOOK) CALL DR_HOOK('MODE_SBL:LMO',0,ZHOOK_HANDLE)
 !
   IIJE=D%NIJE
diff --git a/src/common/turb/mode_thl_rt_from_th_r_mf.F90 b/src/common/turb/mode_thl_rt_from_th_r_mf.F90
index 6c8aa463a23ef4eae31ab6ad909ca8ae77a90b49..705e297ea40d878119e0422c86f991cee950a463 100644
--- a/src/common/turb/mode_thl_rt_from_th_r_mf.F90
+++ b/src/common/turb/mode_thl_rt_from_th_r_mf.F90
@@ -49,8 +49,7 @@ CONTAINS
 !
 USE MODD_DIMPHYEX,        ONLY: DIMPHYEX_t
 USE MODD_CST, ONLY : CST_t
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 IMPLICIT NONE
 !
@@ -81,7 +80,7 @@ REAL, DIMENSION(D%NIJT,D%NKT) :: ZLVOCPEXN, ZLSOCPEXN
 INTEGER :: JRR, JIJ, JK
 INTEGER :: IIJB,IIJE ! physical horizontal domain indices
 INTEGER :: IKT
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !----------------------------------------------------------------------------
 !
 !
diff --git a/src/common/turb/mode_tke_eps_sources.F90 b/src/common/turb/mode_tke_eps_sources.F90
index 6da952ab516cd7d433d6fd37422cbbd6df6f21a5..39127dead1469fda00e415ab9645c6116b453f52 100644
--- a/src/common/turb/mode_tke_eps_sources.F90
+++ b/src/common/turb/mode_tke_eps_sources.F90
@@ -127,9 +127,8 @@ CONTAINS
 !*       0.   DECLARATIONS
 !             ------------
 !
-USE PARKIND1,   ONLY: JPRB
 USE MODE_SHUMAN_PHY, ONLY: MZM_PHY, MZF_PHY, DZF_PHY, DZM_PHY
-USE YOMHOOK,    ONLY: LHOOK, DR_HOOK
+USE YOMHOOK,    ONLY: LHOOK, DR_HOOK, JPHOOK
 !
 USE MODD_ARGSLIST_ll,    ONLY: LIST_ll
 USE MODD_BUDGET,         ONLY: TBUDGETCONF_t, NBUDGET_TKE, TBUDGETDATA
@@ -215,7 +214,7 @@ INTEGER             :: IIJB,IIJE,IKB,IKE,IKT,IKA,IKL  ! Index value for the mass
 TYPE(LIST_ll), POINTER :: TZFIELDDISS_ll ! list of fields to exchange
 INTEGER                :: IINFO_ll       ! return code of parallel routine
 TYPE(TFIELDMETADATA)   :: TZFIELD
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 INTEGER :: JIJ,JK
 !
 !----------------------------------------------------------------------------
diff --git a/src/common/turb/mode_tm06.F90 b/src/common/turb/mode_tm06.F90
index 21452a8c427b01a74e83552d3c6003cd9419c7f1..6639515579ade0201c85b40ec4c0c6fe4cbe899c 100644
--- a/src/common/turb/mode_tm06.F90
+++ b/src/common/turb/mode_tm06.F90
@@ -6,8 +6,7 @@ MODULE MODE_TM06
 IMPLICIT NONE
 CONTAINS
 SUBROUTINE TM06(D,CST,PTHVREF,PBL_DEPTH,PZZ,PSFTH,PMWTH,PMTH2)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #################################################################
 !
 !
@@ -77,7 +76,7 @@ INTEGER                                             :: IIJE,IIJB
 INTEGER                                             :: IKTB,IKTE,IKB,IKE,IKT,IKU ! vertical levels
 !----------------------------------------------------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('TM06',0,ZHOOK_HANDLE)
 IKTB=D%NKTB          
 IKTE=D%NKTE
diff --git a/src/common/turb/mode_tm06_h.F90 b/src/common/turb/mode_tm06_h.F90
index 02af4cf442f27a9bb99da0945c6e337af767200c..48206212d865d202668c5e23ae78de2a4c400bcf 100644
--- a/src/common/turb/mode_tm06_h.F90
+++ b/src/common/turb/mode_tm06_h.F90
@@ -6,8 +6,7 @@ MODULE MODE_TM06_H
 IMPLICIT NONE
 CONTAINS
 SUBROUTINE TM06_H(D,PTSTEP,PZZ,PFLXZ,PBL_DEPTH)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     #################################################################
 !
 !
@@ -73,7 +72,7 @@ REAL                                     :: ZGROWTH  ! maximum BL growth rate
 !----------------------------------------------------------------------------
 !
 !* mixed boundary layer cannot grow more rapidly than 1800m/h
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('TM06_H',0,ZHOOK_HANDLE)
 ZGROWTH = 2.0 ! (m/s)
 !
diff --git a/src/common/turb/mode_tridiag.F90 b/src/common/turb/mode_tridiag.F90
index ce755096c55657269ca3f2d87254924c643a9d08..9f21672aa2c5bcc20ee6b313a9864796a13c3c20 100644
--- a/src/common/turb/mode_tridiag.F90
+++ b/src/common/turb/mode_tridiag.F90
@@ -7,8 +7,7 @@ IMPLICIT NONE
 CONTAINS
 SUBROUTINE TRIDIAG(D,PVARM,PA,PTSTEP,PEXPL,PIMPL, &
                                   PRHODJ,PSOURCE,PVARP )
-       USE PARKIND1, ONLY : JPRB
-       USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+       USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !      #################################################
 !
 !
@@ -149,7 +148,7 @@ INTEGER                              :: IIJB, IIJE    ! start, end of ij loops i
 !*      1.  COMPUTE THE RIGHT HAND SIDE
 !           ---------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('TRIDIAG',0,ZHOOK_HANDLE)
 !
 IKT=D%NKT
diff --git a/src/common/turb/mode_tridiag_massflux.F90 b/src/common/turb/mode_tridiag_massflux.F90
index e58c9a3d0c258c888f280eeef7b14f65b797e634..2eba264c71cf341eb205966fa25c3a210c90e0fc 100644
--- a/src/common/turb/mode_tridiag_massflux.F90
+++ b/src/common/turb/mode_tridiag_massflux.F90
@@ -8,8 +8,7 @@ CONTAINS
 SUBROUTINE TRIDIAG_MASSFLUX(D,PVARM,PF,PDFDT,PTSTEP,PIMPL,  &
                                  PDZZ,PRHODJ,PVARP             )
 
-       USE PARKIND1, ONLY : JPRB
-       USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+       USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !      #################################################
 !
 !
@@ -162,7 +161,7 @@ INTEGER :: IKL
 !*      1.  Preliminaries
 !           -------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('TRIDIAG_MASSFLUX',0,ZHOOK_HANDLE)
 !
 IIJE=D%NIJE
diff --git a/src/common/turb/mode_tridiag_thermo.F90 b/src/common/turb/mode_tridiag_thermo.F90
index 6c77d7772b83141b8dc2c9b71bff435c17a71ff1..dd6f0d663da1b56023a156da5903ad44a37e8995 100644
--- a/src/common/turb/mode_tridiag_thermo.F90
+++ b/src/common/turb/mode_tridiag_thermo.F90
@@ -116,8 +116,7 @@ SUBROUTINE TRIDIAG_THERMO(D,PVARM,PF,PDFDDTDZ,PTSTEP,PIMPL,  &
 !
 !*       0. DECLARATIONS
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 USE MODD_DIMPHYEX, ONLY : DIMPHYEX_t
 !
 USE MODE_SHUMAN_PHY, ONLY: MZM_PHY
@@ -160,7 +159,7 @@ INTEGER             :: IKL
 !*      1.  Preliminaries
 !           -------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('TRIDIAG_THERMO',0,ZHOOK_HANDLE)
 IKT=D%NKT  
 IKTB=D%NKTB          
diff --git a/src/common/turb/mode_tridiag_tke.F90 b/src/common/turb/mode_tridiag_tke.F90
index cc761d7ad6692eee4041148e7f4c3f12a7e4f6e8..e20d8698b1b021899af3331553856ce3fe289aec 100644
--- a/src/common/turb/mode_tridiag_tke.F90
+++ b/src/common/turb/mode_tridiag_tke.F90
@@ -7,8 +7,7 @@ IMPLICIT NONE
 CONTAINS       
 SUBROUTINE TRIDIAG_TKE(D,PVARM,PA,PTSTEP,PEXPL,PIMPL, &
                                   PRHODJ,PSOURCE,PDIAG,PVARP )
-       USE PARKIND1, ONLY : JPRB
-       USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+       USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !      ########################################################
 !
 !
@@ -150,7 +149,7 @@ INTEGER             :: IKL
 !*      1.  COMPUTE THE RIGHT HAND SIDE
 !           ---------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('TRIDIAG_TKE',0,ZHOOK_HANDLE)
 !
 IKT=D%NKT
diff --git a/src/common/turb/mode_tridiag_wind.F90 b/src/common/turb/mode_tridiag_wind.F90
index 0c57fc93e758dc8fd1cda909ab53842ba688765f..b3255bf3c94837e0eb464061b000b85c2d013c52 100644
--- a/src/common/turb/mode_tridiag_wind.F90
+++ b/src/common/turb/mode_tridiag_wind.F90
@@ -7,8 +7,7 @@ IMPLICIT NONE
 CONTAINS       
 SUBROUTINE TRIDIAG_WIND(D,PVARM,PA,PCOEFS,PTSTEP,PEXPL,PIMPL, &
                                              PRHODJA,PSOURCE,PVARP )
-       USE PARKIND1, ONLY : JPRB
-       USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+       USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !      #############################################################
 !
 !
@@ -155,7 +154,7 @@ INTEGER             :: IKL
 !*      1.  COMPUTE THE RIGHT HAND SIDE
 !           ---------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('TRIDIAG_WIND',0,ZHOOK_HANDLE)
 !
 IKT=D%NKT
diff --git a/src/common/turb/mode_turb_ver.F90 b/src/common/turb/mode_turb_ver.F90
index 862f0e11401611d7eaa7146d0f6906e2f59d5b24..3025dfac4d06d72bdb00c1ac13be833557468063 100644
--- a/src/common/turb/mode_turb_ver.F90
+++ b/src/common/turb/mode_turb_ver.F90
@@ -211,8 +211,7 @@ SUBROUTINE TURB_VER(D,CST,CSTURB,TURBN,NEBN,TLES,                   &
 !*      0. DECLARATIONS
 !          ------------
 !
-USE PARKIND1, ONLY: JPRB
-USE YOMHOOK,  ONLY: LHOOK, DR_HOOK
+USE YOMHOOK,  ONLY: LHOOK, DR_HOOK, JPHOOK
 !
 USE MODD_CST,            ONLY: CST_t
 USE MODD_CTURB,          ONLY: CSTURB_t
@@ -387,7 +386,7 @@ INTEGER :: IKB,IKE,IIJE,IIJB,IKT   ! index value for the Beginning
 INTEGER :: JSV,JIJ,JK ! loop counter
 REAL    :: ZTIME1
 REAL    :: ZTIME2
-REAL(KIND=JPRB)      :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK)    :: ZHOOK_HANDLE
 TYPE(TFIELDMETADATA) :: TZFIELD
 !----------------------------------------------------------------------------
 !----------------------------------------------------------------------------
diff --git a/src/common/turb/mode_turb_ver_dyn_flux.F90 b/src/common/turb/mode_turb_ver_dyn_flux.F90
index 8814e1d667aeeeb3beb04d8e90b7e63cec03c346..6909f773d044b8a050650e6374547035bfe4f50d 100644
--- a/src/common/turb/mode_turb_ver_dyn_flux.F90
+++ b/src/common/turb/mode_turb_ver_dyn_flux.F90
@@ -204,9 +204,8 @@ SUBROUTINE TURB_VER_DYN_FLUX(D,CST,CSTURB,TURBN,TLES,KSV,O2D,OFLAT, &
 !*      0. DECLARATIONS
 !          ------------
 !
-USE PARKIND1,   ONLY: JPRB
 USE MODE_SHUMAN_PHY
-USE YOMHOOK,    ONLY: LHOOK, DR_HOOK
+USE YOMHOOK,    ONLY: LHOOK, DR_HOOK, JPHOOK
 !
 USE MODD_CST,            ONLY: CST_t
 USE MODD_CTURB,          ONLY: CSTURB_t
@@ -337,7 +336,7 @@ TYPE(TFIELDMETADATA) :: TZFIELD
 !
 !*       1.   PRELIMINARIES
 !             -------------
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('TURB_VER_DYN_FLUX',0,ZHOOK_HANDLE)
 !
 ZA(:,:)=XUNDEF
diff --git a/src/common/turb/mode_turb_ver_sv_corr.F90 b/src/common/turb/mode_turb_ver_sv_corr.F90
index d0756b1fb34d82fc2c2dab359c5f47d3d6e27381..9a2e6aad6923d8bf14c0932a87b315b175f4029e 100644
--- a/src/common/turb/mode_turb_ver_sv_corr.F90
+++ b/src/common/turb/mode_turb_ver_sv_corr.F90
@@ -53,8 +53,7 @@ SUBROUTINE TURB_VER_SV_CORR(D,CST,CSTURB,TURBN,TLES,KRR,KRRL,KRRI,OOCEAN, &
 !*      0. DECLARATIONS
 !          ------------
 !
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !
 USE MODD_CST, ONLY: CST_t
 USE MODD_CTURB, ONLY: CSTURB_t
@@ -132,7 +131,7 @@ REAL :: ZCTSVD = 2.4  ! constant for temperature - scalar covariance dissipation
 REAL :: ZCQSVD = 2.4  ! constant for humidity - scalar covariance dissipation
 !----------------------------------------------------------------------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('TURB_VER_SV_CORR',0,ZHOOK_HANDLE)
 !
 IIJE=D%NIJE
diff --git a/src/common/turb/mode_turb_ver_sv_flux.F90 b/src/common/turb/mode_turb_ver_sv_flux.F90
index e78333ce7848a63fca3111960c9de3d67e8a680d..c14c6f9296e6a1060fe2a963bbf24c37e762a441 100644
--- a/src/common/turb/mode_turb_ver_sv_flux.F90
+++ b/src/common/turb/mode_turb_ver_sv_flux.F90
@@ -209,9 +209,8 @@ SUBROUTINE TURB_VER_SV_FLUX(D,CST,CSTURB,TURBN,TLES,ONOMIXLG,       &
 !*      0. DECLARATIONS
 !          ------------
 !
-USE PARKIND1,   ONLY: JPRB
 USE MODE_SHUMAN_PHY, ONLY: DZM_PHY, MZM_PHY, MZF_PHY
-USE YOMHOOK,    ONLY: LHOOK, DR_HOOK
+USE YOMHOOK,    ONLY: LHOOK, DR_HOOK, JPHOOK
 !
 USE MODD_CST,              ONLY: CST_t
 USE MODD_CTURB,            ONLY: CSTURB_t
@@ -303,7 +302,7 @@ REAL :: ZCSVP = 4.0  ! constant for scalar flux presso-correlation (RS81)
 REAL :: ZCSV          !constant for the scalar flux
 !
 CHARACTER(LEN=NMNHNAMELGTMAX) :: YMNHNAME
-REAL(KIND=JPRB)               :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK)             :: ZHOOK_HANDLE
 TYPE(TFIELDMETADATA)          :: TZFIELD
 !----------------------------------------------------------------------------
 !
diff --git a/src/common/turb/mode_turb_ver_thermo_corr.F90 b/src/common/turb/mode_turb_ver_thermo_corr.F90
index 15bb4f0736966a9001b9720711cea18e4159f556..6a54ba96effa46a639ab5934f9b87f8dbeba64d6 100644
--- a/src/common/turb/mode_turb_ver_thermo_corr.F90
+++ b/src/common/turb/mode_turb_ver_thermo_corr.F90
@@ -204,9 +204,8 @@ SUBROUTINE TURB_VER_THERMO_CORR(D,CST,CSTURB,TURBN,NEBN,TLES,       &
 !*      0. DECLARATIONS
 !          ------------
 !
-USE PARKIND1,   ONLY: JPRB
 USE MODE_SHUMAN_PHY, ONLY: MZM_PHY, MZF_PHY, DZM_PHY
-USE YOMHOOK,    ONLY: LHOOK, DR_HOOK
+USE YOMHOOK,    ONLY: LHOOK, DR_HOOK, JPHOOK
 !
 USE MODD_CST,            ONLY: CST_t
 USE MODD_CTURB,          ONLY: CSTURB_t
@@ -352,7 +351,7 @@ TYPE(TFIELDMETADATA) :: TZFIELD
 !*       1.   PRELIMINARIES
 !             -------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('TURB_VER_THERMO_CORR',0,ZHOOK_HANDLE)
 !
 IKB=D%NKB
diff --git a/src/common/turb/mode_turb_ver_thermo_flux.F90 b/src/common/turb/mode_turb_ver_thermo_flux.F90
index d1b850b4abed0b9665f41efdc45c7303413b1b7f..55b5160535ba0de3065bf25976b32517df430323 100644
--- a/src/common/turb/mode_turb_ver_thermo_flux.F90
+++ b/src/common/turb/mode_turb_ver_thermo_flux.F90
@@ -229,9 +229,8 @@ SUBROUTINE TURB_VER_THERMO_FLUX(D,CST,CSTURB,TURBN,TLES,            &
 !*      0. DECLARATIONS
 !          ------------
 !
-USE PARKIND1,   ONLY: JPRB
 USE MODE_SHUMAN_PHY, ONLY: DZF_PHY, DZM_PHY, MXF_PHY, MYF_PHY, MZF_PHY, MZM_PHY
-USE YOMHOOK,    ONLY: LHOOK, DR_HOOK
+USE YOMHOOK,    ONLY: LHOOK, DR_HOOK, JPHOOK
 !
 USE MODD_CST,              ONLY: CST_t
 USE MODD_CTURB,            ONLY: CSTURB_t
@@ -387,7 +386,7 @@ TYPE(TFIELDMETADATA) :: TZFIELD
 !*       1.   PRELIMINARIES
 !             -------------
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('TURB_VER_THERMO_FLUX',0,ZHOOK_HANDLE)
 !
 ! Size for a given proc & a given model
diff --git a/src/common/turb/mode_update_iiju_phy.F90 b/src/common/turb/mode_update_iiju_phy.F90
index c67545befe1ec9fba984d2ea008431bb8692963c..947d0c1e1cfcf3225b949ddfd3cf1ae822359d85 100644
--- a/src/common/turb/mode_update_iiju_phy.F90
+++ b/src/common/turb/mode_update_iiju_phy.F90
@@ -6,8 +6,7 @@ MODULE MODE_UPDATE_IIJU_PHY
 IMPLICIT NONE
 CONTAINS
 SUBROUTINE UPDATE_IIJU_PHY(D,PVAR)
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+      USE YOMHOOK , ONLY : LHOOK, DR_HOOK, JPHOOK
 !     ##############################################################
 !
 !!****  *MODE_UPDATE_IIJU_PHY* -
@@ -54,7 +53,7 @@ REAL, DIMENSION(D%NIT,D%NJT,D%NKT),   INTENT(INOUT)    :: PVAR  ! working variab
 !
 INTEGER :: IIE,IIB,IJE,IJB,IIU,IJU,IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('UPDATE_IIJU_PHY',0,ZHOOK_HANDLE)
 IIE=D%NIEC
 IIB=D%NIBC
diff --git a/src/common/turb/shallow_mf.F90 b/src/common/turb/shallow_mf.F90
index a45803ce867d058edf1d6b205c3c2ff05d0a79c4..c21ef7f1b5970ad3544335252e4262fba890c734 100644
--- a/src/common/turb/shallow_mf.F90
+++ b/src/common/turb/shallow_mf.F90
@@ -71,9 +71,8 @@
 !*      0. DECLARATIONS
 !          ------------
 !
-USE PARKIND1,   ONLY: JPRB
 USE MODE_SHUMAN_PHY, ONLY: MXM_PHY, MYM_PHY
-USE YOMHOOK,    ONLY: LHOOK, DR_HOOK
+USE YOMHOOK,    ONLY: LHOOK, DR_HOOK, JPHOOK
 !
 USE MODD_BUDGET,          ONLY: TBUDGETCONF_t, TBUDGETDATA, NBUDGET_U,  NBUDGET_V, &
                                 NBUDGET_TH,  NBUDGET_RV, NBUDGET_SV1
@@ -188,7 +187,7 @@ INTEGER :: JIJ, JK, JSV
 INTEGER :: IIJB,IIJE ! physical horizontal domain indices
 INTEGER :: IKT
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
 !------------------------------------------------------------------------
 
 !!! 1. Initialisation
diff --git a/src/common/turb/turb.F90 b/src/common/turb/turb.F90
index 14dc13ce2b485ba77f5c1acd032d0e427d93a910..2e2e9b31bff4cc81c72d0ad14fae39afffadc1c9 100644
--- a/src/common/turb/turb.F90
+++ b/src/common/turb/turb.F90
@@ -239,9 +239,8 @@
 !*      0. DECLARATIONS
 !          ------------
 !
-USE PARKIND1,   ONLY: JPRB
 USE MODE_SHUMAN_PHY, ONLY: MZF_PHY,MXF_PHY,MYF_PHY
-USE YOMHOOK ,   ONLY: LHOOK, DR_HOOK
+USE YOMHOOK ,   ONLY: LHOOK, DR_HOOK, JPHOOK
 !
 USE MODD_BUDGET,     ONLY:  NBUDGET_U,  NBUDGET_V,  NBUDGET_W,  NBUDGET_TH, NBUDGET_RV, NBUDGET_RC,  &
                              NBUDGET_RI, NBUDGET_SV1, &
@@ -507,7 +506,7 @@ TYPE(TFIELDMETADATA) :: TZFIELD
 !*      1.1 Set the internal domains, ZEXPL
 !
 !
-REAL(KIND=JPRB) :: ZHOOK_HANDLE,ZHOOK_HANDLE2
+REAL(KIND=JPHOOK) :: ZHOOK_HANDLE,ZHOOK_HANDLE2
 IF (LHOOK) CALL DR_HOOK('TURB',0,ZHOOK_HANDLE)
 !
 IF (TURBN%LHARAT .AND. TURBN%CTURBDIM /= '1DIM') THEN
diff --git a/src/mesonh/ext/yomhook.f90 b/src/mesonh/ext/yomhook.f90
new file mode 100644
index 0000000000000000000000000000000000000000..a0b84f76453a48b91853e335a1d44433f981d457
--- /dev/null
+++ b/src/mesonh/ext/yomhook.f90
@@ -0,0 +1,156 @@
+!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.
+MODULE YOMHOOK
+USE PARKIND1  ,ONLY : JPIM     ,JPRB
+LOGICAL :: LHOOK=.FALSE.
+INTEGER, PARAMETER :: JPHOOK=JPRB
+INTERFACE DR_HOOK  
+MODULE PROCEDURE &
+  DR_HOOK_DEFAULT, &
+  DR_HOOK_FILE, &
+  DR_HOOK_SIZE, &
+  DR_HOOK_FILE_SIZE, &
+  DR_HOOK_MULTI_DEFAULT, &
+  DR_HOOK_MULTI_FILE, &
+  DR_HOOK_MULTI_SIZE, &
+  DR_HOOK_MULTI_FILE_SIZE
+END INTERFACE
+
+CONTAINS 
+
+SUBROUTINE DR_HOOK_DEFAULT(CDNAME,KSWITCH,PKEY)
+CHARACTER(LEN=*), INTENT(IN) :: CDNAME
+INTEGER(KIND=JPIM),        INTENT(IN) :: KSWITCH
+REAL(KIND=JPRB),        INTENT(INOUT) :: PKEY
+!CALL DR_HOOK_UTIL(CDNAME,KSWITCH,PKEY,'',0)
+END SUBROUTINE DR_HOOK_DEFAULT
+
+SUBROUTINE DR_HOOK_MULTI_DEFAULT(CDNAME,KSWITCH,PKEY)
+CHARACTER(LEN=*), INTENT(IN) :: CDNAME
+INTEGER(KIND=JPIM),        INTENT(IN) :: KSWITCH
+REAL(KIND=JPRB),        INTENT(INOUT) :: PKEY(:)
+!CALL DR_HOOK_UTIL_MULTI(CDNAME,KSWITCH,PKEY,SIZE(PKEY),'',0)
+END SUBROUTINE DR_HOOK_MULTI_DEFAULT
+
+
+
+SUBROUTINE DR_HOOK_FILE(CDNAME,KSWITCH,PKEY,CDFILE)
+CHARACTER(LEN=*), INTENT(IN) :: CDNAME,CDFILE
+INTEGER(KIND=JPIM),        INTENT(IN) :: KSWITCH
+REAL(KIND=JPRB),        INTENT(INOUT) :: PKEY
+!CALL DR_HOOK_UTIL(CDNAME,KSWITCH,PKEY,CDFILE,0)
+END SUBROUTINE DR_HOOK_FILE
+
+SUBROUTINE DR_HOOK_MULTI_FILE(CDNAME,KSWITCH,PKEY,CDFILE)
+CHARACTER(LEN=*), INTENT(IN) :: CDNAME,CDFILE
+INTEGER(KIND=JPIM),        INTENT(IN) :: KSWITCH
+REAL(KIND=JPRB),        INTENT(INOUT) :: PKEY(:)
+!CALL DR_HOOK_UTIL_MULTI(CDNAME,KSWITCH,PKEY,SIZE(PKEY),CDFILE,0)
+END SUBROUTINE DR_HOOK_MULTI_FILE
+
+
+
+SUBROUTINE DR_HOOK_SIZE(CDNAME,KSWITCH,PKEY,KSIZEINFO)
+CHARACTER(LEN=*), INTENT(IN) :: CDNAME
+INTEGER(KIND=JPIM),        INTENT(IN) :: KSWITCH,KSIZEINFO
+REAL(KIND=JPRB),        INTENT(INOUT) :: PKEY
+!CALL DR_HOOK_UTIL(CDNAME,KSWITCH,PKEY,'',KSIZEINFO)
+END SUBROUTINE DR_HOOK_SIZE
+
+SUBROUTINE DR_HOOK_MULTI_SIZE(CDNAME,KSWITCH,PKEY,KSIZEINFO)
+CHARACTER(LEN=*), INTENT(IN) :: CDNAME
+INTEGER(KIND=JPIM),        INTENT(IN) :: KSWITCH,KSIZEINFO
+REAL(KIND=JPRB),        INTENT(INOUT) :: PKEY(:)
+!CALL DR_HOOK_UTIL_MULTI(CDNAME,KSWITCH,PKEY,SIZE(PKEY),'',KSIZEINFO)
+END SUBROUTINE DR_HOOK_MULTI_SIZE
+
+
+
+SUBROUTINE DR_HOOK_FILE_SIZE(CDNAME,KSWITCH,PKEY,CDFILE,KSIZEINFO)
+CHARACTER(LEN=*), INTENT(IN) :: CDNAME,CDFILE
+INTEGER(KIND=JPIM),        INTENT(IN) :: KSWITCH,KSIZEINFO
+REAL(KIND=JPRB),        INTENT(INOUT) :: PKEY
+!CALL DR_HOOK_UTIL(CDNAME,KSWITCH,PKEY,CDFILE,KSIZEINFO)
+END SUBROUTINE DR_HOOK_FILE_SIZE
+
+SUBROUTINE DR_HOOK_MULTI_FILE_SIZE(CDNAME,KSWITCH,PKEY,CDFILE,KSIZEINFO)
+CHARACTER(LEN=*), INTENT(IN) :: CDNAME,CDFILE
+INTEGER(KIND=JPIM),        INTENT(IN) :: KSWITCH,KSIZEINFO
+REAL(KIND=JPRB),        INTENT(INOUT) :: PKEY(:)
+!CALL DR_HOOK_UTIL_MULTI(CDNAME,KSWITCH,PKEY,SIZE(PKEY),CDFILE,KSIZEINFO)
+END SUBROUTINE DR_HOOK_MULTI_FILE_SIZE
+
+END MODULE YOMHOOK
+!====================================================================
+SUBROUTINE DR_HOOK_DEFAULT(CDNAME,KSWITCH,PKEY)
+USE PARKIND1  ,ONLY : JPIM     ,JPRB
+CHARACTER(LEN=*), INTENT(IN) :: CDNAME
+INTEGER(KIND=JPIM),        INTENT(IN) :: KSWITCH
+REAL(KIND=JPRB),        INTENT(INOUT) :: PKEY
+!CALL DR_HOOK_UTIL(CDNAME,KSWITCH,PKEY,'',0)
+END SUBROUTINE DR_HOOK_DEFAULT
+
+SUBROUTINE DR_HOOK_MULTI_DEFAULT(CDNAME,KSWITCH,PKEY)
+USE PARKIND1  ,ONLY : JPIM     ,JPRB
+CHARACTER(LEN=*), INTENT(IN) :: CDNAME
+INTEGER(KIND=JPIM),        INTENT(IN) :: KSWITCH
+REAL(KIND=JPRB),        INTENT(INOUT) :: PKEY(:)
+!CALL DR_HOOK_UTIL_MULTI(CDNAME,KSWITCH,PKEY,SIZE(PKEY),'',0)
+END SUBROUTINE DR_HOOK_MULTI_DEFAULT
+
+
+
+SUBROUTINE DR_HOOK_FILE(CDNAME,KSWITCH,PKEY,CDFILE)
+USE PARKIND1  ,ONLY : JPIM     ,JPRB
+CHARACTER(LEN=*), INTENT(IN) :: CDNAME,CDFILE
+INTEGER(KIND=JPIM),        INTENT(IN) :: KSWITCH
+REAL(KIND=JPRB),        INTENT(INOUT) :: PKEY
+!CALL DR_HOOK_UTIL(CDNAME,KSWITCH,PKEY,CDFILE,0)
+END SUBROUTINE DR_HOOK_FILE
+
+SUBROUTINE DR_HOOK_MULTI_FILE(CDNAME,KSWITCH,PKEY,CDFILE)
+USE PARKIND1  ,ONLY : JPIM     ,JPRB
+CHARACTER(LEN=*), INTENT(IN) :: CDNAME,CDFILE
+INTEGER(KIND=JPIM),        INTENT(IN) :: KSWITCH
+REAL(KIND=JPRB),        INTENT(INOUT) :: PKEY(:)
+!CALL DR_HOOK_UTIL_MULTI(CDNAME,KSWITCH,PKEY,SIZE(PKEY),CDFILE,0)
+END SUBROUTINE DR_HOOK_MULTI_FILE
+
+
+
+SUBROUTINE DR_HOOK_SIZE(CDNAME,KSWITCH,PKEY,KSIZEINFO)
+USE PARKIND1  ,ONLY : JPIM     ,JPRB
+CHARACTER(LEN=*), INTENT(IN) :: CDNAME
+INTEGER(KIND=JPIM),        INTENT(IN) :: KSWITCH,KSIZEINFO
+REAL(KIND=JPRB),        INTENT(INOUT) :: PKEY
+!CALL DR_HOOK_UTIL(CDNAME,KSWITCH,PKEY,'',KSIZEINFO)
+END SUBROUTINE DR_HOOK_SIZE
+
+SUBROUTINE DR_HOOK_MULTI_SIZE(CDNAME,KSWITCH,PKEY,KSIZEINFO)
+USE PARKIND1  ,ONLY : JPIM     ,JPRB
+CHARACTER(LEN=*), INTENT(IN) :: CDNAME
+INTEGER(KIND=JPIM),        INTENT(IN) :: KSWITCH,KSIZEINFO
+REAL(KIND=JPRB),        INTENT(INOUT) :: PKEY(:)
+!CALL DR_HOOK_UTIL_MULTI(CDNAME,KSWITCH,PKEY,SIZE(PKEY),'',KSIZEINFO)
+END SUBROUTINE DR_HOOK_MULTI_SIZE
+
+
+
+SUBROUTINE DR_HOOK_FILE_SIZE(CDNAME,KSWITCH,PKEY,CDFILE,KSIZEINFO)
+USE PARKIND1  ,ONLY : JPIM     ,JPRB
+CHARACTER(LEN=*), INTENT(IN) :: CDNAME,CDFILE
+INTEGER(KIND=JPIM),        INTENT(IN) :: KSWITCH,KSIZEINFO
+REAL(KIND=JPRB),        INTENT(INOUT) :: PKEY
+!CALL DR_HOOK_UTIL(CDNAME,KSWITCH,PKEY,CDFILE,KSIZEINFO)
+END SUBROUTINE DR_HOOK_FILE_SIZE
+
+SUBROUTINE DR_HOOK_MULTI_FILE_SIZE(CDNAME,KSWITCH,PKEY,CDFILE,KSIZEINFO)
+USE PARKIND1  ,ONLY : JPIM     ,JPRB
+CHARACTER(LEN=*), INTENT(IN) :: CDNAME,CDFILE
+INTEGER(KIND=JPIM),        INTENT(IN) :: KSWITCH,KSIZEINFO
+REAL(KIND=JPRB),        INTENT(INOUT) :: PKEY(:)
+!CALL DR_HOOK_UTIL_MULTI(CDNAME,KSWITCH,PKEY,SIZE(PKEY),CDFILE,KSIZEINFO)
+END SUBROUTINE DR_HOOK_MULTI_FILE_SIZE
+
diff --git a/tools/check_commit_mesonh.sh b/tools/check_commit_mesonh.sh
index af975e310403ae4e2667857f4f8a660467321aee..3c54c7b48eda522f644e904e155ab0604b810f40 100755
--- a/tools/check_commit_mesonh.sh
+++ b/tools/check_commit_mesonh.sh
@@ -225,6 +225,7 @@ if [ $compilation -eq 1 ]; then
   find PHYEX -type f -exec touch {} \; #to be sure a recompilation occurs
 
   # Move manually ext/ files in src/MNH
+  [ -f PHYEX/ext/yomhook.f90 ] && mv PHYEX/ext/yomhook.f90 PHYEX/ext/yomhook.F90
   if [ -d PHYEX/ext ]; then
     mv -f PHYEX/ext/* MNH/
     rmdir PHYEX/ext
diff --git a/tools/conf_tests/big_3D/aro49t0_nam1.sh b/tools/conf_tests/big_3D/aro49t0_nam1.sh
new file mode 100644
index 0000000000000000000000000000000000000000..1fe0c67722a4528818f9711c5d61489d6857c593
--- /dev/null
+++ b/tools/conf_tests/big_3D/aro49t0_nam1.sh
@@ -0,0 +1,665 @@
+#!/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))
+NTASKS_IO=0
+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/cy49.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.49
+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
+ &NAM_NEBN
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   LSIGMAS=.TRUE.
+   LSUBG_COND=.TRUE.,
+   VSIGQSAT=0.02,
+ /
+ &NAM_PARAM_ICEN
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+   LCRIAUTI=.TRUE.,
+   XCRIAUTC_NAM=0.001,
+   XCRIAUTI_NAM=0.0002,
+   XT0CRIAUTI_NAM=-5.,
+   LRED=.TRUE.,
+   LSEDIC=.TRUE.,
+ /
+ &NAM_PARAM_MFSHALLN
+ /
+ &NAM_TURBN
+ /
+ &NAM_PARAM_LIMA
+ /
+ &NAMPARAR
+   LOSIGMAS=-,
+   LOSUBG_COND=-,
+   VSIGQSAT=-,
+   LOSEDIC=-,
+   CFRAC_ICE_ADJUST=-,
+   CFRAC_ICE_SHALLOW_MF=-,
+   CSEDIM=-,
+   CSNOWRIMING=-,
+   LCONVHG=-,
+   LCRFLIMIT=-,
+   LEVLIMIT=-,
+   LFEEDBACKT=-,
+   LNULLWETG=-,
+   LNULLWETH=-,
+   LSEDIM_AFTER=-,
+   LWETGPOST=-,
+   LWETHPOST=-,
+   NMAXITER_MICRO=-,
+   XFRACM90=-,
+   XMRSTEP=-,
+   XSPLIT_MAXCFL=-,
+   XTSTEP_TS=-,
+   LCRIAUTI=-,
+   RCRIAUTC=-,
+   RCRIAUTI=-,
+   RT0CRIAUTI=-,
+ /
+ &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/aro49t0_nam1.sh b/tools/conf_tests/small_3D/aro49t0_nam1.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c93d2836316e6f1120624ba0311577b088f92343
--- /dev/null
+++ b/tools/conf_tests/small_3D/aro49t0_nam1.sh
@@ -0,0 +1,1247 @@
+#!/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
+ /
+ &NAETLDIAG
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMACV
+ /
+ &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.,
+   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
+ /
+ &NAMCLRADLID
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   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
+   NDLNPR=1,
+ /
+ &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
+ /
+ &NAMDVISI
+ /
+ &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,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+   LSLAG=.TRUE.,
+   LTWOTL=.TRUE.,
+   LNHEE=.TRUE.,
+   LSPRT=.TRUE.,
+ /
+ &NAMDYNA_STATIC
+ /
+ &NAMDYNCORE
+ /
+ &NAMECV
+ /
+ &NAMECVDESC
+ /
+ &NAMECVGRB
+ /
+ &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
+ /
+ &NAMFPOBJ
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+   LNONHYD_GEOM=.TRUE.,
+   LNHX_GEOM=.TRUE.,
+ /
+ &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,
+ /
+ &NAMJBALPHACV
+ /
+ &NAMJBCODES
+ /
+ &NAMJBECPHYSECV
+ /
+ &NAMJBSKTECV
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMETHOX
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMODERRCONF
+ /
+ &NAMMODERRCOV
+ /
+ &NAMMODERRINCRCONF
+ /
+ &NAMMODERRMOD
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNORGWD
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMNUDGLH
+ /
+ &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,
+ /
+ &NAM_NEBN
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   LSIGMAS=.TRUE.,
+   LSUBG_COND=.TRUE.,
+   VSIGQSAT=0.02,
+ /
+ &NAM_PARAM_ICEN
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LSEDIC=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+   LCRIAUTI=.TRUE.,
+   XCRIAUTC_NAM=0.001,
+   XCRIAUTI_NAM=0.0002,
+   XT0CRIAUTI_NAM=-5.,
+   LRED=.TRUE.,
+ /
+ &NAM_PARAM_MFSHALLN
+ /
+ &NAM_TURBN
+ /
+ &NAMPARAR
+   CMICRO='ICE3',
+   LFPREC3D=.TRUE.,
+   LOLSMC=.TRUE.,
+   NPRINTFR=10000,
+   NPTP=1,
+ /
+ &NAMPARECV
+ /
+ &NAMPERTPAR
+ /
+ &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
+ /
+ &NAMRSTRHBIAS
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSATSIM
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPP
+ /
+ &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.,
+ /
+ &NAMTRAJ
+ /
+ &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
+ /
+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/rttov31/rtcoef_meteosat_9_seviri.H5 .
+ln -s $rekchemin/data/rttov31/rtcoef_meteosat_10_seviri.H5 .
+ln -s $rekchemin/data/rttov31/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/rrtm.const.04.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/rrtm.const.04.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/aro49t0_nam1.sh b/tools/conf_tests/small_3D_alt1/aro49t0_nam1.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c3f84f6e52945781efe26886ec0383d4e650226f
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt1/aro49t0_nam1.sh
@@ -0,0 +1,1246 @@
+#!/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
+ /
+ &NAETLDIAG
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMACV
+ /
+ &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.,
+   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
+ /
+ &NAMCLRADLID
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   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
+   NDLNPR=1,
+ /
+ &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
+ /
+ &NAMDVISI
+ /
+ &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,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+   LSLAG=.TRUE.,
+   LTWOTL=.TRUE.,
+   LNHEE=.TRUE.,
+   LSPRT=.TRUE.,
+ /
+ &NAMDYNA_STATIC
+ /
+ &NAMDYNCORE
+ /
+ &NAMECV
+ /
+ &NAMECVDESC
+ /
+ &NAMECVGRB
+ /
+ &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
+ /
+ &NAMFPOBJ
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+   LNONHYD_GEOM=.TRUE.,
+   LNHX_GEOM=.TRUE.,
+ /
+ &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,
+ /
+ &NAMJBALPHACV
+ /
+ &NAMJBCODES
+ /
+ &NAMJBECPHYSECV
+ /
+ &NAMJBSKTECV
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMETHOX
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMODERRCONF
+ /
+ &NAMMODERRCOV
+ /
+ &NAMMODERRINCRCONF
+ /
+ &NAMMODERRMOD
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNORGWD
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMNUDGLH
+ /
+ &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,
+ /
+ &NAM_NEBN
+   CFRAC_ICE_ADJUST='T',
+   CFRAC_ICE_SHALLOW_MF='T',
+   LSIGMAS=.TRUE.
+   LSUBG_COND=.TRUE.,
+   VSIGQSAT=0.02,
+/
+ &NAM_PARAM_ICEN
+   CSEDIM='SPLI',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LSEDIC=.TRUE.,
+   LSEDIM_AFTER=.TRUE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=10,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=25.,
+   LCRIAUTI=.TRUE.,
+   XCRIAUTC_NAM=0.001,
+   XCRIAUTI_NAM=0.0002,
+   XT0CRIAUTI_NAM=-5.,
+   LRED=.TRUE.,
+ /
+ &NAM_PARAM_MFSHALLN
+ /
+ &NAM_TURBN
+ /
+ &NAMPARAR
+   CMICRO='ICE3',
+   LFPREC3D=.TRUE.,
+   LOLSMC=.TRUE.,
+   NPRINTFR=10000,
+   NPTP=1,
+ /
+ &NAMPARECV
+ /
+ &NAMPERTPAR
+ /
+ &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
+ /
+ &NAMRSTRHBIAS
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSATSIM
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPP
+ /
+ &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.,
+ /
+ &NAMTRAJ
+ /
+ &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
+ /
+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/rttov31/rtcoef_meteosat_9_seviri.H5 .
+ln -s $rekchemin/data/rttov31/rtcoef_meteosat_10_seviri.H5 .
+ln -s $rekchemin/data/rttov31/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/rrtm.const.04.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/rrtm.const.04.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_alt10/aro49t0_nam1.sh b/tools/conf_tests/small_3D_alt10/aro49t0_nam1.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a704785573462affbc0b636e5b4d3e419d9bcc2e
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt10/aro49t0_nam1.sh
@@ -0,0 +1,1246 @@
+#!/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
+ /
+ &NAETLDIAG
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMACV
+ /
+ &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.,
+   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
+ /
+ &NAMCLRADLID
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   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
+   NDLNPR=1,
+ /
+ &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
+ /
+ &NAMDVISI
+ /
+ &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,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+   LSLAG=.TRUE.,
+   LTWOTL=.TRUE.,
+   LNHEE=.TRUE.,
+   LSPRT=.TRUE.,
+ /
+ &NAMDYNA_STATIC
+ /
+ &NAMDYNCORE
+ /
+ &NAMECV
+ /
+ &NAMECVDESC
+ /
+ &NAMECVGRB
+ /
+ &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
+ /
+ &NAMFPOBJ
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+   LNONHYD_GEOM=.TRUE.,
+   LNHX_GEOM=.TRUE.,
+ /
+ &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,
+ /
+ &NAMJBALPHACV
+ /
+ &NAMJBCODES
+ /
+ &NAMJBECPHYSECV
+ /
+ &NAMJBSKTECV
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMETHOX
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMODERRCONF
+ /
+ &NAMMODERRCOV
+ /
+ &NAMMODERRINCRCONF
+ /
+ &NAMMODERRMOD
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNORGWD
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMNUDGLH
+ /
+ &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,
+ /
+ &NAM_NEBN
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   LSIGMAS=.TRUE.
+   LSUBG_COND=.TRUE.,
+   VSIGQSAT=0.02,
+ /
+ &NAM_PARAM_ICEN
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LSEDIC=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+   LCRIAUTI=.TRUE.,
+   XCRIAUTC_NAM=0.001,
+   XCRIAUTI_NAM=0.0002,
+   XT0CRIAUTI_NAM=-5.,
+   LRED=.TRUE.,
+ /
+ &NAM_PARAM_MFSHALLN
+ /
+ &NAM_TURBN
+ /
+ &NAMPARAR
+   CMICRO='ICE3',
+   LFPREC3D=.TRUE.,
+   LOLSMC=.TRUE.,
+   NPRINTFR=10000,
+   NPTP=1,
+ /
+ &NAMPARECV
+ /
+ &NAMPERTPAR
+ /
+ &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
+ /
+ &NAMRSTRHBIAS
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSATSIM
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPP
+ /
+ &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.,
+ /
+ &NAMTRAJ
+ /
+ &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
+ /
+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/rttov31/rtcoef_meteosat_9_seviri.H5 .
+ln -s $rekchemin/data/rttov31/rtcoef_meteosat_10_seviri.H5 .
+ln -s $rekchemin/data/rttov31/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/rrtm.const.04.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/aro49t0_nam1.sh b/tools/conf_tests/small_3D_alt2/aro49t0_nam1.sh
new file mode 100755
index 0000000000000000000000000000000000000000..d08cee7349412df819b238beb581d10da8e3e6ed
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt2/aro49t0_nam1.sh
@@ -0,0 +1,1246 @@
+#!/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
+ /
+ &NAETLDIAG
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMACV
+ /
+ &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.,
+   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
+ /
+ &NAMCLRADLID
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   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
+   NDLNPR=1,
+ /
+ &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
+ /
+ &NAMDVISI
+ /
+ &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,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+   LSLAG=.TRUE.,
+   LTWOTL=.TRUE.,
+   LNHEE=.TRUE.,
+   LSPRT=.TRUE.,
+ /
+ &NAMDYNA_STATIC
+ /
+ &NAMDYNCORE
+ /
+ &NAMECV
+ /
+ &NAMECVDESC
+ /
+ &NAMECVGRB
+ /
+ &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
+ /
+ &NAMFPOBJ
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+   LNONHYD_GEOM=.TRUE.,
+   LNHX_GEOM=.TRUE.,
+ /
+ &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,
+ /
+ &NAMJBALPHACV
+ /
+ &NAMJBCODES
+ /
+ &NAMJBECPHYSECV
+ /
+ &NAMJBSKTECV
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMETHOX
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMODERRCONF
+ /
+ &NAMMODERRCOV
+ /
+ &NAMMODERRINCRCONF
+ /
+ &NAMMODERRMOD
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNORGWD
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMNUDGLH
+ /
+ &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,
+ /
+ &NAM_NEBN
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   LSIGMAS=.TRUE.
+   LSUBG_COND=.TRUE.,
+   VSIGQSAT=0.02,
+ /
+ &NAM_PARAM_ICEN
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+   LSEDIC=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   NMAXITER_MICRO=1,
+   LCRIAUTI=.TRUE.,
+   XCRIAUTC_NAM=0.001,
+   XCRIAUTI_NAM=0.0002,
+   XT0CRIAUTI_NAM=-5.,
+   LRED=.FALSE.,
+ /
+ &NAM_PARAM_MFSHALLN
+ /
+ &NAM_TURBN
+ /
+ &NAMPARAR
+   CMICRO='ICE3',
+   LFPREC3D=.TRUE.,
+   LOLSMC=.TRUE.,
+   NPRINTFR=10000,
+   NPTP=1,
+ /
+ &NAMPARECV
+ /
+ &NAMPERTPAR
+ /
+ &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
+ /
+ &NAMRSTRHBIAS
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSATSIM
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPP
+ /
+ &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.,
+ /
+ &NAMTRAJ
+ /
+ &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
+ /
+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/rttov31/rtcoef_meteosat_9_seviri.H5 .
+ln -s $rekchemin/data/rttov31/rtcoef_meteosat_10_seviri.H5 .
+ln -s $rekchemin/data/rttov31/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/rrtm.const.04.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/rrtm.const.04.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/aro49t0_nam1.sh b/tools/conf_tests/small_3D_alt3/aro49t0_nam1.sh
new file mode 100755
index 0000000000000000000000000000000000000000..24d61e99aae9d746833ff3389169ed4730e9093d
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt3/aro49t0_nam1.sh
@@ -0,0 +1,1248 @@
+#!/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
+ /
+ &NAETLDIAG
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMACV
+ /
+ &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.,
+   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
+ /
+ &NAMCLRADLID
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   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
+   NDLNPR=1,
+ /
+ &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
+ /
+ &NAMDVISI
+ /
+ &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,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+   LSLAG=.TRUE.,
+   LTWOTL=.TRUE.,
+   LNHEE=.TRUE.,
+   LSPRT=.TRUE.,
+ /
+ &NAMDYNA_STATIC
+ /
+ &NAMDYNCORE
+ /
+ &NAMECV
+ /
+ &NAMECVDESC
+ /
+ &NAMECVGRB
+ /
+ &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
+ /
+ &NAMFPOBJ
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+   LNONHYD_GEOM=.TRUE.,
+   LNHX_GEOM=.TRUE.,
+ /
+ &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,
+ /
+ &NAMJBALPHACV
+ /
+ &NAMJBCODES
+ /
+ &NAMJBECPHYSECV
+ /
+ &NAMJBSKTECV
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMETHOX
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMODERRCONF
+ /
+ &NAMMODERRCOV
+ /
+ &NAMMODERRINCRCONF
+ /
+ &NAMMODERRMOD
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNORGWD
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMNUDGLH
+ /
+ &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,
+ /
+ &NAM_NEBN
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   LSIGMAS=.TRUE.
+   LSUBG_COND=.TRUE.,
+   VSIGQSAT=0.02,
+ /
+ &NAM_PARAM_ICEN
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+   CSUBG_RC_RR_ACCR='PRFR',
+   CSUBG_RR_EVAP='PRFR',
+   LSEDIC=.TRUE.,
+   LCRIAUTI=.TRUE.,
+   XCRIAUTC_NAM=0.001,
+   XCRIAUTI_NAM=0.0002,
+   XT0CRIAUTI_NAM=-5.,
+   LRED=.TRUE.,
+ /
+ &NAM_PARAM_MFSHALLN
+ /
+ &NAM_TURBN
+ /
+ &NAMPARAR
+   CMICRO='ICE3',
+   LFPREC3D=.TRUE.,
+   LOLSMC=.TRUE.,
+   NPRINTFR=10000,
+   NPTP=1,
+ /
+ &NAMPARECV
+ /
+ &NAMPERTPAR
+ /
+ &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
+ /
+ &NAMRSTRHBIAS
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSATSIM
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPP
+ /
+ &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.,
+ /
+ &NAMTRAJ
+ /
+ &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
+ /
+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/rttov31/rtcoef_meteosat_9_seviri.H5 .
+ln -s $rekchemin/data/rttov31/rtcoef_meteosat_10_seviri.H5 .
+ln -s $rekchemin/data/rttov31/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/rrtm.const.04.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/rrtm.const.04.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/aro49t0_nam1.sh b/tools/conf_tests/small_3D_alt4/aro49t0_nam1.sh
new file mode 100755
index 0000000000000000000000000000000000000000..ec0ec280623cb908a8f800ec9545ab4df6c5d8e9
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt4/aro49t0_nam1.sh
@@ -0,0 +1,1246 @@
+#!/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
+ /
+ &NAETLDIAG
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMACV
+ /
+ &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.,
+   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
+ /
+ &NAMCLRADLID
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   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
+   NDLNPR=1,
+ /
+ &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
+ /
+ &NAMDVISI
+ /
+ &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,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+   LSLAG=.TRUE.,
+   LTWOTL=.TRUE.,
+   LNHEE=.TRUE.,
+   LSPRT=.TRUE.,
+ /
+ &NAMDYNA_STATIC
+ /
+ &NAMDYNCORE
+ /
+ &NAMECV
+ /
+ &NAMECVDESC
+ /
+ &NAMECVGRB
+ /
+ &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
+ /
+ &NAMFPOBJ
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+   LNONHYD_GEOM=.TRUE.,
+   LNHX_GEOM=.TRUE.,
+ /
+ &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,
+ /
+ &NAMJBALPHACV
+ /
+ &NAMJBCODES
+ /
+ &NAMJBECPHYSECV
+ /
+ &NAMJBSKTECV
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMETHOX
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMODERRCONF
+ /
+ &NAMMODERRCOV
+ /
+ &NAMMODERRINCRCONF
+ /
+ &NAMMODERRMOD
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNORGWD
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMNUDGLH
+ /
+ &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,
+ /
+ &NAM_NEBN
+   CFRAC_ICE_ADJUST='T',
+   CFRAC_ICE_SHALLOW_MF='T',
+   LSIGMAS=.TRUE.
+   LSUBG_COND=.TRUE.,
+   VSIGQSAT=0.02,
+ /
+ &NAM_PARAM_ICEN
+   CSEDIM='SPLI',
+   CSNOWRIMING='OLD',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LSEDIM_AFTER=.TRUE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=10,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=25.,
+   LSEDIC=.TRUE.,
+   LCRIAUTI=.TRUE.,
+   XCRIAUTC_NAM=0.001,
+   XCRIAUTI_NAM=0.0002,
+   XT0CRIAUTI_NAM=-5.,
+   LRED=.TRUE.,
+ /
+ &NAM_PARAM_MFSHALLN
+ /
+ &NAM_TURBN
+ /
+ &NAMPARAR
+   CMICRO='ICE3',
+   LFPREC3D=.TRUE.,
+   LOLSMC=.TRUE.,
+   NPRINTFR=10000,
+   NPTP=1,
+ /
+ &NAMPARECV
+ /
+ &NAMPERTPAR
+ /
+ &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
+ /
+ &NAMRSTRHBIAS
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSATSIM
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPP
+ /
+ &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.,
+ /
+ &NAMTRAJ
+ /
+ &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
+ /
+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/rttov31/rtcoef_meteosat_9_seviri.H5 .
+ln -s $rekchemin/data/rttov31/rtcoef_meteosat_10_seviri.H5 .
+ln -s $rekchemin/data/rttov31/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/rrtm.const.04.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/rrtm.const.04.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/aro49t0_nam1.sh b/tools/conf_tests/small_3D_alt5/aro49t0_nam1.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a98f5313e2d3b1e3d42aa6f0434c1670e67cc3ee
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt5/aro49t0_nam1.sh
@@ -0,0 +1,1258 @@
+#!/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
+ /
+ &NAETLDIAG
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMACV
+ /
+ &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.,
+   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
+ /
+ &NAMCLRADLID
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   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
+   NDLNPR=1,
+ /
+ &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
+ /
+ &NAMDVISI
+ /
+ &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,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+   LSLAG=.TRUE.,
+   LTWOTL=.TRUE.,
+   LNHEE=.TRUE.,
+   LSPRT=.TRUE.,
+ /
+ &NAMDYNA_STATIC
+ /
+ &NAMDYNCORE
+ /
+ &NAMECV
+ /
+ &NAMECVDESC
+ /
+ &NAMECVGRB
+ /
+ &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
+ /
+ &NAMFPOBJ
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+   LNONHYD_GEOM=.TRUE.,
+   LNHX_GEOM=.TRUE.,
+ /
+ &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,
+ /
+ &NAMJBALPHACV
+ /
+ &NAMJBCODES
+ /
+ &NAMJBECPHYSECV
+ /
+ &NAMJBSKTECV
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMETHOX
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMODERRCONF
+ /
+ &NAMMODERRCOV
+ /
+ &NAMMODERRINCRCONF
+ /
+ &NAMMODERRMOD
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNORGWD
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMNUDGLH
+ /
+ &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,
+ /
+ &NAM_NEBN
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   LSIGMAS=.TRUE.
+   LSUBG_COND=.TRUE.,
+   VSIGQSAT=0.02,
+ /
+ &NAM_PARAM_ICEN
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+   LSEDIC=.TRUE.
+   LCRIAUTI=.TRUE.,
+   XCRIAUTC_NAM=0.001,
+   XCRIAUTI_NAM=0.0002,
+   XT0CRIAUTI_NAM=-5.,
+   LRED=.TRUE.,
+ /
+ &NAM_PARAM_MFSHALLN
+ /
+ &NAM_TURBN
+ /
+ &NAMPARAR
+   CMICRO='ICE4',
+   LFPREC3D=.TRUE.,
+   LOLSMC=.TRUE.,
+   NPRINTFR=10000,
+   NPTP=1,
+ /
+ &NAMPARECV
+ /
+ &NAMPERTPAR
+ /
+ &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
+ /
+ &NAMRSTRHBIAS
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSATSIM
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPP
+ /
+ &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.,
+ /
+ &NAMTRAJ
+ /
+ &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
+ /
+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/rttov31/rtcoef_meteosat_9_seviri.H5 .
+ln -s $rekchemin/data/rttov31/rtcoef_meteosat_10_seviri.H5 .
+ln -s $rekchemin/data/rttov31/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/rrtm.const.04.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/rrtm.const.04.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/aro49t0_nam1.sh b/tools/conf_tests/small_3D_alt6/aro49t0_nam1.sh
new file mode 100755
index 0000000000000000000000000000000000000000..d6f1fa99e1f57e15349af05654fe85ada1655015
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt6/aro49t0_nam1.sh
@@ -0,0 +1,1248 @@
+#!/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
+ /
+ &NAETLDIAG
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMACV
+ /
+ &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.,
+   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
+ /
+ &NAMCLRADLID
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   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
+   NDLNPR=1,
+ /
+ &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
+ /
+ &NAMDVISI
+ /
+ &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,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+   LSLAG=.TRUE.,
+   LTWOTL=.TRUE.,
+   LNHEE=.TRUE.,
+   LSPRT=.TRUE.,
+ /
+ &NAMDYNA_STATIC
+ /
+ &NAMDYNCORE
+ /
+ &NAMECV
+ /
+ &NAMECVDESC
+ /
+ &NAMECVGRB
+ /
+ &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
+ /
+ &NAMFPOBJ
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+   LNONHYD_GEOM=.TRUE.,
+   LNHX_GEOM=.TRUE.,
+ /
+ &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,
+ /
+ &NAMJBALPHACV
+ /
+ &NAMJBCODES
+ /
+ &NAMJBECPHYSECV
+ /
+ &NAMJBSKTECV
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMETHOX
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMODERRCONF
+ /
+ &NAMMODERRCOV
+ /
+ &NAMMODERRINCRCONF
+ /
+ &NAMMODERRMOD
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNORGWD
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMNUDGLH
+ /
+ &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,
+ /
+ &NAM_NEBN
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   LSIGMAS=.TRUE.
+   LSUBG_COND=.TRUE.,
+   VSIGQSAT=0.02,
+ /
+ &NAM_PARAM_ICEN
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+   LSEDIC=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LCRIAUTI=.TRUE.,
+   XCRIAUTC_NAM=0.001,
+   XCRIAUTI_NAM=0.0002,
+   XT0CRIAUTI_NAM=-5.,
+   LRED=.TRUE.,
+ /
+ &NAM_PARAM_MFSHALLN
+   CMF_UPDRAFT='RAHA'
+   CMF_CLOUD='BIGA'
+ /
+ &NAM_TURBN
+ /
+ &NAMPARAR
+   CMICRO='ICE3',
+   LFPREC3D=.TRUE.,
+   LOLSMC=.TRUE.,
+   NPRINTFR=10000,
+   NPTP=1,
+ /
+ &NAMPARECV
+ /
+ &NAMPERTPAR
+ /
+ &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
+ /
+ &NAMRSTRHBIAS
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSATSIM
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPP
+ /
+ &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.,
+ /
+ &NAMTRAJ
+ /
+ &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
+ /
+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/rttov31/rtcoef_meteosat_9_seviri.H5 .
+ln -s $rekchemin/data/rttov31/rtcoef_meteosat_10_seviri.H5 .
+ln -s $rekchemin/data/rttov31/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/rrtm.const.04.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/rrtm.const.04.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/aro49t0_nam1.sh b/tools/conf_tests/small_3D_alt7/aro49t0_nam1.sh
new file mode 100755
index 0000000000000000000000000000000000000000..b51b376b7930b644ee58d8d30211d4c305638bd0
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt7/aro49t0_nam1.sh
@@ -0,0 +1,1248 @@
+#!/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
+ /
+ &NAETLDIAG
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMACV
+ /
+ &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.,
+   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
+ /
+ &NAMCLRADLID
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   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
+   NDLNPR=1,
+ /
+ &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
+ /
+ &NAMDVISI
+ /
+ &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,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+   LSLAG=.TRUE.,
+   LTWOTL=.TRUE.,
+   LNHEE=.TRUE.,
+   LSPRT=.TRUE.,
+ /
+ &NAMDYNA_STATIC
+ /
+ &NAMDYNCORE
+ /
+ &NAMECV
+ /
+ &NAMECVDESC
+ /
+ &NAMECVGRB
+ /
+ &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
+ /
+ &NAMFPOBJ
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+   LNONHYD_GEOM=.TRUE.,
+   LNHX_GEOM=.TRUE.,
+ /
+ &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,
+ /
+ &NAMJBALPHACV
+ /
+ &NAMJBCODES
+ /
+ &NAMJBECPHYSECV
+ /
+ &NAMJBSKTECV
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMETHOX
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMODERRCONF
+ /
+ &NAMMODERRCOV
+ /
+ &NAMMODERRINCRCONF
+ /
+ &NAMMODERRMOD
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNORGWD
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMNUDGLH
+ /
+ &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,
+ /
+ &NAM_NEBN
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   LSIGMAS=.FALSE.
+   LSUBG_COND=.TRUE.,
+   VSIGQSAT=0.02,
+ /
+ &NAM_PARAM_ICEN
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LSEDIC=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+   LCRIAUTI=.TRUE.,
+   XCRIAUTC_NAM=0.001,
+   XCRIAUTI_NAM=0.0002,
+   XT0CRIAUTI_NAM=-5.,
+   LRED=.TRUE.,
+ /
+ &NAM_PARAM_MFSHALLN
+   CMF_UPDRAFT='EDKF'
+   CMF_CLOUD='STAT'
+ /
+ &NAM_TURBN
+ /
+ &NAMPARAR
+   CMICRO='ICE3',
+   LFPREC3D=.TRUE.,
+   LOLSMC=.TRUE.,
+   NPRINTFR=10000,
+   NPTP=1,
+ /
+ &NAMPARECV
+ /
+ &NAMPERTPAR
+ /
+ &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
+ /
+ &NAMRSTRHBIAS
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSATSIM
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPP
+ /
+ &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.,
+ /
+ &NAMTRAJ
+ /
+ &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
+ /
+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/rttov31/rtcoef_meteosat_9_seviri.H5 .
+ln -s $rekchemin/data/rttov31/rtcoef_meteosat_10_seviri.H5 .
+ln -s $rekchemin/data/rttov31/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/rrtm.const.04.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/rrtm.const.04.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/aro49t0_nam1.sh b/tools/conf_tests/small_3D_alt8/aro49t0_nam1.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a0e097a0172d70c7d6b68c4f7ee485e4109d4649
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt8/aro49t0_nam1.sh
@@ -0,0 +1,1247 @@
+#!/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
+ /
+ &NAETLDIAG
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMACV
+ /
+ &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.,
+   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
+ /
+ &NAMCLRADLID
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   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
+   NDLNPR=1,
+ /
+ &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
+ /
+ &NAMDVISI
+ /
+ &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,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+   LSLAG=.TRUE.,
+   LTWOTL=.TRUE.,
+   LNHEE=.TRUE.,
+   LSPRT=.TRUE.,
+ /
+ &NAMDYNA_STATIC
+ /
+ &NAMDYNCORE
+ /
+ &NAMECV
+ /
+ &NAMECVDESC
+ /
+ &NAMECVGRB
+ /
+ &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
+ /
+ &NAMFPOBJ
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+   LNONHYD_GEOM=.TRUE.,
+   LNHX_GEOM=.TRUE.,
+ /
+ &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,
+ /
+ &NAMJBALPHACV
+ /
+ &NAMJBCODES
+ /
+ &NAMJBECPHYSECV
+ /
+ &NAMJBSKTECV
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMETHOX
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMODERRCONF
+ /
+ &NAMMODERRCOV
+ /
+ &NAMMODERRINCRCONF
+ /
+ &NAMMODERRMOD
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNORGWD
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMNUDGLH
+ /
+ &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,
+ /
+ &NAM_NEBN
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   LSIGMAS=.TRUE.
+   LSUBG_COND=.TRUE.,
+   VSIGQSAT=0.02,
+ /
+ &NAM_PARAM_ICEN
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LSEDIC=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+   LCRIAUTI=.TRUE.,
+   XCRIAUTC_NAM=0.001,
+   XCRIAUTI_NAM=0.0002,
+   XT0CRIAUTI_NAM=-5.,
+   LRED=.TRUE.,
+ /
+ &NAM_PARAM_MFSHALLN
+   CMF_UPDRAFT='RHCJ'
+ /
+ &NAM_TURBN
+ /
+ &NAMPARAR
+   CMICRO='ICE3',
+   LFPREC3D=.TRUE.,
+   LOLSMC=.TRUE.,
+   NPRINTFR=10000,
+   NPTP=1,
+ /
+ &NAMPARECV
+ /
+ &NAMPERTPAR
+ /
+ &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
+ /
+ &NAMRSTRHBIAS
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSATSIM
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPP
+ /
+ &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.,
+ /
+ &NAMTRAJ
+ /
+ &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
+ /
+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/rttov31/rtcoef_meteosat_9_seviri.H5 .
+ln -s $rekchemin/data/rttov31/rtcoef_meteosat_10_seviri.H5 .
+ln -s $rekchemin/data/rttov31/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/rrtm.const.04.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/rrtm.const.04.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/aro49t0_nam1.sh b/tools/conf_tests/small_3D_alt9/aro49t0_nam1.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a314924845169958ca65d1d3f4450aac28d1cf6d
--- /dev/null
+++ b/tools/conf_tests/small_3D_alt9/aro49t0_nam1.sh
@@ -0,0 +1,1246 @@
+#!/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
+ /
+ &NAETLDIAG
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMACV
+ /
+ &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.,
+   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
+ /
+ &NAMCLRADLID
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   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
+   NDLNPR=1,
+ /
+ &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
+ /
+ &NAMDVISI
+ /
+ &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,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+   LSLAG=.TRUE.,
+   LTWOTL=.TRUE.,
+   LNHEE=.TRUE.,
+   LSPRT=.TRUE.,
+ /
+ &NAMDYNA_STATIC
+ /
+ &NAMDYNCORE
+ /
+ &NAMECV
+ /
+ &NAMECVDESC
+ /
+ &NAMECVGRB
+ /
+ &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
+ /
+ &NAMFPOBJ
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+   LNONHYD_GEOM=.TRUE.,
+   LNHX_GEOM=.TRUE.,
+ /
+ &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,
+ /
+ &NAMJBALPHACV
+ /
+ &NAMJBCODES
+ /
+ &NAMJBECPHYSECV
+ /
+ &NAMJBSKTECV
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMETHOX
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMODERRCONF
+ /
+ &NAMMODERRCOV
+ /
+ &NAMMODERRINCRCONF
+ /
+ &NAMMODERRMOD
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNORGWD
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMNUDGLH
+ /
+ &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,
+ /
+ &NAM_NEBN
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   LSIGMAS=.TRUE.
+   LSUBG_COND=.TRUE.,
+   VSIGQSAT=0.02,
+ /
+ &NAM_PARAM_ICEN
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+   LSEDIC=.TRUE.,
+   LCRIAUTI=.TRUE.,
+   XCRIAUTC_NAM=0.001,
+   XCRIAUTI_NAM=0.0002,
+   XT0CRIAUTI_NAM=-5.,
+   LOCND2=.TRUE.,
+ /
+ &NAM_PARAM_MFSHALLN
+ /
+ &NAM_TURBN
+ /
+ &NAMPARAR
+   CMICRO='ICE3',
+   LFPREC3D=.TRUE.,
+   LOLSMC=.TRUE.,
+   NPRINTFR=10000,
+   NPTP=1,
+ /
+ &NAMPARECV
+ /
+ &NAMPERTPAR
+ /
+ &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
+ /
+ &NAMRSTRHBIAS
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSATSIM
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPP
+ /
+ &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.,
+ /
+ &NAMTRAJ
+ /
+ &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
+ /
+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/rttov31/rtcoef_meteosat_9_seviri.H5 .
+ln -s $rekchemin/data/rttov31/rtcoef_meteosat_10_seviri.H5 .
+ln -s $rekchemin/data/rttov31/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/rrtm.const.04.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/rrtm.const.04.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_lima/aro49t0_nam1.sh b/tools/conf_tests/small_3D_lima/aro49t0_nam1.sh
new file mode 100755
index 0000000000000000000000000000000000000000..acd8972afce6081d0f9b5ba0c180fc7cc3abf743
--- /dev/null
+++ b/tools/conf_tests/small_3D_lima/aro49t0_nam1.sh
@@ -0,0 +1,1348 @@
+#!/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
+ /
+ &NAETLDIAG
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMACV
+ /
+ &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.,
+   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
+ /
+ &NAMCLRADLID
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   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
+   NDLNPR=1,
+ /
+ &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
+ /
+ &NAMDVISI
+ /
+ &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,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+   LSLAG=.TRUE.,
+   LTWOTL=.TRUE.,
+   LNHEE=.TRUE.,
+   LSPRT=.TRUE.,
+ /
+ &NAMDYNA_STATIC
+ /
+ &NAMDYNCORE
+ /
+ &NAMECV
+ /
+ &NAMECVDESC
+ /
+ &NAMECVGRB
+ /
+ &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
+ /
+ &NAMFPOBJ
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+   LNONHYD_GEOM=.TRUE.,
+   LNHX_GEOM=.TRUE.,
+ /
+ &NAMGFL
+   NGFL_EZDIAG=5,
+   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.,
+   YEZDIAG_NL(5)%CNAME='DTHRAD',
+   YEZDIAG_NL(5)%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,
+  NLIMA=8,
+  YLIMA_NL(1)%CNAME='N_CLOUD',
+  YLIMA_NL(1)%NREQIN=0,
+  YLIMA_NL(1)%REFVALI=0.,
+  YLIMA_NL(1)%NCOUPLING=0,
+  YLIMA_NL(1)%REFVALC=0.,
+  YLIMA_NL(1)%LQM=.FALSE.,
+  YLIMA_NL(1)%LSLHD=.FALSE.,
+  YLIMA_NL(2)%CNAME='N_RAIN',
+  YLIMA_NL(2)%NREQIN=0,
+  YLIMA_NL(2)%REFVALI=0.,
+  YLIMA_NL(2)%NCOUPLING=0,
+  YLIMA_NL(2)%REFVALC=0.,
+  YLIMA_NL(2)%LQM=.FALSE.,
+  YLIMA_NL(2)%LSLHD=.TRUE.,
+  YLIMA_NL(3)%CNAME='N_CCN_F',
+  YLIMA_NL(3)%NREQIN=-1,
+  YLIMA_NL(3)%REFVALI=300.E6,
+  YLIMA_NL(3)%NCOUPLING=0,
+  YLIMA_NL(3)%REFVALC=300.E6,
+  YLIMA_NL(3)%LQM=.FALSE.,
+  YLIMA_NL(3)%LSLHD=.TRUE.,
+  YLIMA_NL(4)%CNAME='N_CCN_A',
+  YLIMA_NL(4)%NREQIN=0,
+  YLIMA_NL(4)%REFVALI=0.,
+  YLIMA_NL(4)%NCOUPLING=0,
+  YLIMA_NL(4)%REFVALC=0.,
+  YLIMA_NL(4)%LQM=.FALSE.,
+  YLIMA_NL(4)%LSLHD=.TRUE.,
+  YLIMA_NL(5)%CNAME='N_ICE',
+  YLIMA_NL(5)%NREQIN=0,
+  YLIMA_NL(5)%REFVALI=0.,
+  YLIMA_NL(5)%NCOUPLING=0,
+  YLIMA_NL(5)%REFVALC=0.,
+  YLIMA_NL(5)%LQM=.FALSE.,
+  YLIMA_NL(5)%LSLHD=.TRUE.,
+  YLIMA_NL(6)%CNAME='N_IFN_F',
+  YLIMA_NL(6)%NREQIN=-1,
+  YLIMA_NL(6)%REFVALI=1000.E3,
+  YLIMA_NL(6)%NCOUPLING=0,
+  YLIMA_NL(6)%REFVALC=800.E3,
+  YLIMA_NL(6)%LQM=.FALSE.,
+  YLIMA_NL(6)%LSLHD=.TRUE.,
+  YLIMA_NL(7)%CNAME='N_IFN_A',
+  YLIMA_NL(7)%NREQIN=0,
+  YLIMA_NL(7)%REFVALI=0.,
+  YLIMA_NL(7)%NCOUPLING=0,
+  YLIMA_NL(7)%REFVALC=0.,
+  YLIMA_NL(7)%LQM=.FALSE.,
+  YLIMA_NL(7)%LSLHD=.TRUE.,
+  YLIMA_NL(8)%CNAME='N_HHONI',
+  YLIMA_NL(8)%NREQIN=0,
+  YLIMA_NL(8)%REFVALI=0.,
+  YLIMA_NL(8)%NCOUPLING=0,
+  YLIMA_NL(8)%REFVALC=0.,
+  YLIMA_NL(8)%LQM=.FALSE.,
+  YLIMA_NL(8)%LSLHD=.TRUE.,
+ /
+ &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,
+ /
+ &NAMJBALPHACV
+ /
+ &NAMJBCODES
+ /
+ &NAMJBECPHYSECV
+ /
+ &NAMJBSKTECV
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAM_PARAM_LIMA
+  LADJ=T,
+  LSPRO=F,
+  NMOM_C=2,
+  NMOM_R=2,
+  NMOM_I=2,
+  NMOM_S=1,
+  NMOM_G=1,
+  NMOM_H=0,
+  LACTI = T,
+  HINI_CCN='AER',
+  HTYPE_CCN(1)='M',
+  NMOD_CCN = 1,
+  XALPHAR = 1.,
+  XNUR = 1.,
+  LACTIT=F,
+  LSEDC=F,
+  LDEPOC=F,
+  LKESSLERAC=F,
+  LKHKO=F,
+  LSCAV=F,
+  LAERO_MASS=F,
+  LCCN_HOM=F,
+  CCCN_MODES='COPT',
+  LNUCL=T,
+  LSEDI=F,
+  LHHONI=F,
+  LSNOW_T=F,
+  NMOD_IFN=1,
+  NPHILLIPS=8,
+  CPRISTINE_ICE_LIMA = 'PLAT',
+  CHEVRIMED_ICE_LIMA = 'GRAU',
+  NIND_SPECIE = 1,
+  LMEYERS=F,
+  NMOD_IMM=0,
+  LIFN_HOM=T,
+  CIFN_SPECIES='',
+  CINT_MIXING='DM1',
+  LPTSPLIT=T,
+  XMRSTEP=0.00005,
+  NMAXITER=10,
+  LFEEDBACKT=.TRUE.,
+  XTSTEP_TS=25.,
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMETHOX
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMODERRCONF
+ /
+ &NAMMODERRCOV
+ /
+ &NAMMODERRINCRCONF
+ /
+ &NAMMODERRMOD
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNORGWD
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMNUDGLH
+ /
+ &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,
+ /
+ &NAM_NEBN
+   CFRAC_ICE_ADJUST='T',
+   CFRAC_ICE_SHALLOW_MF='T',
+   LSIGMAS=.TRUE.,
+   LSUBG_COND=.TRUE.,
+   VSIGQSAT=0.02,
+ /
+ &NAM_PARAM_ICEN
+   CSEDIM='SPLI',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LSEDIC=.TRUE.,
+   LSEDIM_AFTER=.TRUE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=10,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=25.,
+   LCRIAUTI=.TRUE.,
+   XCRIAUTC_NAM=0.001,
+   XCRIAUTI_NAM=0.0002,
+   XT0CRIAUTI_NAM=-5.,
+ /
+ &NAM_PARAM_MFSHALLN
+ /
+ &NAM_TURBN
+ /
+ &NAMPARAR
+   CMICRO='LIMA',
+   LFPREC3D=.TRUE.,
+   LOLSMC=.TRUE.,
+   NPRINTFR=10000,
+   NPTP=1,
+ /
+ &NAMPARECV
+ /
+ &NAMPERTPAR
+ /
+ &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
+ /
+ &NAMRSTRHBIAS
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSATSIM
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPP
+ /
+ &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.,
+ /
+ &NAMTRAJ
+ /
+ &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
+ /
+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/rttov31/rtcoef_meteosat_9_seviri.H5 .
+ln -s $rekchemin/data/rttov31/rtcoef_meteosat_10_seviri.H5 .
+ln -s $rekchemin/data/rttov31/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/rrtm.const.04.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/rrtm.const.04.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/aro49t0_nam1.sh b/tools/conf_tests/small_3D_np1/aro49t0_nam1.sh
new file mode 100755
index 0000000000000000000000000000000000000000..db46dbce7772b253b95f46a3417eea44356d4d02
--- /dev/null
+++ b/tools/conf_tests/small_3D_np1/aro49t0_nam1.sh
@@ -0,0 +1,1246 @@
+#!/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
+ /
+ &NAETLDIAG
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMACV
+ /
+ &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.,
+   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
+ /
+ &NAMCLRADLID
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   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
+   NDLNPR=1,
+ /
+ &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
+ /
+ &NAMDVISI
+ /
+ &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,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+   LSLAG=.TRUE.,
+   LTWOTL=.TRUE.,
+   LNHEE=.TRUE.,
+   LSPRT=.TRUE.,
+ /
+ &NAMDYNA_STATIC
+ /
+ &NAMDYNCORE
+ /
+ &NAMECV
+ /
+ &NAMECVDESC
+ /
+ &NAMECVGRB
+ /
+ &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
+ /
+ &NAMFPOBJ
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+   LNONHYD_GEOM=.TRUE.,
+   LNHX_GEOM=.TRUE.,
+ /
+ &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,
+ /
+ &NAMJBALPHACV
+ /
+ &NAMJBCODES
+ /
+ &NAMJBECPHYSECV
+ /
+ &NAMJBSKTECV
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMETHOX
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMODERRCONF
+ /
+ &NAMMODERRCOV
+ /
+ &NAMMODERRINCRCONF
+ /
+ &NAMMODERRMOD
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNORGWD
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMNUDGLH
+ /
+ &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,
+ /
+ &NAM_NEBN
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   LSIGMAS=.TRUE.
+   LSUBG_COND=.TRUE.,
+   VSIGQSAT=0.02,
+ /
+ &NAM_PARAM_ICEN
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+   LSEDIC=.TRUE.,
+   LCRIAUTI=.TRUE.,
+   XCRIAUTC_NAM=0.001,
+   XCRIAUTI_NAM=0.0002,
+   XT0CRIAUTI_NAM=-5.,
+   LRED=.TRUE.,
+ /
+ &NAM_PARAM_MFSHALLN
+ /
+ &NAM_TURBN
+ /
+ &NAMPARAR
+   CMICRO='ICE3',
+   LFPREC3D=.TRUE.,
+   LOLSMC=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   NPRINTFR=10000,
+   NPTP=1,
+ /
+ &NAMPARECV
+ /
+ &NAMPERTPAR
+ /
+ &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
+ /
+ &NAMRSTRHBIAS
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSATSIM
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPP
+ /
+ &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.,
+ /
+ &NAMTRAJ
+ /
+ &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
+ /
+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/rttov31/rtcoef_meteosat_9_seviri.H5 .
+ln -s $rekchemin/data/rttov31/rtcoef_meteosat_10_seviri.H5 .
+ln -s $rekchemin/data/rttov31/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/rrtm.const.04.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/rrtm.const.04.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/aro49t0_nam1.sh b/tools/conf_tests/small_3D_np2/aro49t0_nam1.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a39f4782304a9cf8d403ce685ad64c7ad66693f7
--- /dev/null
+++ b/tools/conf_tests/small_3D_np2/aro49t0_nam1.sh
@@ -0,0 +1,1246 @@
+#!/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
+ /
+ &NAETLDIAG
+ /
+ &NAEVOL
+ /
+ &NAIMPO
+ /
+ &NALORI
+ /
+ &NAMACV
+ /
+ &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.,
+   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
+ /
+ &NAMCLRADLID
+ /
+ &NAMCLTC
+ /
+ &NAMCOK
+ /
+ &NAMCOM
+ /
+ &NAMCOSJO
+ /
+ &NAMCOUPLO4
+ /
+ &NAMCT0
+   CFPNCF='ECHFP',
+   CNPPATH=' ',
+   LAROME=.TRUE.,
+   LSCREEN_OPENMP=.FALSE.,
+   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
+   NDLNPR=1,
+ /
+ &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
+ /
+ &NAMDVISI
+ /
+ &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,
+   NPDVAR=2,
+   NVDVAR=4,
+   SLHDEPSH=0.08,
+   SLHDKMAX=6,
+   LSLAG=.TRUE.,
+   LTWOTL=.TRUE.,
+   LNHEE=.TRUE.,
+   LSPRT=.TRUE.,
+ /
+ &NAMDYNA_STATIC
+ /
+ &NAMDYNCORE
+ /
+ &NAMECV
+ /
+ &NAMECVDESC
+ /
+ &NAMECVGRB
+ /
+ &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
+ /
+ &NAMFPOBJ
+ /
+ &NAMFPPHY
+ /
+ &NAMFPSC2
+   NFPROMA=-50,
+ /
+ &NAMFPSC2_DEP
+   NFPROMA_DEP=-50,
+ /
+ &NAMGEM
+   LNONHYD_GEOM=.TRUE.,
+   LNHX_GEOM=.TRUE.,
+ /
+ &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,
+ /
+ &NAMJBALPHACV
+ /
+ &NAMJBCODES
+ /
+ &NAMJBECPHYSECV
+ /
+ &NAMJBSKTECV
+ /
+ &NAMJFH
+ /
+ &NAMJG
+ /
+ &NAMLCZ
+ /
+ &NAMLSFORC
+ /
+ &NAMMARS
+ /
+ &NAMMCC
+ /
+ &NAMMCUF
+ /
+ &NAMMETHOX
+ /
+ &NAMMKODB
+ /
+ &NAMMODERR
+ /
+ &NAMMODERRCONF
+ /
+ &NAMMODERRCOV
+ /
+ &NAMMODERRINCRCONF
+ /
+ &NAMMODERRMOD
+ /
+ &NAMMTS
+ /
+ &NAMMWAVE
+ /
+ &NAMNORGWD
+ /
+ &NAMNPROF
+ /
+ &NAMNUD
+ /
+ &NAMNUDGLH
+ /
+ &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,
+ /
+ &NAM_NEBN
+   CFRAC_ICE_ADJUST='S',
+   CFRAC_ICE_SHALLOW_MF='S',
+   LSIGMAS=.TRUE.
+   LSUBG_COND=.TRUE.,
+   VSIGQSAT=0.02,
+ /
+ &NAM_PARAM_ICEN
+   CSEDIM='STAT',
+   CSNOWRIMING='M90',
+   LCONVHG=.TRUE.,
+   LCRFLIMIT=.TRUE.,
+   LEVLIMIT=.TRUE.,
+   LFEEDBACKT=.TRUE.,
+   LNULLWETG=.TRUE.,
+   LNULLWETH=.TRUE.,
+   LSEDIM_AFTER=.FALSE.,
+   LWETGPOST=.TRUE.,
+   LWETHPOST=.TRUE.,
+   NMAXITER_MICRO=1,
+   XFRACM90=0.1,
+   XMRSTEP=0.00005,
+   XSPLIT_MAXCFL=0.8,
+   XTSTEP_TS=0.,
+   LSEDIC=.TRUE.,
+   LCRIAUTI=.TRUE.,
+   XCRIAUTC_NAM=0.001,
+   XCRIAUTI_NAM=0.0002,
+   XT0CRIAUTI_NAM=-5.,
+   LRED=.TRUE.,
+ /
+ &NAM_PARAM_MFSHALLN
+ /
+ &NAM_TURBN
+ /
+ &NAMPARAR
+   CMICRO='ICE3',
+   LFPREC3D=.TRUE.,
+   LOLSMC=.TRUE.,
+   NPRINTFR=10000,
+   NPTP=1,
+ /
+ &NAMPARECV
+ /
+ &NAMPERTPAR
+ /
+ &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
+ /
+ &NAMRSTRHBIAS
+ /
+ &NAMSATS
+   LPARTIAL_COEF_FILES=.TRUE.,
+ /
+ &NAMSATSIM
+ /
+ &NAMSCC
+ /
+ &NAMSCEN
+ /
+ &NAMSCM
+ /
+ &NAMSEKF
+ /
+ &NAMSENS
+ /
+ &NAMSFXCMP
+   CFLDNAME(1)='????????????????',
+   NBBITS(1)=24,
+ /
+ &NAMSIMPHL
+ /
+ &NAMSPNG
+ /
+ &NAMSPP
+ /
+ &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.,
+ /
+ &NAMTRAJ
+ /
+ &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
+ /
+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/rttov31/rtcoef_meteosat_9_seviri.H5 .
+ln -s $rekchemin/data/rttov31/rtcoef_meteosat_10_seviri.H5 .
+ln -s $rekchemin/data/rttov31/sccldcoef_meteosat_9_seviri.dat .
+set +x
+tar xfz $rekchemin/data/rtm/rrtm.const.04.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/rrtm.const.04.tgz)
+
+#      ****************
+#      *  Epilogue    *
+#      ****************
+
+ls -ltr | grep -v "\->"
+echo Wait_queue :
+ls -ltr $TMPWAIT
+cd $TMPDIR
+\rm -rf rundir.$$
+\rm -rf wait_queue.$$
+date
+set +x