diff --git a/src/testprogs/ice_adjust/getdata_ice_adjust_mod.F90 b/src/testprogs/ice_adjust/getdata_ice_adjust_mod.F90
index 128c44912cc8b9e502bd8b4ac92bdc3593c8a633..5cad30115d5f646657533f3435032d7a3fddce52 100644
--- a/src/testprogs/ice_adjust/getdata_ice_adjust_mod.F90
+++ b/src/testprogs/ice_adjust/getdata_ice_adjust_mod.F90
@@ -23,62 +23,62 @@ INTEGER      :: KDUM
 
 LOGICAL, INTENT(IN) :: LDVERBOSE
 
-REAL, INTENT(OUT), ALLOCATABLE   :: PRHODJ_B       (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PEXNREF_B      (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PRHODREF_B     (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PPABSM_B       (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PTHT_B         (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: ZICE_CLD_WGT_B (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZSIGQSAT_B     (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PSIGS_B        (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PMFCONV_B      (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PRC_MF_B       (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PRI_MF_B       (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PCF_MF_B       (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: ZDUM1_B        (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZDUM2_B        (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZDUM3_B        (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZDUM4_B        (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZDUM5_B        (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTHS_B         (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PRS_B          (:,:,:,:,:) 
-REAL, INTENT(OUT), ALLOCATABLE   :: PRS_OUT_B      (:,:,:,:,:) 
-REAL, INTENT(OUT), ALLOCATABLE   :: PSRCS_B        (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PSRCS_OUT_B    (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PCLDFR_B       (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PCLDFR_OUT_B   (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PHLC_HRC_B     (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PHLC_HRC_OUT_B (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PHLC_HCF_B     (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PHLC_HCF_OUT_B (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PHLI_HRI_B     (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PHLI_HRI_OUT_B (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PHLI_HCF_B     (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PHLI_HCF_OUT_B (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: ZRS_B          (:,:,:,:,:) 
-REAL, INTENT(OUT), ALLOCATABLE   :: ZZZ_B          (:,:,:,:)   
-
-REAL, ALLOCATABLE   :: PRHODJ         (:,:,:,:)   
-REAL, ALLOCATABLE   :: PEXNREF        (:,:,:,:)   
-REAL, ALLOCATABLE   :: PRHODREF       (:,:,:,:)   
-REAL, ALLOCATABLE   :: PPABSM         (:,:,:,:)   
-REAL, ALLOCATABLE   :: PTHT           (:,:,:,:)   
-REAL, ALLOCATABLE   :: PSIGS          (:,:,:,:)   
-REAL, ALLOCATABLE   :: PMFCONV        (:,:,:,:)   
-REAL, ALLOCATABLE   :: PRC_MF         (:,:,:,:)   
-REAL, ALLOCATABLE   :: PRI_MF         (:,:,:,:)   
-REAL, ALLOCATABLE   :: PCF_MF         (:,:,:,:)   
-REAL, ALLOCATABLE   :: PTHS           (:,:,:,:)   
-REAL, ALLOCATABLE   :: PRS            (:,:,:,:,:) 
-REAL, ALLOCATABLE   :: PRS_OUT        (:,:,:,:,:) 
-REAL, ALLOCATABLE   :: PSRCS_OUT      (:,:,:,:)   
-REAL, ALLOCATABLE   :: PCLDFR_OUT     (:,:,:,:)   
-REAL, ALLOCATABLE   :: PHLC_HRC_OUT   (:,:,:,:)   
-REAL, ALLOCATABLE   :: PHLC_HCF_OUT   (:,:,:,:)   
-REAL, ALLOCATABLE   :: PHLI_HRI_OUT   (:,:,:,:)   
-REAL, ALLOCATABLE   :: PHLI_HCF_OUT   (:,:,:,:)   
-REAL, ALLOCATABLE   :: ZRS            (:,:,:,:,:) 
-REAL, ALLOCATABLE   :: ZZZ            (:,:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PRHODJ_B       (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PEXNREF_B      (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PRHODREF_B     (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PPABSM_B       (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PTHT_B         (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: ZICE_CLD_WGT_B (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZSIGQSAT_B     (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PSIGS_B        (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PMFCONV_B      (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PRC_MF_B       (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PRI_MF_B       (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PCF_MF_B       (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: ZDUM1_B        (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZDUM2_B        (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZDUM3_B        (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZDUM4_B        (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZDUM5_B        (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTHS_B         (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PRS_B          (:,:,:,:) 
+REAL, INTENT(OUT), ALLOCATABLE   :: PRS_OUT_B      (:,:,:,:) 
+REAL, INTENT(OUT), ALLOCATABLE   :: PSRCS_B        (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PSRCS_OUT_B    (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PCLDFR_B       (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PCLDFR_OUT_B   (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PHLC_HRC_B     (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PHLC_HRC_OUT_B (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PHLC_HCF_B     (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PHLC_HCF_OUT_B (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PHLI_HRI_B     (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PHLI_HRI_OUT_B (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PHLI_HCF_B     (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PHLI_HCF_OUT_B (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: ZRS_B          (:,:,:,:) 
+REAL, INTENT(OUT), ALLOCATABLE   :: ZZZ_B          (:,:,:)   
+
+REAL, ALLOCATABLE   :: PRHODJ         (:,:,:)   
+REAL, ALLOCATABLE   :: PEXNREF        (:,:,:)   
+REAL, ALLOCATABLE   :: PRHODREF       (:,:,:)   
+REAL, ALLOCATABLE   :: PPABSM         (:,:,:)   
+REAL, ALLOCATABLE   :: PTHT           (:,:,:)   
+REAL, ALLOCATABLE   :: PSIGS          (:,:,:)   
+REAL, ALLOCATABLE   :: PMFCONV        (:,:,:)   
+REAL, ALLOCATABLE   :: PRC_MF         (:,:,:)   
+REAL, ALLOCATABLE   :: PRI_MF         (:,:,:)   
+REAL, ALLOCATABLE   :: PCF_MF         (:,:,:)   
+REAL, ALLOCATABLE   :: PTHS           (:,:,:)   
+REAL, ALLOCATABLE   :: PRS            (:,:,:,:) 
+REAL, ALLOCATABLE   :: PRS_OUT        (:,:,:,:) 
+REAL, ALLOCATABLE   :: PSRCS_OUT      (:,:,:)   
+REAL, ALLOCATABLE   :: PCLDFR_OUT     (:,:,:)   
+REAL, ALLOCATABLE   :: PHLC_HRC_OUT   (:,:,:)   
+REAL, ALLOCATABLE   :: PHLC_HCF_OUT   (:,:,:)   
+REAL, ALLOCATABLE   :: PHLI_HRI_OUT   (:,:,:)   
+REAL, ALLOCATABLE   :: PHLI_HCF_OUT   (:,:,:)   
+REAL, ALLOCATABLE   :: ZRS            (:,:,:,:) 
+REAL, ALLOCATABLE   :: ZZZ            (:,:,:)   
 
 INTEGER, INTENT(IN) :: NPROMA, NGPBLKS
 INTEGER :: NGPTOT
@@ -100,40 +100,40 @@ CLOSE (IFILE)
 
 IF (NFLEVG < 0) NFLEVG = KLEV
 
-ALLOCATE (ZSIGQSAT_B      (NPROMA,1,NGPBLKS))
-ALLOCATE (ZICE_CLD_WGT_B  (NPROMA,1,NGPBLKS))
-ALLOCATE (PSRCS_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PCLDFR_B        (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PHLC_HRC_B      (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PHLC_HCF_B      (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PHLI_HRI_B      (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PHLI_HCF_B      (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRHODJ_B        (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PEXNREF_B       (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRHODREF_B      (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PPABSM_B        (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PTHT_B          (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PSIGS_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PMFCONV_B       (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRC_MF_B        (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRI_MF_B        (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PCF_MF_B        (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZDUM1_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZDUM2_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZDUM3_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZDUM4_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZDUM5_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PTHS_B          (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRS_B           (NPROMA,1,NFLEVG,KRR,NGPBLKS))
-ALLOCATE (PRS_OUT_B       (NPROMA,1,NFLEVG,KRR,NGPBLKS))
-ALLOCATE (PSRCS_OUT_B     (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PCLDFR_OUT_B    (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZRS_B           (NPROMA,1,NFLEVG,0:KRR,NGPBLKS))
-ALLOCATE (ZZZ_B           (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PHLC_HRC_OUT_B  (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PHLC_HCF_OUT_B  (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PHLI_HRI_OUT_B  (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PHLI_HCF_OUT_B  (NPROMA,1,NFLEVG,NGPBLKS))
+ALLOCATE (ZSIGQSAT_B      (NPROMA,NGPBLKS))
+ALLOCATE (ZICE_CLD_WGT_B  (NPROMA,NGPBLKS))
+ALLOCATE (PSRCS_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PCLDFR_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PHLC_HRC_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PHLC_HCF_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PHLI_HRI_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PHLI_HCF_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRHODJ_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PEXNREF_B       (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRHODREF_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PPABSM_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PTHT_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PSIGS_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PMFCONV_B       (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRC_MF_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRI_MF_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PCF_MF_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZDUM1_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZDUM2_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZDUM3_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZDUM4_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZDUM5_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PTHS_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRS_B           (NPROMA,NFLEVG,KRR,NGPBLKS))
+ALLOCATE (PRS_OUT_B       (NPROMA,NFLEVG,KRR,NGPBLKS))
+ALLOCATE (PSRCS_OUT_B     (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PCLDFR_OUT_B    (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZRS_B           (NPROMA,NFLEVG,0:KRR,NGPBLKS))
+ALLOCATE (ZZZ_B           (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PHLC_HRC_OUT_B  (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PHLC_HCF_OUT_B  (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PHLI_HRI_OUT_B  (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PHLI_HCF_OUT_B  (NPROMA,NFLEVG,NGPBLKS))
 
 CALL SET (ZSIGQSAT_B    )
 CALL SET (ZICE_CLD_WGT_B)
@@ -189,53 +189,53 @@ DO WHILE(LLEXIST)
   READ (IFILE) KLON, KDUM, KLEV
 
   IF (IBL == 1) THEN
-    ALLOCATE (PRHODJ       (NGPTOT,1,KLEV,1))
-    ALLOCATE (PEXNREF      (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRHODREF     (NGPTOT,1,KLEV,1))
-    ALLOCATE (PPABSM       (NGPTOT,1,KLEV,1))
-    ALLOCATE (PTHT         (NGPTOT,1,KLEV,1))
-    ALLOCATE (PSIGS        (NGPTOT,1,KLEV,1))
-    ALLOCATE (PMFCONV      (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRC_MF       (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRI_MF       (NGPTOT,1,KLEV,1))
-    ALLOCATE (PCF_MF       (NGPTOT,1,KLEV,1))
-    ALLOCATE (PTHS         (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRS          (NGPTOT,1,KLEV,KRR,1))
-    ALLOCATE (PRS_OUT      (NGPTOT,1,KLEV,KRR,1))
-    ALLOCATE (PSRCS_OUT    (NGPTOT,1,KLEV,1))
-    ALLOCATE (PCLDFR_OUT   (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZRS          (NGPTOT,1,KLEV,0:KRR,1))
-    ALLOCATE (ZZZ          (NGPTOT,1,KLEV,1))
-    ALLOCATE (PHLC_HRC_OUT (NGPTOT,1,KLEV,1))
-    ALLOCATE (PHLC_HCF_OUT (NGPTOT,1,KLEV,1))
-    ALLOCATE (PHLI_HRI_OUT (NGPTOT,1,KLEV,1))
-    ALLOCATE (PHLI_HCF_OUT (NGPTOT,1,KLEV,1))
+    ALLOCATE (PRHODJ       (NGPTOT,KLEV,1))
+    ALLOCATE (PEXNREF      (NGPTOT,KLEV,1))
+    ALLOCATE (PRHODREF     (NGPTOT,KLEV,1))
+    ALLOCATE (PPABSM       (NGPTOT,KLEV,1))
+    ALLOCATE (PTHT         (NGPTOT,KLEV,1))
+    ALLOCATE (PSIGS        (NGPTOT,KLEV,1))
+    ALLOCATE (PMFCONV      (NGPTOT,KLEV,1))
+    ALLOCATE (PRC_MF       (NGPTOT,KLEV,1))
+    ALLOCATE (PRI_MF       (NGPTOT,KLEV,1))
+    ALLOCATE (PCF_MF       (NGPTOT,KLEV,1))
+    ALLOCATE (PTHS         (NGPTOT,KLEV,1))
+    ALLOCATE (PRS          (NGPTOT,KLEV,KRR,1))
+    ALLOCATE (PRS_OUT      (NGPTOT,KLEV,KRR,1))
+    ALLOCATE (PSRCS_OUT    (NGPTOT,KLEV,1))
+    ALLOCATE (PCLDFR_OUT   (NGPTOT,KLEV,1))
+    ALLOCATE (ZRS          (NGPTOT,KLEV,0:KRR,1))
+    ALLOCATE (ZZZ          (NGPTOT,KLEV,1))
+    ALLOCATE (PHLC_HRC_OUT (NGPTOT,KLEV,1))
+    ALLOCATE (PHLC_HCF_OUT (NGPTOT,KLEV,1))
+    ALLOCATE (PHLI_HRI_OUT (NGPTOT,KLEV,1))
+    ALLOCATE (PHLI_HCF_OUT (NGPTOT,KLEV,1))
   ENDIF
 
   IF (IOFF+KLON > NGPTOT) THEN
     EXIT
   ENDIF
 
-  READ (IFILE) PRHODJ       (IOFF+1:IOFF+KLON,:,:,1) 
-  READ (IFILE) PEXNREF      (IOFF+1:IOFF+KLON,:,:,1) 
-  READ (IFILE) PRHODREF     (IOFF+1:IOFF+KLON,:,:,1) 
-  READ (IFILE) PSIGS        (IOFF+1:IOFF+KLON,:,:,1) 
-  READ (IFILE) PMFCONV      (IOFF+1:IOFF+KLON,:,:,1) 
-  READ (IFILE) PPABSM       (IOFF+1:IOFF+KLON,:,:,1) 
-  READ (IFILE) ZZZ          (IOFF+1:IOFF+KLON,:,:,1) 
-  READ (IFILE) PCF_MF       (IOFF+1:IOFF+KLON,:,:,1) 
-  READ (IFILE) PRC_MF       (IOFF+1:IOFF+KLON,:,:,1) 
-  READ (IFILE) PRI_MF       (IOFF+1:IOFF+KLON,:,:,1) 
-  READ (IFILE) ZRS          (IOFF+1:IOFF+KLON,:,:,:,1) 
-  READ (IFILE) PRS          (IOFF+1:IOFF+KLON,:,:,:,1) 
-  READ (IFILE) PTHS         (IOFF+1:IOFF+KLON,:,:,1)
-  READ (IFILE) PRS_OUT      (IOFF+1:IOFF+KLON,:,:,:,1) 
-  READ (IFILE) PSRCS_OUT    (IOFF+1:IOFF+KLON,:,:,1) 
-  READ (IFILE) PCLDFR_OUT   (IOFF+1:IOFF+KLON,:,:,1) 
-  READ (IFILE) PHLC_HRC_OUT (IOFF+1:IOFF+KLON,:,:,1) 
-  READ (IFILE) PHLC_HCF_OUT (IOFF+1:IOFF+KLON,:,:,1) 
-  READ (IFILE) PHLI_HRI_OUT (IOFF+1:IOFF+KLON,:,:,1) 
-  READ (IFILE) PHLI_HCF_OUT (IOFF+1:IOFF+KLON,:,:,1) 
+  READ (IFILE) PRHODJ       (IOFF+1:IOFF+KLON,:,1) 
+  READ (IFILE) PEXNREF      (IOFF+1:IOFF+KLON,:,1) 
+  READ (IFILE) PRHODREF     (IOFF+1:IOFF+KLON,:,1) 
+  READ (IFILE) PSIGS        (IOFF+1:IOFF+KLON,:,1) 
+  READ (IFILE) PMFCONV      (IOFF+1:IOFF+KLON,:,1) 
+  READ (IFILE) PPABSM       (IOFF+1:IOFF+KLON,:,1) 
+  READ (IFILE) ZZZ          (IOFF+1:IOFF+KLON,:,1) 
+  READ (IFILE) PCF_MF       (IOFF+1:IOFF+KLON,:,1) 
+  READ (IFILE) PRC_MF       (IOFF+1:IOFF+KLON,:,1) 
+  READ (IFILE) PRI_MF       (IOFF+1:IOFF+KLON,:,1) 
+  READ (IFILE) ZRS          (IOFF+1:IOFF+KLON,:,:,1) 
+  READ (IFILE) PRS          (IOFF+1:IOFF+KLON,:,:,1) 
+  READ (IFILE) PTHS         (IOFF+1:IOFF+KLON,:,1)
+  READ (IFILE) PRS_OUT      (IOFF+1:IOFF+KLON,:,:,1) 
+  READ (IFILE) PSRCS_OUT    (IOFF+1:IOFF+KLON,:,1) 
+  READ (IFILE) PCLDFR_OUT   (IOFF+1:IOFF+KLON,:,1) 
+  READ (IFILE) PHLC_HRC_OUT (IOFF+1:IOFF+KLON,:,1) 
+  READ (IFILE) PHLC_HCF_OUT (IOFF+1:IOFF+KLON,:,1) 
+  READ (IFILE) PHLI_HRI_OUT (IOFF+1:IOFF+KLON,:,1) 
+  READ (IFILE) PHLI_HCF_OUT (IOFF+1:IOFF+KLON,:,1) 
   
   CLOSE (IFILE)
 
@@ -266,26 +266,26 @@ IF (NFLEVG /= KLEV) THEN
   CALL INTERPOLATE (NFLEVG, IOFF, PHLI_HCF_OUT)
 ENDIF
 
-CALL REPLICATE (IOFF, PRHODJ       (:, :, :, 1))
-CALL REPLICATE (IOFF, PEXNREF      (:, :, :, 1))
-CALL REPLICATE (IOFF, PRHODREF     (:, :, :, 1))
-CALL REPLICATE (IOFF, PSIGS        (:, :, :, 1))
-CALL REPLICATE (IOFF, PMFCONV      (:, :, :, 1))
-CALL REPLICATE (IOFF, PPABSM       (:, :, :, 1))
-CALL REPLICATE (IOFF, ZZZ          (:, :, :, 1))
-CALL REPLICATE (IOFF, PCF_MF       (:, :, :, 1))
-CALL REPLICATE (IOFF, PRC_MF       (:, :, :, 1))
-CALL REPLICATE (IOFF, PRI_MF       (:, :, :, 1))
-CALL REPLICATE (IOFF, ZRS          (:, :, :, :, 1))
-CALL REPLICATE (IOFF, PRS          (:, :, :, :, 1))
-CALL REPLICATE (IOFF, PTHS         (:, :, :, 1))
-CALL REPLICATE (IOFF, PRS_OUT      (:, :, :, :, 1))
-CALL REPLICATE (IOFF, PSRCS_OUT    (:, :, :, 1))
-CALL REPLICATE (IOFF, PCLDFR_OUT   (:, :, :, 1))
-CALL REPLICATE (IOFF, PHLC_HRC_OUT (:, :, :, 1))
-CALL REPLICATE (IOFF, PHLC_HCF_OUT (:, :, :, 1))
-CALL REPLICATE (IOFF, PHLI_HRI_OUT (:, :, :, 1))
-CALL REPLICATE (IOFF, PHLI_HCF_OUT (:, :, :, 1))
+CALL REPLICATE (IOFF, PRHODJ       (:, :, 1))
+CALL REPLICATE (IOFF, PEXNREF      (:, :, 1))
+CALL REPLICATE (IOFF, PRHODREF     (:, :, 1))
+CALL REPLICATE (IOFF, PSIGS        (:, :, 1))
+CALL REPLICATE (IOFF, PMFCONV      (:, :, 1))
+CALL REPLICATE (IOFF, PPABSM       (:, :, 1))
+CALL REPLICATE (IOFF, ZZZ          (:, :, 1))
+CALL REPLICATE (IOFF, PCF_MF       (:, :, 1))
+CALL REPLICATE (IOFF, PRC_MF       (:, :, 1))
+CALL REPLICATE (IOFF, PRI_MF       (:, :, 1))
+CALL REPLICATE (IOFF, ZRS          (:, :, :, 1))
+CALL REPLICATE (IOFF, PRS          (:, :, :, 1))
+CALL REPLICATE (IOFF, PTHS         (:, :, 1))
+CALL REPLICATE (IOFF, PRS_OUT      (:, :, :, 1))
+CALL REPLICATE (IOFF, PSRCS_OUT    (:, :, 1))
+CALL REPLICATE (IOFF, PCLDFR_OUT   (:, :, 1))
+CALL REPLICATE (IOFF, PHLC_HRC_OUT (:, :, 1))
+CALL REPLICATE (IOFF, PHLC_HCF_OUT (:, :, 1))
+CALL REPLICATE (IOFF, PHLI_HRI_OUT (:, :, 1))
+CALL REPLICATE (IOFF, PHLI_HCF_OUT (:, :, 1))
 
 CALL NPROMIZE (NPROMA, PRHODJ      ,  PRHODJ_B        )
 CALL NPROMIZE (NPROMA, PEXNREF     ,  PEXNREF_B       )
diff --git a/src/testprogs/ice_adjust/main_ice_adjust.F90 b/src/testprogs/ice_adjust/main_ice_adjust.F90
index 20225eb60cb8a8622ac7a7f64216b8d6e26f1349..dca1e7d7160f6565c648cf8d08bc51b8c71a3d49 100644
--- a/src/testprogs/ice_adjust/main_ice_adjust.F90
+++ b/src/testprogs/ice_adjust/main_ice_adjust.F90
@@ -15,41 +15,41 @@ IMPLICIT NONE
 INTEGER      :: KLEV
 INTEGER      :: KRR
 
-REAL,    ALLOCATABLE   :: PRHODJ         (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PEXNREF        (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PRHODREF       (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PPABSM         (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PTHT           (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PSIGS          (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PMFCONV        (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PRC_MF         (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PRI_MF         (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PCF_MF         (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PTHS           (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PRS            (:,:,:,:,:) 
-REAL,    ALLOCATABLE   :: PSRCS          (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PCLDFR         (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PHLC_HRC       (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PHLC_HCF       (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PHLI_HRI       (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PHLI_HCF       (:,:,:,:)   
-REAL,    ALLOCATABLE   :: ZRS            (:,:,:,:,:) 
-REAL,    ALLOCATABLE   :: ZZZ            (:,:,:,:)   
-REAL,    ALLOCATABLE   :: ZSIGQSAT       (:,:,:)   
-REAL,    ALLOCATABLE   :: ZICE_CLD_WGT   (:,:,:)   
-REAL,    ALLOCATABLE   :: ZDUM1          (:,:,:,:)
-REAL,    ALLOCATABLE   :: ZDUM2          (:,:,:,:)
-REAL,    ALLOCATABLE   :: ZDUM3          (:,:,:,:)
-REAL,    ALLOCATABLE   :: ZDUM4          (:,:,:,:)
-REAL,    ALLOCATABLE   :: ZDUM5          (:,:,:,:)
-
-REAL,    ALLOCATABLE   :: PRS_OUT        (:,:,:,:,:) 
-REAL,    ALLOCATABLE   :: PSRCS_OUT      (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PCLDFR_OUT     (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PHLC_HRC_OUT   (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PHLC_HCF_OUT   (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PHLI_HRI_OUT   (:,:,:,:)   
-REAL,    ALLOCATABLE   :: PHLI_HCF_OUT   (:,:,:,:)   
+REAL,    ALLOCATABLE   :: PRHODJ         (:,:,:)   
+REAL,    ALLOCATABLE   :: PEXNREF        (:,:,:)   
+REAL,    ALLOCATABLE   :: PRHODREF       (:,:,:)   
+REAL,    ALLOCATABLE   :: PPABSM         (:,:,:)   
+REAL,    ALLOCATABLE   :: PTHT           (:,:,:)   
+REAL,    ALLOCATABLE   :: PSIGS          (:,:,:)   
+REAL,    ALLOCATABLE   :: PMFCONV        (:,:,:)   
+REAL,    ALLOCATABLE   :: PRC_MF         (:,:,:)   
+REAL,    ALLOCATABLE   :: PRI_MF         (:,:,:)   
+REAL,    ALLOCATABLE   :: PCF_MF         (:,:,:)   
+REAL,    ALLOCATABLE   :: PTHS           (:,:,:)   
+REAL,    ALLOCATABLE   :: PRS            (:,:,:,:) 
+REAL,    ALLOCATABLE   :: PSRCS          (:,:,:)   
+REAL,    ALLOCATABLE   :: PCLDFR         (:,:,:)   
+REAL,    ALLOCATABLE   :: PHLC_HRC       (:,:,:)   
+REAL,    ALLOCATABLE   :: PHLC_HCF       (:,:,:)   
+REAL,    ALLOCATABLE   :: PHLI_HRI       (:,:,:)   
+REAL,    ALLOCATABLE   :: PHLI_HCF       (:,:,:)   
+REAL,    ALLOCATABLE   :: ZRS            (:,:,:,:) 
+REAL,    ALLOCATABLE   :: ZZZ            (:,:,:)   
+REAL,    ALLOCATABLE   :: ZSIGQSAT       (:,:)   
+REAL,    ALLOCATABLE   :: ZICE_CLD_WGT   (:,:)   
+REAL,    ALLOCATABLE   :: ZDUM1          (:,:,:)
+REAL,    ALLOCATABLE   :: ZDUM2          (:,:,:)
+REAL,    ALLOCATABLE   :: ZDUM3          (:,:,:)
+REAL,    ALLOCATABLE   :: ZDUM4          (:,:,:)
+REAL,    ALLOCATABLE   :: ZDUM5          (:,:,:)
+
+REAL,    ALLOCATABLE   :: PRS_OUT        (:,:,:,:) 
+REAL,    ALLOCATABLE   :: PSRCS_OUT      (:,:,:)   
+REAL,    ALLOCATABLE   :: PCLDFR_OUT     (:,:,:)   
+REAL,    ALLOCATABLE   :: PHLC_HRC_OUT   (:,:,:)   
+REAL,    ALLOCATABLE   :: PHLC_HCF_OUT   (:,:,:)   
+REAL,    ALLOCATABLE   :: PHLI_HRI_OUT   (:,:,:)   
+REAL,    ALLOCATABLE   :: PHLI_HCF_OUT   (:,:,:)   
 
 INTEGER :: NPROMA, NGPBLKS, NFLEVG
 INTEGER :: IBL, JLON, JLEV
@@ -108,8 +108,8 @@ CALL GETDATA_ICE_ADJUST (NPROMA, NGPBLKS, NFLEVG, PRHODJ, PEXNREF, PRHODREF, PPA
 & PHLI_HRI, PHLI_HCF, ZRS, ZZZ, PRS_OUT, PSRCS_OUT, PCLDFR_OUT, PHLC_HRC_OUT, PHLC_HCF_OUT,       &
 & PHLI_HRI_OUT, PHLI_HCF_OUT, LLVERBOSE)
 
-KLEV = SIZE (PRS, 3)
-KRR  = SIZE (PRS, 4)
+KLEV = SIZE (PRS, 2)
+KRR  = SIZE (PRS, 3)
 
 IF (LLVERBOSE) PRINT *, " KLEV = ", KLEV, " KRR = ", KRR
 
@@ -206,22 +206,22 @@ JBLK2 =      (NGPBLKS * (ITID+1)) / NTID
 
     CALL ICE_ADJUST (D, PHYEX%CST, PHYEX%RAIN_ICE_PARAMN, PHYEX%NEBN, PHYEX%TURBN, PHYEX%PARAM_ICEN, &
     & PHYEX%MISC%TBUCONF, PHYEX%MISC%KRR, PHYEX%MISC%HBUNAME,     &
-    & PHYEX%MISC%PTSTEP, ZSIGQSAT (:, :, IBL), PRHODJ=PRHODJ (:, :, :, IBL), &
-    & PEXNREF=PEXNREF (:, :, :, IBL),                                                                                           &
-    & PRHODREF=PRHODREF (:, :, :, IBL), PSIGS=PSIGS (:, :, :, IBL), LMFCONV=PHYEX%MISC%LMFCONV, PMFCONV=PMFCONV (:, :, :, IBL), &
-    & PPABST=PPABSM (:, :, :, IBL), PZZ=ZZZ (:, :, :, IBL), PEXN=PEXNREF (:, :, :, IBL), PCF_MF=PCF_MF (:, :, :, IBL),          &
-    & PRC_MF=PRC_MF (:, :, :, IBL), PRI_MF=PRI_MF  (:, :, :, IBL),                                                              &
-    & PICLDFR=ZDUM1(:, :, :, IBL), PWCLDFR=ZDUM2(:, :, :, IBL), PSSIO=ZDUM3(:, :, :, IBL),                                      &
-    & PSSIU=ZDUM4(:, :, :, IBL), PIFR=ZDUM5(:, :, :, IBL),                                                                      &
-    & PRV=ZRS(:, :, :, 1, IBL), PRC=ZRS(:, :, :, 2, IBL),                                                                       &
-    & PRVS=PRS(:, :, :, 1, IBL), PRCS=PRS(:, :, :, 2, IBL), PTH=ZRS(:, :, :, 0, IBL), PTHS=PTHS (:, :, :, IBL),                 &
+    & PHYEX%MISC%PTSTEP, ZSIGQSAT (:, IBL), PRHODJ=PRHODJ (:, :, IBL), &
+    & PEXNREF=PEXNREF (:, :, IBL),                                                                                           &
+    & PRHODREF=PRHODREF (:, :, IBL), PSIGS=PSIGS (:, :, IBL), LMFCONV=PHYEX%MISC%LMFCONV, PMFCONV=PMFCONV (:, :, IBL), &
+    & PPABST=PPABSM (:, :, IBL), PZZ=ZZZ (:, :, IBL), PEXN=PEXNREF (:, :, IBL), PCF_MF=PCF_MF (:, :, IBL),          &
+    & PRC_MF=PRC_MF (:, :, IBL), PRI_MF=PRI_MF  (:, :, IBL),                                                              &
+    & PICLDFR=ZDUM1(:, :, IBL), PWCLDFR=ZDUM2(:, :, IBL), PSSIO=ZDUM3(:, :, IBL),                                      &
+    & PSSIU=ZDUM4(:, :, IBL), PIFR=ZDUM5(:, :, IBL),                                                                      &
+    & PRV=ZRS(:, :, 1, IBL), PRC=ZRS(:, :, 2, IBL),                                                                       &
+    & PRVS=PRS(:, :, 1, IBL), PRCS=PRS(:, :, 2, IBL), PTH=ZRS(:, :, 0, IBL), PTHS=PTHS (:, :, IBL),                 &
     & OCOMPUTE_SRC=PHYEX%MISC%OCOMPUTE_SRC,                                                                                     &
-    & PSRCS=PSRCS (:, :, :, IBL), PCLDFR=PCLDFR (:, :, :, IBL), PRR=ZRS(:, :, :, 3, IBL), PRI=ZRS(:, :, :, 4, IBL),             &
-    & PRIS=PRS(:, :, :, 4, IBL), PRS=ZRS(:, :, :, 5, IBL), PRG=ZRS(:, :, :, 6, IBL), &
+    & PSRCS=PSRCS (:, :, IBL), PCLDFR=PCLDFR (:, :, IBL), PRR=ZRS(:, :, 3, IBL), PRI=ZRS(:, :, 4, IBL),             &
+    & PRIS=PRS(:, :, 4, IBL), PRS=ZRS(:, :, 5, IBL), PRG=ZRS(:, :, 6, IBL), &
     & TBUDGETS=PHYEX%MISC%YLBUDGET, KBUDGETS=PHYEX%MISC%NBUDGET,    &
-    & PICE_CLD_WGT=ZICE_CLD_WGT(:, :, IBL),                                                                                     &
-    & PHLC_HRC=PHLC_HRC(:, :, :, IBL), PHLC_HCF=PHLC_HCF(:, :, :, IBL),                                                         &
-    & PHLI_HRI=PHLI_HRI(:, :, :, IBL), PHLI_HCF=PHLI_HCF(:, :, :, IBL)                                                          &
+    & PICE_CLD_WGT=ZICE_CLD_WGT(:, IBL),                                                                                     &
+    & PHLC_HRC=PHLC_HRC(:, :, IBL), PHLC_HCF=PHLC_HCF(:, :, IBL),                                                         &
+    & PHLI_HRI=PHLI_HRI(:, :, IBL), PHLI_HCF=PHLI_HCF(:, :, IBL)                                                          &
 #ifdef USE_STACK
     & , YDSTACK=YLSTACK &
 #endif
@@ -263,12 +263,12 @@ PRINT *, " ZTC = ", ZTC, ZTC / REAL (NPROMA*NGPBLKS*NTIME)
 IF (LLCHECK .OR. LLSTAT .OR. LLCHECKDIFF) THEN
   DO IBL = IBLOCK1, IBLOCK2
     PRINT *, " IBL = ", IBL
-    CALL DIFF ("PSRCS",    PSRCS_OUT    (:,:,:,IBL), PSRCS    (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PCLDFR",   PCLDFR_OUT   (:,:,:,IBL), PCLDFR   (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PHLC_HRC", PHLC_HRC_OUT (:,:,:,IBL), PHLC_HRC (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PHLC_HCF", PHLC_HCF_OUT (:,:,:,IBL), PHLC_HCF (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PHLI_HRI", PHLI_HRI_OUT (:,:,:,IBL), PHLI_HRI (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PHLI_HCF", PHLI_HCF_OUT (:,:,:,IBL), PHLI_HCF (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PSRCS",    PSRCS_OUT    (:,:,IBL), PSRCS    (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PCLDFR",   PCLDFR_OUT   (:,:,IBL), PCLDFR   (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PHLC_HRC", PHLC_HRC_OUT (:,:,IBL), PHLC_HRC (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PHLC_HCF", PHLC_HCF_OUT (:,:,IBL), PHLC_HCF (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PHLI_HRI", PHLI_HRI_OUT (:,:,IBL), PHLI_HRI (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PHLI_HCF", PHLI_HCF_OUT (:,:,IBL), PHLI_HCF (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
   ENDDO
 ENDIF
 
diff --git a/src/testprogs/rain_ice/getdata_rain_ice_mod.F90 b/src/testprogs/rain_ice/getdata_rain_ice_mod.F90
index 337d9a7d07bfb29fa3852eb284885408bc04103c..5fd1e264240bfa5eca6df6aa3db1e7d0af4e17d9 100644
--- a/src/testprogs/rain_ice/getdata_rain_ice_mod.F90
+++ b/src/testprogs/rain_ice/getdata_rain_ice_mod.F90
@@ -22,75 +22,75 @@ INTEGER      :: KDUM
 
 LOGICAL, INTENT(IN) :: LDVERBOSE
 
-LOGICAL, INTENT(OUT), ALLOCATABLE:: LLMICRO_B      (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PEXNREF_B      (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDZZ_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRHODJ_B       (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PRHODREF_B     (:,:,:,:)   
-REAL, INTENT(OUT), ALLOCATABLE   :: PEXNREF2_B     (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PPABSM_B       (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PCIT_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PCLDFR_B       (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PHLC_HRC_B     (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PHLC_HCF_B     (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PHLI_HRI_B     (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PHLI_HCF_B     (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTHT_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRT_B          (:,:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTHS_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRS_B          (:,:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PSIGS_B        (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PSEA_B         (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTOWN_B        (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PCIT_OUT_B     (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRS_OUT_B      (:,:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZINPRC_B       (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZINPRC_OUT_B   (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PINPRR_B       (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PINPRR_OUT_B   (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PEVAP_B        (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PEVAP_OUT_B    (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PINPRS_B       (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PINPRS_OUT_B   (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PINPRG_B       (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PINPRG_OUT_B   (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZINDEP_B       (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZINDEP_OUT_B   (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZRAINFR_B      (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZRAINFR_OUT_B  (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PFPR_B         (:,:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PFPR_OUT_B     (:,:,:,:,:)
-
-LOGICAL, ALLOCATABLE   :: LLMICRO        (:,:,:,:)
-REAL, ALLOCATABLE   :: PEXNREF        (:,:,:,:)
-REAL, ALLOCATABLE   :: PDZZ           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRHODJ         (:,:,:,:)   
-REAL, ALLOCATABLE   :: PRHODREF       (:,:,:,:)   
-REAL, ALLOCATABLE   :: PEXNREF2       (:,:,:,:)
-REAL, ALLOCATABLE   :: PPABSM         (:,:,:,:)   
-REAL, ALLOCATABLE   :: PCIT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PCLDFR         (:,:,:,:)
-REAL, ALLOCATABLE   :: PHLC_HRC       (:,:,:,:)
-REAL, ALLOCATABLE   :: PHLC_HCF       (:,:,:,:)
-REAL, ALLOCATABLE   :: PHLI_HRI       (:,:,:,:)
-REAL, ALLOCATABLE   :: PHLI_HCF       (:,:,:,:)
-REAL, ALLOCATABLE   :: PTHT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRT            (:,:,:,:,:)
-REAL, ALLOCATABLE   :: PTHS           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRS            (:,:,:,:,:)
-REAL, ALLOCATABLE   :: PSIGS          (:,:,:,:)
-REAL, ALLOCATABLE   :: PSEA           (:,:,:)
-REAL, ALLOCATABLE   :: PTOWN          (:,:,:)
-REAL, ALLOCATABLE   :: PCIT_OUT       (:,:,:,:)
-REAL, ALLOCATABLE   :: PRS_OUT        (:,:,:,:,:)
-REAL, ALLOCATABLE   :: ZINPRC_OUT     (:,:,:)
-REAL, ALLOCATABLE   :: PINPRR_OUT     (:,:,:)
-REAL, ALLOCATABLE   :: PEVAP_OUT      (:,:,:,:)
-REAL, ALLOCATABLE   :: PINPRS_OUT     (:,:,:)
-REAL, ALLOCATABLE   :: PINPRG_OUT     (:,:,:)
-REAL, ALLOCATABLE   :: ZINDEP_OUT     (:,:,:)
-REAL, ALLOCATABLE   :: ZRAINFR_OUT    (:,:,:,:)
-REAL, ALLOCATABLE   :: PFPR_OUT       (:,:,:,:,:)
+LOGICAL, INTENT(OUT), ALLOCATABLE:: LLMICRO_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PEXNREF_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDZZ_B         (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRHODJ_B       (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PRHODREF_B     (:,:,:)   
+REAL, INTENT(OUT), ALLOCATABLE   :: PEXNREF2_B     (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PPABSM_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PCIT_B         (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PCLDFR_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PHLC_HRC_B     (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PHLC_HCF_B     (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PHLI_HRI_B     (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PHLI_HCF_B     (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTHT_B         (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRT_B          (:,:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTHS_B         (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRS_B          (:,:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PSIGS_B        (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PSEA_B         (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTOWN_B        (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PCIT_OUT_B     (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRS_OUT_B      (:,:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZINPRC_B       (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZINPRC_OUT_B   (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PINPRR_B       (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PINPRR_OUT_B   (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PEVAP_B        (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PEVAP_OUT_B    (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PINPRS_B       (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PINPRS_OUT_B   (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PINPRG_B       (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PINPRG_OUT_B   (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZINDEP_B       (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZINDEP_OUT_B   (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZRAINFR_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZRAINFR_OUT_B  (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PFPR_B         (:,:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PFPR_OUT_B     (:,:,:,:)
+
+LOGICAL, ALLOCATABLE   :: LLMICRO     (:,:,:)
+REAL, ALLOCATABLE   :: PEXNREF        (:,:,:)
+REAL, ALLOCATABLE   :: PDZZ           (:,:,:)
+REAL, ALLOCATABLE   :: PRHODJ         (:,:,:)   
+REAL, ALLOCATABLE   :: PRHODREF       (:,:,:)   
+REAL, ALLOCATABLE   :: PEXNREF2       (:,:,:)
+REAL, ALLOCATABLE   :: PPABSM         (:,:,:)   
+REAL, ALLOCATABLE   :: PCIT           (:,:,:)
+REAL, ALLOCATABLE   :: PCLDFR         (:,:,:)
+REAL, ALLOCATABLE   :: PHLC_HRC       (:,:,:)
+REAL, ALLOCATABLE   :: PHLC_HCF       (:,:,:)
+REAL, ALLOCATABLE   :: PHLI_HRI       (:,:,:)
+REAL, ALLOCATABLE   :: PHLI_HCF       (:,:,:)
+REAL, ALLOCATABLE   :: PTHT           (:,:,:)
+REAL, ALLOCATABLE   :: PRT            (:,:,:,:)
+REAL, ALLOCATABLE   :: PTHS           (:,:,:)
+REAL, ALLOCATABLE   :: PRS            (:,:,:,:)
+REAL, ALLOCATABLE   :: PSIGS          (:,:,:)
+REAL, ALLOCATABLE   :: PSEA           (:,:)
+REAL, ALLOCATABLE   :: PTOWN          (:,:)
+REAL, ALLOCATABLE   :: PCIT_OUT       (:,:,:)
+REAL, ALLOCATABLE   :: PRS_OUT        (:,:,:,:)
+REAL, ALLOCATABLE   :: ZINPRC_OUT     (:,:)
+REAL, ALLOCATABLE   :: PINPRR_OUT     (:,:)
+REAL, ALLOCATABLE   :: PEVAP_OUT      (:,:,:)
+REAL, ALLOCATABLE   :: PINPRS_OUT     (:,:)
+REAL, ALLOCATABLE   :: PINPRG_OUT     (:,:)
+REAL, ALLOCATABLE   :: ZINDEP_OUT     (:,:)
+REAL, ALLOCATABLE   :: ZRAINFR_OUT    (:,:,:)
+REAL, ALLOCATABLE   :: PFPR_OUT       (:,:,:,:)
 
 
 INTEGER :: IPROMA, ISIZE
@@ -115,44 +115,44 @@ CLOSE (IFILE)
 
 IF (NFLEVG < 0) NFLEVG = KLEV
 
-ALLOCATE (LLMICRO_B       (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PEXNREF_B       (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PDZZ_B          (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRHODJ_B        (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRHODREF_B      (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PEXNREF2_B      (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PPABSM_B        (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PCIT_B          (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PCLDFR_B        (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PHLC_HRC_B      (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PHLC_HCF_B      (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PHLI_HRI_B      (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PHLI_HCF_B      (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PTHT_B          (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRT_B           (NPROMA,1,NFLEVG,KRR,NGPBLKS))
-ALLOCATE (PTHS_B          (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRS_B           (NPROMA,1,NFLEVG,KRR,NGPBLKS))
-ALLOCATE (PSIGS_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PSEA_B          (NPROMA,1,NGPBLKS))
-ALLOCATE (PTOWN_B         (NPROMA,1,NGPBLKS))
-ALLOCATE (PCIT_OUT_B      (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRS_OUT_B       (NPROMA,1,NFLEVG,KRR,NGPBLKS))
-ALLOCATE (ZINPRC_B        (NPROMA,1,NGPBLKS))
-ALLOCATE (ZINPRC_OUT_B    (NPROMA,1,NGPBLKS))
-ALLOCATE (PINPRR_B        (NPROMA,1,NGPBLKS))
-ALLOCATE (PINPRR_OUT_B    (NPROMA,1,NGPBLKS))
-ALLOCATE (PEVAP_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PEVAP_OUT_B     (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PINPRS_B        (NPROMA,1,NGPBLKS))
-ALLOCATE (PINPRS_OUT_B    (NPROMA,1,NGPBLKS))
-ALLOCATE (PINPRG_B        (NPROMA,1,NGPBLKS))
-ALLOCATE (PINPRG_OUT_B    (NPROMA,1,NGPBLKS))
-ALLOCATE (ZINDEP_B        (NPROMA,1,NGPBLKS))
-ALLOCATE (ZINDEP_OUT_B    (NPROMA,1,NGPBLKS))
-ALLOCATE (ZRAINFR_B       (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZRAINFR_OUT_B   (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PFPR_B          (NPROMA,1,NFLEVG,KRR,NGPBLKS))
-ALLOCATE (PFPR_OUT_B      (NPROMA,1,NFLEVG,KRR,NGPBLKS))
+ALLOCATE (LLMICRO_B       (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PEXNREF_B       (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PDZZ_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRHODJ_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRHODREF_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PEXNREF2_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PPABSM_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PCIT_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PCLDFR_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PHLC_HRC_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PHLC_HCF_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PHLI_HRI_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PHLI_HCF_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PTHT_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRT_B           (NPROMA,NFLEVG,KRR,NGPBLKS))
+ALLOCATE (PTHS_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRS_B           (NPROMA,NFLEVG,KRR,NGPBLKS))
+ALLOCATE (PSIGS_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PSEA_B          (NPROMA,NGPBLKS))
+ALLOCATE (PTOWN_B         (NPROMA,NGPBLKS))
+ALLOCATE (PCIT_OUT_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRS_OUT_B       (NPROMA,NFLEVG,KRR,NGPBLKS))
+ALLOCATE (ZINPRC_B        (NPROMA,NGPBLKS))
+ALLOCATE (ZINPRC_OUT_B    (NPROMA,NGPBLKS))
+ALLOCATE (PINPRR_B        (NPROMA,NGPBLKS))
+ALLOCATE (PINPRR_OUT_B    (NPROMA,NGPBLKS))
+ALLOCATE (PEVAP_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PEVAP_OUT_B     (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PINPRS_B        (NPROMA,NGPBLKS))
+ALLOCATE (PINPRS_OUT_B    (NPROMA,NGPBLKS))
+ALLOCATE (PINPRG_B        (NPROMA,NGPBLKS))
+ALLOCATE (PINPRG_OUT_B    (NPROMA,NGPBLKS))
+ALLOCATE (ZINDEP_B        (NPROMA,NGPBLKS))
+ALLOCATE (ZINDEP_OUT_B    (NPROMA,NGPBLKS))
+ALLOCATE (ZRAINFR_B       (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZRAINFR_OUT_B   (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PFPR_B          (NPROMA,NFLEVG,KRR,NGPBLKS))
+ALLOCATE (PFPR_OUT_B      (NPROMA,NFLEVG,KRR,NGPBLKS))
 
 
 !CALL SET (LLMICRO_B     )
@@ -206,72 +206,72 @@ DO WHILE(LLEXIST)
   READ (IFILE) KLON, KDUM, KLEV, KRR
 
   IF (IBL == 1) THEN
-    ALLOCATE (LLMICRO      (NGPTOT,1,KLEV,1))
-    ALLOCATE (PEXNREF      (NGPTOT,1,KLEV,1))
-    ALLOCATE (PDZZ         (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRHODJ       (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRHODREF     (NGPTOT,1,KLEV,1))
-    ALLOCATE (PEXNREF2     (NGPTOT,1,KLEV,1))
-    ALLOCATE (PPABSM       (NGPTOT,1,KLEV,1))
-    ALLOCATE (PCIT         (NGPTOT,1,KLEV,1))
-    ALLOCATE (PCLDFR       (NGPTOT,1,KLEV,1))
-    ALLOCATE (PHLC_HRC     (NGPTOT,1,KLEV,1))
-    ALLOCATE (PHLC_HCF     (NGPTOT,1,KLEV,1))
-    ALLOCATE (PHLI_HRI     (NGPTOT,1,KLEV,1))
-    ALLOCATE (PHLI_HCF     (NGPTOT,1,KLEV,1))
-    ALLOCATE (PTHT         (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRT          (NGPTOT,1,KLEV,KRR,1))
-    ALLOCATE (PTHS         (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRS          (NGPTOT,1,KLEV,KRR,1))
-    ALLOCATE (PSIGS        (NGPTOT,1,KLEV,1))
-    ALLOCATE (PSEA         (NGPTOT,1,1))
-    ALLOCATE (PTOWN        (NGPTOT,1,1))
-    ALLOCATE (PCIT_OUT     (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRS_OUT      (NGPTOT,1,KLEV,KRR,1))
-    ALLOCATE (ZINPRC_OUT   (NGPTOT,1,1))
-    ALLOCATE (PINPRR_OUT   (NGPTOT,1,1))
-    ALLOCATE (PEVAP_OUT    (NGPTOT,1,KLEV,1))
-    ALLOCATE (PINPRS_OUT   (NGPTOT,1,1))
-    ALLOCATE (PINPRG_OUT   (NGPTOT,1,1))
-    ALLOCATE (ZINDEP_OUT   (NGPTOT,1,1))
-    ALLOCATE (ZRAINFR_OUT  (NGPTOT,1,KLEV,1))
-    ALLOCATE (PFPR_OUT     (NGPTOT,1,KLEV,KRR,1))
+    ALLOCATE (LLMICRO      (NGPTOT,KLEV,1))
+    ALLOCATE (PEXNREF      (NGPTOT,KLEV,1))
+    ALLOCATE (PDZZ         (NGPTOT,KLEV,1))
+    ALLOCATE (PRHODJ       (NGPTOT,KLEV,1))
+    ALLOCATE (PRHODREF     (NGPTOT,KLEV,1))
+    ALLOCATE (PEXNREF2     (NGPTOT,KLEV,1))
+    ALLOCATE (PPABSM       (NGPTOT,KLEV,1))
+    ALLOCATE (PCIT         (NGPTOT,KLEV,1))
+    ALLOCATE (PCLDFR       (NGPTOT,KLEV,1))
+    ALLOCATE (PHLC_HRC     (NGPTOT,KLEV,1))
+    ALLOCATE (PHLC_HCF     (NGPTOT,KLEV,1))
+    ALLOCATE (PHLI_HRI     (NGPTOT,KLEV,1))
+    ALLOCATE (PHLI_HCF     (NGPTOT,KLEV,1))
+    ALLOCATE (PTHT         (NGPTOT,KLEV,1))
+    ALLOCATE (PRT          (NGPTOT,KLEV,KRR,1))
+    ALLOCATE (PTHS         (NGPTOT,KLEV,1))
+    ALLOCATE (PRS          (NGPTOT,KLEV,KRR,1))
+    ALLOCATE (PSIGS        (NGPTOT,KLEV,1))
+    ALLOCATE (PSEA         (NGPTOT,1))
+    ALLOCATE (PTOWN        (NGPTOT,1))
+    ALLOCATE (PCIT_OUT     (NGPTOT,KLEV,1))
+    ALLOCATE (PRS_OUT      (NGPTOT,KLEV,KRR,1))
+    ALLOCATE (ZINPRC_OUT   (NGPTOT,1))
+    ALLOCATE (PINPRR_OUT   (NGPTOT,1))
+    ALLOCATE (PEVAP_OUT    (NGPTOT,KLEV,1))
+    ALLOCATE (PINPRS_OUT   (NGPTOT,1))
+    ALLOCATE (PINPRG_OUT   (NGPTOT,1))
+    ALLOCATE (ZINDEP_OUT   (NGPTOT,1))
+    ALLOCATE (ZRAINFR_OUT  (NGPTOT,KLEV,1))
+    ALLOCATE (PFPR_OUT     (NGPTOT,KLEV,KRR,1))
   ENDIF
 
   IF (IOFF+KLON > NGPTOT) THEN
     EXIT
   ENDIF
 
-  READ (IFILE) LLMICRO      (IOFF+1:IOFF+KLON,:,:,1)
-  READ (IFILE) PEXNREF      (IOFF+1:IOFF+KLON,:,:,1)
-  READ (IFILE) PDZZ         (IOFF+1:IOFF+KLON,:,:,1)
-  READ (IFILE) PRHODJ       (IOFF+1:IOFF+KLON,:,:,1) 
-  READ (IFILE) PRHODREF     (IOFF+1:IOFF+KLON,:,:,1) 
-  READ (IFILE) PEXNREF2     (IOFF+1:IOFF+KLON,:,:,1)
-  READ (IFILE) PPABSM       (IOFF+1:IOFF+KLON,:,:,1)
-  READ (IFILE) PCIT         (IOFF+1:IOFF+KLON,:,:,1)
-  READ (IFILE) PCLDFR       (IOFF+1:IOFF+KLON,:,:,1)
-  READ (IFILE) PHLC_HRC     (IOFF+1:IOFF+KLON,:,:,1)
-  READ (IFILE) PHLC_HCF     (IOFF+1:IOFF+KLON,:,:,1)
-  READ (IFILE) PHLI_HRI     (IOFF+1:IOFF+KLON,:,:,1)
-  READ (IFILE) PHLI_HCF     (IOFF+1:IOFF+KLON,:,:,1)
-  READ (IFILE) PTHT         (IOFF+1:IOFF+KLON,:,:,1)
-  READ (IFILE) PRT          (IOFF+1:IOFF+KLON,:,:,:,1)
-  READ (IFILE) PTHS         (IOFF+1:IOFF+KLON,:,:,1)
-  READ (IFILE) PRS          (IOFF+1:IOFF+KLON,:,:,:,1)
-  READ (IFILE) PSIGS        (IOFF+1:IOFF+KLON,:,:,1)
-  READ (IFILE) PSEA         (IOFF+1:IOFF+KLON,:,1)
-  READ (IFILE) PTOWN        (IOFF+1:IOFF+KLON,:,1)
-  READ (IFILE) PCIT_OUT     (IOFF+1:IOFF+KLON,:,:,1)
-  READ (IFILE) PRS_OUT      (IOFF+1:IOFF+KLON,:,:,:,1)
-  READ (IFILE) ZINPRC_OUT   (IOFF+1:IOFF+KLON,:,1)
-  READ (IFILE) PINPRR_OUT   (IOFF+1:IOFF+KLON,:,1)
-  READ (IFILE) PEVAP_OUT    (IOFF+1:IOFF+KLON,:,:,1)
-  READ (IFILE) PINPRS_OUT   (IOFF+1:IOFF+KLON,:,1)
-  READ (IFILE) PINPRG_OUT   (IOFF+1:IOFF+KLON,:,1)
-  READ (IFILE) ZINDEP_OUT   (IOFF+1:IOFF+KLON,:,1)
-  READ (IFILE) ZRAINFR_OUT  (IOFF+1:IOFF+KLON,:,:,1)
-  READ (IFILE) PFPR_OUT     (IOFF+1:IOFF+KLON,:,:,:,1)
+  READ (IFILE) LLMICRO      (IOFF+1:IOFF+KLON,:,1)
+  READ (IFILE) PEXNREF      (IOFF+1:IOFF+KLON,:,1)
+  READ (IFILE) PDZZ         (IOFF+1:IOFF+KLON,:,1)
+  READ (IFILE) PRHODJ       (IOFF+1:IOFF+KLON,:,1) 
+  READ (IFILE) PRHODREF     (IOFF+1:IOFF+KLON,:,1) 
+  READ (IFILE) PEXNREF2     (IOFF+1:IOFF+KLON,:,1)
+  READ (IFILE) PPABSM       (IOFF+1:IOFF+KLON,:,1)
+  READ (IFILE) PCIT         (IOFF+1:IOFF+KLON,:,1)
+  READ (IFILE) PCLDFR       (IOFF+1:IOFF+KLON,:,1)
+  READ (IFILE) PHLC_HRC     (IOFF+1:IOFF+KLON,:,1)
+  READ (IFILE) PHLC_HCF     (IOFF+1:IOFF+KLON,:,1)
+  READ (IFILE) PHLI_HRI     (IOFF+1:IOFF+KLON,:,1)
+  READ (IFILE) PHLI_HCF     (IOFF+1:IOFF+KLON,:,1)
+  READ (IFILE) PTHT         (IOFF+1:IOFF+KLON,:,1)
+  READ (IFILE) PRT          (IOFF+1:IOFF+KLON,:,:,1)
+  READ (IFILE) PTHS         (IOFF+1:IOFF+KLON,:,1)
+  READ (IFILE) PRS          (IOFF+1:IOFF+KLON,:,:,1)
+  READ (IFILE) PSIGS        (IOFF+1:IOFF+KLON,:,1)
+  READ (IFILE) PSEA         (IOFF+1:IOFF+KLON,1)
+  READ (IFILE) PTOWN        (IOFF+1:IOFF+KLON,1)
+  READ (IFILE) PCIT_OUT     (IOFF+1:IOFF+KLON,:,1)
+  READ (IFILE) PRS_OUT      (IOFF+1:IOFF+KLON,:,:,1)
+  READ (IFILE) ZINPRC_OUT   (IOFF+1:IOFF+KLON,1)
+  READ (IFILE) PINPRR_OUT   (IOFF+1:IOFF+KLON,1)
+  READ (IFILE) PEVAP_OUT    (IOFF+1:IOFF+KLON,:,1)
+  READ (IFILE) PINPRS_OUT   (IOFF+1:IOFF+KLON,1)
+  READ (IFILE) PINPRG_OUT   (IOFF+1:IOFF+KLON,1)
+  READ (IFILE) ZINDEP_OUT   (IOFF+1:IOFF+KLON,1)
+  READ (IFILE) ZRAINFR_OUT  (IOFF+1:IOFF+KLON,:,1)
+  READ (IFILE) PFPR_OUT     (IOFF+1:IOFF+KLON,:,:,1)
   
   CLOSE (IFILE)
 
@@ -313,36 +313,36 @@ IF (NFLEVG /= KLEV) THEN
 
 ENDIF
 
-CALL REPLICATE (IOFF, LLMICRO      (:, :, :, 1))
-CALL REPLICATE (IOFF, PEXNREF      (:, :, :, 1))
-CALL REPLICATE (IOFF, PDZZ         (:, :, :, 1))
-CALL REPLICATE (IOFF, PRHODJ       (:, :, :, 1))
-CALL REPLICATE (IOFF, PRHODREF     (:, :, :, 1))
-CALL REPLICATE (IOFF, PEXNREF2     (:, :, :, 1))
-CALL REPLICATE (IOFF, PPABSM       (:, :, :, 1))
-CALL REPLICATE (IOFF, PCIT         (:, :, :, 1))
-CALL REPLICATE (IOFF, PCLDFR       (:, :, :, 1))
-CALL REPLICATE (IOFF, PHLC_HRC     (:, :, :, 1))
-CALL REPLICATE (IOFF, PHLC_HCF     (:, :, :, 1))
-CALL REPLICATE (IOFF, PHLI_HRI     (:, :, :, 1))
-CALL REPLICATE (IOFF, PHLI_HCF     (:, :, :, 1))
-CALL REPLICATE (IOFF, PTHT         (:, :, :, 1))
-CALL REPLICATE (IOFF, PRT          (:, :, :, :, 1))
-CALL REPLICATE (IOFF, PTHS         (:, :, :, 1))
-CALL REPLICATE (IOFF, PRS          (:, :, :, :, 1))
-CALL REPLICATE (IOFF, PSIGS        (:, :, :, 1))
-CALL REPLICATE (IOFF, PSEA         (:, :, 1))
-CALL REPLICATE (IOFF, PTOWN        (:, :, 1))
-CALL REPLICATE (IOFF, PCIT_OUT     (:, :, :, 1))
-CALL REPLICATE (IOFF, PRS_OUT      (:, :, :, :, 1))
-CALL REPLICATE (IOFF, ZINPRC_OUT   (:, :, 1))
-CALL REPLICATE (IOFF, PINPRR_OUT   (:, :, 1))
-CALL REPLICATE (IOFF, PEVAP_OUT    (:, :, :, 1))
-CALL REPLICATE (IOFF, PINPRS_OUT   (:, :, 1))
-CALL REPLICATE (IOFF, PINPRG_OUT   (:, :, 1))
-CALL REPLICATE (IOFF, ZINDEP_OUT   (:, :, 1))
-CALL REPLICATE (IOFF, ZRAINFR_OUT  (:, :, :, 1))
-CALL REPLICATE (IOFF, PFPR_OUT     (:, :, :, :, 1))
+CALL REPLICATE (IOFF, LLMICRO      (:, :, 1))
+CALL REPLICATE (IOFF, PEXNREF      (:, :, 1))
+CALL REPLICATE (IOFF, PDZZ         (:, :, 1))
+CALL REPLICATE (IOFF, PRHODJ       (:, :, 1))
+CALL REPLICATE (IOFF, PRHODREF     (:, :, 1))
+CALL REPLICATE (IOFF, PEXNREF2     (:, :, 1))
+CALL REPLICATE (IOFF, PPABSM       (:, :, 1))
+CALL REPLICATE (IOFF, PCIT         (:, :, 1))
+CALL REPLICATE (IOFF, PCLDFR       (:, :, 1))
+CALL REPLICATE (IOFF, PHLC_HRC     (:, :, 1))
+CALL REPLICATE (IOFF, PHLC_HCF     (:, :, 1))
+CALL REPLICATE (IOFF, PHLI_HRI     (:, :, 1))
+CALL REPLICATE (IOFF, PHLI_HCF     (:, :, 1))
+CALL REPLICATE (IOFF, PTHT         (:, :, 1))
+CALL REPLICATE (IOFF, PRT          (:, :, :, 1))
+CALL REPLICATE (IOFF, PTHS         (:, :, 1))
+CALL REPLICATE (IOFF, PRS          (:, :, :, 1))
+CALL REPLICATE (IOFF, PSIGS        (:, :, 1))
+CALL REPLICATE (IOFF, PSEA         (:, 1))
+CALL REPLICATE (IOFF, PTOWN        (:, 1))
+CALL REPLICATE (IOFF, PCIT_OUT     (:, :, 1))
+CALL REPLICATE (IOFF, PRS_OUT      (:, :, :, 1))
+CALL REPLICATE (IOFF, ZINPRC_OUT   (:, 1))
+CALL REPLICATE (IOFF, PINPRR_OUT   (:, 1))
+CALL REPLICATE (IOFF, PEVAP_OUT    (:, :, 1))
+CALL REPLICATE (IOFF, PINPRS_OUT   (:, 1))
+CALL REPLICATE (IOFF, PINPRG_OUT   (:, 1))
+CALL REPLICATE (IOFF, ZINDEP_OUT   (:, 1))
+CALL REPLICATE (IOFF, ZRAINFR_OUT  (:, :, 1))
+CALL REPLICATE (IOFF, PFPR_OUT     (:, :, :, 1))
 
 
 CALL NPROMIZE (NPROMA, LLMICRO     ,  LLMICRO_B       )
diff --git a/src/testprogs/rain_ice/main_rain_ice.F90 b/src/testprogs/rain_ice/main_rain_ice.F90
index c8c007c6fe82275336c162082fa5d4863188ec1b..2dd27371f4979b6161503cf0b48cdb2ebbad37ef 100644
--- a/src/testprogs/rain_ice/main_rain_ice.F90
+++ b/src/testprogs/rain_ice/main_rain_ice.F90
@@ -15,34 +15,34 @@ IMPLICIT NONE
 INTEGER      :: KLEV
 INTEGER      :: KRR
 
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:,:) :: PRS, PRS_OUT
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:,:) :: PFPR, PFPR_OUT
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:,:) :: PRT   
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:)   :: PDZZ     
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:)   :: PRHODJ  
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:)   :: PRHODREF
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:)   :: PEXNREF 
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:)   :: PEXNREF2
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:)   :: PPABSM  
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:)   :: PHLC_HRC
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:)   :: PHLC_HCF
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:)   :: PHLI_HRI
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:)   :: PHLI_HCF
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:)   :: PTHT    
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:)   :: PSIGS   
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:)   :: PCLDFR  
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:)   :: PTHS    
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:)   :: PEVAP, PEVAP_OUT
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:)   :: PCIT, PCIT_OUT
-REAL,    ALLOCATABLE, DIMENSION(:,:,:)     :: PSEA  
-REAL,    ALLOCATABLE, DIMENSION(:,:,:)     :: PTOWN  
-REAL,    ALLOCATABLE, DIMENSION(:,:,:)     :: PINPRR, PINPRR_OUT
-REAL,    ALLOCATABLE, DIMENSION(:,:,:)     :: PINPRS, PINPRS_OUT
-REAL,    ALLOCATABLE, DIMENSION(:,:,:)     :: PINPRG, PINPRG_OUT
-REAL,    ALLOCATABLE, DIMENSION(:,:,:)     :: ZINDEP, ZINDEP_OUT
-REAL,    ALLOCATABLE, DIMENSION(:,:,:,:)   :: ZRAINFR, ZRAINFR_OUT
-REAL,    ALLOCATABLE, DIMENSION(:,:,:)     :: ZINPRC, ZINPRC_OUT
-LOGICAL, ALLOCATABLE, DIMENSION(:,:,:,:) :: LLMICRO 
+REAL,    ALLOCATABLE, DIMENSION(:,:,:,:) :: PRS, PRS_OUT
+REAL,    ALLOCATABLE, DIMENSION(:,:,:,:) :: PFPR, PFPR_OUT
+REAL,    ALLOCATABLE, DIMENSION(:,:,:,:) :: PRT   
+REAL,    ALLOCATABLE, DIMENSION(:,:,:)   :: PDZZ     
+REAL,    ALLOCATABLE, DIMENSION(:,:,:)   :: PRHODJ  
+REAL,    ALLOCATABLE, DIMENSION(:,:,:)   :: PRHODREF
+REAL,    ALLOCATABLE, DIMENSION(:,:,:)   :: PEXNREF 
+REAL,    ALLOCATABLE, DIMENSION(:,:,:)   :: PEXNREF2
+REAL,    ALLOCATABLE, DIMENSION(:,:,:)   :: PPABSM  
+REAL,    ALLOCATABLE, DIMENSION(:,:,:)   :: PHLC_HRC
+REAL,    ALLOCATABLE, DIMENSION(:,:,:)   :: PHLC_HCF
+REAL,    ALLOCATABLE, DIMENSION(:,:,:)   :: PHLI_HRI
+REAL,    ALLOCATABLE, DIMENSION(:,:,:)   :: PHLI_HCF
+REAL,    ALLOCATABLE, DIMENSION(:,:,:)   :: PTHT    
+REAL,    ALLOCATABLE, DIMENSION(:,:,:)   :: PSIGS   
+REAL,    ALLOCATABLE, DIMENSION(:,:,:)   :: PCLDFR  
+REAL,    ALLOCATABLE, DIMENSION(:,:,:)   :: PTHS    
+REAL,    ALLOCATABLE, DIMENSION(:,:,:)   :: PEVAP, PEVAP_OUT
+REAL,    ALLOCATABLE, DIMENSION(:,:,:)   :: PCIT, PCIT_OUT
+REAL,    ALLOCATABLE, DIMENSION(:,:)     :: PSEA  
+REAL,    ALLOCATABLE, DIMENSION(:,:)     :: PTOWN  
+REAL,    ALLOCATABLE, DIMENSION(:,:)     :: PINPRR, PINPRR_OUT
+REAL,    ALLOCATABLE, DIMENSION(:,:)     :: PINPRS, PINPRS_OUT
+REAL,    ALLOCATABLE, DIMENSION(:,:)     :: PINPRG, PINPRG_OUT
+REAL,    ALLOCATABLE, DIMENSION(:,:)     :: ZINDEP, ZINDEP_OUT
+REAL,    ALLOCATABLE, DIMENSION(:,:,:)   :: ZRAINFR, ZRAINFR_OUT
+REAL,    ALLOCATABLE, DIMENSION(:,:)     :: ZINPRC, ZINPRC_OUT
+LOGICAL, ALLOCATABLE, DIMENSION(:,:,:) :: LLMICRO 
 
 INTEGER :: NPROMA, NGPBLKS, NFLEVG
 INTEGER :: IBL, JLON, JLEV
@@ -102,8 +102,8 @@ CALL GETDATA_RAIN_ICE (NPROMA, NGPBLKS, NFLEVG, LLMICRO, PEXNREF, PDZZ, PRHODJ,
 &PRS, PSIGS, PSEA, PTOWN, PCIT_OUT, PRS_OUT, ZINPRC, ZINPRC_OUT, PINPRR, PINPRR_OUT, PEVAP, PEVAP_OUT, &
 &PINPRS, PINPRS_OUT, PINPRG, PINPRG_OUT, ZINDEP, ZINDEP_OUT, ZRAINFR, ZRAINFR_OUT, PFPR, PFPR_OUT, LLVERBOSE)
 
-KLEV = SIZE (PRS, 3)
-KRR  = SIZE (PRS, 4)
+KLEV = SIZE (PRS, 2)
+KRR  = SIZE (PRS, 3)
 
 IF (LLVERBOSE) PRINT *, " KLEV = ", KLEV, " KRR = ", KRR
 
@@ -201,23 +201,23 @@ JBLK2 =      (NGPBLKS * (ITID+1)) / NTID
 CALL RAIN_ICE (D, PHYEX%CST, PHYEX%PARAM_ICEN, PHYEX%RAIN_ICE_PARAMN, &
              & PHYEX%RAIN_ICE_DESCRN, PHYEX%MISC%TBUCONF, &
              & PTSTEP=PHYEX%MISC%PTSTEP, &
-             & KRR=PHYEX%MISC%KRR, PEXN=PEXNREF(:,:,:,IBL),            &
-             & PDZZ=PDZZ(:,:,:,IBL), PRHODJ=PRHODJ(:,:,:,IBL), PRHODREF=PRHODREF(:,:,:,IBL),PEXNREF=PEXNREF2(:,:,:,IBL),&
-             & PPABST=PPABSM(:,:,:,IBL), PCIT=PCIT(:,:,:,IBL), PCLDFR=PCLDFR(:,:,:,IBL),  &
-             & PHLC_HRC=PHLC_HRC(:,:,:,IBL), PHLC_HCF=PHLC_HCF(:,:,:,IBL), &
-             & PHLI_HRI=PHLI_HRI(:,:,:,IBL), PHLI_HCF=PHLI_HCF(:,:,:,IBL), &
-             & PTHT=PTHT(:,:,:,IBL),PRVT=PRT(:,:,:,1,IBL),PRCT=PRT(:,:,:,2,IBL), &
-             & PRRT=PRT(:,:,:,3,IBL), &
-             & PRIT=PRT(:,:,:,4,IBL), PRST=PRT(:,:,:,5,IBL), &
-             & PRGT=PRT(:,:,:,6,IBL),       &
-             & PTHS=PTHS(:,:,:,IBL), PRVS=PRS(:,:,:,1,IBL),PRCS=PRS(:,:,:,2,IBL),&
-             & PRRS=PRS(:,:,:,3,IBL),&
-             & PRIS=PRS(:,:,:,4,IBL),PRSS= PRS(:,:,:,5,IBL),PRGS= PRS(:,:,:,6,IBL),&
-             & PINPRC=ZINPRC(:,:,IBL),PINPRR=PINPRR(:,:,IBL),PEVAP3D=PEVAP(:,:,:,IBL),&
-             & PINPRS=PINPRS(:,:,IBL), PINPRG=PINPRG(:,:,IBL), PINDEP=ZINDEP(:,:,IBL), PRAINFR=ZRAINFR(:,:,:,IBL), &
-             & PSIGS=PSIGS(:,:,:,IBL), &
+             & KRR=PHYEX%MISC%KRR, PEXN=PEXNREF(:,:,IBL),            &
+             & PDZZ=PDZZ(:,:,IBL), PRHODJ=PRHODJ(:,:,IBL), PRHODREF=PRHODREF(:,:,IBL),PEXNREF=PEXNREF2(:,:,IBL),&
+             & PPABST=PPABSM(:,:,IBL), PCIT=PCIT(:,:,IBL), PCLDFR=PCLDFR(:,:,IBL),  &
+             & PHLC_HRC=PHLC_HRC(:,:,IBL), PHLC_HCF=PHLC_HCF(:,:,IBL), &
+             & PHLI_HRI=PHLI_HRI(:,:,IBL), PHLI_HCF=PHLI_HCF(:,:,IBL), &
+             & PTHT=PTHT(:,:,IBL),PRVT=PRT(:,:,1,IBL),PRCT=PRT(:,:,2,IBL), &
+             & PRRT=PRT(:,:,3,IBL), &
+             & PRIT=PRT(:,:,4,IBL), PRST=PRT(:,:,5,IBL), &
+             & PRGT=PRT(:,:,6,IBL),       &
+             & PTHS=PTHS(:,:,IBL), PRVS=PRS(:,:,1,IBL),PRCS=PRS(:,:,2,IBL),&
+             & PRRS=PRS(:,:,3,IBL),&
+             & PRIS=PRS(:,:,4,IBL),PRSS= PRS(:,:,5,IBL),PRGS= PRS(:,:,6,IBL),&
+             & PINPRC=ZINPRC(:,IBL),PINPRR=PINPRR(:,IBL),PEVAP3D=PEVAP(:,:,IBL),&
+             & PINPRS=PINPRS(:,IBL), PINPRG=PINPRG(:,IBL), PINDEP=ZINDEP(:,IBL), PRAINFR=ZRAINFR(:,:,IBL), &
+             & PSIGS=PSIGS(:,:,IBL), &
              & TBUDGETS=PHYEX%MISC%YLBUDGET, KBUDGETS=PHYEX%MISC%NBUDGET, &
-             & PSEA=PSEA(:,:,IBL), PTOWN=PTOWN(:,:,IBL), PFPR=PFPR(:,:,:,:,IBL))
+             & PSEA=PSEA(:,IBL), PTOWN=PTOWN(:,IBL), PFPR=PFPR(:,:,:,IBL))
 
 #ifdef _OPENACC
     ENDDO
@@ -257,20 +257,20 @@ IF (LLCHECK .OR. LLSTAT .OR. LLCHECKDIFF) THEN
     PRINT *, " IBL = ", IBL
     DO JRR=1, KRR
       WRITE (CLTEXT, '("PRS JRR=",I3.3)') JRR
-      CALL DIFF (CLTEXT,   PRS_OUT       (:,:,:,JRR,IBL), PRS      (:,:,:,JRR,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+      CALL DIFF (CLTEXT,   PRS_OUT       (:,:,JRR,IBL), PRS      (:,:,JRR,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
       IF(JRR>=2) THEN
         WRITE (CLTEXT, '("PFPR JRR=",I3.3)') JRR
-        CALL DIFF (CLTEXT, PFPR_OUT      (:,:,:,JRR,IBL), PFPR     (:,:,:,JRR,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+        CALL DIFF (CLTEXT, PFPR_OUT      (:,:,JRR,IBL), PFPR     (:,:,JRR,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
       ENDIF
     ENDDO
-    CALL DIFF ("PCIT",     PCIT_OUT      (:,:,:,IBL), PCIT     (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("ZINPRC",   ZINPRC_OUT    (:,:,IBL),   ZINPRC   (:,:,IBL)  , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PINPRRRS", PINPRR_OUT    (:,:,IBL),   PINPRR   (:,:,IBL)  , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PEVAP",    PEVAP_OUT     (:,:,:,IBL), PEVAP    (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PINPRS",   PINPRS_OUT    (:,:,IBL),   PINPRS   (:,:,IBL)  , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PINPRG",   PINPRG_OUT    (:,:,IBL),   PINPRG   (:,:,IBL)  , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("ZINDEP",   ZINDEP_OUT    (:,:,IBL),   ZINDEP   (:,:,IBL)  , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    !CALL DIFF ("ZRAINFR",  ZRAINFR_OUT   (:,:,:,IBL), ZRAINFR  (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PCIT",     PCIT_OUT      (:,:,IBL), PCIT     (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("ZINPRC",   ZINPRC_OUT    (:,IBL),   ZINPRC   (:,IBL)  , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PINPRRRS", PINPRR_OUT    (:,IBL),   PINPRR   (:,IBL)  , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PEVAP",    PEVAP_OUT     (:,:,IBL), PEVAP    (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PINPRS",   PINPRS_OUT    (:,IBL),   PINPRS   (:,IBL)  , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PINPRG",   PINPRG_OUT    (:,IBL),   PINPRG   (:,IBL)  , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("ZINDEP",   ZINDEP_OUT    (:,IBL),   ZINDEP   (:,IBL)  , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    !CALL DIFF ("ZRAINFR",  ZRAINFR_OUT   (:,:,IBL), ZRAINFR  (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
   ENDDO
 ENDIF
 
diff --git a/src/testprogs/rain_ice_old/getdata_rain_ice_old_mod.F90 b/src/testprogs/rain_ice_old/getdata_rain_ice_old_mod.F90
index edd1a6d36558c1afa249315fbff9df46887a4430..69536b52e89cb0bb1e8f5c3917680d7492283db3 100644
--- a/src/testprogs/rain_ice_old/getdata_rain_ice_old_mod.F90
+++ b/src/testprogs/rain_ice_old/getdata_rain_ice_old_mod.F90
@@ -155,9 +155,11 @@ SUBROUTINE GETDATA_RAIN_ICE_OLD(NPROMA, NBLOCKS, NFLEVG, KRR,             &
 
   CLOSE (IFILE)
 
-  write(output_unit, *) 'klon:        ', klon
-  write(output_unit, *) 'klev:        ', klev
-  write(output_unit, *) 'krr:         ', krr
+  IF(LDVERBOSE) THEN
+    WRITE(OUTPUT_UNIT, *) 'KLON:        ', KLON
+    WRITE(OUTPUT_UNIT, *) 'KLEV:        ', KLEV
+    WRITE(OUTPUT_UNIT, *) 'KRR:         ', KRR
+  ENDIF
 
   IF (NFLEVG < 0) NFLEVG = KLEV
 
diff --git a/src/testprogs/rain_ice_old/main_rain_ice_old.F90 b/src/testprogs/rain_ice_old/main_rain_ice_old.F90
index 5feee2d5a12da234ac62c4a1153c46e8c20a0f16..af96129e22f3315d9414a1a877f52ac8c8418ade 100644
--- a/src/testprogs/rain_ice_old/main_rain_ice_old.F90
+++ b/src/testprogs/rain_ice_old/main_rain_ice_old.F90
@@ -2,7 +2,7 @@ PROGRAM MAIN_RAIN_ICE_OLD
 
 USE XRD_GETOPTIONS,  ONLY: INITOPTIONS, GETOPTION, CHECKOPTIONS
 USE GETDATA_RAIN_ICE_OLD_MOD, ONLY: GETDATA_RAIN_ICE_OLD
-
+USE COMPUTE_DIFF,    ONLY: DIFF
 USE MODI_RAIN_ICE_OLD
 USE MODD_DIMPHYEX,   ONLY: DIMPHYEX_t
 USE MODD_PHYEX,      ONLY: PHYEX_t
@@ -10,7 +10,7 @@ USE STACK_MOD
 USE OMP_LIB
 USE YOMHOOK, ONLY : LHOOK, DR_HOOK, JPHOOK
 
-use iso_fortran_env, only: output_unit
+USE ISO_FORTRAN_ENV, ONLY: OUTPUT_UNIT
 
 IMPLICIT NONE
 
@@ -76,6 +76,7 @@ INTEGER :: ITIME, NTIME
 INTEGER :: IRANK, ISIZE
 LOGICAL :: LLVERBOSE, LLSTAT, LLBIND
 REAL (KIND=JPHOOK) :: ZHOOK_HANDLE
+CHARACTER(LEN=32) :: CLTEXT
 
 INTEGER :: ISIZEMICRO
 INTEGER :: KKA
@@ -91,19 +92,6 @@ CHARACTER(LEN=4) :: CSUBG_AUCV_RC
 LOGICAL :: OWARM
 REAL    :: PTSTEP
 
-  integer :: j
-
-
-
-
-  
-  
-  
-
-
-
-
-
 CALL INITOPTIONS()
 NGPBLKS = 150
 CALL GETOPTION ("--blocks", NGPBLKS)
@@ -134,10 +122,12 @@ IF (LLBIND) THEN
   CALL LINUX_BIND_DUMP (IRANK, ISIZE)
 ENDIF
 
-WRITE(OUTPUT_UNIT, *) 'n_gp_blocks: ', NGPBLKS
-WRITE(OUTPUT_UNIT, *) 'n_proma:     ', NPROMA
-WRITE(OUTPUT_UNIT, *) 'n_levels:    ', NFLEVG
-WRITE(OUTPUT_UNIT, *) 'total:       ', NFLEVG*NPROMA*NGPBLKS
+IF(LLVERBOSE) THEN
+  WRITE(OUTPUT_UNIT, *) 'N_GP_BLOCKS: ', NGPBLKS
+  WRITE(OUTPUT_UNIT, *) 'N_PROMA:     ', NPROMA
+  WRITE(OUTPUT_UNIT, *) 'N_LEVELS:    ', NFLEVG
+  WRITE(OUTPUT_UNIT, *) 'TOTAL:       ', NFLEVG*NPROMA*NGPBLKS
+ENDIF
 
 CALL GETDATA_RAIN_ICE_OLD(NPROMA, NGPBLKS, NFLEVG, KRR, &
                           OSEDIC, OCND2, LKOGAN, LMODICEDEP, OWARM, &
@@ -163,20 +153,22 @@ KLEV = SIZE (PRS, 2)
 
 IF (LLVERBOSE) PRINT *, " KLEV = ", KLEV, " KRR = ", KRR
   
-WRITE(OUTPUT_UNIT, *) 'osedic:        ', OSEDIC
-WRITE(OUTPUT_UNIT, *) 'ocnd2:         ', OCND2
-WRITE(OUTPUT_UNIT, *) 'lkogan:        ', LKOGAN
-WRITE(OUTPUT_UNIT, *) 'lmodicedep:    ', LMODICEDEP
-WRITE(OUTPUT_UNIT, *) 'owarm:         ', OWARM
-WRITE(OUTPUT_UNIT, *) 'kka:           ', KKA
-WRITE(OUTPUT_UNIT, *) 'kku:           ', KKU
-WRITE(OUTPUT_UNIT, *) 'kkl:           ', KKL
-WRITE(OUTPUT_UNIT, *) 'ksplitr:       ', KSPLITR
-WRITE(OUTPUT_UNIT, *) 'ptstep:        ', PTSTEP
-WRITE(OUTPUT_UNIT, *) 'c_sedim:       ', C_SEDIM
-WRITE(OUTPUT_UNIT, *) 'csubg_aucv_rc: ', CSUBG_AUCV_RC
-
-!PRINT *, " NPROMA = ", NPROMA, " KLEV = ", KLEV, " NGPBLKS = ", NGPBLKS
+IF (LLVERBOSE) THEN
+  WRITE(OUTPUT_UNIT, *) 'OSEDIC:        ', OSEDIC
+  WRITE(OUTPUT_UNIT, *) 'OCND2:         ', OCND2
+  WRITE(OUTPUT_UNIT, *) 'LKOGAN:        ', LKOGAN
+  WRITE(OUTPUT_UNIT, *) 'LMODICEDEP:    ', LMODICEDEP
+  WRITE(OUTPUT_UNIT, *) 'OWARM:         ', OWARM
+  WRITE(OUTPUT_UNIT, *) 'KKA:           ', KKA
+  WRITE(OUTPUT_UNIT, *) 'KKU:           ', KKU
+  WRITE(OUTPUT_UNIT, *) 'KKL:           ', KKL
+  WRITE(OUTPUT_UNIT, *) 'KSPLITR:       ', KSPLITR
+  WRITE(OUTPUT_UNIT, *) 'PTSTEP:        ', PTSTEP
+  WRITE(OUTPUT_UNIT, *) 'C_SEDIM:       ', C_SEDIM
+  WRITE(OUTPUT_UNIT, *) 'CSUBG_AUCV_RC: ', CSUBG_AUCV_RC
+ENDIF
+
+PRINT *, " NPROMA = ", NPROMA, " KLEV = ", KLEV, " NGPBLKS = ", NGPBLKS
 
 CALL INIT_PHYEX(KRR, PHYEX, OWARM, OSEDIC, OCND2, C_SEDIM, CSUBG_AUCV_RC, PTSTEP)
 
@@ -326,94 +318,50 @@ IF (LHOOK) CALL DR_HOOK ('MAIN',1,ZHOOK_HANDLE)
 
 TE = OMP_GET_WTIME()
 
-!WRITE (*,'(A,F8.2,A)') 'elapsed time : ',TE-TS,' s'
-!WRITE (*,'(A,F8.4,A)') '          i.e. ',1000.*(TE-TS)/(NPROMA*NGPBLKS)/NTIME,' ms/gp'
-!
-!PRINT *, " ZTD = ", ZTD, ZTD / REAL (NPROMA*NGPBLKS*NTIME)
-!PRINT *, " ZTC = ", ZTC, ZTC / REAL (NPROMA*NGPBLKS*NTIME)
-
-
-  CALL CPU_TIME(TIME_END_CPU)
-  CALL SYSTEM_CLOCK(COUNT=COUNTER, COUNT_RATE=C_RATE)
-  TIME_END_REAL = REAL(COUNTER,8)/C_RATE
-
-  write(output_unit, *)
-
-  write(output_unit, *) 'Total time: ', time_end_real - time_start_real
-
-  write(output_unit, *)
-
-  write(output_unit, *) 'PEVAP'
-  call print_diff_2(pevap(:,:,1), pevap_out(:,:,1))
-  write(output_unit, *)
-
-  write(output_unit, *) 'ZINPRC'
-  call print_diff_1(zinprc(:,1), zinprc_out(:,1))
-  write(output_unit, *)
-
-  write(output_unit, *) 'PINPRR'
-  call print_diff_1(pinprr(:,1), pinprr_out(:,1))
-  write(output_unit, *)
-
-  write(output_unit, *) 'PINPRS'
-  call print_diff_1(pinprs(:,1), pinprs_out(:,1))
-  write(output_unit, *)
-
-  write(output_unit, *) 'PINPRG'
-  call print_diff_1(pinprg(:,1), pinprg_out(:,1))
-  write(output_unit, *)
-
-  write(output_unit, *) 'PTHS'
-  call print_diff_2(pths(:,:,1), pths_out(:,:,1))
-  write(output_unit, *)
-
-  write(output_unit, *) 'PCIT'
-  call print_diff_2(pcit(:,:,1), pcit_out(:,:,1))
-  write(output_unit, *)
-
-  write(output_unit, *) 'PRVS'
-  call print_diff_2(prs(:,:,1,1), prs_out(:,:,1,1))
-  write(output_unit, *)
-
-  write(output_unit, *) 'PRCS'
-  call print_diff_2(prs(:,:,2,1), prs_out(:,:,2,1))
-  write(output_unit, *)
+WRITE (*,'(A,F8.2,A)') 'elapsed time : ',TE-TS,' s'
+WRITE (*,'(A,F8.4,A)') '          i.e. ',1000.*(TE-TS)/(NPROMA*NGPBLKS)/NTIME,' ms/gp'
 
-  write(output_unit, *) 'PRRS'
-  call print_diff_2(prs(:,:,3,1), prs_out(:,:,3,1))
-  write(output_unit, *)
+PRINT *, " ZTD = ", ZTD, ZTD / REAL (NPROMA*NGPBLKS*NTIME)
+PRINT *, " ZTC = ", ZTC, ZTC / REAL (NPROMA*NGPBLKS*NTIME)
 
-  write(output_unit, *) 'PRIS'
-  call print_diff_2(prs(:,:,4,1), prs_out(:,:,4,1))
-  write(output_unit, *)
 
-  write(output_unit, *) 'PRSS'
-  call print_diff_2(prs(:,:,5,1), prs_out(:,:,5,1))
-  write(output_unit, *)
-
-  write(output_unit, *) 'PRGS'
-  call print_diff_2(prs(:,:,6,1), prs_out(:,:,6,1))
-  write(output_unit, *)
-
-  write(output_unit, *) 'PFPR 2'
-  call print_diff_2(pfpr(:,:,2,1), pfpr_out(:,:,2,1))
-  write(output_unit, *)
-
-  write(output_unit, *) 'PFPR 3'
-  call print_diff_2(pfpr(:,:,3,1), pfpr_out(:,:,3,1))
-  write(output_unit, *)
+CALL CPU_TIME(TIME_END_CPU)
+CALL SYSTEM_CLOCK(COUNT=COUNTER, COUNT_RATE=C_RATE)
+TIME_END_REAL = REAL(COUNTER,8)/C_RATE
 
-  write(output_unit, *) 'PFPR 4'
-  call print_diff_2(pfpr(:,:,4,1), pfpr_out(:,:,4,1))
-  write(output_unit, *)
+IF(LLVERBOSE) THEN
+  WRITE(OUTPUT_UNIT, *)
+  WRITE(OUTPUT_UNIT, *) 'TOTAL TIME: ', TIME_END_REAL - TIME_START_REAL
+ENDIF
 
-  write(output_unit, *) 'PFPR 5'
-  call print_diff_2(pfpr(:,:,5,1), pfpr_out(:,:,5,1))
-  write(output_unit, *)
+IF (LLCHECK .OR. LLSTAT .OR. LLCHECKDIFF) THEN
+  DO IBL = IBLOCK1, IBLOCK2
+    PRINT *, " IBL = ", IBL
+    DO JRR=1, KRR
+      WRITE (CLTEXT, '("PRS JRR=",I3.3)') JRR
+      CALL DIFF (CLTEXT,   PRS_OUT       (:,:,JRR,IBL), PRS      (:,:,JRR,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+      IF(JRR>=2) THEN
+        WRITE (CLTEXT, '("PFPR JRR=",I3.3)') JRR
+        CALL DIFF (CLTEXT, PFPR_OUT      (:,:,JRR,IBL), PFPR     (:,:,JRR,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+      ENDIF
+    ENDDO
+    CALL DIFF ("PCIT",     PCIT_OUT      (:,:,IBL), PCIT     (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("ZINPRC",   ZINPRC_OUT    (:,IBL),   ZINPRC   (:,IBL)  , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PINPRRRS", PINPRR_OUT    (:,IBL),   PINPRR   (:,IBL)  , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PEVAP",    PEVAP_OUT     (:,:,IBL), PEVAP    (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PINPRS",   PINPRS_OUT    (:,IBL),   PINPRS   (:,IBL)  , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PINPRG",   PINPRG_OUT    (:,IBL),   PINPRG   (:,IBL)  , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PTHS",     PTHS_OUT      (:,:,IBL), PTHS     (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+  ENDDO
+ENDIF
 
-  write(output_unit, *) 'PFPR 6'
-  call print_diff_2(pfpr(:,:,6,1), pfpr_out(:,:,6,1))
-  write(output_unit, *)
+IF (LLCHECKDIFF) THEN
+  IF (LLDIFF) THEN
+    PRINT*, "THERE ARE DIFF SOMEWHERE"
+  ELSE
+    PRINT*, "THERE IS NO DIFF AT ALL"
+  ENDIF
+ENDIF
 
 STOP
 
@@ -573,61 +521,5 @@ SUBROUTINE INIT_GMICRO(D, KRR, NGPBLKS, ODMICRO, PRT, PSSIO, OCND2)
 
 END SUBROUTINE INIT_GMICRO
 
-
-subroutine print_diff_1(array, ref)
-
-  use iso_fortran_env, only: output_unit
-
-  implicit none
-
-  real, intent(in), dimension(:) :: array
-  real, intent(in), dimension(:) :: ref
-
-  real, parameter :: threshold = 1.0e-12
-
-  integer :: i
-
-  real :: absval
-
-  do i = 1, size(array, 1)
-    absval = max(abs(array(i)), abs(ref(i)))
-    if (absval .gt. 0.) then
-      if (abs(array(i) - ref(i))/absval .gt. threshold) then
-        write(output_unit, '(1i4, 4e16.6)') i, array(i), ref(i), abs(array(i) - ref(i)), abs(array(i) - ref(i))/absval 
-      endif
-    endif
-  enddo
-
-end subroutine print_diff_1
-
-
-subroutine print_diff_2(array, ref)
-
-  use iso_fortran_env, only: output_unit
-
-  implicit none
-
-  real, intent(in), dimension(:,:) :: array
-  real, intent(in), dimension(:,:) :: ref
-
-  real, parameter :: threshold = 1.0e-12
-
-  integer :: i, j
-
-  real :: absval
-
-  do j = 1, size(array, 2)
-    do i = 1, size(array, 1)
-      absval = max(abs(array(i,j)), abs(ref(i,j)))
-      if (absval .gt. 0.) then
-        if (abs(array(i,j) - ref(i,j))/absval .gt. threshold) then
-          write(output_unit, '(2i4, 4e22.14)') i, j, array(i,j), ref(i,j), abs(array(i,j) - ref(i,j)), abs(array(i,j) - ref(i,j))/absval 
-        endif
-      endif
-    enddo
- enddo
-
-end subroutine print_diff_2
-
 END PROGRAM
 
diff --git a/src/testprogs/shallow/getdata_shallow_mod.F90 b/src/testprogs/shallow/getdata_shallow_mod.F90
index 689756df2e1580256c04b8e3c8adaac7de41ee1a..e54c186897ea7bd1b44c9cfeb61f2c09cacbf3b2 100644
--- a/src/testprogs/shallow/getdata_shallow_mod.F90
+++ b/src/testprogs/shallow/getdata_shallow_mod.F90
@@ -45,143 +45,143 @@ INTEGER      :: KDUM
 LOGICAL, INTENT(IN) :: LDVERBOSE
 
 !IN and INOUTS
-REAL, INTENT(OUT), ALLOCATABLE   :: PDZZF_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PZZ_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRHODJ_B            (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRHODREF_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PPABSM_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PEXNM_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PSFTH_B        (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PSFRV_B        (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTHM_B           (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRM_B            (:,:,:,:,:) !(KLON, 1, KLEV, KRR)
-REAL, INTENT(OUT), ALLOCATABLE   :: PUM_B              (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PVM_B              (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTKEM_B            (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PSVM_B             (:,:,:,:,:) !(KLON,1,KLEV,KSV)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTHL_UP_B            (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRT_UP_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRV_UP_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRC_UP_B          (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRI_UP_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PU_UP_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PV_UP_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTHV_UP_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PW_UP_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PFRAC_UP_B            (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PEMF_B       (:,:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDZZF_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PZZ_B         (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRHODJ_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRHODREF_B    (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PPABSM_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PEXNM_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PSFTH_B       (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PSFRV_B       (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTHM_B        (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRM_B         (:,:,:,:) !(KLON, 1, KLEV, KRR)
+REAL, INTENT(OUT), ALLOCATABLE   :: PUM_B         (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PVM_B         (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTKEM_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PSVM_B        (:,:,:,:) !(KLON,1,KLEV,KSV)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTHL_UP_B     (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRT_UP_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRV_UP_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRC_UP_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRI_UP_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PU_UP_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PV_UP_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTHV_UP_B     (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PW_UP_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PFRAC_UP_B    (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PEMF_B        (:,:,:)
 
 !OUT
-REAL, INTENT(OUT), ALLOCATABLE   :: PDUDT_MF_B            (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDVDT_MF_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDTHLDT_MF_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDRTDT_MF_B           (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDSVDT_MF_B             (:,:,:,:,:) !(KLON,1,KLEV,KSV)
-REAL, INTENT(OUT), ALLOCATABLE   :: PSIGMF_B              (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRC_MF_B              (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRI_MF_B           (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PCF_MF_B           (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PFLXZTHVMF_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZFLXZTHMF_B            (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZFLXZRMF_B       (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZFLXZUMF_B       (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZFLXZVMF_B     (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZDETR_B      (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZENTR_B      (:,:,:,:)
-INTEGER, INTENT(OUT), ALLOCATABLE:: IKLCL_B  (:,:,:)
-INTEGER, INTENT(OUT), ALLOCATABLE:: IKETL_B  (:,:,:)
-INTEGER, INTENT(OUT), ALLOCATABLE:: IKCTL_B (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDUDT_MF_B    (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDVDT_MF_B    (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDTHLDT_MF_B  (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDRTDT_MF_B   (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDSVDT_MF_B   (:,:,:,:) !(KLON,1,KLEV,KSV)
+REAL, INTENT(OUT), ALLOCATABLE   :: PSIGMF_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRC_MF_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRI_MF_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PCF_MF_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PFLXZTHVMF_B  (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZFLXZTHMF_B   (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZFLXZRMF_B    (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZFLXZUMF_B    (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZFLXZVMF_B    (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZDETR_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZENTR_B       (:,:,:)
+INTEGER, INTENT(OUT), ALLOCATABLE:: IKLCL_B       (:,:)
+INTEGER, INTENT(OUT), ALLOCATABLE:: IKETL_B       (:,:)
+INTEGER, INTENT(OUT), ALLOCATABLE:: IKCTL_B       (:,:)
 
 
 !Expected values
-REAL, INTENT(OUT), ALLOCATABLE   :: PDUDT_MF_OUT_B    (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDVDT_MF_OUT_B   (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDTHLDT_MF_OUT_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDRTDT_MF_OUT_B          (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDSVDT_MF_OUT_B         (:,:,:,:,:) !(KLON,1,KLEV,KSV)
-REAL, INTENT(OUT), ALLOCATABLE   :: PSIGMF_OUT_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRC_MF_OUT_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRI_MF_OUT_B        (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PCF_MF_OUT_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PFLXZTHVMF_OUT_B        (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZFLXZTHMF_OUT_B   (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZFLXZRMF_OUT_B        (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZFLXZUMF_OUT_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZFLXZVMF_OUT_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTHL_UP_OUT_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRT_UP_OUT_B          (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRV_UP_OUT_B          (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRC_UP_OUT_B       (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRI_UP_OUT_B       (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PU_UP_OUT_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PV_UP_OUT_B        (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTHV_UP_OUT_B   (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PW_UP_OUT_B   (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PFRAC_UP_OUT_B (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PEMF_OUT_B  (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZDETR_OUT_B  (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZENTR_OUT_B  (:,:,:,:)
-INTEGER, INTENT(OUT), ALLOCATABLE:: IKLCL_OUT_B  (:,:,:)
-INTEGER, INTENT(OUT), ALLOCATABLE:: IKETL_OUT_B  (:,:,:)
-INTEGER, INTENT(OUT), ALLOCATABLE:: IKCTL_OUT_B (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDUDT_MF_OUT_B    (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDVDT_MF_OUT_B    (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDTHLDT_MF_OUT_B  (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDRTDT_MF_OUT_B   (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDSVDT_MF_OUT_B   (:,:,:,:) !(KLON,1,KLEV,KSV)
+REAL, INTENT(OUT), ALLOCATABLE   :: PSIGMF_OUT_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRC_MF_OUT_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRI_MF_OUT_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PCF_MF_OUT_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PFLXZTHVMF_OUT_B  (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZFLXZTHMF_OUT_B   (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZFLXZRMF_OUT_B    (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZFLXZUMF_OUT_B    (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZFLXZVMF_OUT_B    (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTHL_UP_OUT_B     (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRT_UP_OUT_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRV_UP_OUT_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRC_UP_OUT_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRI_UP_OUT_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PU_UP_OUT_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PV_UP_OUT_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTHV_UP_OUT_B     (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PW_UP_OUT_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PFRAC_UP_OUT_B    (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PEMF_OUT_B        (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZDETR_OUT_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZENTR_OUT_B       (:,:,:)
+INTEGER, INTENT(OUT), ALLOCATABLE:: IKLCL_OUT_B       (:,:)
+INTEGER, INTENT(OUT), ALLOCATABLE:: IKETL_OUT_B       (:,:)
+INTEGER, INTENT(OUT), ALLOCATABLE:: IKCTL_OUT_B       (:,:)
 
 !Inputs to read
-REAL, ALLOCATABLE   :: PDZZF               (:,:,:,:)
-REAL, ALLOCATABLE   :: PZZ               (:,:,:,:)
-REAL, ALLOCATABLE   :: PRHODJ            (:,:,:,:)
-REAL, ALLOCATABLE   :: PRHODREF               (:,:,:,:)
-REAL, ALLOCATABLE   :: PPABSM               (:,:,:,:)
-REAL, ALLOCATABLE   :: PEXNM               (:,:,:,:)
-REAL, ALLOCATABLE   :: PSFTH          (:,:,:)
-REAL, ALLOCATABLE   :: PSFRV          (:,:,:)
-REAL, ALLOCATABLE   :: PTHM             (:,:,:,:)
-REAL, ALLOCATABLE   :: PRM              (:,:,:,:,:) !(KLON, 1, KLEV, KRR)
-REAL, ALLOCATABLE   :: PUM                (:,:,:,:)
-REAL, ALLOCATABLE   :: PVM                (:,:,:,:)
-REAL, ALLOCATABLE   :: PTKEM              (:,:,:,:)
-REAL, ALLOCATABLE   :: PSVM               (:,:,:,:,:) !(KLON,1,KLEV,KSV)
-REAL, ALLOCATABLE   :: PTHL_UP              (:,:,:,:)
-REAL, ALLOCATABLE   :: PRT_UP           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRV_UP           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRC_UP            (:,:,:,:)
-REAL, ALLOCATABLE   :: PRI_UP               (:,:,:,:)
-REAL, ALLOCATABLE   :: PU_UP               (:,:,:,:)
-REAL, ALLOCATABLE   :: PV_UP               (:,:,:,:)
-REAL, ALLOCATABLE   :: PTHV_UP               (:,:,:,:)
-REAL, ALLOCATABLE   :: PW_UP               (:,:,:,:)
-REAL, ALLOCATABLE   :: PFRAC_UP              (:,:,:,:)
-REAL, ALLOCATABLE   :: PEMF         (:,:,:,:)
+REAL, ALLOCATABLE   :: PDZZF     (:,:,:)
+REAL, ALLOCATABLE   :: PZZ       (:,:,:)
+REAL, ALLOCATABLE   :: PRHODJ    (:,:,:)
+REAL, ALLOCATABLE   :: PRHODREF  (:,:,:)
+REAL, ALLOCATABLE   :: PPABSM    (:,:,:)
+REAL, ALLOCATABLE   :: PEXNM     (:,:,:)
+REAL, ALLOCATABLE   :: PSFTH     (:,:)
+REAL, ALLOCATABLE   :: PSFRV     (:,:)
+REAL, ALLOCATABLE   :: PTHM      (:,:,:)
+REAL, ALLOCATABLE   :: PRM       (:,:,:,:) !(KLON, 1, KLEV, KRR)
+REAL, ALLOCATABLE   :: PUM       (:,:,:)
+REAL, ALLOCATABLE   :: PVM       (:,:,:)
+REAL, ALLOCATABLE   :: PTKEM     (:,:,:)
+REAL, ALLOCATABLE   :: PSVM      (:,:,:,:) !(KLON,1,KLEV,KSV)
+REAL, ALLOCATABLE   :: PTHL_UP   (:,:,:)
+REAL, ALLOCATABLE   :: PRT_UP    (:,:,:)
+REAL, ALLOCATABLE   :: PRV_UP    (:,:,:)
+REAL, ALLOCATABLE   :: PRC_UP    (:,:,:)
+REAL, ALLOCATABLE   :: PRI_UP    (:,:,:)
+REAL, ALLOCATABLE   :: PU_UP     (:,:,:)
+REAL, ALLOCATABLE   :: PV_UP     (:,:,:)
+REAL, ALLOCATABLE   :: PTHV_UP   (:,:,:)
+REAL, ALLOCATABLE   :: PW_UP     (:,:,:)
+REAL, ALLOCATABLE   :: PFRAC_UP  (:,:,:)
+REAL, ALLOCATABLE   :: PEMF      (:,:,:)
 !Expected values to read
-REAL, ALLOCATABLE   :: PDUDT_MF_OUT      (:,:,:,:)
-REAL, ALLOCATABLE   :: PDVDT_MF_OUT     (:,:,:,:)
-REAL, ALLOCATABLE   :: PDTHLDT_MF_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PDRTDT_MF_OUT            (:,:,:,:)
-REAL, ALLOCATABLE   :: PDSVDT_MF_OUT           (:,:,:,:,:) !(KLON,1,KLEV,KSV)
-REAL, ALLOCATABLE   :: PSIGMF_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRC_MF_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRI_MF_OUT          (:,:,:,:)
-REAL, ALLOCATABLE   :: PCF_MF_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PFLXZTHVMF_OUT          (:,:,:,:)
-REAL, ALLOCATABLE   :: ZFLXZTHMF_OUT     (:,:,:,:)
-REAL, ALLOCATABLE   :: ZFLXZRMF_OUT          (:,:,:,:)
-REAL, ALLOCATABLE   :: ZFLXZUMF_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: ZFLXZVMF_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PTHL_UP_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRT_UP_OUT            (:,:,:,:)
-REAL, ALLOCATABLE   :: PRV_UP_OUT            (:,:,:,:)
-REAL, ALLOCATABLE   :: PRC_UP_OUT         (:,:,:,:)
-REAL, ALLOCATABLE   :: PRI_UP_OUT         (:,:,:,:)
-REAL, ALLOCATABLE   :: PU_UP_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PV_UP_OUT          (:,:,:,:)
-REAL, ALLOCATABLE   :: PTHV_UP_OUT     (:,:,:,:)
-REAL, ALLOCATABLE   :: PW_UP_OUT     (:,:,:,:)
-REAL, ALLOCATABLE   :: PFRAC_UP_OUT   (:,:,:,:)
-REAL, ALLOCATABLE   :: PEMF_OUT    (:,:,:,:)
-REAL, ALLOCATABLE   :: ZDETR_OUT    (:,:,:,:)
-REAL, ALLOCATABLE   :: ZENTR_OUT    (:,:,:,:)
-INTEGER, ALLOCATABLE:: IKLCL_OUT  (:,:,:)
-INTEGER, ALLOCATABLE:: IKETL_OUT  (:,:,:)
-INTEGER, ALLOCATABLE:: IKCTL_OUT (:,:,:)
+REAL, ALLOCATABLE   :: PDUDT_MF_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: PDVDT_MF_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: PDTHLDT_MF_OUT   (:,:,:)
+REAL, ALLOCATABLE   :: PDRTDT_MF_OUT    (:,:,:)
+REAL, ALLOCATABLE   :: PDSVDT_MF_OUT    (:,:,:,:) !(KLON,1,KLEV,KSV)
+REAL, ALLOCATABLE   :: PSIGMF_OUT       (:,:,:)
+REAL, ALLOCATABLE   :: PRC_MF_OUT       (:,:,:)
+REAL, ALLOCATABLE   :: PRI_MF_OUT       (:,:,:)
+REAL, ALLOCATABLE   :: PCF_MF_OUT       (:,:,:)
+REAL, ALLOCATABLE   :: PFLXZTHVMF_OUT   (:,:,:)
+REAL, ALLOCATABLE   :: ZFLXZTHMF_OUT    (:,:,:)
+REAL, ALLOCATABLE   :: ZFLXZRMF_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: ZFLXZUMF_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: ZFLXZVMF_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: PTHL_UP_OUT      (:,:,:)
+REAL, ALLOCATABLE   :: PRT_UP_OUT       (:,:,:)
+REAL, ALLOCATABLE   :: PRV_UP_OUT       (:,:,:)
+REAL, ALLOCATABLE   :: PRC_UP_OUT       (:,:,:)
+REAL, ALLOCATABLE   :: PRI_UP_OUT       (:,:,:)
+REAL, ALLOCATABLE   :: PU_UP_OUT        (:,:,:)
+REAL, ALLOCATABLE   :: PV_UP_OUT        (:,:,:)
+REAL, ALLOCATABLE   :: PTHV_UP_OUT      (:,:,:)
+REAL, ALLOCATABLE   :: PW_UP_OUT        (:,:,:)
+REAL, ALLOCATABLE   :: PFRAC_UP_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: PEMF_OUT         (:,:,:)
+REAL, ALLOCATABLE   :: ZDETR_OUT        (:,:,:)
+REAL, ALLOCATABLE   :: ZENTR_OUT        (:,:,:)
+INTEGER, ALLOCATABLE:: IKLCL_OUT        (:,:)
+INTEGER, ALLOCATABLE:: IKETL_OUT        (:,:)
+INTEGER, ALLOCATABLE:: IKCTL_OUT        (:,:)
 
 INTEGER, INTENT(IN) :: NPROMA, NGPBLKS
 INTEGER :: NGPTOT
@@ -206,160 +206,160 @@ CLOSE (IFILE)
 
 IF (NFLEVG < 0) NFLEVG = KLEV
 
-ALLOCATE (PDZZF_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PZZ_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRHODJ_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRHODREF_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PPABSM_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PEXNM_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PSFTH_B        (NPROMA,1,NGPBLKS))
-ALLOCATE (PSFRV_B        (NPROMA,1,NGPBLKS))
-ALLOCATE (PTHM_B           (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRM_B            (NPROMA,1,NFLEVG,KRR,NGPBLKS))
-ALLOCATE (PUM_B              (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PVM_B              (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PTKEM_B            (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PSVM_B             (NPROMA,1,NFLEVG,KSV,NGPBLKS))
-ALLOCATE (PTHL_UP_B            (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRT_UP_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRV_UP_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRC_UP_B          (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRI_UP_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PU_UP_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PV_UP_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PTHV_UP_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PW_UP_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PFRAC_UP_B            (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PEMF_B       (NPROMA,1,NFLEVG,NGPBLKS))
-
-ALLOCATE (PDUDT_MF_B            (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PDVDT_MF_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PDTHLDT_MF_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PDRTDT_MF_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PDSVDT_MF_B             (NPROMA,1,NFLEVG,KSV,NGPBLKS))
-ALLOCATE (PSIGMF_B              (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRC_MF_B              (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRI_MF_B           (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PCF_MF_B           (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PFLXZTHVMF_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZFLXZTHMF_B            (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZFLXZRMF_B       (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZFLXZUMF_B       (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZFLXZVMF_B     (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZDETR_B      (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZENTR_B      (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (IKLCL_B      (NPROMA,1,NGPBLKS))
-ALLOCATE (IKETL_B      (NPROMA,1,NGPBLKS))
-ALLOCATE (IKCTL_B      (NPROMA,1,NGPBLKS))
-
-ALLOCATE (PDUDT_MF_OUT_B    (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PDVDT_MF_OUT_B   (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PDTHLDT_MF_OUT_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PDRTDT_MF_OUT_B          (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PDSVDT_MF_OUT_B         (NPROMA,1,NFLEVG,KSV,NGPBLKS))
-ALLOCATE (PSIGMF_OUT_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRC_MF_OUT_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRI_MF_OUT_B        (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PCF_MF_OUT_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PFLXZTHVMF_OUT_B        (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZFLXZTHMF_OUT_B   (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZFLXZRMF_OUT_B        (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZFLXZUMF_OUT_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZFLXZVMF_OUT_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PTHL_UP_OUT_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRT_UP_OUT_B          (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRV_UP_OUT_B          (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRC_UP_OUT_B       (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRI_UP_OUT_B       (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PU_UP_OUT_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PV_UP_OUT_B        (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PTHV_UP_OUT_B   (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PW_UP_OUT_B   (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PFRAC_UP_OUT_B (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PEMF_OUT_B  (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZDETR_OUT_B  (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZENTR_OUT_B  (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (IKLCL_OUT_B  (NPROMA,1,NGPBLKS))
-ALLOCATE (IKETL_OUT_B  (NPROMA,1,NGPBLKS))
-ALLOCATE (IKCTL_OUT_B  (NPROMA,1,NGPBLKS))
-
-
-CALL SET (PDZZF_B             )
-CALL SET (PZZ_B             )
-CALL SET (PRHODJ_B         )
-CALL SET (PRHODREF_B             )
-CALL SET (PPABSM_B             )
-CALL SET (PEXNM_B             )
-CALL SET (PSFTH_B        )
-CALL SET (PSFRV_B        )
-CALL SET (PTHM_B           )
-CALL SET (PRM_B            )
-CALL SET (PUM_B              )
-CALL SET (PVM_B              )
-CALL SET (PTKEM_B            )
-CALL SET (PSVM_B             )
-CALL SET (PTHL_UP_B            )
-CALL SET (PRT_UP_B         )
-CALL SET (PRV_UP_B         )
-CALL SET (PRC_UP_B          )
-CALL SET (PRI_UP_B             )
-CALL SET (PU_UP_B             )
-CALL SET (PV_UP_B             )
-CALL SET (PTHV_UP_B             )
-CALL SET (PW_UP_B             )
-CALL SET (PFRAC_UP_B            )
-CALL SET (PEMF_B       )
-
-CALL SET (PDUDT_MF_B            )
-CALL SET (PDVDT_MF_B             )
-CALL SET (PDTHLDT_MF_B             )
-CALL SET (PDRTDT_MF_B             )
-CALL SET (PDSVDT_MF_B             )
-CALL SET (PSIGMF_B              )
-CALL SET (PRC_MF_B              )
-CALL SET (PRI_MF_B           )
-CALL SET (PCF_MF_B           )
-CALL SET (PFLXZTHVMF_B             )
-CALL SET (ZFLXZTHMF_B            )
-CALL SET (ZFLXZRMF_B       )
-CALL SET (ZFLXZUMF_B       )
-CALL SET (ZFLXZVMF_B     )
-CALL SET (ZDETR_B      )
-CALL SET (ZENTR_B      )
-CALL SET (IKLCL_B      )
-CALL SET (IKETL_B      )
-CALL SET (IKCTL_B      )
-
-CALL SET (PDUDT_MF_OUT_B    )
-CALL SET (PDVDT_MF_OUT_B   )
-CALL SET (PDTHLDT_MF_OUT_B         )
-CALL SET (PDRTDT_MF_OUT_B          )
-CALL SET (PDSVDT_MF_OUT_B         )
-CALL SET (PSIGMF_OUT_B         )
-CALL SET (PRC_MF_OUT_B         )
-CALL SET (PRI_MF_OUT_B        )
-CALL SET (PCF_MF_OUT_B         )
-CALL SET (PFLXZTHVMF_OUT_B        )
-CALL SET (ZFLXZTHMF_OUT_B   )
-CALL SET (ZFLXZRMF_OUT_B        )
-CALL SET (ZFLXZUMF_OUT_B         )
-CALL SET (ZFLXZVMF_OUT_B         )
-CALL SET (PTHL_UP_OUT_B         )
-CALL SET (PRT_UP_OUT_B          )
-CALL SET (PRV_UP_OUT_B          )
-CALL SET (PRC_UP_OUT_B       )
-CALL SET (PRI_UP_OUT_B       )
-CALL SET (PU_UP_OUT_B         )
-CALL SET (PV_UP_OUT_B        )
-CALL SET (PTHV_UP_OUT_B   )
-CALL SET (PW_UP_OUT_B   )
-CALL SET (PFRAC_UP_OUT_B )
-CALL SET (PEMF_OUT_B  )
-CALL SET (ZDETR_OUT_B  )
-CALL SET (ZENTR_OUT_B  )
-CALL SET (IKLCL_OUT_B  )
-CALL SET (IKETL_OUT_B  )
-CALL SET (IKCTL_OUT_B  )
+ALLOCATE (PDZZF_B           (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PZZ_B             (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRHODJ_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRHODREF_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PPABSM_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PEXNM_B           (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PSFTH_B           (NPROMA,NGPBLKS))
+ALLOCATE (PSFRV_B           (NPROMA,NGPBLKS))
+ALLOCATE (PTHM_B            (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRM_B             (NPROMA,NFLEVG,KRR,NGPBLKS))
+ALLOCATE (PUM_B             (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PVM_B             (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PTKEM_B           (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PSVM_B            (NPROMA,NFLEVG,KSV,NGPBLKS))
+ALLOCATE (PTHL_UP_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRT_UP_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRV_UP_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRC_UP_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRI_UP_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PU_UP_B           (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PV_UP_B           (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PTHV_UP_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PW_UP_B           (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PFRAC_UP_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PEMF_B            (NPROMA,NFLEVG,NGPBLKS))
+
+ALLOCATE (PDUDT_MF_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PDVDT_MF_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PDTHLDT_MF_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PDRTDT_MF_B       (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PDSVDT_MF_B       (NPROMA,NFLEVG,KSV,NGPBLKS))
+ALLOCATE (PSIGMF_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRC_MF_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRI_MF_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PCF_MF_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PFLXZTHVMF_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZFLXZTHMF_B       (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZFLXZRMF_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZFLXZUMF_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZFLXZVMF_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZDETR_B           (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZENTR_B           (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (IKLCL_B           (NPROMA,NGPBLKS))
+ALLOCATE (IKETL_B           (NPROMA,NGPBLKS))
+ALLOCATE (IKCTL_B           (NPROMA,NGPBLKS))
+
+ALLOCATE (PDUDT_MF_OUT_B    (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PDVDT_MF_OUT_B    (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PDTHLDT_MF_OUT_B  (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PDRTDT_MF_OUT_B   (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PDSVDT_MF_OUT_B   (NPROMA,NFLEVG,KSV,NGPBLKS))
+ALLOCATE (PSIGMF_OUT_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRC_MF_OUT_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRI_MF_OUT_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PCF_MF_OUT_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PFLXZTHVMF_OUT_B  (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZFLXZTHMF_OUT_B   (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZFLXZRMF_OUT_B    (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZFLXZUMF_OUT_B    (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZFLXZVMF_OUT_B    (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PTHL_UP_OUT_B     (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRT_UP_OUT_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRV_UP_OUT_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRC_UP_OUT_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRI_UP_OUT_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PU_UP_OUT_B       (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PV_UP_OUT_B       (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PTHV_UP_OUT_B     (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PW_UP_OUT_B       (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PFRAC_UP_OUT_B    (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PEMF_OUT_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZDETR_OUT_B       (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZENTR_OUT_B       (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (IKLCL_OUT_B       (NPROMA,NGPBLKS))
+ALLOCATE (IKETL_OUT_B       (NPROMA,NGPBLKS))
+ALLOCATE (IKCTL_OUT_B       (NPROMA,NGPBLKS))
+
+
+CALL SET (PDZZF_B)
+CALL SET (PZZ_B)
+CALL SET (PRHODJ_B)
+CALL SET (PRHODREF_B)
+CALL SET (PPABSM_B)
+CALL SET (PEXNM_B)
+CALL SET (PSFTH_B)
+CALL SET (PSFRV_B)
+CALL SET (PTHM_B)
+CALL SET (PRM_B)
+CALL SET (PUM_B)
+CALL SET (PVM_B)
+CALL SET (PTKEM_B)
+CALL SET (PSVM_B)
+CALL SET (PTHL_UP_B)
+CALL SET (PRT_UP_B)
+CALL SET (PRV_UP_B)
+CALL SET (PRC_UP_B)
+CALL SET (PRI_UP_B)
+CALL SET (PU_UP_B)
+CALL SET (PV_UP_B)
+CALL SET (PTHV_UP_B)
+CALL SET (PW_UP_B)
+CALL SET (PFRAC_UP_B)
+CALL SET (PEMF_B)
+
+CALL SET (PDUDT_MF_B)
+CALL SET (PDVDT_MF_B)
+CALL SET (PDTHLDT_MF_B)
+CALL SET (PDRTDT_MF_B)
+CALL SET (PDSVDT_MF_B)
+CALL SET (PSIGMF_B)
+CALL SET (PRC_MF_B)
+CALL SET (PRI_MF_B)
+CALL SET (PCF_MF_B)
+CALL SET (PFLXZTHVMF_B)
+CALL SET (ZFLXZTHMF_B)
+CALL SET (ZFLXZRMF_B)
+CALL SET (ZFLXZUMF_B)
+CALL SET (ZFLXZVMF_B)
+CALL SET (ZDETR_B)
+CALL SET (ZENTR_B)
+CALL SET (IKLCL_B)
+CALL SET (IKETL_B)
+CALL SET (IKCTL_B)
+
+CALL SET (PDUDT_MF_OUT_B)
+CALL SET (PDVDT_MF_OUT_B)
+CALL SET (PDTHLDT_MF_OUT_B)
+CALL SET (PDRTDT_MF_OUT_B)
+CALL SET (PDSVDT_MF_OUT_B)
+CALL SET (PSIGMF_OUT_B)
+CALL SET (PRC_MF_OUT_B)
+CALL SET (PRI_MF_OUT_B)
+CALL SET (PCF_MF_OUT_B)
+CALL SET (PFLXZTHVMF_OUT_B)
+CALL SET (ZFLXZTHMF_OUT_B)
+CALL SET (ZFLXZRMF_OUT_B)
+CALL SET (ZFLXZUMF_OUT_B)
+CALL SET (ZFLXZVMF_OUT_B)
+CALL SET (PTHL_UP_OUT_B)
+CALL SET (PRT_UP_OUT_B)
+CALL SET (PRV_UP_OUT_B)
+CALL SET (PRC_UP_OUT_B)
+CALL SET (PRI_UP_OUT_B)
+CALL SET (PU_UP_OUT_B)
+CALL SET (PV_UP_OUT_B)
+CALL SET (PTHV_UP_OUT_B)
+CALL SET (PW_UP_OUT_B)
+CALL SET (PFRAC_UP_OUT_B)
+CALL SET (PEMF_OUT_B)
+CALL SET (ZDETR_OUT_B)
+CALL SET (ZENTR_OUT_B)
+CALL SET (IKLCL_OUT_B)
+CALL SET (IKETL_OUT_B)
+CALL SET (IKCTL_OUT_B)
 
 IOFF = 0
 IBL = 0
@@ -380,125 +380,125 @@ DO WHILE(LLEXIST)
   READ (IFILE) KLON, KLEV
 
   IF (IBL == 1) THEN
-    ALLOCATE (PDZZF               (NGPTOT,1,KLEV,1))
-    ALLOCATE (PZZ               (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRHODJ               (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRHODREF               (NGPTOT,1,KLEV,1))
-    ALLOCATE (PPABSM               (NGPTOT,1,KLEV,1))
-    ALLOCATE (PEXNM               (NGPTOT,1,KLEV,1))
-    ALLOCATE (PSFTH          (NGPTOT,1,1))
-    ALLOCATE (PSFRV          (NGPTOT,1,1))
-    ALLOCATE (PTHM             (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRM              (NGPTOT,1,KLEV,KRR,1))
-    ALLOCATE (PUM                (NGPTOT,1,KLEV,1))
-    ALLOCATE (PVM                (NGPTOT,1,KLEV,1))
-    ALLOCATE (PTKEM              (NGPTOT,1,KLEV,1))
-    ALLOCATE (PSVM               (NGPTOT,1,KLEV,KSV,1))
-    ALLOCATE (PTHL_UP              (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRT_UP           (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRV_UP           (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRC_UP            (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRI_UP               (NGPTOT,1,KLEV,1))
-    ALLOCATE (PU_UP               (NGPTOT,1,KLEV,1))
-    ALLOCATE (PV_UP               (NGPTOT,1,KLEV,1))
-    ALLOCATE (PTHV_UP               (NGPTOT,1,KLEV,1))
-    ALLOCATE (PW_UP               (NGPTOT,1,KLEV,1))
-    ALLOCATE (PFRAC_UP              (NGPTOT,1,KLEV,1))
-    ALLOCATE (PEMF         (NGPTOT,1,KLEV,1))
-
-    ALLOCATE (PDUDT_MF_OUT      (NGPTOT,1,KLEV,1))
-    ALLOCATE (PDVDT_MF_OUT     (NGPTOT,1,KLEV,1))
-    ALLOCATE (PDTHLDT_MF_OUT           (NGPTOT,1,KLEV,1))
-    ALLOCATE (PDRTDT_MF_OUT            (NGPTOT,1,KLEV,1))
-    ALLOCATE (PDSVDT_MF_OUT           (NGPTOT,1,KLEV,KSV,1))
-    ALLOCATE (PSIGMF_OUT           (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRC_MF_OUT           (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRI_MF_OUT          (NGPTOT,1,KLEV,1))
-    ALLOCATE (PCF_MF_OUT           (NGPTOT,1,KLEV,1))
-    ALLOCATE (PFLXZTHVMF_OUT          (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZFLXZTHMF_OUT     (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZFLXZRMF_OUT          (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZFLXZUMF_OUT           (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZFLXZVMF_OUT           (NGPTOT,1,KLEV,1))
-    ALLOCATE (PTHL_UP_OUT           (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRT_UP_OUT            (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRV_UP_OUT            (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRC_UP_OUT         (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRI_UP_OUT         (NGPTOT,1,KLEV,1))
-    ALLOCATE (PU_UP_OUT           (NGPTOT,1,KLEV,1))
-    ALLOCATE (PV_UP_OUT          (NGPTOT,1,KLEV,1))
-    ALLOCATE (PTHV_UP_OUT     (NGPTOT,1,KLEV,1))
-    ALLOCATE (PW_UP_OUT     (NGPTOT,1,KLEV,1))
-    ALLOCATE (PFRAC_UP_OUT   (NGPTOT,1,KLEV,1))
-    ALLOCATE (PEMF_OUT    (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZDETR_OUT    (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZENTR_OUT    (NGPTOT,1,KLEV,1))
-    ALLOCATE (IKLCL_OUT    (NGPTOT,1,1))
-    ALLOCATE (IKETL_OUT    (NGPTOT,1,1))
-    ALLOCATE (IKCTL_OUT    (NGPTOT,1,1))
+    ALLOCATE (PDZZF          (NGPTOT,KLEV,1))
+    ALLOCATE (PZZ            (NGPTOT,KLEV,1))
+    ALLOCATE (PRHODJ         (NGPTOT,KLEV,1))
+    ALLOCATE (PRHODREF       (NGPTOT,KLEV,1))
+    ALLOCATE (PPABSM         (NGPTOT,KLEV,1))
+    ALLOCATE (PEXNM          (NGPTOT,KLEV,1))
+    ALLOCATE (PSFTH          (NGPTOT,1))
+    ALLOCATE (PSFRV          (NGPTOT,1))
+    ALLOCATE (PTHM           (NGPTOT,KLEV,1))
+    ALLOCATE (PRM            (NGPTOT,KLEV,KRR,1))
+    ALLOCATE (PUM            (NGPTOT,KLEV,1))
+    ALLOCATE (PVM            (NGPTOT,KLEV,1))
+    ALLOCATE (PTKEM          (NGPTOT,KLEV,1))
+    ALLOCATE (PSVM           (NGPTOT,KLEV,KSV,1))
+    ALLOCATE (PTHL_UP        (NGPTOT,KLEV,1))
+    ALLOCATE (PRT_UP         (NGPTOT,KLEV,1))
+    ALLOCATE (PRV_UP         (NGPTOT,KLEV,1))
+    ALLOCATE (PRC_UP         (NGPTOT,KLEV,1))
+    ALLOCATE (PRI_UP         (NGPTOT,KLEV,1))
+    ALLOCATE (PU_UP          (NGPTOT,KLEV,1))
+    ALLOCATE (PV_UP          (NGPTOT,KLEV,1))
+    ALLOCATE (PTHV_UP        (NGPTOT,KLEV,1))
+    ALLOCATE (PW_UP          (NGPTOT,KLEV,1))
+    ALLOCATE (PFRAC_UP       (NGPTOT,KLEV,1))
+    ALLOCATE (PEMF           (NGPTOT,KLEV,1))
+
+    ALLOCATE (PDUDT_MF_OUT     (NGPTOT,KLEV,1))
+    ALLOCATE (PDVDT_MF_OUT     (NGPTOT,KLEV,1))
+    ALLOCATE (PDTHLDT_MF_OUT   (NGPTOT,KLEV,1))
+    ALLOCATE (PDRTDT_MF_OUT    (NGPTOT,KLEV,1))
+    ALLOCATE (PDSVDT_MF_OUT    (NGPTOT,KLEV,KSV,1))
+    ALLOCATE (PSIGMF_OUT       (NGPTOT,KLEV,1))
+    ALLOCATE (PRC_MF_OUT       (NGPTOT,KLEV,1))
+    ALLOCATE (PRI_MF_OUT       (NGPTOT,KLEV,1))
+    ALLOCATE (PCF_MF_OUT       (NGPTOT,KLEV,1))
+    ALLOCATE (PFLXZTHVMF_OUT   (NGPTOT,KLEV,1))
+    ALLOCATE (ZFLXZTHMF_OUT    (NGPTOT,KLEV,1))
+    ALLOCATE (ZFLXZRMF_OUT     (NGPTOT,KLEV,1))
+    ALLOCATE (ZFLXZUMF_OUT     (NGPTOT,KLEV,1))
+    ALLOCATE (ZFLXZVMF_OUT     (NGPTOT,KLEV,1))
+    ALLOCATE (PTHL_UP_OUT      (NGPTOT,KLEV,1))
+    ALLOCATE (PRT_UP_OUT       (NGPTOT,KLEV,1))
+    ALLOCATE (PRV_UP_OUT       (NGPTOT,KLEV,1))
+    ALLOCATE (PRC_UP_OUT       (NGPTOT,KLEV,1))
+    ALLOCATE (PRI_UP_OUT       (NGPTOT,KLEV,1))
+    ALLOCATE (PU_UP_OUT        (NGPTOT,KLEV,1))
+    ALLOCATE (PV_UP_OUT        (NGPTOT,KLEV,1))
+    ALLOCATE (PTHV_UP_OUT      (NGPTOT,KLEV,1))
+    ALLOCATE (PW_UP_OUT        (NGPTOT,KLEV,1))
+    ALLOCATE (PFRAC_UP_OUT     (NGPTOT,KLEV,1))
+    ALLOCATE (PEMF_OUT         (NGPTOT,KLEV,1))
+    ALLOCATE (ZDETR_OUT        (NGPTOT,KLEV,1))
+    ALLOCATE (ZENTR_OUT        (NGPTOT,KLEV,1))
+    ALLOCATE (IKLCL_OUT        (NGPTOT,1))
+    ALLOCATE (IKETL_OUT        (NGPTOT,1))
+    ALLOCATE (IKCTL_OUT        (NGPTOT,1))
   ENDIF
 
   IF (IOFF+KLON > NGPTOT) THEN
     EXIT
   ENDIF
 
-  READ(IFILE) PDZZF               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PZZ               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRHODJ               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRHODREF               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PPABSM               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PEXNM               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PSFTH          (IOFF+1:IOFF+KLON,:,1)
-  READ(IFILE) PSFRV          (IOFF+1:IOFF+KLON,:,1)
-  READ(IFILE) PTHM             (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRM              (IOFF+1:IOFF+KLON,:,:,:,1)
-  READ(IFILE) PUM                (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PVM                (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PTKEM              (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PSVM               (IOFF+1:IOFF+KLON,:,:,:,1)
-  READ(IFILE) PTHL_UP              (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRT_UP           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRV_UP           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRC_UP            (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRI_UP               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PU_UP               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PV_UP               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PTHV_UP               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PW_UP               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PFRAC_UP              (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PEMF         (IOFF+1:IOFF+KLON,:,:,1)
+  READ(IFILE) PDZZF         (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PZZ           (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRHODJ        (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRHODREF      (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PPABSM        (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PEXNM         (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PSFTH         (IOFF+1:IOFF+KLON,1)
+  READ(IFILE) PSFRV         (IOFF+1:IOFF+KLON,1)
+  READ(IFILE) PTHM          (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRM           (IOFF+1:IOFF+KLON,:,:,1)
+  READ(IFILE) PUM           (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PVM           (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PTKEM         (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PSVM          (IOFF+1:IOFF+KLON,:,:,1)
+  READ(IFILE) PTHL_UP       (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRT_UP        (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRV_UP        (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRC_UP        (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRI_UP        (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PU_UP         (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PV_UP         (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PTHV_UP       (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PW_UP         (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PFRAC_UP      (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PEMF          (IOFF+1:IOFF+KLON,:,1)
 
   READ(IFILE)
-  READ(IFILE) PDUDT_MF_OUT      (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PDVDT_MF_OUT     (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PDTHLDT_MF_OUT           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PDRTDT_MF_OUT            (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PDSVDT_MF_OUT           (IOFF+1:IOFF+KLON,:,:,:,1)
-  READ(IFILE) PSIGMF_OUT           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRC_MF_OUT           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRI_MF_OUT          (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PCF_MF_OUT           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PFLXZTHVMF_OUT          (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZFLXZTHMF_OUT     (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZFLXZRMF_OUT          (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZFLXZUMF_OUT           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZFLXZVMF_OUT           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PTHL_UP_OUT           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRT_UP_OUT            (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRV_UP_OUT            (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRC_UP_OUT         (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRI_UP_OUT         (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PU_UP_OUT           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PV_UP_OUT          (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PTHV_UP_OUT     (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PW_UP_OUT     (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PFRAC_UP_OUT   (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PEMF_OUT    (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZDETR_OUT    (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZENTR_OUT    (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) IKLCL_OUT    (IOFF+1:IOFF+KLON,:,1)
-  READ(IFILE) IKETL_OUT    (IOFF+1:IOFF+KLON,:,1)
-  READ(IFILE) IKCTL_OUT    (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PDUDT_MF_OUT     (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PDVDT_MF_OUT     (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PDTHLDT_MF_OUT   (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PDRTDT_MF_OUT    (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PDSVDT_MF_OUT    (IOFF+1:IOFF+KLON,:,:,1)
+  READ(IFILE) PSIGMF_OUT       (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRC_MF_OUT       (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRI_MF_OUT       (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PCF_MF_OUT       (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PFLXZTHVMF_OUT   (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZFLXZTHMF_OUT    (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZFLXZRMF_OUT     (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZFLXZUMF_OUT     (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZFLXZVMF_OUT     (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PTHL_UP_OUT      (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRT_UP_OUT       (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRV_UP_OUT       (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRC_UP_OUT       (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRI_UP_OUT       (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PU_UP_OUT        (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PV_UP_OUT        (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PTHV_UP_OUT      (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PW_UP_OUT        (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PFRAC_UP_OUT     (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PEMF_OUT         (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZDETR_OUT        (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZENTR_OUT        (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) IKLCL_OUT        (IOFF+1:IOFF+KLON,1)
+  READ(IFILE) IKETL_OUT        (IOFF+1:IOFF+KLON,1)
+  READ(IFILE) IKCTL_OUT        (IOFF+1:IOFF+KLON,1)
   
   CLOSE (IFILE)
 
@@ -507,178 +507,178 @@ DO WHILE(LLEXIST)
 ENDDO
 
 IF (NFLEVG /= KLEV) THEN
-  CALL INTERPOLATE (NFLEVG, IOFF, PDZZF               )
-  CALL INTERPOLATE (NFLEVG, IOFF, PZZ               )
-  CALL INTERPOLATE (NFLEVG, IOFF, PRHODJ  )
-  CALL INTERPOLATE (NFLEVG, IOFF, PRHODREF               )
-  CALL INTERPOLATE (NFLEVG, IOFF, PPABSM               )
-  CALL INTERPOLATE (NFLEVG, IOFF, PEXNM               )
-!  CALL INTERPOLATE (NFLEVG, IOFF, PSFTH_B        )
-!  CALL INTERPOLATE (NFLEVG, IOFF, PSFRV_B        )
-  CALL INTERPOLATE (NFLEVG, IOFF, PTHM             )
-  CALL INTERPOLATE (NFLEVG, IOFF, PRM              )
-  CALL INTERPOLATE (NFLEVG, IOFF, PUM                )
-  CALL INTERPOLATE (NFLEVG, IOFF, PVM                )
-  CALL INTERPOLATE (NFLEVG, IOFF, PTKEM              )
-  CALL INTERPOLATE (NFLEVG, IOFF, PSVM               )
-  CALL INTERPOLATE (NFLEVG, IOFF, PTHL_UP              )
-  CALL INTERPOLATE (NFLEVG, IOFF, PRT_UP           )
-  CALL INTERPOLATE (NFLEVG, IOFF, PRV_UP           )
-  CALL INTERPOLATE (NFLEVG, IOFF, PRC_UP            )
-  CALL INTERPOLATE (NFLEVG, IOFF, PRI_UP               )
-  CALL INTERPOLATE (NFLEVG, IOFF, PU_UP               )
-  CALL INTERPOLATE (NFLEVG, IOFF, PV_UP               )
-  CALL INTERPOLATE (NFLEVG, IOFF, PTHV_UP               )
-  CALL INTERPOLATE (NFLEVG, IOFF, PW_UP               )
-  CALL INTERPOLATE (NFLEVG, IOFF, PFRAC_UP              )
-  CALL INTERPOLATE (NFLEVG, IOFF, PEMF         )
-
-  CALL INTERPOLATE (NFLEVG, IOFF, PDUDT_MF_OUT      )
-  CALL INTERPOLATE (NFLEVG, IOFF, PDVDT_MF_OUT     )
-  CALL INTERPOLATE (NFLEVG, IOFF, PDTHLDT_MF_OUT           )
-  CALL INTERPOLATE (NFLEVG, IOFF, PDRTDT_MF_OUT            )
-  CALL INTERPOLATE (NFLEVG, IOFF, PDSVDT_MF_OUT           )
-  CALL INTERPOLATE (NFLEVG, IOFF, PSIGMF_OUT           )
-  CALL INTERPOLATE (NFLEVG, IOFF, PRC_MF_OUT           )
-  CALL INTERPOLATE (NFLEVG, IOFF, PRI_MF_OUT          )
-  CALL INTERPOLATE (NFLEVG, IOFF, PCF_MF_OUT           )
-  CALL INTERPOLATE (NFLEVG, IOFF, PFLXZTHVMF_OUT          )
-  CALL INTERPOLATE (NFLEVG, IOFF, ZFLXZTHMF_OUT     )
-  CALL INTERPOLATE (NFLEVG, IOFF, ZFLXZRMF_OUT          )
-  CALL INTERPOLATE (NFLEVG, IOFF, ZFLXZUMF_OUT           )
-  CALL INTERPOLATE (NFLEVG, IOFF, ZFLXZVMF_OUT           )
-  CALL INTERPOLATE (NFLEVG, IOFF, PTHL_UP_OUT           )
-  CALL INTERPOLATE (NFLEVG, IOFF, PRT_UP_OUT            )
-  CALL INTERPOLATE (NFLEVG, IOFF, PRV_UP_OUT            )
-  CALL INTERPOLATE (NFLEVG, IOFF, PRC_UP_OUT         )
-  CALL INTERPOLATE (NFLEVG, IOFF, PRI_UP_OUT         )
-  CALL INTERPOLATE (NFLEVG, IOFF, PU_UP_OUT           )
-  CALL INTERPOLATE (NFLEVG, IOFF, PV_UP_OUT          )
-  CALL INTERPOLATE (NFLEVG, IOFF, PTHV_UP_OUT     )
-  CALL INTERPOLATE (NFLEVG, IOFF, PW_UP_OUT     )
-  CALL INTERPOLATE (NFLEVG, IOFF, PFRAC_UP_OUT   )
-  CALL INTERPOLATE (NFLEVG, IOFF, PEMF_OUT    )
-  CALL INTERPOLATE (NFLEVG, IOFF, ZDETR_OUT    )
-  CALL INTERPOLATE (NFLEVG, IOFF, ZENTR_OUT    )
-  !CALL INTERPOLATE (NFLEVG, IOFF, IKLCL_OUT    )
-  !CALL INTERPOLATE (NFLEVG, IOFF, IKETL_OUT    )
-  !CALL INTERPOLATE (NFLEVG, IOFF, IKCTL_OUT    )
+  CALL INTERPOLATE (NFLEVG, IOFF, PDZZF)
+  CALL INTERPOLATE (NFLEVG, IOFF, PZZ)
+  CALL INTERPOLATE (NFLEVG, IOFF, PRHODJ)
+  CALL INTERPOLATE (NFLEVG, IOFF, PRHODREF)
+  CALL INTERPOLATE (NFLEVG, IOFF, PPABSM)
+  CALL INTERPOLATE (NFLEVG, IOFF, PEXNM)
+!  CALL INTERPOLATE (NFLEVG, IOFF, PSFTH_B)
+!  CALL INTERPOLATE (NFLEVG, IOFF, PSFRV_B)
+  CALL INTERPOLATE (NFLEVG, IOFF, PTHM)
+  CALL INTERPOLATE (NFLEVG, IOFF, PRM)
+  CALL INTERPOLATE (NFLEVG, IOFF, PUM)
+  CALL INTERPOLATE (NFLEVG, IOFF, PVM)
+  CALL INTERPOLATE (NFLEVG, IOFF, PTKEM)
+  CALL INTERPOLATE (NFLEVG, IOFF, PSVM)
+  CALL INTERPOLATE (NFLEVG, IOFF, PTHL_UP)
+  CALL INTERPOLATE (NFLEVG, IOFF, PRT_UP)
+  CALL INTERPOLATE (NFLEVG, IOFF, PRV_UP)
+  CALL INTERPOLATE (NFLEVG, IOFF, PRC_UP)
+  CALL INTERPOLATE (NFLEVG, IOFF, PRI_UP)
+  CALL INTERPOLATE (NFLEVG, IOFF, PU_UP)
+  CALL INTERPOLATE (NFLEVG, IOFF, PV_UP)
+  CALL INTERPOLATE (NFLEVG, IOFF, PTHV_UP)
+  CALL INTERPOLATE (NFLEVG, IOFF, PW_UP)
+  CALL INTERPOLATE (NFLEVG, IOFF, PFRAC_UP)
+  CALL INTERPOLATE (NFLEVG, IOFF, PEMF)
+
+  CALL INTERPOLATE (NFLEVG, IOFF, PDUDT_MF_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PDVDT_MF_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PDTHLDT_MF_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PDRTDT_MF_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PDSVDT_MF_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PSIGMF_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PRC_MF_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PRI_MF_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PCF_MF_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PFLXZTHVMF_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, ZFLXZTHMF_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, ZFLXZRMF_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, ZFLXZUMF_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, ZFLXZVMF_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PTHL_UP_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PRT_UP_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PRV_UP_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PRC_UP_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PRI_UP_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PU_UP_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PV_UP_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PTHV_UP_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PW_UP_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PFRAC_UP_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, PEMF_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, ZDETR_OUT)
+  CALL INTERPOLATE (NFLEVG, IOFF, ZENTR_OUT)
+  !CALL INTERPOLATE (NFLEVG, IOFF, IKLCL_OUT)
+  !CALL INTERPOLATE (NFLEVG, IOFF, IKETL_OUT)
+  !CALL INTERPOLATE (NFLEVG, IOFF, IKCTL_OUT)
 
 ENDIF
 
-CALL REPLICATE (IOFF, PDZZF               (:,:,:,1))
-CALL REPLICATE (IOFF, PZZ               (:,:,:,1))
-CALL REPLICATE (IOFF, PRHODJ               (:,:,:,1))
-CALL REPLICATE (IOFF, PRHODREF               (:,:,:,1))
-CALL REPLICATE (IOFF, PPABSM               (:,:,:,1))
-CALL REPLICATE (IOFF, PEXNM               (:,:,:,1))
-CALL REPLICATE (IOFF, PSFTH          (:,:,1))
-CALL REPLICATE (IOFF, PSFRV          (:,:,1))
-CALL REPLICATE (IOFF, PTHM             (:,:,:,1))
-CALL REPLICATE (IOFF, PRM              (:,:,:,:,1))
-CALL REPLICATE (IOFF, PUM                (:,:,:,1))
-CALL REPLICATE (IOFF, PVM                (:,:,:,1))
-CALL REPLICATE (IOFF, PTKEM              (:,:,:,1))
-CALL REPLICATE (IOFF, PSVM               (:,:,:,:,1))
-CALL REPLICATE (IOFF, PTHL_UP              (:,:,:,1))
-CALL REPLICATE (IOFF, PRT_UP           (:,:,:,1))
-CALL REPLICATE (IOFF, PRV_UP           (:,:,:,1))
-CALL REPLICATE (IOFF, PRC_UP            (:,:,:,1))
-CALL REPLICATE (IOFF, PRI_UP               (:,:,:,1))
-CALL REPLICATE (IOFF, PU_UP               (:,:,:,1))
-CALL REPLICATE (IOFF, PV_UP               (:,:,:,1))
-CALL REPLICATE (IOFF, PTHV_UP               (:,:,:,1))
-CALL REPLICATE (IOFF, PW_UP               (:,:,:,1))
-CALL REPLICATE (IOFF, PFRAC_UP              (:,:,:,1))
-CALL REPLICATE (IOFF, PEMF         (:,:,:,1))
-
-CALL REPLICATE (IOFF, PDUDT_MF_OUT      (:,:,:,1))
-CALL REPLICATE (IOFF, PDVDT_MF_OUT     (:,:,:,1))
-CALL REPLICATE (IOFF, PDTHLDT_MF_OUT           (:,:,:,1))
-CALL REPLICATE (IOFF, PDRTDT_MF_OUT            (:,:,:,1))
-CALL REPLICATE (IOFF, PDSVDT_MF_OUT           (:,:,:,:,1))
-CALL REPLICATE (IOFF, PSIGMF_OUT           (:,:,:,1))
-CALL REPLICATE (IOFF, PRC_MF_OUT           (:,:,:,1))
-CALL REPLICATE (IOFF, PRI_MF_OUT          (:,:,:,1))
-CALL REPLICATE (IOFF, PCF_MF_OUT           (:,:,:,1))
-CALL REPLICATE (IOFF, PFLXZTHVMF_OUT          (:,:,:,1))
-CALL REPLICATE (IOFF, ZFLXZTHMF_OUT     (:,:,:,1))
-CALL REPLICATE (IOFF, ZFLXZRMF_OUT          (:,:,:,1))
-CALL REPLICATE (IOFF, ZFLXZUMF_OUT           (:,:,:,1))
-CALL REPLICATE (IOFF, ZFLXZVMF_OUT           (:,:,:,1))
-CALL REPLICATE (IOFF, PTHL_UP_OUT           (:,:,:,1))
-CALL REPLICATE (IOFF, PRT_UP_OUT            (:,:,:,1))
-CALL REPLICATE (IOFF, PRV_UP_OUT            (:,:,:,1))
-CALL REPLICATE (IOFF, PRC_UP_OUT         (:,:,:,1))
-CALL REPLICATE (IOFF, PRI_UP_OUT         (:,:,:,1))
-CALL REPLICATE (IOFF, PU_UP_OUT           (:,:,:,1))
-CALL REPLICATE (IOFF, PV_UP_OUT          (:,:,:,1))
-CALL REPLICATE (IOFF, PTHV_UP_OUT     (:,:,:,1))
-CALL REPLICATE (IOFF, PW_UP_OUT     (:,:,:,1))
-CALL REPLICATE (IOFF, PFRAC_UP_OUT   (:,:,:,1))
-CALL REPLICATE (IOFF, PEMF_OUT    (:,:,:,1))
-CALL REPLICATE (IOFF, ZDETR_OUT    (:,:,:,1))
-CALL REPLICATE (IOFF, ZENTR_OUT    (:,:,:,1))
-CALL REPLICATE (IOFF, IKLCL_OUT    (:,:,1))
-CALL REPLICATE (IOFF, IKETL_OUT    (:,:,1))
-CALL REPLICATE (IOFF, IKCTL_OUT    (:,:,1))
-
-CALL NPROMIZE (NPROMA, PDZZF               , PDZZF_B             )
-CALL NPROMIZE (NPROMA, PZZ               , PZZ_B             )
-CALL NPROMIZE (NPROMA, PRHODJ               , PRHODJ_B             )
-CALL NPROMIZE (NPROMA, PRHODREF               , PRHODREF_B             )
-CALL NPROMIZE (NPROMA, PPABSM               , PPABSM_B             )
-CALL NPROMIZE (NPROMA, PEXNM               , PEXNM_B             )
-CALL NPROMIZE (NPROMA, PSFTH          , PSFTH_B        )
-CALL NPROMIZE (NPROMA, PSFRV          , PSFRV_B        )
-CALL NPROMIZE (NPROMA, PTHM             , PTHM_B           )
-CALL NPROMIZE (NPROMA, PRM              , PRM_B            )
-CALL NPROMIZE (NPROMA, PUM                , PUM_B              )
-CALL NPROMIZE (NPROMA, PVM                , PVM_B              )
-CALL NPROMIZE (NPROMA, PTKEM              , PTKEM_B            )
-CALL NPROMIZE (NPROMA, PSVM               , PSVM_B             )
-CALL NPROMIZE (NPROMA, PTHL_UP              , PTHL_UP_B            )
-CALL NPROMIZE (NPROMA, PRT_UP           , PRT_UP_B         ) 
-CALL NPROMIZE (NPROMA, PRV_UP           , PRV_UP_B         ) 
-CALL NPROMIZE (NPROMA, PRC_UP            , PRC_UP_B          ) 
-CALL NPROMIZE (NPROMA, PRI_UP               , PRI_UP_B             ) 
-CALL NPROMIZE (NPROMA, PU_UP               , PU_UP_B             )
-CALL NPROMIZE (NPROMA, PV_UP               , PV_UP_B             )
-CALL NPROMIZE (NPROMA, PTHV_UP               , PTHV_UP_B             )
-CALL NPROMIZE (NPROMA, PW_UP               , PW_UP_B             )
-CALL NPROMIZE (NPROMA, PFRAC_UP              , PFRAC_UP_B            )
-CALL NPROMIZE (NPROMA, PEMF         , PEMF_B       )
-
-CALL NPROMIZE (NPROMA, PDUDT_MF_OUT      , PDUDT_MF_OUT_B    )
-CALL NPROMIZE (NPROMA, PDVDT_MF_OUT     , PDVDT_MF_OUT_B   )
-CALL NPROMIZE (NPROMA, PDTHLDT_MF_OUT           , PDTHLDT_MF_OUT_B         )
-CALL NPROMIZE (NPROMA, PDRTDT_MF_OUT            , PDRTDT_MF_OUT_B          )
-CALL NPROMIZE (NPROMA, PDSVDT_MF_OUT           , PDSVDT_MF_OUT_B         )
-CALL NPROMIZE (NPROMA, PSIGMF_OUT           , PSIGMF_OUT_B         )
-CALL NPROMIZE (NPROMA, PRC_MF_OUT           , PRC_MF_OUT_B         )
-CALL NPROMIZE (NPROMA, PRI_MF_OUT          , PRI_MF_OUT_B        )
-CALL NPROMIZE (NPROMA, PCF_MF_OUT           , PCF_MF_OUT_B         )
-CALL NPROMIZE (NPROMA, PFLXZTHVMF_OUT          , PFLXZTHVMF_OUT_B        )
-CALL NPROMIZE (NPROMA, ZFLXZTHMF_OUT     , ZFLXZTHMF_OUT_B   )
-CALL NPROMIZE (NPROMA, ZFLXZRMF_OUT          , ZFLXZRMF_OUT_B        )
-CALL NPROMIZE (NPROMA, ZFLXZUMF_OUT           , ZFLXZUMF_OUT_B         )
-CALL NPROMIZE (NPROMA, ZFLXZVMF_OUT           , ZFLXZVMF_OUT_B         )
-CALL NPROMIZE (NPROMA, PTHL_UP_OUT           , PTHL_UP_OUT_B         )
-CALL NPROMIZE (NPROMA, PRT_UP_OUT            , PRT_UP_OUT_B          )
-CALL NPROMIZE (NPROMA, PRV_UP_OUT            , PRV_UP_OUT_B          )
-CALL NPROMIZE (NPROMA, PRC_UP_OUT         , PRC_UP_OUT_B       )
-CALL NPROMIZE (NPROMA, PRI_UP_OUT         , PRI_UP_OUT_B       )
-CALL NPROMIZE (NPROMA, PU_UP_OUT           , PU_UP_OUT_B         )
-CALL NPROMIZE (NPROMA, PV_UP_OUT          , PV_UP_OUT_B        )
-CALL NPROMIZE (NPROMA, PTHV_UP_OUT     , PTHV_UP_OUT_B   )
-CALL NPROMIZE (NPROMA, PW_UP_OUT     , PW_UP_OUT_B   )
-CALL NPROMIZE (NPROMA, PFRAC_UP_OUT   , PFRAC_UP_OUT_B )
-CALL NPROMIZE (NPROMA, PEMF_OUT    , PEMF_OUT_B  )
-CALL NPROMIZE (NPROMA, ZDETR_OUT    , ZDETR_OUT_B  )
-CALL NPROMIZE (NPROMA, ZENTR_OUT    , ZENTR_OUT_B  )
-CALL NPROMIZE (NPROMA, IKLCL_OUT    , IKLCL_OUT_B  )
-CALL NPROMIZE (NPROMA, IKETL_OUT    , IKETL_OUT_B  )
-CALL NPROMIZE (NPROMA, IKCTL_OUT    , IKCTL_OUT_B  )
+CALL REPLICATE (IOFF, PDZZF          (:,:,1))
+CALL REPLICATE (IOFF, PZZ            (:,:,1))
+CALL REPLICATE (IOFF, PRHODJ         (:,:,1))
+CALL REPLICATE (IOFF, PRHODREF       (:,:,1))
+CALL REPLICATE (IOFF, PPABSM         (:,:,1))
+CALL REPLICATE (IOFF, PEXNM          (:,:,1))
+CALL REPLICATE (IOFF, PSFTH          (:,1))
+CALL REPLICATE (IOFF, PSFRV          (:,1))
+CALL REPLICATE (IOFF, PTHM           (:,:,1))
+CALL REPLICATE (IOFF, PRM            (:,:,:,1))
+CALL REPLICATE (IOFF, PUM            (:,:,1))
+CALL REPLICATE (IOFF, PVM            (:,:,1))
+CALL REPLICATE (IOFF, PTKEM          (:,:,1))
+CALL REPLICATE (IOFF, PSVM           (:,:,:,1))
+CALL REPLICATE (IOFF, PTHL_UP        (:,:,1))
+CALL REPLICATE (IOFF, PRT_UP         (:,:,1))
+CALL REPLICATE (IOFF, PRV_UP         (:,:,1))
+CALL REPLICATE (IOFF, PRC_UP         (:,:,1))
+CALL REPLICATE (IOFF, PRI_UP         (:,:,1))
+CALL REPLICATE (IOFF, PU_UP          (:,:,1))
+CALL REPLICATE (IOFF, PV_UP          (:,:,1))
+CALL REPLICATE (IOFF, PTHV_UP        (:,:,1))
+CALL REPLICATE (IOFF, PW_UP          (:,:,1))
+CALL REPLICATE (IOFF, PFRAC_UP       (:,:,1))
+CALL REPLICATE (IOFF, PEMF           (:,:,1))
+
+CALL REPLICATE (IOFF, PDUDT_MF_OUT   (:,:,1))
+CALL REPLICATE (IOFF, PDVDT_MF_OUT   (:,:,1))
+CALL REPLICATE (IOFF, PDTHLDT_MF_OUT (:,:,1))
+CALL REPLICATE (IOFF, PDRTDT_MF_OUT  (:,:,1))
+CALL REPLICATE (IOFF, PDSVDT_MF_OUT  (:,:,:,1))
+CALL REPLICATE (IOFF, PSIGMF_OUT     (:,:,1))
+CALL REPLICATE (IOFF, PRC_MF_OUT     (:,:,1))
+CALL REPLICATE (IOFF, PRI_MF_OUT     (:,:,1))
+CALL REPLICATE (IOFF, PCF_MF_OUT     (:,:,1))
+CALL REPLICATE (IOFF, PFLXZTHVMF_OUT (:,:,1))
+CALL REPLICATE (IOFF, ZFLXZTHMF_OUT  (:,:,1))
+CALL REPLICATE (IOFF, ZFLXZRMF_OUT   (:,:,1))
+CALL REPLICATE (IOFF, ZFLXZUMF_OUT   (:,:,1))
+CALL REPLICATE (IOFF, ZFLXZVMF_OUT   (:,:,1))
+CALL REPLICATE (IOFF, PTHL_UP_OUT    (:,:,1))
+CALL REPLICATE (IOFF, PRT_UP_OUT     (:,:,1))
+CALL REPLICATE (IOFF, PRV_UP_OUT     (:,:,1))
+CALL REPLICATE (IOFF, PRC_UP_OUT     (:,:,1))
+CALL REPLICATE (IOFF, PRI_UP_OUT     (:,:,1))
+CALL REPLICATE (IOFF, PU_UP_OUT      (:,:,1))
+CALL REPLICATE (IOFF, PV_UP_OUT      (:,:,1))
+CALL REPLICATE (IOFF, PTHV_UP_OUT    (:,:,1))
+CALL REPLICATE (IOFF, PW_UP_OUT      (:,:,1))
+CALL REPLICATE (IOFF, PFRAC_UP_OUT   (:,:,1))
+CALL REPLICATE (IOFF, PEMF_OUT       (:,:,1))
+CALL REPLICATE (IOFF, ZDETR_OUT      (:,:,1))
+CALL REPLICATE (IOFF, ZENTR_OUT      (:,:,1))
+CALL REPLICATE (IOFF, IKLCL_OUT      (:,1))
+CALL REPLICATE (IOFF, IKETL_OUT      (:,1))
+CALL REPLICATE (IOFF, IKCTL_OUT      (:,1))
+
+CALL NPROMIZE (NPROMA, PDZZF          , PDZZF_B)
+CALL NPROMIZE (NPROMA, PZZ            , PZZ_B)
+CALL NPROMIZE (NPROMA, PRHODJ         , PRHODJ_B)
+CALL NPROMIZE (NPROMA, PRHODREF       , PRHODREF_B)
+CALL NPROMIZE (NPROMA, PPABSM         , PPABSM_B)
+CALL NPROMIZE (NPROMA, PEXNM          , PEXNM_B)
+CALL NPROMIZE (NPROMA, PSFTH          , PSFTH_B)
+CALL NPROMIZE (NPROMA, PSFRV          , PSFRV_B)
+CALL NPROMIZE (NPROMA, PTHM           , PTHM_B)
+CALL NPROMIZE (NPROMA, PRM            , PRM_B)
+CALL NPROMIZE (NPROMA, PUM            , PUM_B)
+CALL NPROMIZE (NPROMA, PVM            , PVM_B)
+CALL NPROMIZE (NPROMA, PTKEM          , PTKEM_B)
+CALL NPROMIZE (NPROMA, PSVM           , PSVM_B)
+CALL NPROMIZE (NPROMA, PTHL_UP        , PTHL_UP_B)
+CALL NPROMIZE (NPROMA, PRT_UP         , PRT_UP_B)
+CALL NPROMIZE (NPROMA, PRV_UP         , PRV_UP_B)
+CALL NPROMIZE (NPROMA, PRC_UP         , PRC_UP_B)
+CALL NPROMIZE (NPROMA, PRI_UP         , PRI_UP_B)
+CALL NPROMIZE (NPROMA, PU_UP          , PU_UP_B)
+CALL NPROMIZE (NPROMA, PV_UP          , PV_UP_B)
+CALL NPROMIZE (NPROMA, PTHV_UP        , PTHV_UP_B)
+CALL NPROMIZE (NPROMA, PW_UP          , PW_UP_B)
+CALL NPROMIZE (NPROMA, PFRAC_UP       , PFRAC_UP_B)
+CALL NPROMIZE (NPROMA, PEMF           , PEMF_B)
+
+CALL NPROMIZE (NPROMA, PDUDT_MF_OUT     , PDUDT_MF_OUT_B)
+CALL NPROMIZE (NPROMA, PDVDT_MF_OUT     , PDVDT_MF_OUT_B)
+CALL NPROMIZE (NPROMA, PDTHLDT_MF_OUT   , PDTHLDT_MF_OUT_B)
+CALL NPROMIZE (NPROMA, PDRTDT_MF_OUT    , PDRTDT_MF_OUT_B)
+CALL NPROMIZE (NPROMA, PDSVDT_MF_OUT    , PDSVDT_MF_OUT_B)
+CALL NPROMIZE (NPROMA, PSIGMF_OUT       , PSIGMF_OUT_B)
+CALL NPROMIZE (NPROMA, PRC_MF_OUT       , PRC_MF_OUT_B)
+CALL NPROMIZE (NPROMA, PRI_MF_OUT       , PRI_MF_OUT_B)
+CALL NPROMIZE (NPROMA, PCF_MF_OUT       , PCF_MF_OUT_B)
+CALL NPROMIZE (NPROMA, PFLXZTHVMF_OUT   , PFLXZTHVMF_OUT_B)
+CALL NPROMIZE (NPROMA, ZFLXZTHMF_OUT    , ZFLXZTHMF_OUT_B)
+CALL NPROMIZE (NPROMA, ZFLXZRMF_OUT     , ZFLXZRMF_OUT_B)
+CALL NPROMIZE (NPROMA, ZFLXZUMF_OUT     , ZFLXZUMF_OUT_B)
+CALL NPROMIZE (NPROMA, ZFLXZVMF_OUT     , ZFLXZVMF_OUT_B)
+CALL NPROMIZE (NPROMA, PTHL_UP_OUT      , PTHL_UP_OUT_B)
+CALL NPROMIZE (NPROMA, PRT_UP_OUT       , PRT_UP_OUT_B)
+CALL NPROMIZE (NPROMA, PRV_UP_OUT       , PRV_UP_OUT_B)
+CALL NPROMIZE (NPROMA, PRC_UP_OUT       , PRC_UP_OUT_B)
+CALL NPROMIZE (NPROMA, PRI_UP_OUT       , PRI_UP_OUT_B)
+CALL NPROMIZE (NPROMA, PU_UP_OUT        , PU_UP_OUT_B)
+CALL NPROMIZE (NPROMA, PV_UP_OUT        , PV_UP_OUT_B)
+CALL NPROMIZE (NPROMA, PTHV_UP_OUT      , PTHV_UP_OUT_B)
+CALL NPROMIZE (NPROMA, PW_UP_OUT        , PW_UP_OUT_B)
+CALL NPROMIZE (NPROMA, PFRAC_UP_OUT     , PFRAC_UP_OUT_B)
+CALL NPROMIZE (NPROMA, PEMF_OUT         , PEMF_OUT_B)
+CALL NPROMIZE (NPROMA, ZDETR_OUT        , ZDETR_OUT_B)
+CALL NPROMIZE (NPROMA, ZENTR_OUT        , ZENTR_OUT_B)
+CALL NPROMIZE (NPROMA, IKLCL_OUT        , IKLCL_OUT_B)
+CALL NPROMIZE (NPROMA, IKETL_OUT        , IKETL_OUT_B)
+CALL NPROMIZE (NPROMA, IKCTL_OUT        , IKCTL_OUT_B)
 
 END SUBROUTINE 
 
diff --git a/src/testprogs/shallow/main_shallow.F90 b/src/testprogs/shallow/main_shallow.F90
index 29826ea4a5f3db52e1ad8b96b00aaa057a8dda1d..05281a7a0f05828e6bd0494f753b2edb64d134da 100644
--- a/src/testprogs/shallow/main_shallow.F90
+++ b/src/testprogs/shallow/main_shallow.F90
@@ -17,85 +17,85 @@ INTEGER      :: KRR, KRRL, KRRI
 INTEGER      :: KSV
 
 !IN and INOUTS
-REAL, ALLOCATABLE   :: PDZZF              (:,:,:,:)
-REAL, ALLOCATABLE   :: PZZ               (:,:,:,:)
-REAL, ALLOCATABLE   :: PRHODJ              (:,:,:,:)
-REAL, ALLOCATABLE   :: PRHODREF               (:,:,:,:)
-REAL, ALLOCATABLE   :: PPABSM               (:,:,:,:)
-REAL, ALLOCATABLE   :: PEXNM               (:,:,:,:)
-REAL, ALLOCATABLE   :: PSFTH          (:,:,:)
-REAL, ALLOCATABLE   :: PSFRV          (:,:,:)
-REAL, ALLOCATABLE   :: PTHM             (:,:,:,:)
-REAL, ALLOCATABLE   :: PRM              (:,:,:,:,:) !(KLON, 1, KLEV, KRR)
-
-REAL, ALLOCATABLE   :: PUM                (:,:,:,:)
-REAL, ALLOCATABLE   :: PVM                (:,:,:,:)
-REAL, ALLOCATABLE   :: PTKEM              (:,:,:,:)
-REAL, ALLOCATABLE   :: PSVM               (:,:,:,:,:) !(KLON,1,KLEV,KSV)
-REAL, ALLOCATABLE   :: PTHL_UP              (:,:,:,:)
-REAL, ALLOCATABLE   :: PRT_UP           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRV_UP           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRC_UP            (:,:,:,:)
-REAL, ALLOCATABLE   :: PRI_UP               (:,:,:,:)
-REAL, ALLOCATABLE   :: PU_UP               (:,:,:,:)
-REAL, ALLOCATABLE   :: PV_UP               (:,:,:,:)
-REAL, ALLOCATABLE   :: PTHV_UP               (:,:,:,:)
-REAL, ALLOCATABLE   :: PW_UP               (:,:,:,:)
-REAL, ALLOCATABLE   :: PFRAC_UP              (:,:,:,:)
-REAL, ALLOCATABLE   :: PEMF         (:,:,:,:)
+REAL, ALLOCATABLE   :: PDZZF          (:,:,:)
+REAL, ALLOCATABLE   :: PZZ            (:,:,:)
+REAL, ALLOCATABLE   :: PRHODJ         (:,:,:)
+REAL, ALLOCATABLE   :: PRHODREF       (:,:,:)
+REAL, ALLOCATABLE   :: PPABSM         (:,:,:)
+REAL, ALLOCATABLE   :: PEXNM          (:,:,:)
+REAL, ALLOCATABLE   :: PSFTH          (:,:)
+REAL, ALLOCATABLE   :: PSFRV          (:,:)
+REAL, ALLOCATABLE   :: PTHM           (:,:,:)
+REAL, ALLOCATABLE   :: PRM            (:,:,:,:) !(KLON, 1, KLEV, KRR)
+
+REAL, ALLOCATABLE   :: PUM            (:,:,:)
+REAL, ALLOCATABLE   :: PVM            (:,:,:)
+REAL, ALLOCATABLE   :: PTKEM          (:,:,:)
+REAL, ALLOCATABLE   :: PSVM           (:,:,:,:) !(KLON,1,KLEV,KSV)
+REAL, ALLOCATABLE   :: PTHL_UP        (:,:,:)
+REAL, ALLOCATABLE   :: PRT_UP         (:,:,:)
+REAL, ALLOCATABLE   :: PRV_UP         (:,:,:)
+REAL, ALLOCATABLE   :: PRC_UP         (:,:,:)
+REAL, ALLOCATABLE   :: PRI_UP         (:,:,:)
+REAL, ALLOCATABLE   :: PU_UP          (:,:,:)
+REAL, ALLOCATABLE   :: PV_UP          (:,:,:)
+REAL, ALLOCATABLE   :: PTHV_UP        (:,:,:)
+REAL, ALLOCATABLE   :: PW_UP          (:,:,:)
+REAL, ALLOCATABLE   :: PFRAC_UP       (:,:,:)
+REAL, ALLOCATABLE   :: PEMF           (:,:,:)
 
 !OUT
-REAL, ALLOCATABLE   :: PDUDT_MF              (:,:,:,:)
-REAL, ALLOCATABLE   :: PDVDT_MF               (:,:,:,:)
-REAL, ALLOCATABLE   :: PDTHLDT_MF               (:,:,:,:)
-REAL, ALLOCATABLE   :: PDRTDT_MF               (:,:,:,:)
-REAL, ALLOCATABLE   :: PDSVDT_MF               (:,:,:,:,:) !(KLON,1,KLEV,KSV)
-REAL, ALLOCATABLE   :: PSIGMF                (:,:,:,:)
-REAL, ALLOCATABLE   :: PRC_MF                (:,:,:,:)
-REAL, ALLOCATABLE   :: PRI_MF             (:,:,:,:)
-REAL, ALLOCATABLE   :: PCF_MF             (:,:,:,:)
-REAL, ALLOCATABLE   :: PFLXZTHVMF               (:,:,:,:)
-REAL, ALLOCATABLE   :: ZFLXZTHMF              (:,:,:,:)
-REAL, ALLOCATABLE   :: ZFLXZRMF         (:,:,:,:)
-REAL, ALLOCATABLE   :: ZFLXZUMF         (:,:,:,:)
-REAL, ALLOCATABLE   :: ZFLXZVMF       (:,:,:,:)
-REAL, ALLOCATABLE   :: ZDETR        (:,:,:,:)
-REAL, ALLOCATABLE   :: ZENTR        (:,:,:,:)
-INTEGER, ALLOCATABLE:: IKLCL  (:,:,:)
-INTEGER, ALLOCATABLE:: IKETL  (:,:,:)
-INTEGER, ALLOCATABLE:: IKCTL (:,:,:)
+REAL, ALLOCATABLE   :: PDUDT_MF       (:,:,:)
+REAL, ALLOCATABLE   :: PDVDT_MF       (:,:,:)
+REAL, ALLOCATABLE   :: PDTHLDT_MF     (:,:,:)
+REAL, ALLOCATABLE   :: PDRTDT_MF      (:,:,:)
+REAL, ALLOCATABLE   :: PDSVDT_MF      (:,:,:,:) !(KLON,1,KLEV,KSV)
+REAL, ALLOCATABLE   :: PSIGMF         (:,:,:)
+REAL, ALLOCATABLE   :: PRC_MF         (:,:,:)
+REAL, ALLOCATABLE   :: PRI_MF         (:,:,:)
+REAL, ALLOCATABLE   :: PCF_MF         (:,:,:)
+REAL, ALLOCATABLE   :: PFLXZTHVMF     (:,:,:)
+REAL, ALLOCATABLE   :: ZFLXZTHMF      (:,:,:)
+REAL, ALLOCATABLE   :: ZFLXZRMF       (:,:,:)
+REAL, ALLOCATABLE   :: ZFLXZUMF       (:,:,:)
+REAL, ALLOCATABLE   :: ZFLXZVMF       (:,:,:)
+REAL, ALLOCATABLE   :: ZDETR          (:,:,:)
+REAL, ALLOCATABLE   :: ZENTR          (:,:,:)
+INTEGER, ALLOCATABLE:: IKLCL          (:,:)
+INTEGER, ALLOCATABLE:: IKETL          (:,:)
+INTEGER, ALLOCATABLE:: IKCTL          (:,:)
 
 !Expected values
-REAL, ALLOCATABLE   :: PDUDT_MF_OUT      (:,:,:,:)
-REAL, ALLOCATABLE   :: PDVDT_MF_OUT     (:,:,:,:)
-REAL, ALLOCATABLE   :: PDTHLDT_MF_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PDRTDT_MF_OUT            (:,:,:,:)
-REAL, ALLOCATABLE   :: PDSVDT_MF_OUT           (:,:,:,:,:) !(KLON,1,KLEV,KSV)
-REAL, ALLOCATABLE   :: PSIGMF_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRC_MF_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRI_MF_OUT          (:,:,:,:)
-REAL, ALLOCATABLE   :: PCF_MF_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PFLXZTHVMF_OUT          (:,:,:,:)
-REAL, ALLOCATABLE   :: ZFLXZTHMF_OUT     (:,:,:,:)
-REAL, ALLOCATABLE   :: ZFLXZRMF_OUT          (:,:,:,:)
-REAL, ALLOCATABLE   :: ZFLXZUMF_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: ZFLXZVMF_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PTHL_UP_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRT_UP_OUT            (:,:,:,:)
-REAL, ALLOCATABLE   :: PRV_UP_OUT            (:,:,:,:)
-REAL, ALLOCATABLE   :: PRC_UP_OUT         (:,:,:,:)
-REAL, ALLOCATABLE   :: PRI_UP_OUT         (:,:,:,:)
-REAL, ALLOCATABLE   :: PU_UP_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PV_UP_OUT          (:,:,:,:)
-REAL, ALLOCATABLE   :: PTHV_UP_OUT     (:,:,:,:)
-REAL, ALLOCATABLE   :: PW_UP_OUT     (:,:,:,:)
-REAL, ALLOCATABLE   :: PFRAC_UP_OUT   (:,:,:,:)
-REAL, ALLOCATABLE   :: PEMF_OUT    (:,:,:,:)
-REAL, ALLOCATABLE   :: ZDETR_OUT    (:,:,:,:)
-REAL, ALLOCATABLE   :: ZENTR_OUT    (:,:,:,:)
-INTEGER, ALLOCATABLE:: IKLCL_OUT  (:,:,:)
-INTEGER, ALLOCATABLE:: IKETL_OUT  (:,:,:)
-INTEGER, ALLOCATABLE:: IKCTL_OUT (:,:,:)
+REAL, ALLOCATABLE   :: PDUDT_MF_OUT   (:,:,:)
+REAL, ALLOCATABLE   :: PDVDT_MF_OUT   (:,:,:)
+REAL, ALLOCATABLE   :: PDTHLDT_MF_OUT (:,:,:)
+REAL, ALLOCATABLE   :: PDRTDT_MF_OUT  (:,:,:)
+REAL, ALLOCATABLE   :: PDSVDT_MF_OUT  (:,:,:,:) !(KLON,1,KLEV,KSV)
+REAL, ALLOCATABLE   :: PSIGMF_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: PRC_MF_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: PRI_MF_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: PCF_MF_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: PFLXZTHVMF_OUT (:,:,:)
+REAL, ALLOCATABLE   :: ZFLXZTHMF_OUT  (:,:,:)
+REAL, ALLOCATABLE   :: ZFLXZRMF_OUT   (:,:,:)
+REAL, ALLOCATABLE   :: ZFLXZUMF_OUT   (:,:,:)
+REAL, ALLOCATABLE   :: ZFLXZVMF_OUT   (:,:,:)
+REAL, ALLOCATABLE   :: PTHL_UP_OUT    (:,:,:)
+REAL, ALLOCATABLE   :: PRT_UP_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: PRV_UP_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: PRC_UP_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: PRI_UP_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: PU_UP_OUT      (:,:,:)
+REAL, ALLOCATABLE   :: PV_UP_OUT      (:,:,:)
+REAL, ALLOCATABLE   :: PTHV_UP_OUT    (:,:,:)
+REAL, ALLOCATABLE   :: PW_UP_OUT      (:,:,:)
+REAL, ALLOCATABLE   :: PFRAC_UP_OUT   (:,:,:)
+REAL, ALLOCATABLE   :: PEMF_OUT       (:,:,:)
+REAL, ALLOCATABLE   :: ZDETR_OUT      (:,:,:)
+REAL, ALLOCATABLE   :: ZENTR_OUT      (:,:,:)
+INTEGER, ALLOCATABLE:: IKLCL_OUT      (:,:)
+INTEGER, ALLOCATABLE:: IKETL_OUT      (:,:)
+INTEGER, ALLOCATABLE:: IKCTL_OUT      (:,:)
 
 INTEGER :: NPROMA, NGPBLKS, NFLEVG
 INTEGER :: IBL, JLON, JLEV
@@ -278,22 +278,22 @@ JBLK2 =      (NGPBLKS * (ITID+1)) / NTID
      &KRR=PHYEX%MISC%KRR, KRRL=PHYEX%MISC%KRRL, KRRI=PHYEX%MISC%KRRI, KSV=PHYEX%MISC%KSV,                                             &
      &ONOMIXLG=PHYEX%MISC%ONOMIXLG,KSV_LGBEG=PHYEX%MISC%KSV_LGBEG,KSV_LGEND=PHYEX%MISC%KSV_LGEND,      &
      &PTSTEP=PHYEX%MISC%PTSTEP, &
-     &PDZZ=PDZZF(:,:,:,IBL),PZZ=PZZ(:,:,:,IBL),                                                                 &
-     &PRHODJ=PRHODJ(:,:,:,IBL),PRHODREF=PRHODREF(:,:,:,IBL),                                                    &
-     &PPABSM=PPABSM(:,:,:,IBL),PEXNM=PEXNM(:,:,:,IBL),                                                          &
-     &PSFTH=PSFTH(:,:,IBL),PSFRV=PSFRV(:,:,IBL),                                                            &
-     &PTHM=PTHM(:,:,:,IBL),PRM=PRM(:,:,:,:,IBL),PUM=PUM(:,:,:,IBL),PVM=PVM(:,:,:,IBL),&
-     &PTKEM=PTKEM(:,:,:,IBL),PSVM=PSVM(:,:,:,:,IBL),                            &
-     &PDUDT_MF=PDUDT_MF(:,:,:,IBL),PDVDT_MF=PDVDT_MF(:,:,:,IBL),                                                &
-     &PDTHLDT_MF=PDTHLDT_MF(:,:,:,IBL),PDRTDT_MF=PDRTDT_MF(:,:,:,IBL),PDSVDT_MF=PDSVDT_MF(:,:,:,:,IBL),                      &
-     &PSIGMF=PSIGMF(:,:,:,IBL),PRC_MF=PRC_MF(:,:,:,IBL),PRI_MF=PRI_MF(:,:,:,IBL),PCF_MF=PCF_MF(:,:,:,IBL),&
-     &PFLXZTHVMF=PFLXZTHVMF(:,:,:,IBL),      &
-     &PFLXZTHMF=ZFLXZTHMF(:,:,:,IBL),PFLXZRMF=ZFLXZRMF(:,:,:,IBL),PFLXZUMF=ZFLXZUMF(:,:,:,IBL),PFLXZVMF=ZFLXZVMF(:,:,:,IBL),     &
-     &PTHL_UP=PTHL_UP(:,:,:,IBL),PRT_UP=PRT_UP(:,:,:,IBL),PRV_UP=PRV_UP(:,:,:,IBL),&
-     &PRC_UP=PRC_UP(:,:,:,IBL),PRI_UP=PRI_UP(:,:,:,IBL),            &
-     &PU_UP=PU_UP(:,:,:,IBL), PV_UP=PV_UP(:,:,:,IBL), PTHV_UP=PTHV_UP(:,:,:,IBL), PW_UP=PW_UP(:,:,:,IBL),                        &
-     &PFRAC_UP=PFRAC_UP(:,:,:,IBL),PEMF=PEMF(:,:,:,IBL),PDETR=ZDETR(:,:,:,IBL),PENTR=ZENTR(:,:,:,IBL),                           &
-     &KKLCL=IKLCL(:,:,IBL),KKETL=IKETL(:,:,IBL),KKCTL=IKCTL(:,:,IBL),PDX=PHYEX%MISC%PDX,PDY=PHYEX%MISC%PDY,KBUDGETS=PHYEX%MISC%NBUDGET )
+     &PDZZ=PDZZF(:,:,IBL),PZZ=PZZ(:,:,IBL),                                                                 &
+     &PRHODJ=PRHODJ(:,:,IBL),PRHODREF=PRHODREF(:,:,IBL),                                                    &
+     &PPABSM=PPABSM(:,:,IBL),PEXNM=PEXNM(:,:,IBL),                                                          &
+     &PSFTH=PSFTH(:,IBL),PSFRV=PSFRV(:,IBL),                                                            &
+     &PTHM=PTHM(:,:,IBL),PRM=PRM(:,:,:,IBL),PUM=PUM(:,:,IBL),PVM=PVM(:,:,IBL),&
+     &PTKEM=PTKEM(:,:,IBL),PSVM=PSVM(:,:,:,IBL),                            &
+     &PDUDT_MF=PDUDT_MF(:,:,IBL),PDVDT_MF=PDVDT_MF(:,:,IBL),                                                &
+     &PDTHLDT_MF=PDTHLDT_MF(:,:,IBL),PDRTDT_MF=PDRTDT_MF(:,:,IBL),PDSVDT_MF=PDSVDT_MF(:,:,:,IBL),                      &
+     &PSIGMF=PSIGMF(:,:,IBL),PRC_MF=PRC_MF(:,:,IBL),PRI_MF=PRI_MF(:,:,IBL),PCF_MF=PCF_MF(:,:,IBL),&
+     &PFLXZTHVMF=PFLXZTHVMF(:,:,IBL),      &
+     &PFLXZTHMF=ZFLXZTHMF(:,:,IBL),PFLXZRMF=ZFLXZRMF(:,:,IBL),PFLXZUMF=ZFLXZUMF(:,:,IBL),PFLXZVMF=ZFLXZVMF(:,:,IBL),     &
+     &PTHL_UP=PTHL_UP(:,:,IBL),PRT_UP=PRT_UP(:,:,IBL),PRV_UP=PRV_UP(:,:,IBL),&
+     &PRC_UP=PRC_UP(:,:,IBL),PRI_UP=PRI_UP(:,:,IBL),            &
+     &PU_UP=PU_UP(:,:,IBL), PV_UP=PV_UP(:,:,IBL), PTHV_UP=PTHV_UP(:,:,IBL), PW_UP=PW_UP(:,:,IBL),                        &
+     &PFRAC_UP=PFRAC_UP(:,:,IBL),PEMF=PEMF(:,:,IBL),PDETR=ZDETR(:,:,IBL),PENTR=ZENTR(:,:,IBL),                           &
+     &KKLCL=IKLCL(:,IBL),KKETL=IKETL(:,IBL),KKCTL=IKCTL(:,IBL),PDX=PHYEX%MISC%PDX,PDY=PHYEX%MISC%PDY,KBUDGETS=PHYEX%MISC%NBUDGET )
 
 #ifdef _OPENACC
     ENDDO
@@ -331,35 +331,35 @@ PRINT *, " ZTC = ", ZTC, ZTC / REAL (NPROMA*NGPBLKS*NTIME)
 IF (LLCHECK .OR. LLSTAT .OR. LLCHECKDIFF) THEN
   DO IBL = IBLOCK1, IBLOCK2
     PRINT *, " IBL = ", IBL
-    CALL DIFF ("PDUDT_MF   ", PDUDT_MF_OUT   (:,:,:,IBL), PDUDT_MF   (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PDVDT_MF   ", PDVDT_MF_OUT   (:,:,:,IBL), PDVDT_MF   (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PDTHLDT_MF ", PDTHLDT_MF_OUT (:,:,:,IBL), PDTHLDT_MF (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PDRTDT_MF  ", PDRTDT_MF_OUT  (:,:,:,IBL), PDRTDT_MF  (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PSIGMF     ", PSIGMF_OUT     (:,:,:,IBL), PSIGMF     (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PRC_MF     ", PRC_MF_OUT     (:,:,:,IBL), PRC_MF     (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PRI_MF     ", PRI_MF_OUT     (:,:,:,IBL), PRI_MF     (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PCF_MF     ", PCF_MF_OUT     (:,:,:,IBL), PCF_MF     (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PFLXZTHVMF ", PFLXZTHVMF_OUT (:,:,:,IBL), PFLXZTHVMF (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("ZFLXZTHMF  ", ZFLXZTHMF_OUT  (:,:,:,IBL), ZFLXZTHMF  (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("ZFLXZRMF   ", ZFLXZRMF_OUT   (:,:,:,IBL), ZFLXZRMF   (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("ZFLXZUMF   ", ZFLXZUMF_OUT   (:,:,:,IBL), ZFLXZUMF   (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("ZFLXZVMF   ", ZFLXZVMF_OUT   (:,:,:,IBL), ZFLXZVMF   (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PTHL_UP    ", PTHL_UP_OUT    (:,:,:,IBL), PTHL_UP    (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PRT_UP     ", PRT_UP_OUT     (:,:,:,IBL), PRT_UP     (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PRV_UP     ", PRV_UP_OUT     (:,:,:,IBL), PRV_UP     (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PRC_UP     ", PRC_UP_OUT     (:,:,:,IBL), PRC_UP     (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PRI_UP     ", PRI_UP_OUT     (:,:,:,IBL), PRI_UP     (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PU_UP      ", PU_UP_OUT      (:,:,:,IBL), PU_UP      (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PV_UP      ", PV_UP_OUT      (:,:,:,IBL), PV_UP      (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PTHV_UP    ", PTHV_UP_OUT    (:,:,:,IBL), PTHV_UP    (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PW_UP      ", PW_UP_OUT      (:,:,:,IBL), PW_UP      (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PFRAC_UP   ", PFRAC_UP_OUT   (:,:,:,IBL), PFRAC_UP   (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PEMF       ", PEMF_OUT       (:,:,:,IBL), PEMF       (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("ZDETR      ", ZDETR_OUT      (:,:,:,IBL), ZDETR      (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("ZENTR      ", ZENTR_OUT      (:,:,:,IBL), ZENTR      (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-!    CALL DIFF ("IKLCL      ", IKLCL_OUT      (:,:,IBL),   IKLCL      (:,:,IBL),   LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-!    CALL DIFF ("IKETL      ", IKETL_OUT      (:,:,IBL),   IKETL      (:,:,IBL),   LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-!    CALL DIFF ("IKCTL      ", IKCTL_OUT      (:,:,IBL),   IKCTL      (:,:,IBL),   LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PDUDT_MF   ", PDUDT_MF_OUT   (:,:,IBL), PDUDT_MF   (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PDVDT_MF   ", PDVDT_MF_OUT   (:,:,IBL), PDVDT_MF   (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PDTHLDT_MF ", PDTHLDT_MF_OUT (:,:,IBL), PDTHLDT_MF (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PDRTDT_MF  ", PDRTDT_MF_OUT  (:,:,IBL), PDRTDT_MF  (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PSIGMF     ", PSIGMF_OUT     (:,:,IBL), PSIGMF     (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PRC_MF     ", PRC_MF_OUT     (:,:,IBL), PRC_MF     (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PRI_MF     ", PRI_MF_OUT     (:,:,IBL), PRI_MF     (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PCF_MF     ", PCF_MF_OUT     (:,:,IBL), PCF_MF     (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PFLXZTHVMF ", PFLXZTHVMF_OUT (:,:,IBL), PFLXZTHVMF (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("ZFLXZTHMF  ", ZFLXZTHMF_OUT  (:,:,IBL), ZFLXZTHMF  (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("ZFLXZRMF   ", ZFLXZRMF_OUT   (:,:,IBL), ZFLXZRMF   (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("ZFLXZUMF   ", ZFLXZUMF_OUT   (:,:,IBL), ZFLXZUMF   (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("ZFLXZVMF   ", ZFLXZVMF_OUT   (:,:,IBL), ZFLXZVMF   (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PTHL_UP    ", PTHL_UP_OUT    (:,:,IBL), PTHL_UP    (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PRT_UP     ", PRT_UP_OUT     (:,:,IBL), PRT_UP     (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PRV_UP     ", PRV_UP_OUT     (:,:,IBL), PRV_UP     (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PRC_UP     ", PRC_UP_OUT     (:,:,IBL), PRC_UP     (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PRI_UP     ", PRI_UP_OUT     (:,:,IBL), PRI_UP     (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PU_UP      ", PU_UP_OUT      (:,:,IBL), PU_UP      (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PV_UP      ", PV_UP_OUT      (:,:,IBL), PV_UP      (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PTHV_UP    ", PTHV_UP_OUT    (:,:,IBL), PTHV_UP    (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PW_UP      ", PW_UP_OUT      (:,:,IBL), PW_UP      (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PFRAC_UP   ", PFRAC_UP_OUT   (:,:,IBL), PFRAC_UP   (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PEMF       ", PEMF_OUT       (:,:,IBL), PEMF       (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("ZDETR      ", ZDETR_OUT      (:,:,IBL), ZDETR      (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("ZENTR      ", ZENTR_OUT      (:,:,IBL), ZENTR      (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+!    CALL DIFF ("IKLCL      ", IKLCL_OUT      (:,IBL),   IKLCL      (:,IBL),   LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+!    CALL DIFF ("IKETL      ", IKETL_OUT      (:,IBL),   IKETL      (:,IBL),   LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+!    CALL DIFF ("IKCTL      ", IKCTL_OUT      (:,IBL),   IKCTL      (:,IBL),   LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
   ENDDO
 ENDIF
 
diff --git a/src/testprogs/support/arrays_manip.F90 b/src/testprogs/support/arrays_manip.F90
index a78681551a1a6de14e39d89d40c092690068679b..d50341bfdfb3b0be6b141f58b281487d3e723c96 100644
--- a/src/testprogs/support/arrays_manip.F90
+++ b/src/testprogs/support/arrays_manip.F90
@@ -4,32 +4,32 @@ USE OMP_LIB
 USE IEEE_ARITHMETIC, ONLY : IEEE_SIGNALING_NAN, IEEE_VALUE
 
 INTERFACE REPLICATE
+  MODULE PROCEDURE REPLICATER1
   MODULE PROCEDURE REPLICATER2
   MODULE PROCEDURE REPLICATER3
-  MODULE PROCEDURE REPLICATER4
-  MODULE PROCEDURE REPLICATEL3
   MODULE PROCEDURE REPLICATEL2
+  MODULE PROCEDURE REPLICATEL1
 END INTERFACE
 
 INTERFACE NPROMIZE
+  MODULE PROCEDURE NPROMIZER2
   MODULE PROCEDURE NPROMIZER3
   MODULE PROCEDURE NPROMIZER4
-  MODULE PROCEDURE NPROMIZER5
-  MODULE PROCEDURE NPROMIZEL4
-  MODULE PROCEDURE NPROMIZEI3
+  MODULE PROCEDURE NPROMIZEL3
+  MODULE PROCEDURE NPROMIZEI2
 END INTERFACE                   
 
 INTERFACE INTERPOLATE
+  MODULE PROCEDURE INTERPOLATER3
   MODULE PROCEDURE INTERPOLATER4
-  MODULE PROCEDURE INTERPOLATER5
-  MODULE PROCEDURE INTERPOLATEL4
+  MODULE PROCEDURE INTERPOLATEL3
 END INTERFACE
 
 INTERFACE SET
+  MODULE PROCEDURE SETR2
   MODULE PROCEDURE SETR3
   MODULE PROCEDURE SETR4
-  MODULE PROCEDURE SETR5
-  MODULE PROCEDURE SETI3
+  MODULE PROCEDURE SETI2
 END INTERFACE
 
 REAL, SAVE :: XINVALID
@@ -43,91 +43,91 @@ SUBROUTINE SETUP()
   NINVALID = HUGE(1)
 END SUBROUTINE SETUP
 
-SUBROUTINE REPLICATER4 (KOFF, P)
+SUBROUTINE REPLICATER3 (KOFF, P)
 IMPLICIT NONE
 
 INTEGER, INTENT(IN) :: KOFF
-REAL, INTENT(INOUT)    :: P (:,:,:,:)
+REAL, INTENT(INOUT)    :: P (:,:,:)
 
 INTEGER :: I, J
 
 DO I = KOFF+1, SIZE (P, 1)
   J = 1 + MODULO (I - 1, KOFF)
-  P (I, :, :, :) = P (J, :, :, :)
+  P (I, :, :) = P (J, :, :)
 ENDDO
 
 END SUBROUTINE
 
-SUBROUTINE REPLICATER3 (KOFF, P)
+SUBROUTINE REPLICATER2 (KOFF, P)
 IMPLICIT NONE
 
 INTEGER, INTENT(IN) :: KOFF
-REAL, INTENT(INOUT)    :: P (:,:,:)
+REAL, INTENT(INOUT)    :: P (:,:)
 
 INTEGER :: I, J
 
 DO I = KOFF+1, SIZE (P, 1)
   J = 1 + MODULO (I - 1, KOFF)
-  P (I, :, :) = P (J, :, :)
+  P (I, :) = P (J, :)
 ENDDO
 
 END SUBROUTINE
 
-SUBROUTINE REPLICATEL2 (KOFF, K)
+SUBROUTINE REPLICATEL1 (KOFF, K)
 IMPLICIT NONE
 
 INTEGER, INTENT(IN) :: KOFF
-INTEGER, INTENT(INOUT) :: K (:,:)
+INTEGER, INTENT(INOUT) :: K (:)
 
 INTEGER :: I, J
 
 DO I = KOFF+1, SIZE (K, 1)
   J = 1 + MODULO (I - 1, KOFF)
-  K (I, :) = K (J, :)
+  K (I) = K (J)
 ENDDO
 
 END SUBROUTINE
 
-SUBROUTINE REPLICATER2 (KOFF, P)
+SUBROUTINE REPLICATER1 (KOFF, P)
 IMPLICIT NONE
 
 INTEGER, INTENT(IN) :: KOFF
-REAL, INTENT(INOUT)    :: P (:,:)
+REAL, INTENT(INOUT)    :: P (:)
 
 INTEGER :: I, J
 
 DO I = KOFF+1, SIZE (P, 1)
   J = 1 + MODULO (I - 1, KOFF)
-  P (I, :) = P (J, :)
+  P (I) = P (J)
 ENDDO
 
 END SUBROUTINE
 
-SUBROUTINE REPLICATEL3 (KOFF, L)
+SUBROUTINE REPLICATEL2 (KOFF, L)
 IMPLICIT NONE
 
 INTEGER, INTENT(IN) :: KOFF
-LOGICAL, INTENT(INOUT) :: L (:,:,:)
+LOGICAL, INTENT(INOUT) :: L (:,:)
 
 INTEGER :: I, J
 
 DO I = KOFF+1, SIZE (L, 1)
   J = 1 + MODULO (I - 1, KOFF)
-  L (I, :, :) = L (J, :, :)
+  L (I, :) = L (J, :)
 ENDDO
 
 END SUBROUTINE
 
-SUBROUTINE NPROMIZEI3 (KPROMA, KI, KO)
+SUBROUTINE NPROMIZEI2 (KPROMA, KI, KO)
 IMPLICIT NONE
 
 INTEGER, INTENT(IN) :: KPROMA
-INTEGER, INTENT (IN)  :: KI (:,:,:) 
-INTEGER, INTENT (OUT) :: KO (:,:,:)
+INTEGER, INTENT (IN)  :: KI (:,:) 
+INTEGER, INTENT (OUT) :: KO (:,:)
 
 INTEGER :: I, J, IGPBLK, IGPTOT, IGP, JLON, JIDIA, JFDIA, IBL
 
-IF (SIZE (KI, 3) /= 1) STOP 1
+IF (SIZE (KI, 2) /= 1) STOP 1
 
 IGPTOT = SIZE (KI, 1)
 IGPBLK = 1 + (IGPTOT-1) / KPROMA
@@ -138,27 +138,27 @@ DO IGP = 1, IGPTOT, KPROMA
   JFDIA = MIN (KPROMA, IGPTOT - (IBL - 1) * KPROMA)
 
   DO JLON = JIDIA, JFDIA
-    KO (JLON, :, IBL) = KI (IGP + (JLON - 1), :, 1)
+    KO (JLON, IBL) = KI (IGP + (JLON - 1), 1)
   ENDDO
 
   DO JLON = JFDIA+1, KPROMA
-    KO (JLON, :, IBL) = KO (JFDIA, :, IBL)
+    KO (JLON, IBL) = KO (JFDIA, IBL)
   ENDDO
 
 ENDDO
 
 END SUBROUTINE
 
-SUBROUTINE NPROMIZER3 (KPROMA, PI, PO)
+SUBROUTINE NPROMIZER2 (KPROMA, PI, PO)
 IMPLICIT NONE
 
 INTEGER, INTENT(IN) :: KPROMA
-REAL, INTENT (IN)  :: PI (:,:,:) 
-REAL, INTENT (OUT) :: PO (:,:,:)
+REAL, INTENT (IN)  :: PI (:,:) 
+REAL, INTENT (OUT) :: PO (:,:)
 
 INTEGER :: I, J, IGPBLK, IGPTOT, IGP, JLON, JIDIA, JFDIA, IBL
 
-IF (SIZE (PI, 3) /= 1) STOP 1
+IF (SIZE (PI, 2) /= 1) STOP 1
 
 IGPTOT = SIZE (PI, 1)
 IGPBLK = 1 + (IGPTOT-1) / KPROMA
@@ -169,27 +169,27 @@ DO IGP = 1, IGPTOT, KPROMA
   JFDIA = MIN (KPROMA, IGPTOT - (IBL - 1) * KPROMA)
 
   DO JLON = JIDIA, JFDIA
-    PO (JLON, :, IBL) = PI (IGP + (JLON - 1), :, 1)
+    PO (JLON, IBL) = PI (IGP + (JLON - 1), 1)
   ENDDO
 
   DO JLON = JFDIA+1, KPROMA
-    PO (JLON, :, IBL) = PO (JFDIA, :, IBL)
+    PO (JLON, IBL) = PO (JFDIA, IBL)
   ENDDO
 
 ENDDO
 
 END SUBROUTINE
 
-SUBROUTINE NPROMIZER4 (KPROMA, PI, PO)
+SUBROUTINE NPROMIZER3 (KPROMA, PI, PO)
 IMPLICIT NONE
 
 INTEGER, INTENT(IN) :: KPROMA
-REAL, INTENT (IN)  :: PI (:,:,:,:) 
-REAL, INTENT (OUT) :: PO (:,:,:,:)
+REAL, INTENT (IN)  :: PI (:,:,:) 
+REAL, INTENT (OUT) :: PO (:,:,:)
 
 INTEGER :: I, J, IGPBLK, IGPTOT, IGP, JLON, JIDIA, JFDIA, IBL
 
-IF (SIZE (PI, 4) /= 1) STOP 1
+IF (SIZE (PI, 3) /= 1) STOP 1
 
 IGPTOT = SIZE (PI, 1)
 IGPBLK = 1 + (IGPTOT-1) / KPROMA
@@ -200,27 +200,27 @@ DO IGP = 1, IGPTOT, KPROMA
   JFDIA = MIN (KPROMA, IGPTOT - (IBL - 1) * KPROMA)
 
   DO JLON = JIDIA, JFDIA
-    PO (JLON, :, :, IBL) = PI (IGP + (JLON - 1), :, :, 1)
+    PO (JLON, :, IBL) = PI (IGP + (JLON - 1), :, 1)
   ENDDO
 
   DO JLON = JFDIA+1, KPROMA
-    PO (JLON, :, :, IBL) = PO (JFDIA, :, :, IBL)
+    PO (JLON, :, IBL) = PO (JFDIA, :, IBL)
   ENDDO
 
 ENDDO
 
 END SUBROUTINE
 
-SUBROUTINE NPROMIZER5 (KPROMA, PI, PO)
+SUBROUTINE NPROMIZER4 (KPROMA, PI, PO)
 IMPLICIT NONE
 
 INTEGER, INTENT(IN) :: KPROMA
-REAL, INTENT (IN)  :: PI (:,:,:,:,:) 
-REAL, INTENT (OUT) :: PO (:,:,:,:,:)
+REAL, INTENT (IN)  :: PI (:,:,:,:) 
+REAL, INTENT (OUT) :: PO (:,:,:,:)
 
 INTEGER :: I, J, IGPBLK, IGPTOT, IGP, JLON, JIDIA, JFDIA, IBL
 
-IF (SIZE (PI, 5) /= 1) STOP 1
+IF (SIZE (PI, 4) /= 1) STOP 1
 
 IGPTOT = SIZE (PI, 1)
 IGPBLK = 1 + (IGPTOT-1) / KPROMA
@@ -231,27 +231,27 @@ DO IGP = 1, IGPTOT, KPROMA
   JFDIA = MIN (KPROMA, IGPTOT - (IBL - 1) * KPROMA)
 
   DO JLON = JIDIA, JFDIA
-    PO (JLON, :, :, :, IBL) = PI (IGP + (JLON - 1), :, :, :, 1)
+    PO (JLON, :, :, IBL) = PI (IGP + (JLON - 1), :, :, 1)
   ENDDO
 
   DO JLON = JFDIA+1, KPROMA
-    PO (JLON, :, :, :, IBL) = PI (JFDIA, :, :, :, IBL)
+    PO (JLON, :, :, IBL) = PI (JFDIA, :, :, IBL)
   ENDDO
 
 ENDDO
 
 END SUBROUTINE
 
-SUBROUTINE NPROMIZEL4 (KPROMA, LI, LO)
+SUBROUTINE NPROMIZEL3 (KPROMA, LI, LO)
 IMPLICIT NONE
 
 INTEGER, INTENT(IN) :: KPROMA
-LOGICAL, INTENT (IN)  :: LI (:,:,:,:) 
-LOGICAL, INTENT (OUT) :: LO (:,:,:,:)
+LOGICAL, INTENT (IN)  :: LI (:,:,:) 
+LOGICAL, INTENT (OUT) :: LO (:,:,:)
 
 INTEGER :: I, J, IGPBLK, IGPTOT, IGP, JLON, JIDIA, JFDIA, IBL
 
-IF (SIZE (LI, 4) /= 1) STOP 1
+IF (SIZE (LI, 3) /= 1) STOP 1
 
 IGPTOT = SIZE (LI, 1)
 IGPBLK = 1 + (IGPTOT-1) / KPROMA
@@ -262,40 +262,38 @@ DO IGP = 1, IGPTOT, KPROMA
   JFDIA = MIN (KPROMA, IGPTOT - (IBL - 1) * KPROMA)
 
   DO JLON = JIDIA, JFDIA
-    LO (JLON, :, :, IBL) = LI (IGP + (JLON - 1), :, :, 1)
+    LO (JLON, :, IBL) = LI (IGP + (JLON - 1), :, 1)
   ENDDO
 
   DO JLON = JFDIA+1, KPROMA
-    LO (JLON, :, :, IBL) = LI (JFDIA, :, :, IBL)
+    LO (JLON, :, IBL) = LI (JFDIA, :, IBL)
   ENDDO
 
 ENDDO
 
 END SUBROUTINE
 
-SUBROUTINE INTERPOLATER4 (KFLEVG, KOFF, P)
+SUBROUTINE INTERPOLATER3 (KFLEVG, KOFF, P)
 IMPLICIT NONE
 
 INTEGER, INTENT(IN) :: KFLEVG, KOFF
-REAL, INTENT(INOUT), ALLOCATABLE :: P (:,:,:,:)
+REAL, INTENT(INOUT), ALLOCATABLE :: P (:,:,:)
 REAL :: Z (LBOUND (P, 1):UBOUND (P, 1), &
          & LBOUND (P, 2):UBOUND (P, 2), &
-         & LBOUND (P, 3):UBOUND (P, 3), &
-         & LBOUND (P, 4):UBOUND (P, 4))
+         & LBOUND (P, 3):UBOUND (P, 3))
 INTEGER :: ILEV1A, ILEV1B, ILEV2, NLEV1, NLEV2
 REAL :: ZWA, ZWB, ZLEV1, ZLEV2
 
 Z = P
 
-NLEV1 = SIZE (P, 3)
+NLEV1 = SIZE (P, 2)
 NLEV2 = KFLEVG
 
 DEALLOCATE (P)
 
 ALLOCATE (P (LBOUND (Z, 1):UBOUND (Z, 1), &
-           & LBOUND (Z, 2):UBOUND (Z, 2), &
            & KFLEVG, &
-           & LBOUND (Z, 4):UBOUND (Z, 4)))
+           & LBOUND (Z, 3):UBOUND (Z, 3)))
 
 DO ILEV2 = 1, NLEV2
   ZLEV2 = REAL (ILEV2 - 1) / REAL (NLEV2 -1)
@@ -314,36 +312,34 @@ DO ILEV2 = 1, NLEV2
 ! WRITE (*, '(" ZLEV2 = ",E12.5," ZLEV1 = ",E12.5," ILEV2 = ",I4," ILEV1A = ",I4," ZWA = ",E12.5," ILEV1B = ",I4," ZWB = ",E12.5)') &
 !   & ZLEV2, ZLEV1, ILEV2, ILEV1A, ZWA, ILEV1B, ZWB
 
-  P (1:KOFF, :, ILEV2, :) = ZWA * Z (1:KOFF, :, ILEV1A, :) + ZWB * Z (1:KOFF, :, ILEV1B, :) 
+  P (1:KOFF, ILEV2, :) = ZWA * Z (1:KOFF, ILEV1A, :) + ZWB * Z (1:KOFF, ILEV1B, :) 
 ENDDO
 
 END SUBROUTINE
 
-SUBROUTINE INTERPOLATER5 (KFLEVG, KOFF, P)
+SUBROUTINE INTERPOLATER4 (KFLEVG, KOFF, P)
 IMPLICIT NONE
 
 INTEGER, INTENT(IN) :: KFLEVG, KOFF
-REAL, INTENT(INOUT), ALLOCATABLE :: P (:,:,:,:,:)
+REAL, INTENT(INOUT), ALLOCATABLE :: P (:,:,:,:)
 REAL :: Z (LBOUND (P, 1):UBOUND (P, 1), &
          & LBOUND (P, 2):UBOUND (P, 2), &
          & LBOUND (P, 3):UBOUND (P, 3), &
-         & LBOUND (P, 4):UBOUND (P, 4), &
-         & LBOUND (P, 5):UBOUND (P, 5))
+         & LBOUND (P, 4):UBOUND (P, 4))
 INTEGER :: ILEV1A, ILEV1B, ILEV2, NLEV1, NLEV2
 REAL :: ZWA, ZWB, ZLEV1, ZLEV2
 
 Z = P
 
-NLEV1 = SIZE (P, 3)
+NLEV1 = SIZE (P, 2)
 NLEV2 = KFLEVG
 
 DEALLOCATE (P)
 
 ALLOCATE (P (LBOUND (Z, 1):UBOUND (Z, 1), &
-           & LBOUND (Z, 2):UBOUND (Z, 2), &
            & KFLEVG, &
-           & LBOUND (Z, 4):UBOUND (Z, 4), &
-           & LBOUND (Z, 5):UBOUND (Z, 5)))
+           & LBOUND (Z, 3):UBOUND (Z, 3), &
+           & LBOUND (Z, 4):UBOUND (Z, 4)))
 
 DO ILEV2 = 1, NLEV2
   ZLEV2 = REAL (ILEV2 - 1) / REAL (NLEV2 -1)
@@ -362,34 +358,32 @@ DO ILEV2 = 1, NLEV2
 ! WRITE (*, '(" ZLEV2 = ",E12.5," ZLEV1 = ",E12.5," ILEV2 = ",I4," ILEV1A = ",I4," ZWA = ",E12.5," ILEV1B = ",I4," ZWB = ",E12.5)') &
 !   & ZLEV2, ZLEV1, ILEV2, ILEV1A, ZWA, ILEV1B, ZWB
 
-  P (1:KOFF, :, ILEV2, :, :) = ZWA * Z (1:KOFF, :, ILEV1A, :, :) + ZWB * Z (1:KOFF, :, ILEV1B, :, :) 
+  P (1:KOFF, ILEV2, :, :) = ZWA * Z (1:KOFF, ILEV1A, :, :) + ZWB * Z (1:KOFF, ILEV1B, :, :) 
 ENDDO
 
 END SUBROUTINE
 
-SUBROUTINE INTERPOLATEL4 (KFLEVG, KOFF, L)
+SUBROUTINE INTERPOLATEL3 (KFLEVG, KOFF, L)
 IMPLICIT NONE
 
 INTEGER, INTENT(IN) :: KFLEVG, KOFF
-LOGICAL, INTENT(INOUT), ALLOCATABLE :: L (:,:,:,:)
+LOGICAL, INTENT(INOUT), ALLOCATABLE :: L (:,:,:)
 LOGICAL :: Z (LBOUND (L, 1):UBOUND (L, 1), &
             & LBOUND (L, 2):UBOUND (L, 2), &
-            & LBOUND (L, 3):UBOUND (L, 3), &
-            & LBOUND (L, 4):UBOUND (L, 4))
+            & LBOUND (L, 3):UBOUND (L, 3))
 INTEGER :: ILEV1A, ILEV1B, ILEV2, NLEV1, NLEV2
 REAL :: ZWA, ZWB, ZLEV1, ZLEV2
 
 Z = L
 
-NLEV1 = SIZE (L, 3)
+NLEV1 = SIZE (L, 2)
 NLEV2 = KFLEVG
 
 DEALLOCATE (L)
 
 ALLOCATE (L (LBOUND (Z, 1):UBOUND (Z, 1), &
-           & LBOUND (Z, 2):UBOUND (Z, 2), &
            & KFLEVG, &
-           & LBOUND (Z, 4):UBOUND (Z, 4)))
+           & LBOUND (Z, 3):UBOUND (Z, 3)))
 
 DO ILEV2 = 1, NLEV2
   ZLEV2 = REAL (ILEV2 - 1) / REAL (NLEV2 -1)
@@ -408,21 +402,21 @@ DO ILEV2 = 1, NLEV2
 ! WRITE (*, '(" ZLEV2 = ",E12.5," ZLEV1 = ",E12.5," ILEV2 = ",I4," ILEV1A = ",I4," ZWA = ",E12.5," ILEV1B = ",I4," ZWB = ",E12.5)') &
 !   & ZLEV2, ZLEV1, ILEV2, ILEV1A, ZWA, ILEV1B, ZWB
 
-  L (1:KOFF, :, ILEV2, :) = ZWA * MERGE(1., 0., Z (1:KOFF, :, ILEV1A, :)) + ZWB * MERGE(1., 0., Z (1:KOFF, :, ILEV1B, :)) >= 0.5
+  L (1:KOFF, ILEV2, :) = ZWA * MERGE(1., 0., Z (1:KOFF, ILEV1A, :)) + ZWB * MERGE(1., 0., Z (1:KOFF, ILEV1B, :)) >= 0.5
 ENDDO
 
 END SUBROUTINE
 
 
-SUBROUTINE SETI3 (K)
+SUBROUTINE SETI2 (K)
 IMPLICIT NONE
 
-INTEGER, INTENT(OUT) :: K (:,:,:)
+INTEGER, INTENT(OUT) :: K (:,:)
 INTEGER :: IBL, IGPBLKS
 INTEGER :: NTID, ITID, JBLK1, JBLK2
 
 
-IGPBLKS = SIZE (K, 3)
+IGPBLKS = SIZE (K, 2)
 
 !$OMP PARALLEL PRIVATE (ITID, JBLK1, JBLK2, NTID)
 NTID = OMP_GET_MAX_THREADS ()
@@ -431,22 +425,22 @@ JBLK1 = 1 +  (IGPBLKS * (ITID+0)) / NTID
 JBLK2 =      (IGPBLKS * (ITID+1)) / NTID
 
 DO IBL = JBLK1, JBLK2
-  K (:,:,IBL) = NINVALID
+  K (:,IBL) = NINVALID
 ENDDO
 
 !$OMP END PARALLEL
 
 END SUBROUTINE
 
-SUBROUTINE SETR3 (P)
+SUBROUTINE SETR2 (P)
 IMPLICIT NONE
 
-REAL, INTENT(INOUT) :: P (:,:,:)
+REAL, INTENT(INOUT) :: P (:,:)
 INTEGER :: IBL, IGPBLKS
 INTEGER :: NTID, ITID, JBLK1, JBLK2
 
 
-IGPBLKS = SIZE (P, 3)
+IGPBLKS = SIZE (P, 2)
 
 !$OMP PARALLEL PRIVATE (ITID, JBLK1, JBLK2, NTID)
 NTID = OMP_GET_MAX_THREADS ()
@@ -455,21 +449,21 @@ JBLK1 = 1 +  (IGPBLKS * (ITID+0)) / NTID
 JBLK2 =      (IGPBLKS * (ITID+1)) / NTID
 
 DO IBL = JBLK1, JBLK2
-  P (:,:,IBL) = XINVALID
+  P (:,IBL) = XINVALID
 ENDDO
 
 !$OMP END PARALLEL
 
 END SUBROUTINE
 
-SUBROUTINE SETR4 (P)
+SUBROUTINE SETR3 (P)
 IMPLICIT NONE
 
-REAL, INTENT(INOUT) :: P (:,:,:,:)
+REAL, INTENT(INOUT) :: P (:,:,:)
 INTEGER :: IBL, IGPBLKS
 INTEGER :: NTID, ITID, JBLK1, JBLK2
 
-IGPBLKS = SIZE (P, 4)
+IGPBLKS = SIZE (P, 3)
 
 !$OMP PARALLEL PRIVATE (ITID, JBLK1, JBLK2, NTID)
 NTID = OMP_GET_MAX_THREADS ()
@@ -478,21 +472,21 @@ JBLK1 = 1 +  (IGPBLKS * (ITID+0)) / NTID
 JBLK2 =      (IGPBLKS * (ITID+1)) / NTID
 
 DO IBL = JBLK1, JBLK2
-  P (:,:,:,IBL) = XINVALID
+  P (:,:,IBL) = XINVALID
 ENDDO
 
 !$OMP END PARALLEL
 
 END SUBROUTINE
 
-SUBROUTINE SETR5 (P)
+SUBROUTINE SETR4 (P)
 IMPLICIT NONE
 
-REAL, INTENT(INOUT) :: P (:,:,:,:,:)
+REAL, INTENT(INOUT) :: P (:,:,:,:)
 INTEGER :: IBL, IGPBLKS
 INTEGER :: NTID, ITID, JBLK1, JBLK2
 
-IGPBLKS = SIZE (P, 5)
+IGPBLKS = SIZE (P, 4)
 
 !$OMP PARALLEL PRIVATE (ITID, JBLK1, JBLK2, NTID)
 NTID = OMP_GET_MAX_THREADS ()
@@ -501,7 +495,7 @@ JBLK1 = 1 +  (IGPBLKS * (ITID+0)) / NTID
 JBLK2 =      (IGPBLKS * (ITID+1)) / NTID
 
 DO IBL = JBLK1, JBLK2
-  P (:,:,:,:,IBL) = XINVALID
+  P (:,:,:,IBL) = XINVALID
 ENDDO
 
 !$OMP END PARALLEL
diff --git a/src/testprogs/support/compute_diff.F90 b/src/testprogs/support/compute_diff.F90
index 312cd6616eee62bc8f792a0744654fa065bfaab3..3b7784e6692583bc71c35dac410f5c50da0007e3 100644
--- a/src/testprogs/support/compute_diff.F90
+++ b/src/testprogs/support/compute_diff.F90
@@ -1,25 +1,25 @@
 MODULE COMPUTE_DIFF
 
 INTERFACE DIFF
-  MODULE PROCEDURE DIFF3
   MODULE PROCEDURE DIFF2
+  MODULE PROCEDURE DIFF1
 END INTERFACE DIFF
 
 CONTAINS
 
-SUBROUTINE DIFF3 (CDNAME, PREF, POUT, LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+SUBROUTINE DIFF2 (CDNAME, PREF, POUT, LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
 IMPLICIT NONE
 
 CHARACTER (LEN=*), INTENT(IN) :: CDNAME
-REAL, INTENT(IN) :: PREF (:,:,:)
-REAL, INTENT(IN) :: POUT (:,:,:)
+REAL, INTENT(IN) :: PREF (:,:)
+REAL, INTENT(IN) :: POUT (:,:)
 LOGICAL, INTENT(IN) :: LLSTAT, LLCHECK, LLCHECKDIFF
 INTEGER, INTENT(IN) :: NPROMA
 LOGICAL, INTENT(OUT) :: LLDIFF
 
 INTEGER :: JLON, JLEV, KLEV
 
-KLEV=SIZE(PREF, 3)
+KLEV=SIZE(PREF, 2)
 
 PRINT *, CDNAME
 IF (LLSTAT) THEN
@@ -37,13 +37,13 @@ IF (LLCHECK) THEN
   DO JLEV = 1, KLEV
     WRITE (*, '(I4)', ADVANCE='NO') JLEV
     DO JLON = 1, NPROMA
-      IF (ABS (PREF (JLON, 1, JLEV)) + ABS (POUT (JLON, 1, JLEV)) == 0.) THEN
+      IF (ABS (PREF (JLON, JLEV)) + ABS (POUT (JLON, JLEV)) == 0.) THEN
         WRITE (*, '("|",A12,"..",A12)', ADVANCE='NO') "", ""
       ELSE
-        IF(ABS(POUT (JLON, 1, JLEV)-PREF (JLON, 1, JLEV))>0.001 * ABS(PREF (JLON, 1, JLEV))) THEN
-          WRITE (*, '("|",E12.5,"!=",E12.5)', ADVANCE='NO') PREF (JLON, 1, JLEV), POUT (JLON, 1, JLEV)
+        IF(ABS(POUT (JLON, JLEV)-PREF (JLON, JLEV))>0.001 * ABS(PREF (JLON, JLEV))) THEN
+          WRITE (*, '("|",E12.5,"!=",E12.5)', ADVANCE='NO') PREF (JLON, JLEV), POUT (JLON, JLEV)
         ELSE
-          WRITE (*, '("|",E12.5,"~=",E12.5)', ADVANCE='NO') PREF (JLON, 1, JLEV), POUT (JLON, 1, JLEV)
+          WRITE (*, '("|",E12.5,"~=",E12.5)', ADVANCE='NO') PREF (JLON, JLEV), POUT (JLON, JLEV)
         ENDIF
       ENDIF
     ENDDO
@@ -63,12 +63,12 @@ ENDIF
 
 END SUBROUTINE
 
-SUBROUTINE DIFF2 (CDNAME, PREF, POUT, LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+SUBROUTINE DIFF1 (CDNAME, PREF, POUT, LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
 IMPLICIT NONE
 
 CHARACTER (LEN=*), INTENT(IN) :: CDNAME
-REAL, INTENT(IN) :: PREF (:,:)
-REAL, INTENT(IN) :: POUT (:,:)
+REAL, INTENT(IN) :: PREF (:)
+REAL, INTENT(IN) :: POUT (:)
 LOGICAL, INTENT(IN) :: LLSTAT, LLCHECK, LLCHECKDIFF
 INTEGER, INTENT(IN) :: NPROMA
 LOGICAL, INTENT(OUT) :: LLDIFF
@@ -90,10 +90,10 @@ IF (LLCHECK) THEN
   WRITE (*, '("|")')
   WRITE (*, '(I4)', ADVANCE='NO') 0
   DO JLON = 1, NPROMA
-    IF (ABS (PREF (JLON, 1)) + ABS (POUT (JLON, 1)) == 0.) THEN
+    IF (ABS (PREF (JLON)) + ABS (POUT (JLON)) == 0.) THEN
     WRITE (*, '("|",2A12)', ADVANCE='NO') "", ""
     ELSE
-    WRITE (*, '("|",2E12.5)', ADVANCE='NO') PREF (JLON, 1), POUT (JLON, 1)
+    WRITE (*, '("|",2E12.5)', ADVANCE='NO') PREF (JLON), POUT (JLON)
     ENDIF
   ENDDO
   WRITE (*, '("|")')
diff --git a/src/testprogs/turb_mnh/getdata_turb_mod.F90 b/src/testprogs/turb_mnh/getdata_turb_mod.F90
index bc5598fd84f71d17b00442c60ead2f50ae241557..7dce09991f655f2dc6eb8d9e5a7aa19cff0a0c99 100644
--- a/src/testprogs/turb_mnh/getdata_turb_mod.F90
+++ b/src/testprogs/turb_mnh/getdata_turb_mod.F90
@@ -49,164 +49,164 @@ INTEGER      :: KDUM
 LOGICAL, INTENT(IN) :: LDVERBOSE
 
 !IN and INOUTS
-REAL, INTENT(OUT), ALLOCATABLE   :: ZDXX_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZDYY_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZDZZ_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZDZX_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZDZY_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZZZ_B              (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZDIRCOSXW_B        (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZDIRCOSYW_B        (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZDIRCOSZW_B        (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZCOSSLOPE_B        (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZSINSLOPE_B        (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRHODJ_B           (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTHVREF_B          (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PSFTH_B            (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PSFRV_B            (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PSFU_B             (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PSFV_B             (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PSFSV_B            (:,:,:,:) !(KLON, 1, KSV)
-REAL, INTENT(OUT), ALLOCATABLE   :: PPABSM_B           (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PUM_B              (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PVM_B              (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PWM_B              (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTKEM_B            (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZSVM_B             (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
-REAL, INTENT(OUT), ALLOCATABLE   :: PSRCM_B            (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PLENGTHM_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PLENGTHH_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: MFMOIST_B          (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZBL_DEPTH_B        (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZSBL_DEPTH_B       (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZCEI_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTHM_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZRM_B              (:,:,:,:,:) !(KLON,1,KLEV+2,KRR)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRUS_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRVS_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRWS_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRTHS_B            (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZRRS_B             (:,:,:,:,:) !(KLON,1,KLEV+2,KRR)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZRSVS_B            (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRTKES_OUT_B       (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PFLXZTHVMF_B       (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PHGRAD_B           (:,:,:,:,:) !(KLON,1,KLEV+2,KGRADIENTS)
-REAL, INTENT(OUT), ALLOCATABLE   :: PZS_B              (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZDXX_B             (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZDYY_B             (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZDZZ_B             (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZDZX_B             (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZDZY_B             (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZZZ_B              (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZDIRCOSXW_B        (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZDIRCOSYW_B        (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZDIRCOSZW_B        (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZCOSSLOPE_B        (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZSINSLOPE_B        (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRHODJ_B           (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTHVREF_B          (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PSFTH_B            (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PSFRV_B            (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PSFU_B             (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PSFV_B             (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PSFSV_B            (:,:,:) !(KLON, 1, KSV)
+REAL, INTENT(OUT), ALLOCATABLE   :: PPABSM_B           (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PUM_B              (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PVM_B              (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PWM_B              (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTKEM_B            (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZSVM_B             (:,:,:,:) !(KLON,1,KLEV+2,KSV)
+REAL, INTENT(OUT), ALLOCATABLE   :: PSRCM_B            (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PLENGTHM_B         (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PLENGTHH_B         (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: MFMOIST_B          (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZBL_DEPTH_B        (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZSBL_DEPTH_B       (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZCEI_B             (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTHM_B             (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZRM_B              (:,:,:,:) !(KLON,1,KLEV+2,KRR)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRUS_B             (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRVS_B             (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRWS_B             (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRTHS_B            (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZRRS_B             (:,:,:,:) !(KLON,1,KLEV+2,KRR)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZRSVS_B            (:,:,:,:) !(KLON,1,KLEV+2,KSV)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRTKES_OUT_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PFLXZTHVMF_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PHGRAD_B           (:,:,:,:) !(KLON,1,KLEV+2,KGRADIENTS)
+REAL, INTENT(OUT), ALLOCATABLE   :: PZS_B              (:,:)
 
 !OUT
-REAL, INTENT(OUT), ALLOCATABLE   :: PSIGS_B            (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZWTH_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZWRC_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZWSV_B             (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDP_B              (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTP_B              (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTDIFF_B           (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTDISS_B           (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PEDR_B             (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTPMF_B            (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDRUS_TURB_B       (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDRVS_TURB_B       (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDRTHLS_TURB_B     (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDRRTS_TURB_B      (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZDRSVS_TURB_B      (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
+REAL, INTENT(OUT), ALLOCATABLE   :: PSIGS_B            (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZWTH_B             (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZWRC_B             (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZWSV_B             (:,:,:,:) !(KLON,1,KLEV+2,KSV)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDP_B              (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTP_B              (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTDIFF_B           (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTDISS_B           (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PEDR_B             (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTPMF_B            (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDRUS_TURB_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDRVS_TURB_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDRTHLS_TURB_B     (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDRRTS_TURB_B      (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZDRSVS_TURB_B      (:,:,:,:) !(KLON,1,KLEV+2,KSV)
 
 !Expected values
-REAL, INTENT(OUT), ALLOCATABLE   :: ZBL_DEPTH_OUT_B    (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZSBL_DEPTH_OUT_B   (:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTHM_OUT_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZRM_OUT_B          (:,:,:,:,:) !(KLON,1,KLEV+2,KRR)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRUS_OUT_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRVS_OUT_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRWS_OUT_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PRTHS_OUT_B        (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZRRS_OUT_B         (:,:,:,:,:) !(KLON,1,KLEV+2,KRR)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZRSVS_OUT_B        (:,:,:,:,:) !(KLON,1,KLEV+2,KSV) 
-REAL, INTENT(OUT), ALLOCATABLE   :: PRTKES_OUT_OUT_B   (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PSIGS_OUT_B        (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZWTH_OUT_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZWRC_OUT_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZWSV_OUT_B         (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDP_OUT_B          (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTP_OUT_B          (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTDIFF_OUT_B       (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTDISS_OUT_B       (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PEDR_OUT_B         (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PTPMF_OUT_B        (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDRUS_TURB_OUT_B   (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDRVS_TURB_OUT_B   (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDRTHLS_TURB_OUT_B (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: PDRRTS_TURB_OUT_B  (:,:,:,:)
-REAL, INTENT(OUT), ALLOCATABLE   :: ZDRSVS_TURB_OUT_B  (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZBL_DEPTH_OUT_B    (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZSBL_DEPTH_OUT_B   (:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTHM_OUT_B         (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZRM_OUT_B          (:,:,:,:) !(KLON,1,KLEV+2,KRR)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRUS_OUT_B         (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRVS_OUT_B         (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRWS_OUT_B         (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PRTHS_OUT_B        (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZRRS_OUT_B         (:,:,:,:) !(KLON,1,KLEV+2,KRR)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZRSVS_OUT_B        (:,:,:,:) !(KLON,1,KLEV+2,KSV) 
+REAL, INTENT(OUT), ALLOCATABLE   :: PRTKES_OUT_OUT_B   (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PSIGS_OUT_B        (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZWTH_OUT_B         (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZWRC_OUT_B         (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZWSV_OUT_B         (:,:,:,:) !(KLON,1,KLEV+2,KSV)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDP_OUT_B          (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTP_OUT_B          (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTDIFF_OUT_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTDISS_OUT_B       (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PEDR_OUT_B         (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PTPMF_OUT_B        (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDRUS_TURB_OUT_B   (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDRVS_TURB_OUT_B   (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDRTHLS_TURB_OUT_B (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: PDRRTS_TURB_OUT_B  (:,:,:)
+REAL, INTENT(OUT), ALLOCATABLE   :: ZDRSVS_TURB_OUT_B  (:,:,:,:) !(KLON,1,KLEV+2,KSV)
 
 !Inputs to read
-REAL, ALLOCATABLE   :: ZDXX               (:,:,:,:)
-REAL, ALLOCATABLE   :: ZDYY               (:,:,:,:)
-REAL, ALLOCATABLE   :: ZDZZ               (:,:,:,:)
-REAL, ALLOCATABLE   :: ZDZX               (:,:,:,:)
-REAL, ALLOCATABLE   :: ZDZY               (:,:,:,:)
-REAL, ALLOCATABLE   :: ZZZ                (:,:,:,:)
-REAL, ALLOCATABLE   :: ZDIRCOSXW          (:,:,:)
-REAL, ALLOCATABLE   :: ZDIRCOSYW          (:,:,:)
-REAL, ALLOCATABLE   :: ZDIRCOSZW          (:,:,:)
-REAL, ALLOCATABLE   :: ZCOSSLOPE          (:,:,:)
-REAL, ALLOCATABLE   :: ZSINSLOPE          (:,:,:)
-REAL, ALLOCATABLE   :: PRHODJ             (:,:,:,:)
-REAL, ALLOCATABLE   :: PTHVREF            (:,:,:,:)
-REAL, ALLOCATABLE   :: PSFTH              (:,:,:)
-REAL, ALLOCATABLE   :: PSFRV              (:,:,:)
-REAL, ALLOCATABLE   :: PSFU               (:,:,:)
-REAL, ALLOCATABLE   :: PSFV               (:,:,:)
-REAL, ALLOCATABLE   :: PSFSV              (:,:,:,:) !(KLON, 1, KSV)
-REAL, ALLOCATABLE   :: PPABSM             (:,:,:,:)
-REAL, ALLOCATABLE   :: PUM                (:,:,:,:)
-REAL, ALLOCATABLE   :: PVM                (:,:,:,:)
-REAL, ALLOCATABLE   :: PWM                (:,:,:,:)
-REAL, ALLOCATABLE   :: PTKEM              (:,:,:,:)
-REAL, ALLOCATABLE   :: ZSVM               (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
-REAL, ALLOCATABLE   :: PSRCM              (:,:,:,:)
-REAL, ALLOCATABLE   :: PLENGTHM           (:,:,:,:)
-REAL, ALLOCATABLE   :: PLENGTHH           (:,:,:,:)
-REAL, ALLOCATABLE   :: MFMOIST            (:,:,:,:)
-REAL, ALLOCATABLE   :: ZBL_DEPTH          (:,:,:)
-REAL, ALLOCATABLE   :: ZSBL_DEPTH         (:,:,:)
-REAL, ALLOCATABLE   :: ZCEI               (:,:,:,:)
-REAL, ALLOCATABLE   :: PTHM               (:,:,:,:)
-REAL, ALLOCATABLE   :: ZRM                (:,:,:,:,:) !(KLON,1,KLEV+2,KRR)
-REAL, ALLOCATABLE   :: PRUS               (:,:,:,:)
-REAL, ALLOCATABLE   :: PRVS               (:,:,:,:)
-REAL, ALLOCATABLE   :: PRWS               (:,:,:,:)
-REAL, ALLOCATABLE   :: PRTHS              (:,:,:,:)
-REAL, ALLOCATABLE   :: ZRRS               (:,:,:,:,:) !(KLON,1,KLEV+2,KRR)
-REAL, ALLOCATABLE   :: ZRSVS              (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
-REAL, ALLOCATABLE   :: PRTKES_OUT         (:,:,:,:)
-REAL, ALLOCATABLE   :: PFLXZTHVMF         (:,:,:,:)
+REAL, ALLOCATABLE   :: ZDXX               (:,:,:)
+REAL, ALLOCATABLE   :: ZDYY               (:,:,:)
+REAL, ALLOCATABLE   :: ZDZZ               (:,:,:)
+REAL, ALLOCATABLE   :: ZDZX               (:,:,:)
+REAL, ALLOCATABLE   :: ZDZY               (:,:,:)
+REAL, ALLOCATABLE   :: ZZZ                (:,:,:)
+REAL, ALLOCATABLE   :: ZDIRCOSXW          (:,:)
+REAL, ALLOCATABLE   :: ZDIRCOSYW          (:,:)
+REAL, ALLOCATABLE   :: ZDIRCOSZW          (:,:)
+REAL, ALLOCATABLE   :: ZCOSSLOPE          (:,:)
+REAL, ALLOCATABLE   :: ZSINSLOPE          (:,:)
+REAL, ALLOCATABLE   :: PRHODJ             (:,:,:)
+REAL, ALLOCATABLE   :: PTHVREF            (:,:,:)
+REAL, ALLOCATABLE   :: PSFTH              (:,:)
+REAL, ALLOCATABLE   :: PSFRV              (:,:)
+REAL, ALLOCATABLE   :: PSFU               (:,:)
+REAL, ALLOCATABLE   :: PSFV               (:,:)
+REAL, ALLOCATABLE   :: PSFSV              (:,:,:) !(KLON, 1, KSV)
+REAL, ALLOCATABLE   :: PPABSM             (:,:,:)
+REAL, ALLOCATABLE   :: PUM                (:,:,:)
+REAL, ALLOCATABLE   :: PVM                (:,:,:)
+REAL, ALLOCATABLE   :: PWM                (:,:,:)
+REAL, ALLOCATABLE   :: PTKEM              (:,:,:)
+REAL, ALLOCATABLE   :: ZSVM               (:,:,:,:) !(KLON,1,KLEV+2,KSV)
+REAL, ALLOCATABLE   :: PSRCM              (:,:,:)
+REAL, ALLOCATABLE   :: PLENGTHM           (:,:,:)
+REAL, ALLOCATABLE   :: PLENGTHH           (:,:,:)
+REAL, ALLOCATABLE   :: MFMOIST            (:,:,:)
+REAL, ALLOCATABLE   :: ZBL_DEPTH          (:,:)
+REAL, ALLOCATABLE   :: ZSBL_DEPTH         (:,:)
+REAL, ALLOCATABLE   :: ZCEI               (:,:,:)
+REAL, ALLOCATABLE   :: PTHM               (:,:,:)
+REAL, ALLOCATABLE   :: ZRM                (:,:,:,:) !(KLON,1,KLEV+2,KRR)
+REAL, ALLOCATABLE   :: PRUS               (:,:,:)
+REAL, ALLOCATABLE   :: PRVS               (:,:,:)
+REAL, ALLOCATABLE   :: PRWS               (:,:,:)
+REAL, ALLOCATABLE   :: PRTHS              (:,:,:)
+REAL, ALLOCATABLE   :: ZRRS               (:,:,:,:) !(KLON,1,KLEV+2,KRR)
+REAL, ALLOCATABLE   :: ZRSVS              (:,:,:,:) !(KLON,1,KLEV+2,KSV)
+REAL, ALLOCATABLE   :: PRTKES_OUT         (:,:,:)
+REAL, ALLOCATABLE   :: PFLXZTHVMF         (:,:,:)
 !Expected values to read
-REAL, ALLOCATABLE   :: ZBL_DEPTH_OUT      (:,:,:)
-REAL, ALLOCATABLE   :: ZSBL_DEPTH_OUT     (:,:,:)
-REAL, ALLOCATABLE   :: PTHM_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: ZRM_OUT            (:,:,:,:,:) !(KLON,1,KLEV+2,KRR)
-REAL, ALLOCATABLE   :: PRUS_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRVS_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRWS_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRTHS_OUT          (:,:,:,:)
-REAL, ALLOCATABLE   :: ZRRS_OUT           (:,:,:,:,:) !(KLON,1,KLEV+2,KRR)
-REAL, ALLOCATABLE   :: ZRSVS_OUT          (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
-REAL, ALLOCATABLE   :: PRTKES_OUT_OUT     (:,:,:,:)
-REAL, ALLOCATABLE   :: PSIGS_OUT          (:,:,:,:)
-REAL, ALLOCATABLE   :: ZWTH_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: ZWRC_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: ZWSV_OUT           (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
-REAL, ALLOCATABLE   :: PDP_OUT            (:,:,:,:)
-REAL, ALLOCATABLE   :: PTP_OUT            (:,:,:,:)
-REAL, ALLOCATABLE   :: PTDIFF_OUT         (:,:,:,:)
-REAL, ALLOCATABLE   :: PTDISS_OUT         (:,:,:,:)
-REAL, ALLOCATABLE   :: PEDR_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PTPMF_OUT          (:,:,:,:)
-REAL, ALLOCATABLE   :: PDRUS_TURB_OUT     (:,:,:,:)
-REAL, ALLOCATABLE   :: PDRVS_TURB_OUT     (:,:,:,:)
-REAL, ALLOCATABLE   :: PDRTHLS_TURB_OUT   (:,:,:,:)
-REAL, ALLOCATABLE   :: PDRRTS_TURB_OUT    (:,:,:,:)
-REAL, ALLOCATABLE   :: ZDRSVS_TURB_OUT    (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
+REAL, ALLOCATABLE   :: ZBL_DEPTH_OUT      (:,:)
+REAL, ALLOCATABLE   :: ZSBL_DEPTH_OUT     (:,:)
+REAL, ALLOCATABLE   :: PTHM_OUT           (:,:,:)
+REAL, ALLOCATABLE   :: ZRM_OUT            (:,:,:,:) !(KLON,1,KLEV+2,KRR)
+REAL, ALLOCATABLE   :: PRUS_OUT           (:,:,:)
+REAL, ALLOCATABLE   :: PRVS_OUT           (:,:,:)
+REAL, ALLOCATABLE   :: PRWS_OUT           (:,:,:)
+REAL, ALLOCATABLE   :: PRTHS_OUT          (:,:,:)
+REAL, ALLOCATABLE   :: ZRRS_OUT           (:,:,:,:) !(KLON,1,KLEV+2,KRR)
+REAL, ALLOCATABLE   :: ZRSVS_OUT          (:,:,:,:) !(KLON,1,KLEV+2,KSV)
+REAL, ALLOCATABLE   :: PRTKES_OUT_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: PSIGS_OUT          (:,:,:)
+REAL, ALLOCATABLE   :: ZWTH_OUT           (:,:,:)
+REAL, ALLOCATABLE   :: ZWRC_OUT           (:,:,:)
+REAL, ALLOCATABLE   :: ZWSV_OUT           (:,:,:,:) !(KLON,1,KLEV+2,KSV)
+REAL, ALLOCATABLE   :: PDP_OUT            (:,:,:)
+REAL, ALLOCATABLE   :: PTP_OUT            (:,:,:)
+REAL, ALLOCATABLE   :: PTDIFF_OUT         (:,:,:)
+REAL, ALLOCATABLE   :: PTDISS_OUT         (:,:,:)
+REAL, ALLOCATABLE   :: PEDR_OUT           (:,:,:)
+REAL, ALLOCATABLE   :: PTPMF_OUT          (:,:,:)
+REAL, ALLOCATABLE   :: PDRUS_TURB_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: PDRVS_TURB_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: PDRTHLS_TURB_OUT   (:,:,:)
+REAL, ALLOCATABLE   :: PDRRTS_TURB_OUT    (:,:,:)
+REAL, ALLOCATABLE   :: ZDRSVS_TURB_OUT    (:,:,:,:) !(KLON,1,KLEV+2,KSV)
 
 INTEGER, INTENT(IN) :: NPROMA, NGPBLKS
 INTEGER :: NGPTOT
@@ -228,92 +228,92 @@ CLOSE (IFILE)
 
 IF (NFLEVG < 0) NFLEVG = KLEV
 
-ALLOCATE (ZDXX_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZDYY_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZDZZ_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZDZX_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZDZY_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZZZ_B              (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZDIRCOSXW_B        (NPROMA,1,NGPBLKS))
-ALLOCATE (ZDIRCOSYW_B        (NPROMA,1,NGPBLKS))
-ALLOCATE (ZDIRCOSZW_B        (NPROMA,1,NGPBLKS))
-ALLOCATE (ZCOSSLOPE_B        (NPROMA,1,NGPBLKS))
-ALLOCATE (ZSINSLOPE_B        (NPROMA,1,NGPBLKS))
-ALLOCATE (PRHODJ_B           (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PTHVREF_B          (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PSFTH_B            (NPROMA,1,NGPBLKS))
-ALLOCATE (PSFRV_B            (NPROMA,1,NGPBLKS))
-ALLOCATE (PSFU_B             (NPROMA,1,NGPBLKS))
-ALLOCATE (PSFV_B             (NPROMA,1,NGPBLKS))
-ALLOCATE (PSFSV_B            (NPROMA,1,KSV,NGPBLKS))
-ALLOCATE (PPABSM_B           (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PUM_B              (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PVM_B              (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PWM_B              (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PTKEM_B            (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZSVM_B             (NPROMA,1,NFLEVG,KSV,NGPBLKS))
-ALLOCATE (PSRCM_B            (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PLENGTHM_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PLENGTHH_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (MFMOIST_B          (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZBL_DEPTH_B        (NPROMA,1,NGPBLKS))
-ALLOCATE (ZSBL_DEPTH_B       (NPROMA,1,NGPBLKS))
-ALLOCATE (ZCEI_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PTHM_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZRM_B              (NPROMA,1,NFLEVG,KRR,NGPBLKS))
-ALLOCATE (PRUS_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRVS_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRWS_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRTHS_B            (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZRRS_B             (NPROMA,1,NFLEVG,KRR,NGPBLKS))
-ALLOCATE (ZRSVS_B            (NPROMA,1,NFLEVG,KSV,NGPBLKS))
-ALLOCATE (PRTKES_OUT_B       (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PFLXZTHVMF_B       (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PHGRAD_B           (NPROMA,1,NFLEVG,0,NGPBLKS))
-ALLOCATE (PZS_B              (NPROMA,1,NGPBLKS))
-
-ALLOCATE (PSIGS_B            (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZWTH_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZWRC_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZWSV_B             (NPROMA,1,NFLEVG,KSV,NGPBLKS))
-ALLOCATE (PDP_B              (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PTP_B              (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PTDIFF_B           (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PTDISS_B           (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PEDR_B             (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PTPMF_B            (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PDRUS_TURB_B       (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PDRVS_TURB_B       (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PDRTHLS_TURB_B     (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PDRRTS_TURB_B      (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZDRSVS_TURB_B      (NPROMA,1,NFLEVG,KSV,NGPBLKS))
-
-ALLOCATE (ZBL_DEPTH_OUT_B    (NPROMA,1,NGPBLKS))
-ALLOCATE (ZSBL_DEPTH_OUT_B   (NPROMA,1,NGPBLKS))
-ALLOCATE (PTHM_OUT_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZRM_OUT_B          (NPROMA,1,NFLEVG,KRR,NGPBLKS))
-ALLOCATE (PRUS_OUT_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRVS_OUT_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRWS_OUT_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PRTHS_OUT_B        (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZRRS_OUT_B         (NPROMA,1,NFLEVG,KRR,NGPBLKS))
-ALLOCATE (ZRSVS_OUT_B        (NPROMA,1,NFLEVG,KSV,NGPBLKS))
-ALLOCATE (PRTKES_OUT_OUT_B   (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PSIGS_OUT_B        (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZWTH_OUT_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZWRC_OUT_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZWSV_OUT_B         (NPROMA,1,NFLEVG,KSV,NGPBLKS))
-ALLOCATE (PDP_OUT_B          (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PTP_OUT_B          (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PTDIFF_OUT_B       (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PTDISS_OUT_B       (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PEDR_OUT_B         (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PTPMF_OUT_B        (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PDRUS_TURB_OUT_B   (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PDRVS_TURB_OUT_B   (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PDRTHLS_TURB_OUT_B (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (PDRRTS_TURB_OUT_B  (NPROMA,1,NFLEVG,NGPBLKS))
-ALLOCATE (ZDRSVS_TURB_OUT_B  (NPROMA,1,NFLEVG,KSV,NGPBLKS))
+ALLOCATE (ZDXX_B             (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZDYY_B             (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZDZZ_B             (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZDZX_B             (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZDZY_B             (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZZZ_B              (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZDIRCOSXW_B        (NPROMA,NGPBLKS))
+ALLOCATE (ZDIRCOSYW_B        (NPROMA,NGPBLKS))
+ALLOCATE (ZDIRCOSZW_B        (NPROMA,NGPBLKS))
+ALLOCATE (ZCOSSLOPE_B        (NPROMA,NGPBLKS))
+ALLOCATE (ZSINSLOPE_B        (NPROMA,NGPBLKS))
+ALLOCATE (PRHODJ_B           (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PTHVREF_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PSFTH_B            (NPROMA,NGPBLKS))
+ALLOCATE (PSFRV_B            (NPROMA,NGPBLKS))
+ALLOCATE (PSFU_B             (NPROMA,NGPBLKS))
+ALLOCATE (PSFV_B             (NPROMA,NGPBLKS))
+ALLOCATE (PSFSV_B            (NPROMA,KSV,NGPBLKS))
+ALLOCATE (PPABSM_B           (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PUM_B              (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PVM_B              (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PWM_B              (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PTKEM_B            (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZSVM_B             (NPROMA,NFLEVG,KSV,NGPBLKS))
+ALLOCATE (PSRCM_B            (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PLENGTHM_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PLENGTHH_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (MFMOIST_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZBL_DEPTH_B        (NPROMA,NGPBLKS))
+ALLOCATE (ZSBL_DEPTH_B       (NPROMA,NGPBLKS))
+ALLOCATE (ZCEI_B             (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PTHM_B             (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZRM_B              (NPROMA,NFLEVG,KRR,NGPBLKS))
+ALLOCATE (PRUS_B             (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRVS_B             (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRWS_B             (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRTHS_B            (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZRRS_B             (NPROMA,NFLEVG,KRR,NGPBLKS))
+ALLOCATE (ZRSVS_B            (NPROMA,NFLEVG,KSV,NGPBLKS))
+ALLOCATE (PRTKES_OUT_B       (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PFLXZTHVMF_B       (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PHGRAD_B           (NPROMA,NFLEVG,0,NGPBLKS))
+ALLOCATE (PZS_B              (NPROMA,NGPBLKS))
+
+ALLOCATE (PSIGS_B            (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZWTH_B             (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZWRC_B             (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZWSV_B             (NPROMA,NFLEVG,KSV,NGPBLKS))
+ALLOCATE (PDP_B              (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PTP_B              (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PTDIFF_B           (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PTDISS_B           (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PEDR_B             (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PTPMF_B            (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PDRUS_TURB_B       (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PDRVS_TURB_B       (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PDRTHLS_TURB_B     (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PDRRTS_TURB_B      (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZDRSVS_TURB_B      (NPROMA,NFLEVG,KSV,NGPBLKS))
+
+ALLOCATE (ZBL_DEPTH_OUT_B    (NPROMA,NGPBLKS))
+ALLOCATE (ZSBL_DEPTH_OUT_B   (NPROMA,NGPBLKS))
+ALLOCATE (PTHM_OUT_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZRM_OUT_B          (NPROMA,NFLEVG,KRR,NGPBLKS))
+ALLOCATE (PRUS_OUT_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRVS_OUT_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRWS_OUT_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PRTHS_OUT_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZRRS_OUT_B         (NPROMA,NFLEVG,KRR,NGPBLKS))
+ALLOCATE (ZRSVS_OUT_B        (NPROMA,NFLEVG,KSV,NGPBLKS))
+ALLOCATE (PRTKES_OUT_OUT_B   (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PSIGS_OUT_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZWTH_OUT_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZWRC_OUT_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZWSV_OUT_B         (NPROMA,NFLEVG,KSV,NGPBLKS))
+ALLOCATE (PDP_OUT_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PTP_OUT_B          (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PTDIFF_OUT_B       (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PTDISS_OUT_B       (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PEDR_OUT_B         (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PTPMF_OUT_B        (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PDRUS_TURB_OUT_B   (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PDRVS_TURB_OUT_B   (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PDRTHLS_TURB_OUT_B (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (PDRRTS_TURB_OUT_B  (NPROMA,NFLEVG,NGPBLKS))
+ALLOCATE (ZDRSVS_TURB_OUT_B  (NPROMA,NFLEVG,KSV,NGPBLKS))
 
 CALL SET (ZDXX_B             )
 CALL SET (ZDYY_B             )
@@ -422,148 +422,148 @@ DO WHILE(LLEXIST)
   READ (IFILE) KRR, KRRL, KRRI, KSV
 
   IF (IBL == 1) THEN
-    ALLOCATE (ZDXX               (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZDYY               (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZDZZ               (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZDZX               (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZDZY               (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZZZ                (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZDIRCOSXW          (NGPTOT,1,1))
-    ALLOCATE (ZDIRCOSYW          (NGPTOT,1,1))
-    ALLOCATE (ZDIRCOSZW          (NGPTOT,1,1))
-    ALLOCATE (ZCOSSLOPE          (NGPTOT,1,1))
-    ALLOCATE (ZSINSLOPE          (NGPTOT,1,1))
-    ALLOCATE (PRHODJ             (NGPTOT,1,KLEV,1))
-    ALLOCATE (PTHVREF            (NGPTOT,1,KLEV,1))
-    ALLOCATE (PSFTH              (NGPTOT,1,1))
-    ALLOCATE (PSFRV              (NGPTOT,1,1))
-    ALLOCATE (PSFU               (NGPTOT,1,1))
-    ALLOCATE (PSFV               (NGPTOT,1,1))
-    ALLOCATE (PSFSV              (NGPTOT,1,KSV,1))
-    ALLOCATE (PPABSM             (NGPTOT,1,KLEV,1))
-    ALLOCATE (PUM                (NGPTOT,1,KLEV,1))
-    ALLOCATE (PVM                (NGPTOT,1,KLEV,1))
-    ALLOCATE (PWM                (NGPTOT,1,KLEV,1))
-    ALLOCATE (PTKEM              (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZSVM               (NGPTOT,1,KLEV,KSV,1))
-    ALLOCATE (PSRCM              (NGPTOT,1,KLEV,1))
-    ALLOCATE (PLENGTHM           (NGPTOT,1,KLEV,1))
-    ALLOCATE (PLENGTHH           (NGPTOT,1,KLEV,1))
-    ALLOCATE (MFMOIST            (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZBL_DEPTH          (NGPTOT,1,1))
-    ALLOCATE (ZSBL_DEPTH         (NGPTOT,1,1))
-    ALLOCATE (ZCEI               (NGPTOT,1,KLEV,1))
-    ALLOCATE (PTHM               (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZRM                (NGPTOT,1,KLEV,KRR,1))
-    ALLOCATE (PRUS               (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRVS               (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRWS               (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRTHS              (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZRRS               (NGPTOT,1,KLEV,KRR,1))
-    ALLOCATE (ZRSVS              (NGPTOT,1,KLEV,KSV,1))
-    ALLOCATE (PRTKES_OUT         (NGPTOT,1,KLEV,1))
-    ALLOCATE (PFLXZTHVMF         (NGPTOT,1,KLEV,1))
-
-    ALLOCATE (ZBL_DEPTH_OUT      (NGPTOT,1,1))
-    ALLOCATE (ZSBL_DEPTH_OUT     (NGPTOT,1,1))
-    ALLOCATE (PTHM_OUT           (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZRM_OUT            (NGPTOT,1,KLEV,KRR,1))
-    ALLOCATE (PRUS_OUT           (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRVS_OUT           (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRWS_OUT           (NGPTOT,1,KLEV,1))
-    ALLOCATE (PRTHS_OUT          (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZRRS_OUT           (NGPTOT,1,KLEV,KRR,1))
-    ALLOCATE (ZRSVS_OUT          (NGPTOT,1,KLEV,KSV,1))
-    ALLOCATE (PRTKES_OUT_OUT     (NGPTOT,1,KLEV,1))
-    ALLOCATE (PSIGS_OUT          (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZWTH_OUT           (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZWRC_OUT           (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZWSV_OUT           (NGPTOT,1,KLEV,KSV,1))
-    ALLOCATE (PDP_OUT            (NGPTOT,1,KLEV,1))
-    ALLOCATE (PTP_OUT            (NGPTOT,1,KLEV,1))
-    ALLOCATE (PTDIFF_OUT         (NGPTOT,1,KLEV,1))
-    ALLOCATE (PTDISS_OUT         (NGPTOT,1,KLEV,1))
-    ALLOCATE (PEDR_OUT           (NGPTOT,1,KLEV,1))
-    ALLOCATE (PTPMF_OUT          (NGPTOT,1,KLEV,1))
-    ALLOCATE (PDRUS_TURB_OUT     (NGPTOT,1,KLEV,1))
-    ALLOCATE (PDRVS_TURB_OUT     (NGPTOT,1,KLEV,1))
-    ALLOCATE (PDRTHLS_TURB_OUT   (NGPTOT,1,KLEV,1))
-    ALLOCATE (PDRRTS_TURB_OUT    (NGPTOT,1,KLEV,1))
-    ALLOCATE (ZDRSVS_TURB_OUT    (NGPTOT,1,KLEV,KSV,1))
+    ALLOCATE (ZDXX               (NGPTOT,KLEV,1))
+    ALLOCATE (ZDYY               (NGPTOT,KLEV,1))
+    ALLOCATE (ZDZZ               (NGPTOT,KLEV,1))
+    ALLOCATE (ZDZX               (NGPTOT,KLEV,1))
+    ALLOCATE (ZDZY               (NGPTOT,KLEV,1))
+    ALLOCATE (ZZZ                (NGPTOT,KLEV,1))
+    ALLOCATE (ZDIRCOSXW          (NGPTOT,1))
+    ALLOCATE (ZDIRCOSYW          (NGPTOT,1))
+    ALLOCATE (ZDIRCOSZW          (NGPTOT,1))
+    ALLOCATE (ZCOSSLOPE          (NGPTOT,1))
+    ALLOCATE (ZSINSLOPE          (NGPTOT,1))
+    ALLOCATE (PRHODJ             (NGPTOT,KLEV,1))
+    ALLOCATE (PTHVREF            (NGPTOT,KLEV,1))
+    ALLOCATE (PSFTH              (NGPTOT,1))
+    ALLOCATE (PSFRV              (NGPTOT,1))
+    ALLOCATE (PSFU               (NGPTOT,1))
+    ALLOCATE (PSFV               (NGPTOT,1))
+    ALLOCATE (PSFSV              (NGPTOT,KSV,1))
+    ALLOCATE (PPABSM             (NGPTOT,KLEV,1))
+    ALLOCATE (PUM                (NGPTOT,KLEV,1))
+    ALLOCATE (PVM                (NGPTOT,KLEV,1))
+    ALLOCATE (PWM                (NGPTOT,KLEV,1))
+    ALLOCATE (PTKEM              (NGPTOT,KLEV,1))
+    ALLOCATE (ZSVM               (NGPTOT,KLEV,KSV,1))
+    ALLOCATE (PSRCM              (NGPTOT,KLEV,1))
+    ALLOCATE (PLENGTHM           (NGPTOT,KLEV,1))
+    ALLOCATE (PLENGTHH           (NGPTOT,KLEV,1))
+    ALLOCATE (MFMOIST            (NGPTOT,KLEV,1))
+    ALLOCATE (ZBL_DEPTH          (NGPTOT,1))
+    ALLOCATE (ZSBL_DEPTH         (NGPTOT,1))
+    ALLOCATE (ZCEI               (NGPTOT,KLEV,1))
+    ALLOCATE (PTHM               (NGPTOT,KLEV,1))
+    ALLOCATE (ZRM                (NGPTOT,KLEV,KRR,1))
+    ALLOCATE (PRUS               (NGPTOT,KLEV,1))
+    ALLOCATE (PRVS               (NGPTOT,KLEV,1))
+    ALLOCATE (PRWS               (NGPTOT,KLEV,1))
+    ALLOCATE (PRTHS              (NGPTOT,KLEV,1))
+    ALLOCATE (ZRRS               (NGPTOT,KLEV,KRR,1))
+    ALLOCATE (ZRSVS              (NGPTOT,KLEV,KSV,1))
+    ALLOCATE (PRTKES_OUT         (NGPTOT,KLEV,1))
+    ALLOCATE (PFLXZTHVMF         (NGPTOT,KLEV,1))
+
+    ALLOCATE (ZBL_DEPTH_OUT      (NGPTOT,1))
+    ALLOCATE (ZSBL_DEPTH_OUT     (NGPTOT,1))
+    ALLOCATE (PTHM_OUT           (NGPTOT,KLEV,1))
+    ALLOCATE (ZRM_OUT            (NGPTOT,KLEV,KRR,1))
+    ALLOCATE (PRUS_OUT           (NGPTOT,KLEV,1))
+    ALLOCATE (PRVS_OUT           (NGPTOT,KLEV,1))
+    ALLOCATE (PRWS_OUT           (NGPTOT,KLEV,1))
+    ALLOCATE (PRTHS_OUT          (NGPTOT,KLEV,1))
+    ALLOCATE (ZRRS_OUT           (NGPTOT,KLEV,KRR,1))
+    ALLOCATE (ZRSVS_OUT          (NGPTOT,KLEV,KSV,1))
+    ALLOCATE (PRTKES_OUT_OUT     (NGPTOT,KLEV,1))
+    ALLOCATE (PSIGS_OUT          (NGPTOT,KLEV,1))
+    ALLOCATE (ZWTH_OUT           (NGPTOT,KLEV,1))
+    ALLOCATE (ZWRC_OUT           (NGPTOT,KLEV,1))
+    ALLOCATE (ZWSV_OUT           (NGPTOT,KLEV,KSV,1))
+    ALLOCATE (PDP_OUT            (NGPTOT,KLEV,1))
+    ALLOCATE (PTP_OUT            (NGPTOT,KLEV,1))
+    ALLOCATE (PTDIFF_OUT         (NGPTOT,KLEV,1))
+    ALLOCATE (PTDISS_OUT         (NGPTOT,KLEV,1))
+    ALLOCATE (PEDR_OUT           (NGPTOT,KLEV,1))
+    ALLOCATE (PTPMF_OUT          (NGPTOT,KLEV,1))
+    ALLOCATE (PDRUS_TURB_OUT     (NGPTOT,KLEV,1))
+    ALLOCATE (PDRVS_TURB_OUT     (NGPTOT,KLEV,1))
+    ALLOCATE (PDRTHLS_TURB_OUT   (NGPTOT,KLEV,1))
+    ALLOCATE (PDRRTS_TURB_OUT    (NGPTOT,KLEV,1))
+    ALLOCATE (ZDRSVS_TURB_OUT    (NGPTOT,KLEV,KSV,1))
   ENDIF
 
   IF (IOFF+KLON > NGPTOT) THEN
     EXIT
   ENDIF
 
-  READ(IFILE) ZDXX               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZDYY               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZDZZ               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZDZX               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZDZY               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZZZ                (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZDIRCOSXW          (IOFF+1:IOFF+KLON,:,1)
-  READ(IFILE) ZDIRCOSYW          (IOFF+1:IOFF+KLON,:,1)
-  READ(IFILE) ZDIRCOSZW          (IOFF+1:IOFF+KLON,:,1)
-  READ(IFILE) ZCOSSLOPE          (IOFF+1:IOFF+KLON,:,1)
-  READ(IFILE) ZSINSLOPE          (IOFF+1:IOFF+KLON,:,1)
-  READ(IFILE) PRHODJ             (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PTHVREF            (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PSFTH              (IOFF+1:IOFF+KLON,:,1)
-  READ(IFILE) PSFRV              (IOFF+1:IOFF+KLON,:,1)
-  READ(IFILE) PSFU               (IOFF+1:IOFF+KLON,:,1)
-  READ(IFILE) PSFV               (IOFF+1:IOFF+KLON,:,1)
-  READ(IFILE) PSFSV              (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PPABSM             (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PUM                (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PVM                (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PWM                (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PTKEM              (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZSVM               (IOFF+1:IOFF+KLON,:,:,:,1)
-  READ(IFILE) PSRCM              (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PLENGTHM           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PLENGTHH           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) MFMOIST            (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZBL_DEPTH          (IOFF+1:IOFF+KLON,:,1)
-  READ(IFILE) ZSBL_DEPTH         (IOFF+1:IOFF+KLON,:,1)
-  READ(IFILE) ZCEI               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PTHM               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZRM                (IOFF+1:IOFF+KLON,:,:,:,1)
-  READ(IFILE) PRUS               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRVS               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRWS               (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRTHS              (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZRRS               (IOFF+1:IOFF+KLON,:,:,:,1)
-  READ(IFILE) ZRSVS              (IOFF+1:IOFF+KLON,:,:,:,1)
-  READ(IFILE) PRTKES_OUT         (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PFLXZTHVMF         (IOFF+1:IOFF+KLON,:,:,1)
-
-  READ(IFILE) ZBL_DEPTH_OUT      (IOFF+1:IOFF+KLON,:,1)
-  READ(IFILE) ZSBL_DEPTH_OUT     (IOFF+1:IOFF+KLON,:,1)
-  READ(IFILE) PTHM_OUT           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZRM_OUT            (IOFF+1:IOFF+KLON,:,:,:,1)
-  READ(IFILE) PRUS_OUT           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRVS_OUT           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRWS_OUT           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PRTHS_OUT          (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZRRS_OUT           (IOFF+1:IOFF+KLON,:,:,:,1)
-  READ(IFILE) ZRSVS_OUT          (IOFF+1:IOFF+KLON,:,:,:,1)
-  READ(IFILE) PRTKES_OUT_OUT     (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PSIGS_OUT          (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZWTH_OUT           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZWRC_OUT           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZWSV_OUT           (IOFF+1:IOFF+KLON,:,:,:,1)
-  READ(IFILE) PDP_OUT            (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PTP_OUT            (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PTDIFF_OUT         (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PTDISS_OUT         (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PEDR_OUT           (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PTPMF_OUT          (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PDRUS_TURB_OUT     (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PDRVS_TURB_OUT     (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PDRTHLS_TURB_OUT   (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) PDRRTS_TURB_OUT    (IOFF+1:IOFF+KLON,:,:,1)
-  READ(IFILE) ZDRSVS_TURB_OUT    (IOFF+1:IOFF+KLON,:,:,:,1)
+  READ(IFILE) ZDXX               (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZDYY               (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZDZZ               (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZDZX               (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZDZY               (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZZZ                (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZDIRCOSXW          (IOFF+1:IOFF+KLON,1)
+  READ(IFILE) ZDIRCOSYW          (IOFF+1:IOFF+KLON,1)
+  READ(IFILE) ZDIRCOSZW          (IOFF+1:IOFF+KLON,1)
+  READ(IFILE) ZCOSSLOPE          (IOFF+1:IOFF+KLON,1)
+  READ(IFILE) ZSINSLOPE          (IOFF+1:IOFF+KLON,1)
+  READ(IFILE) PRHODJ             (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PTHVREF            (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PSFTH              (IOFF+1:IOFF+KLON,1)
+  READ(IFILE) PSFRV              (IOFF+1:IOFF+KLON,1)
+  READ(IFILE) PSFU               (IOFF+1:IOFF+KLON,1)
+  READ(IFILE) PSFV               (IOFF+1:IOFF+KLON,1)
+  READ(IFILE) PSFSV              (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PPABSM             (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PUM                (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PVM                (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PWM                (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PTKEM              (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZSVM               (IOFF+1:IOFF+KLON,:,:,1)
+  READ(IFILE) PSRCM              (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PLENGTHM           (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PLENGTHH           (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) MFMOIST            (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZBL_DEPTH          (IOFF+1:IOFF+KLON,1)
+  READ(IFILE) ZSBL_DEPTH         (IOFF+1:IOFF+KLON,1)
+  READ(IFILE) ZCEI               (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PTHM               (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZRM                (IOFF+1:IOFF+KLON,:,:,1)
+  READ(IFILE) PRUS               (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRVS               (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRWS               (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRTHS              (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZRRS               (IOFF+1:IOFF+KLON,:,:,1)
+  READ(IFILE) ZRSVS              (IOFF+1:IOFF+KLON,:,:,1)
+  READ(IFILE) PRTKES_OUT         (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PFLXZTHVMF         (IOFF+1:IOFF+KLON,:,1)
+
+  READ(IFILE) ZBL_DEPTH_OUT      (IOFF+1:IOFF+KLON,1)
+  READ(IFILE) ZSBL_DEPTH_OUT     (IOFF+1:IOFF+KLON,1)
+  READ(IFILE) PTHM_OUT           (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZRM_OUT            (IOFF+1:IOFF+KLON,:,:,1)
+  READ(IFILE) PRUS_OUT           (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRVS_OUT           (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRWS_OUT           (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PRTHS_OUT          (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZRRS_OUT           (IOFF+1:IOFF+KLON,:,:,1)
+  READ(IFILE) ZRSVS_OUT          (IOFF+1:IOFF+KLON,:,:,1)
+  READ(IFILE) PRTKES_OUT_OUT     (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PSIGS_OUT          (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZWTH_OUT           (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZWRC_OUT           (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZWSV_OUT           (IOFF+1:IOFF+KLON,:,:,1)
+  READ(IFILE) PDP_OUT            (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PTP_OUT            (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PTDIFF_OUT         (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PTDISS_OUT         (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PEDR_OUT           (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PTPMF_OUT          (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PDRUS_TURB_OUT     (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PDRVS_TURB_OUT     (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PDRTHLS_TURB_OUT   (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) PDRRTS_TURB_OUT    (IOFF+1:IOFF+KLON,:,1)
+  READ(IFILE) ZDRSVS_TURB_OUT    (IOFF+1:IOFF+KLON,:,:,1)
   
   CLOSE (IFILE)
 
@@ -643,74 +643,74 @@ IF (NFLEVG /= KLEV) THEN
 
 ENDIF
 
-CALL REPLICATE (IOFF, ZDXX               (:,:,:,1))
-CALL REPLICATE (IOFF, ZDYY               (:,:,:,1))
-CALL REPLICATE (IOFF, ZDZZ               (:,:,:,1))
-CALL REPLICATE (IOFF, ZDZX               (:,:,:,1))
-CALL REPLICATE (IOFF, ZDZY               (:,:,:,1))
-CALL REPLICATE (IOFF, ZZZ                (:,:,:,1))
-CALL REPLICATE (IOFF, ZDIRCOSXW          (:,:,1))
-CALL REPLICATE (IOFF, ZDIRCOSYW          (:,:,1))
-CALL REPLICATE (IOFF, ZDIRCOSZW          (:,:,1))
-CALL REPLICATE (IOFF, ZCOSSLOPE          (:,:,1))
-CALL REPLICATE (IOFF, ZSINSLOPE          (:,:,1))
-CALL REPLICATE (IOFF, PRHODJ             (:,:,:,1))
-CALL REPLICATE (IOFF, PTHVREF            (:,:,:,1))
-CALL REPLICATE (IOFF, PSFTH              (:,:,1))
-CALL REPLICATE (IOFF, PSFRV              (:,:,1))
-CALL REPLICATE (IOFF, PSFU               (:,:,1))
-CALL REPLICATE (IOFF, PSFV               (:,:,1))
-CALL REPLICATE (IOFF, PSFSV              (:,:,:,1))
-CALL REPLICATE (IOFF, PPABSM             (:,:,:,1))
-CALL REPLICATE (IOFF, PUM                (:,:,:,1))
-CALL REPLICATE (IOFF, PVM                (:,:,:,1))
-CALL REPLICATE (IOFF, PWM                (:,:,:,1))
-CALL REPLICATE (IOFF, PTKEM              (:,:,:,1))
-CALL REPLICATE (IOFF, ZSVM               (:,:,:,:,1))
-CALL REPLICATE (IOFF, PSRCM              (:,:,:,1))
-CALL REPLICATE (IOFF, PLENGTHM           (:,:,:,1))
-CALL REPLICATE (IOFF, PLENGTHH           (:,:,:,1))
-CALL REPLICATE (IOFF, MFMOIST            (:,:,:,1))
-CALL REPLICATE (IOFF, ZBL_DEPTH          (:,:,1))
-CALL REPLICATE (IOFF, ZSBL_DEPTH         (:,:,1))
-CALL REPLICATE (IOFF, ZCEI               (:,:,:,1))
-CALL REPLICATE (IOFF, PTHM               (:,:,:,1))
-CALL REPLICATE (IOFF, ZRM                (:,:,:,:,1))
-CALL REPLICATE (IOFF, PRUS               (:,:,:,1))
-CALL REPLICATE (IOFF, PRVS               (:,:,:,1))
-CALL REPLICATE (IOFF, PRWS               (:,:,:,1))
-CALL REPLICATE (IOFF, PRTHS              (:,:,:,1))
-CALL REPLICATE (IOFF, ZRRS               (:,:,:,:,1))
-CALL REPLICATE (IOFF, ZRSVS              (:,:,:,:,1))
-CALL REPLICATE (IOFF, PRTKES_OUT         (:,:,:,1))
-CALL REPLICATE (IOFF, PFLXZTHVMF         (:,:,:,1))
-
-CALL REPLICATE (IOFF, ZBL_DEPTH_OUT      (:,:,1))
-CALL REPLICATE (IOFF, ZSBL_DEPTH_OUT     (:,:,1))
-CALL REPLICATE (IOFF, PTHM_OUT           (:,:,:,1))
-CALL REPLICATE (IOFF, ZRM_OUT            (:,:,:,:,1))
-CALL REPLICATE (IOFF, PRUS_OUT           (:,:,:,1))
-CALL REPLICATE (IOFF, PRVS_OUT           (:,:,:,1))
-CALL REPLICATE (IOFF, PRWS_OUT           (:,:,:,1))
-CALL REPLICATE (IOFF, PRTHS_OUT          (:,:,:,1))
-CALL REPLICATE (IOFF, ZRRS_OUT           (:,:,:,:,1))
-CALL REPLICATE (IOFF, ZRSVS_OUT          (:,:,:,:,1))
-CALL REPLICATE (IOFF, PRTKES_OUT_OUT     (:,:,:,1))
-CALL REPLICATE (IOFF, PSIGS_OUT          (:,:,:,1))
-CALL REPLICATE (IOFF, ZWTH_OUT           (:,:,:,1))
-CALL REPLICATE (IOFF, ZWRC_OUT           (:,:,:,1))
-CALL REPLICATE (IOFF, ZWSV_OUT           (:,:,:,:,1))
-CALL REPLICATE (IOFF, PDP_OUT            (:,:,:,1))
-CALL REPLICATE (IOFF, PTP_OUT            (:,:,:,1))
-CALL REPLICATE (IOFF, PTDIFF_OUT         (:,:,:,1))
-CALL REPLICATE (IOFF, PTDISS_OUT         (:,:,:,1))
-CALL REPLICATE (IOFF, PEDR_OUT           (:,:,:,1))
-CALL REPLICATE (IOFF, PTPMF_OUT          (:,:,:,1))
-CALL REPLICATE (IOFF, PDRUS_TURB_OUT     (:,:,:,1))
-CALL REPLICATE (IOFF, PDRVS_TURB_OUT     (:,:,:,1))
-CALL REPLICATE (IOFF, PDRTHLS_TURB_OUT   (:,:,:,1))
-CALL REPLICATE (IOFF, PDRRTS_TURB_OUT    (:,:,:,1))
-CALL REPLICATE (IOFF, ZDRSVS_TURB_OUT    (:,:,:,:,1))
+CALL REPLICATE (IOFF, ZDXX               (:,:,1))
+CALL REPLICATE (IOFF, ZDYY               (:,:,1))
+CALL REPLICATE (IOFF, ZDZZ               (:,:,1))
+CALL REPLICATE (IOFF, ZDZX               (:,:,1))
+CALL REPLICATE (IOFF, ZDZY               (:,:,1))
+CALL REPLICATE (IOFF, ZZZ                (:,:,1))
+CALL REPLICATE (IOFF, ZDIRCOSXW          (:,1))
+CALL REPLICATE (IOFF, ZDIRCOSYW          (:,1))
+CALL REPLICATE (IOFF, ZDIRCOSZW          (:,1))
+CALL REPLICATE (IOFF, ZCOSSLOPE          (:,1))
+CALL REPLICATE (IOFF, ZSINSLOPE          (:,1))
+CALL REPLICATE (IOFF, PRHODJ             (:,:,1))
+CALL REPLICATE (IOFF, PTHVREF            (:,:,1))
+CALL REPLICATE (IOFF, PSFTH              (:,1))
+CALL REPLICATE (IOFF, PSFRV              (:,1))
+CALL REPLICATE (IOFF, PSFU               (:,1))
+CALL REPLICATE (IOFF, PSFV               (:,1))
+CALL REPLICATE (IOFF, PSFSV              (:,:,1))
+CALL REPLICATE (IOFF, PPABSM             (:,:,1))
+CALL REPLICATE (IOFF, PUM                (:,:,1))
+CALL REPLICATE (IOFF, PVM                (:,:,1))
+CALL REPLICATE (IOFF, PWM                (:,:,1))
+CALL REPLICATE (IOFF, PTKEM              (:,:,1))
+CALL REPLICATE (IOFF, ZSVM               (:,:,:,1))
+CALL REPLICATE (IOFF, PSRCM              (:,:,1))
+CALL REPLICATE (IOFF, PLENGTHM           (:,:,1))
+CALL REPLICATE (IOFF, PLENGTHH           (:,:,1))
+CALL REPLICATE (IOFF, MFMOIST            (:,:,1))
+CALL REPLICATE (IOFF, ZBL_DEPTH          (:,1))
+CALL REPLICATE (IOFF, ZSBL_DEPTH         (:,1))
+CALL REPLICATE (IOFF, ZCEI               (:,:,1))
+CALL REPLICATE (IOFF, PTHM               (:,:,1))
+CALL REPLICATE (IOFF, ZRM                (:,:,:,1))
+CALL REPLICATE (IOFF, PRUS               (:,:,1))
+CALL REPLICATE (IOFF, PRVS               (:,:,1))
+CALL REPLICATE (IOFF, PRWS               (:,:,1))
+CALL REPLICATE (IOFF, PRTHS              (:,:,1))
+CALL REPLICATE (IOFF, ZRRS               (:,:,:,1))
+CALL REPLICATE (IOFF, ZRSVS              (:,:,:,1))
+CALL REPLICATE (IOFF, PRTKES_OUT         (:,:,1))
+CALL REPLICATE (IOFF, PFLXZTHVMF         (:,:,1))
+
+CALL REPLICATE (IOFF, ZBL_DEPTH_OUT      (:,1))
+CALL REPLICATE (IOFF, ZSBL_DEPTH_OUT     (:,1))
+CALL REPLICATE (IOFF, PTHM_OUT           (:,:,1))
+CALL REPLICATE (IOFF, ZRM_OUT            (:,:,:,1))
+CALL REPLICATE (IOFF, PRUS_OUT           (:,:,1))
+CALL REPLICATE (IOFF, PRVS_OUT           (:,:,1))
+CALL REPLICATE (IOFF, PRWS_OUT           (:,:,1))
+CALL REPLICATE (IOFF, PRTHS_OUT          (:,:,1))
+CALL REPLICATE (IOFF, ZRRS_OUT           (:,:,:,1))
+CALL REPLICATE (IOFF, ZRSVS_OUT          (:,:,:,1))
+CALL REPLICATE (IOFF, PRTKES_OUT_OUT     (:,:,1))
+CALL REPLICATE (IOFF, PSIGS_OUT          (:,:,1))
+CALL REPLICATE (IOFF, ZWTH_OUT           (:,:,1))
+CALL REPLICATE (IOFF, ZWRC_OUT           (:,:,1))
+CALL REPLICATE (IOFF, ZWSV_OUT           (:,:,:,1))
+CALL REPLICATE (IOFF, PDP_OUT            (:,:,1))
+CALL REPLICATE (IOFF, PTP_OUT            (:,:,1))
+CALL REPLICATE (IOFF, PTDIFF_OUT         (:,:,1))
+CALL REPLICATE (IOFF, PTDISS_OUT         (:,:,1))
+CALL REPLICATE (IOFF, PEDR_OUT           (:,:,1))
+CALL REPLICATE (IOFF, PTPMF_OUT          (:,:,1))
+CALL REPLICATE (IOFF, PDRUS_TURB_OUT     (:,:,1))
+CALL REPLICATE (IOFF, PDRVS_TURB_OUT     (:,:,1))
+CALL REPLICATE (IOFF, PDRTHLS_TURB_OUT   (:,:,1))
+CALL REPLICATE (IOFF, PDRRTS_TURB_OUT    (:,:,1))
+CALL REPLICATE (IOFF, ZDRSVS_TURB_OUT    (:,:,:,1))
 
 CALL NPROMIZE (NPROMA, ZDXX               , ZDXX_B             )
 CALL NPROMIZE (NPROMA, ZDYY               , ZDYY_B             )
diff --git a/src/testprogs/turb_mnh/main_turb.F90 b/src/testprogs/turb_mnh/main_turb.F90
index b0a7f5c5f3503c078f58d171f3512242f8f013a0..578d65520c061639dd03b4e951f3981525ad54c7 100644
--- a/src/testprogs/turb_mnh/main_turb.F90
+++ b/src/testprogs/turb_mnh/main_turb.F90
@@ -18,94 +18,94 @@ INTEGER      :: KRR, KRRL, KRRI
 INTEGER      :: KSV
 
 !IN and INOUTS
-REAL, ALLOCATABLE   :: ZDXX               (:,:,:,:)
-REAL, ALLOCATABLE   :: ZDYY               (:,:,:,:)
-REAL, ALLOCATABLE   :: ZDZZ               (:,:,:,:)
-REAL, ALLOCATABLE   :: ZDZX               (:,:,:,:)
-REAL, ALLOCATABLE   :: ZDZY               (:,:,:,:)
-REAL, ALLOCATABLE   :: ZZZ                (:,:,:,:)
-REAL, ALLOCATABLE   :: ZDIRCOSXW          (:,:,:)
-REAL, ALLOCATABLE   :: ZDIRCOSYW          (:,:,:)
-REAL, ALLOCATABLE   :: ZDIRCOSZW          (:,:,:)
-REAL, ALLOCATABLE   :: ZCOSSLOPE          (:,:,:)
-REAL, ALLOCATABLE   :: ZSINSLOPE          (:,:,:)
-REAL, ALLOCATABLE   :: PRHODJ             (:,:,:,:)
-REAL, ALLOCATABLE   :: PTHVREF            (:,:,:,:)
-REAL, ALLOCATABLE   :: PSFTH              (:,:,:)
-REAL, ALLOCATABLE   :: PSFRV              (:,:,:)
-REAL, ALLOCATABLE   :: PSFU               (:,:,:)
-REAL, ALLOCATABLE   :: PSFV               (:,:,:)
-REAL, ALLOCATABLE   :: PSFSV              (:,:,:,:) !(KLON, 1, KSV)
-REAL, ALLOCATABLE   :: PPABSM             (:,:,:,:)
-REAL, ALLOCATABLE   :: PUM                (:,:,:,:)
-REAL, ALLOCATABLE   :: PVM                (:,:,:,:)
-REAL, ALLOCATABLE   :: PWM                (:,:,:,:)
-REAL, ALLOCATABLE   :: PTKEM              (:,:,:,:)
-REAL, ALLOCATABLE   :: ZSVM               (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
-REAL, ALLOCATABLE   :: PSRCM              (:,:,:,:)
-REAL, ALLOCATABLE   :: PLENGTHM           (:,:,:,:)
-REAL, ALLOCATABLE   :: PLENGTHH           (:,:,:,:)
-REAL, ALLOCATABLE   :: MFMOIST            (:,:,:,:)
-REAL, ALLOCATABLE   :: ZBL_DEPTH          (:,:,:)
-REAL, ALLOCATABLE   :: ZSBL_DEPTH         (:,:,:)
-REAL, ALLOCATABLE   :: ZCEI               (:,:,:,:)
-REAL, ALLOCATABLE   :: PTHM               (:,:,:,:)
-REAL, ALLOCATABLE   :: ZRM                (:,:,:,:,:) !(KLON,1,KLEV+2,KRR)
-REAL, ALLOCATABLE   :: PRUS               (:,:,:,:)
-REAL, ALLOCATABLE   :: PRVS               (:,:,:,:)
-REAL, ALLOCATABLE   :: PRWS               (:,:,:,:)
-REAL, ALLOCATABLE   :: PRTHS              (:,:,:,:)
-REAL, ALLOCATABLE   :: ZRRS               (:,:,:,:,:) !(KLON,1,KLEV+2,KRR)
-REAL, ALLOCATABLE   :: ZRSVS              (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
-REAL, ALLOCATABLE   :: PRTKES_OUT         (:,:,:,:)
-REAL, ALLOCATABLE   :: PFLXZTHVMF         (:,:,:,:)
-REAL, ALLOCATABLE   :: PHGRAD             (:,:,:,:,:) !(KLON,1,KLEV+2,KGRADIENTS)
-REAL, ALLOCATABLE   :: PZS                (:,:,:)
+REAL, ALLOCATABLE   :: ZDXX               (:,:,:)
+REAL, ALLOCATABLE   :: ZDYY               (:,:,:)
+REAL, ALLOCATABLE   :: ZDZZ               (:,:,:)
+REAL, ALLOCATABLE   :: ZDZX               (:,:,:)
+REAL, ALLOCATABLE   :: ZDZY               (:,:,:)
+REAL, ALLOCATABLE   :: ZZZ                (:,:,:)
+REAL, ALLOCATABLE   :: ZDIRCOSXW          (:,:)
+REAL, ALLOCATABLE   :: ZDIRCOSYW          (:,:)
+REAL, ALLOCATABLE   :: ZDIRCOSZW          (:,:)
+REAL, ALLOCATABLE   :: ZCOSSLOPE          (:,:)
+REAL, ALLOCATABLE   :: ZSINSLOPE          (:,:)
+REAL, ALLOCATABLE   :: PRHODJ             (:,:,:)
+REAL, ALLOCATABLE   :: PTHVREF            (:,:,:)
+REAL, ALLOCATABLE   :: PSFTH              (:,:)
+REAL, ALLOCATABLE   :: PSFRV              (:,:)
+REAL, ALLOCATABLE   :: PSFU               (:,:)
+REAL, ALLOCATABLE   :: PSFV               (:,:)
+REAL, ALLOCATABLE   :: PSFSV              (:,:,:) !(KLON, 1, KSV)
+REAL, ALLOCATABLE   :: PPABSM             (:,:,:)
+REAL, ALLOCATABLE   :: PUM                (:,:,:)
+REAL, ALLOCATABLE   :: PVM                (:,:,:)
+REAL, ALLOCATABLE   :: PWM                (:,:,:)
+REAL, ALLOCATABLE   :: PTKEM              (:,:,:)
+REAL, ALLOCATABLE   :: ZSVM               (:,:,:,:) !(KLON,1,KLEV+2,KSV)
+REAL, ALLOCATABLE   :: PSRCM              (:,:,:)
+REAL, ALLOCATABLE   :: PLENGTHM           (:,:,:)
+REAL, ALLOCATABLE   :: PLENGTHH           (:,:,:)
+REAL, ALLOCATABLE   :: MFMOIST            (:,:,:)
+REAL, ALLOCATABLE   :: ZBL_DEPTH          (:,:)
+REAL, ALLOCATABLE   :: ZSBL_DEPTH         (:,:)
+REAL, ALLOCATABLE   :: ZCEI               (:,:,:)
+REAL, ALLOCATABLE   :: PTHM               (:,:,:)
+REAL, ALLOCATABLE   :: ZRM                (:,:,:,:) !(KLON,1,KLEV+2,KRR)
+REAL, ALLOCATABLE   :: PRUS               (:,:,:)
+REAL, ALLOCATABLE   :: PRVS               (:,:,:)
+REAL, ALLOCATABLE   :: PRWS               (:,:,:)
+REAL, ALLOCATABLE   :: PRTHS              (:,:,:)
+REAL, ALLOCATABLE   :: ZRRS               (:,:,:,:) !(KLON,1,KLEV+2,KRR)
+REAL, ALLOCATABLE   :: ZRSVS              (:,:,:,:) !(KLON,1,KLEV+2,KSV)
+REAL, ALLOCATABLE   :: PRTKES_OUT         (:,:,:)
+REAL, ALLOCATABLE   :: PFLXZTHVMF         (:,:,:)
+REAL, ALLOCATABLE   :: PHGRAD             (:,:,:,:) !(KLON,1,KLEV+2,KGRADIENTS)
+REAL, ALLOCATABLE   :: PZS                (:,:)
 
 !OUT
-REAL, ALLOCATABLE   :: PSIGS              (:,:,:,:)
-REAL, ALLOCATABLE   :: ZWTH               (:,:,:,:)
-REAL, ALLOCATABLE   :: ZWRC               (:,:,:,:)
-REAL, ALLOCATABLE   :: ZWSV               (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
-REAL, ALLOCATABLE   :: PDP                (:,:,:,:)
-REAL, ALLOCATABLE   :: PTP                (:,:,:,:)
-REAL, ALLOCATABLE   :: PTDIFF             (:,:,:,:)
-REAL, ALLOCATABLE   :: PTDISS             (:,:,:,:)
-REAL, ALLOCATABLE   :: PEDR               (:,:,:,:)
-REAL, ALLOCATABLE   :: PTPMF              (:,:,:,:)
-REAL, ALLOCATABLE   :: PDRUS_TURB         (:,:,:,:)
-REAL, ALLOCATABLE   :: PDRVS_TURB         (:,:,:,:)
-REAL, ALLOCATABLE   :: PDRTHLS_TURB       (:,:,:,:)
-REAL, ALLOCATABLE   :: PDRRTS_TURB        (:,:,:,:)
-REAL, ALLOCATABLE   :: ZDRSVS_TURB        (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
+REAL, ALLOCATABLE   :: PSIGS              (:,:,:)
+REAL, ALLOCATABLE   :: ZWTH               (:,:,:)
+REAL, ALLOCATABLE   :: ZWRC               (:,:,:)
+REAL, ALLOCATABLE   :: ZWSV               (:,:,:,:) !(KLON,1,KLEV+2,KSV)
+REAL, ALLOCATABLE   :: PDP                (:,:,:)
+REAL, ALLOCATABLE   :: PTP                (:,:,:)
+REAL, ALLOCATABLE   :: PTDIFF             (:,:,:)
+REAL, ALLOCATABLE   :: PTDISS             (:,:,:)
+REAL, ALLOCATABLE   :: PEDR               (:,:,:)
+REAL, ALLOCATABLE   :: PTPMF              (:,:,:)
+REAL, ALLOCATABLE   :: PDRUS_TURB         (:,:,:)
+REAL, ALLOCATABLE   :: PDRVS_TURB         (:,:,:)
+REAL, ALLOCATABLE   :: PDRTHLS_TURB       (:,:,:)
+REAL, ALLOCATABLE   :: PDRRTS_TURB        (:,:,:)
+REAL, ALLOCATABLE   :: ZDRSVS_TURB        (:,:,:,:) !(KLON,1,KLEV+2,KSV)
 
 !Expected values
-REAL, ALLOCATABLE   :: ZBL_DEPTH_OUT      (:,:,:)
-REAL, ALLOCATABLE   :: ZSBL_DEPTH_OUT     (:,:,:)
-REAL, ALLOCATABLE   :: PTHM_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: ZRM_OUT            (:,:,:,:,:) !(KLON,1,KLEV+2,KRR)
-REAL, ALLOCATABLE   :: PRUS_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRVS_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRWS_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PRTHS_OUT          (:,:,:,:)
-REAL, ALLOCATABLE   :: ZRRS_OUT           (:,:,:,:,:) !(KLON,1,KLEV+2,KRR)
-REAL, ALLOCATABLE   :: ZRSVS_OUT          (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
-REAL, ALLOCATABLE   :: PRTKES_OUT_OUT     (:,:,:,:)
-REAL, ALLOCATABLE   :: PSIGS_OUT          (:,:,:,:)
-REAL, ALLOCATABLE   :: ZWTH_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: ZWRC_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: ZWSV_OUT           (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
-REAL, ALLOCATABLE   :: PDP_OUT            (:,:,:,:)
-REAL, ALLOCATABLE   :: PTP_OUT            (:,:,:,:)
-REAL, ALLOCATABLE   :: PTDIFF_OUT         (:,:,:,:)
-REAL, ALLOCATABLE   :: PTDISS_OUT         (:,:,:,:)
-REAL, ALLOCATABLE   :: PEDR_OUT           (:,:,:,:)
-REAL, ALLOCATABLE   :: PTPMF_OUT          (:,:,:,:)
-REAL, ALLOCATABLE   :: PDRUS_TURB_OUT     (:,:,:,:)
-REAL, ALLOCATABLE   :: PDRVS_TURB_OUT     (:,:,:,:)
-REAL, ALLOCATABLE   :: PDRTHLS_TURB_OUT   (:,:,:,:)
-REAL, ALLOCATABLE   :: PDRRTS_TURB_OUT    (:,:,:,:)
-REAL, ALLOCATABLE   :: ZDRSVS_TURB_OUT    (:,:,:,:,:) !(KLON,1,KLEV+2,KSV)
+REAL, ALLOCATABLE   :: ZBL_DEPTH_OUT      (:,:)
+REAL, ALLOCATABLE   :: ZSBL_DEPTH_OUT     (:,:)
+REAL, ALLOCATABLE   :: PTHM_OUT           (:,:,:)
+REAL, ALLOCATABLE   :: ZRM_OUT            (:,:,:,:) !(KLON,1,KLEV+2,KRR)
+REAL, ALLOCATABLE   :: PRUS_OUT           (:,:,:)
+REAL, ALLOCATABLE   :: PRVS_OUT           (:,:,:)
+REAL, ALLOCATABLE   :: PRWS_OUT           (:,:,:)
+REAL, ALLOCATABLE   :: PRTHS_OUT          (:,:,:)
+REAL, ALLOCATABLE   :: ZRRS_OUT           (:,:,:,:) !(KLON,1,KLEV+2,KRR)
+REAL, ALLOCATABLE   :: ZRSVS_OUT          (:,:,:,:) !(KLON,1,KLEV+2,KSV)
+REAL, ALLOCATABLE   :: PRTKES_OUT_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: PSIGS_OUT          (:,:,:)
+REAL, ALLOCATABLE   :: ZWTH_OUT           (:,:,:)
+REAL, ALLOCATABLE   :: ZWRC_OUT           (:,:,:)
+REAL, ALLOCATABLE   :: ZWSV_OUT           (:,:,:,:) !(KLON,1,KLEV+2,KSV)
+REAL, ALLOCATABLE   :: PDP_OUT            (:,:,:)
+REAL, ALLOCATABLE   :: PTP_OUT            (:,:,:)
+REAL, ALLOCATABLE   :: PTDIFF_OUT         (:,:,:)
+REAL, ALLOCATABLE   :: PTDISS_OUT         (:,:,:)
+REAL, ALLOCATABLE   :: PEDR_OUT           (:,:,:)
+REAL, ALLOCATABLE   :: PTPMF_OUT          (:,:,:)
+REAL, ALLOCATABLE   :: PDRUS_TURB_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: PDRVS_TURB_OUT     (:,:,:)
+REAL, ALLOCATABLE   :: PDRTHLS_TURB_OUT   (:,:,:)
+REAL, ALLOCATABLE   :: PDRRTS_TURB_OUT    (:,:,:)
+REAL, ALLOCATABLE   :: ZDRSVS_TURB_OUT    (:,:,:,:) !(KLON,1,KLEV+2,KSV)
 
 INTEGER :: NPROMA, NGPBLKS, NFLEVG
 INTEGER :: IBL, JLON, JLEV
@@ -299,21 +299,21 @@ CALL TURB(PHYEX%CST, PHYEX%CSTURB, PHYEX%MISC%TBUCONF, PHYEX%TURBN, PHYEX%NEBN,
    & PHYEX%MISC%OOCEAN, PHYEX%MISC%ODEEPOC, PHYEX%MISC%ODIAG_IN_RUN,   &
    & PHYEX%TURBN%CTURBLEN_CLOUD,PHYEX%MISC%CMICRO,           &
    & PHYEX%MISC%PTSTEP,PHYEX%MISC%ZTFILE,                                      &
-   & ZDXX(:,:,:,IBL),ZDYY(:,:,:,IBL),ZDZZ(:,:,:,IBL),ZDZX(:,:,:,IBL),ZDZY(:,:,:,IBL),ZZZ(:,:,:,IBL),          &
+   & ZDXX(:,:,IBL),ZDYY(:,:,IBL),ZDZZ(:,:,IBL),ZDZX(:,:,IBL),ZDZY(:,:,IBL),ZZZ(:,:,IBL),          &
    & ZDIRCOSXW,ZDIRCOSYW,ZDIRCOSZW,ZCOSSLOPE,ZSINSLOPE,    &
-   & PRHODJ(:,:,:,IBL),PTHVREF(:,:,:,IBL), PHGRAD, PZS,                             &
-   & PSFTH(:,:,IBL),PSFRV(:,:,IBL),PSFSV(:,:,:,IBL),PSFU(:,:,IBL),PSFV(:,:,IBL),                          &
-   & PPABSM(:,:,:,IBL),PUM(:,:,:,IBL),PVM(:,:,:,IBL),PWM(:,:,:,IBL),PTKEM(:,:,:,IBL),ZSVM(:,:,:,:,IBL),PSRCM(:,:,:,IBL),                  &
-   & PLENGTHM(:,:,:,IBL),PLENGTHH(:,:,:,IBL),MFMOIST(:,:,:,IBL),                            &
-   & ZBL_DEPTH(:,:,IBL),ZSBL_DEPTH(:,:,IBL),                                 &
-   & ZCEI(:,:,:,IBL),PHYEX%TURBN%XCEI_MIN,PHYEX%TURBN%XCEI_MAX,PHYEX%TURBN%XCOEF_AMPL_SAT,    &
-   & PTHM(:,:,:,IBL),ZRM(:,:,:,:,IBL), &
-   & PRUS(:,:,:,IBL),PRVS(:,:,:,IBL),PRWS(:,:,:,IBL),PRTHS(:,:,:,IBL),ZRRS(:,:,:,:,IBL),ZRSVS(:,:,:,:,IBL),PRTKES_OUT(:,:,:,IBL),         &
-   & PSIGS(:,:,:,IBL),                                         &
-   & PFLXZTHVMF(:,:,:,IBL),ZWTH(:,:,:,IBL),ZWRC(:,:,:,IBL),ZWSV(:,:,:,:,IBL),PDP(:,:,:,IBL),PTP(:,:,:,IBL),PTDIFF(:,:,:,IBL),PTDISS(:,:,:,IBL),&
-   & PHYEX%MISC%YLBUDGET, KBUDGETS=PHYEX%MISC%NBUDGET,PEDR=PEDR(:,:,:,IBL),PTPMF=PTPMF(:,:,:,IBL),&
-   & PDRUS_TURB=PDRUS_TURB(:,:,:,IBL),PDRVS_TURB=PDRVS_TURB(:,:,:,IBL),          &
-   & PDRTHLS_TURB=PDRTHLS_TURB(:,:,:,IBL),PDRRTS_TURB=PDRRTS_TURB(:,:,:,IBL),PDRSVS_TURB=ZDRSVS_TURB(:,:,:,:,IBL))
+   & PRHODJ(:,:,IBL),PTHVREF(:,:,IBL), PHGRAD, PZS,                             &
+   & PSFTH(:,IBL),PSFRV(:,IBL),PSFSV(:,:,IBL),PSFU(:,IBL),PSFV(:,IBL),                          &
+   & PPABSM(:,:,IBL),PUM(:,:,IBL),PVM(:,:,IBL),PWM(:,:,IBL),PTKEM(:,:,IBL),ZSVM(:,:,:,IBL),PSRCM(:,:,IBL),                  &
+   & PLENGTHM(:,:,IBL),PLENGTHH(:,:,IBL),MFMOIST(:,:,IBL),                            &
+   & ZBL_DEPTH(:,IBL),ZSBL_DEPTH(:,IBL),                                 &
+   & ZCEI(:,:,IBL),PHYEX%TURBN%XCEI_MIN,PHYEX%TURBN%XCEI_MAX,PHYEX%TURBN%XCOEF_AMPL_SAT,    &
+   & PTHM(:,:,IBL),ZRM(:,:,:,IBL), &
+   & PRUS(:,:,IBL),PRVS(:,:,IBL),PRWS(:,:,IBL),PRTHS(:,:,IBL),ZRRS(:,:,:,IBL),ZRSVS(:,:,:,IBL),PRTKES_OUT(:,:,IBL),         &
+   & PSIGS(:,:,IBL),                                         &
+   & PFLXZTHVMF(:,:,IBL),ZWTH(:,:,IBL),ZWRC(:,:,IBL),ZWSV(:,:,:,IBL),PDP(:,:,IBL),PTP(:,:,IBL),PTDIFF(:,:,IBL),PTDISS(:,:,IBL),&
+   & PHYEX%MISC%YLBUDGET, KBUDGETS=PHYEX%MISC%NBUDGET,PEDR=PEDR(:,:,IBL),PTPMF=PTPMF(:,:,IBL),&
+   & PDRUS_TURB=PDRUS_TURB(:,:,IBL),PDRVS_TURB=PDRVS_TURB(:,:,IBL),          &
+   & PDRTHLS_TURB=PDRTHLS_TURB(:,:,IBL),PDRRTS_TURB=PDRRTS_TURB(:,:,IBL),PDRSVS_TURB=ZDRSVS_TURB(:,:,:,IBL))
 
 #ifdef _OPENACC
     ENDDO
@@ -353,31 +353,31 @@ IF (LLCHECK .OR. LLSTAT .OR. LLCHECKDIFF) THEN
     PRINT *, " IBL = ", IBL
     DO JRR=1, KRR
       WRITE (CLTEXT, '("ZRM JRR=",I3.3)') JRR
-      CALL DIFF (CLTEXT,      ZRM_OUT       (:,:,:,JRR,IBL), ZRM      (:,:,:,JRR,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+      CALL DIFF (CLTEXT,      ZRM_OUT       (:,:,JRR,IBL), ZRM      (:,:,JRR,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
       WRITE (CLTEXT, '("ZRRS JRR=",I3.3)') JRR
-      CALL DIFF (CLTEXT,      ZRRS_OUT       (:,:,:,JRR,IBL), ZRRS      (:,:,:,JRR,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+      CALL DIFF (CLTEXT,      ZRRS_OUT       (:,:,JRR,IBL), ZRRS      (:,:,JRR,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
     ENDDO
-    CALL DIFF ("ZBL_DEPTH   ", ZBL_DEPTH_OUT    (:,:,IBL)  , ZBL_DEPTH   (:,:,IBL)  , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("ZSBL_DEPTH  ", ZSBL_DEPTH_OUT   (:,:,IBL)  , ZSBL_DEPTH  (:,:,IBL)  , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PTHM        ", PTHM_OUT         (:,:,:,IBL), PTHM        (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PRUS        ", PRUS_OUT         (:,:,:,IBL), PRUS        (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PRVS        ", PRVS_OUT         (:,:,:,IBL), PRVS        (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PRWS        ", PRWS_OUT         (:,:,:,IBL), PRWS        (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PRTHS       ", PRTHS_OUT        (:,:,:,IBL), PRTHS       (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PRTKES_OUT  ", PRTKES_OUT_OUT   (:,:,:,IBL), PRTKES_OUT  (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PSIGS       ", PSIGS_OUT        (:,:,:,IBL), PSIGS       (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("ZWTH        ", ZWTH_OUT         (:,:,:,IBL), ZWTH        (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("ZWRC        ", ZWRC_OUT         (:,:,:,IBL), ZWRC        (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PDP         ", PDP_OUT          (:,:,:,IBL), PDP         (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PTP         ", PTP_OUT          (:,:,:,IBL), PTP         (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PTDIFF      ", PTDIFF_OUT       (:,:,:,IBL), PTDIFF      (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PTDISS      ", PTDISS_OUT       (:,:,:,IBL), PTDISS      (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PEDR        ", PEDR_OUT         (:,:,:,IBL), PEDR        (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PTPMF       ", PTPMF_OUT        (:,:,:,IBL), PTPMF       (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PDRUS_TURB  ", PDRUS_TURB_OUT   (:,:,:,IBL), PDRUS_TURB  (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PDRVS_TURB  ", PDRVS_TURB_OUT   (:,:,:,IBL), PDRVS_TURB  (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PDRTHLS_TURB", PDRTHLS_TURB_OUT (:,:,:,IBL), PDRTHLS_TURB(:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
-    CALL DIFF ("PDRRTS_TURB ", PDRRTS_TURB_OUT  (:,:,:,IBL), PDRRTS_TURB (:,:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("ZBL_DEPTH   ", ZBL_DEPTH_OUT    (:,IBL)  , ZBL_DEPTH   (:,IBL)  , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("ZSBL_DEPTH  ", ZSBL_DEPTH_OUT   (:,IBL)  , ZSBL_DEPTH  (:,IBL)  , LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PTHM        ", PTHM_OUT         (:,:,IBL), PTHM        (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PRUS        ", PRUS_OUT         (:,:,IBL), PRUS        (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PRVS        ", PRVS_OUT         (:,:,IBL), PRVS        (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PRWS        ", PRWS_OUT         (:,:,IBL), PRWS        (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PRTHS       ", PRTHS_OUT        (:,:,IBL), PRTHS       (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PRTKES_OUT  ", PRTKES_OUT_OUT   (:,:,IBL), PRTKES_OUT  (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PSIGS       ", PSIGS_OUT        (:,:,IBL), PSIGS       (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("ZWTH        ", ZWTH_OUT         (:,:,IBL), ZWTH        (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("ZWRC        ", ZWRC_OUT         (:,:,IBL), ZWRC        (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PDP         ", PDP_OUT          (:,:,IBL), PDP         (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PTP         ", PTP_OUT          (:,:,IBL), PTP         (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PTDIFF      ", PTDIFF_OUT       (:,:,IBL), PTDIFF      (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PTDISS      ", PTDISS_OUT       (:,:,IBL), PTDISS      (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PEDR        ", PEDR_OUT         (:,:,IBL), PEDR        (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PTPMF       ", PTPMF_OUT        (:,:,IBL), PTPMF       (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PDRUS_TURB  ", PDRUS_TURB_OUT   (:,:,IBL), PDRUS_TURB  (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PDRVS_TURB  ", PDRVS_TURB_OUT   (:,:,IBL), PDRVS_TURB  (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PDRTHLS_TURB", PDRTHLS_TURB_OUT (:,:,IBL), PDRTHLS_TURB(:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
+    CALL DIFF ("PDRRTS_TURB ", PDRRTS_TURB_OUT  (:,:,IBL), PDRRTS_TURB (:,:,IBL), LLSTAT, LLCHECK, NPROMA, LLCHECKDIFF, LLDIFF)
   ENDDO
 ENDIF