diff --git a/src/MNH/condensation.f90 b/src/MNH/condensation.f90
index a62d7c515cf9494790db9a498b3b4cffe017e958..69dad2225cd1aac9b570dc525fd2c062bef80596 100644
--- a/src/MNH/condensation.f90
+++ b/src/MNH/condensation.f90
@@ -126,6 +126,9 @@ END MODULE MODI_CONDENSATION
 !
 USE MODD_CST
 USE MODD_PARAMETERS
+!
+USE MODE_MPPDB
+!
 USE MODI_COMPUTE_FRAC_ICE
 #ifdef MNH_BITREP
 USE MODI_BITREP
@@ -214,8 +217,24 @@ REAL, DIMENSION(-22:11),PARAMETER :: ZSRC_1D =(/                         &
 !
 !-------------------------------------------------------------------------------
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all IN arrays
+  CALL MPPDB_CHECK3D(PPABS,"CONDENSATION beg:PPABS",PRECISION)
+  CALL MPPDB_CHECK3D(PZZ,"CONDENSATION beg:PZZ",PRECISION)
+  CALL MPPDB_CHECK3D(PRS,"CONDENSATION beg:PRS",PRECISION)
+  CALL MPPDB_CHECK3D(PRG,"CONDENSATION beg:PRG",PRECISION)
+  CALL MPPDB_CHECK3D(PSIGS,"CONDENSATION beg:PSIGS",PRECISION)
+  CALL MPPDB_CHECK3D(PMFCONV,"CONDENSATION beg:PMFCONV",PRECISION)
+  IF (PRESENT(PLV)) CALL MPPDB_CHECK3D(PLV,"CONDENSATION beg:PLV",PRECISION)
+  IF (PRESENT(PLS)) CALL MPPDB_CHECK3D(PLS,"CONDENSATION beg:PLS",PRECISION)
+  IF (PRESENT(PCPH)) CALL MPPDB_CHECK3D(PCPH,"CONDENSATION beg:PCPH",PRECISION)
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK3D(PT,"CONDENSATION beg:PT",PRECISION)
+  CALL MPPDB_CHECK3D(PRV,"CONDENSATION beg:PRV",PRECISION)
+  CALL MPPDB_CHECK3D(PRC,"CONDENSATION beg:PRC",PRECISION)
+  CALL MPPDB_CHECK3D(PRI,"CONDENSATION beg:PRI",PRECISION)
+END IF
 !
-
 IKTB=1+JPVEXT
 IKTE=KKU-JPVEXT
 !
@@ -468,5 +487,15 @@ DO JK=IKTB,IKTE
 END DO
 !$acc end kernels
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK3D(PT,"CONDENSATION end:PT",PRECISION)
+  CALL MPPDB_CHECK3D(PRV,"CONDENSATION end:PRV",PRECISION)
+  CALL MPPDB_CHECK3D(PRC,"CONDENSATION end:PRC",PRECISION)
+  CALL MPPDB_CHECK3D(PRI,"CONDENSATION end:PRI",PRECISION)
+  !Check all OUT arrays
+  CALL MPPDB_CHECK3D(PCLDFR,"CONDENSATION end:PCLDFR",PRECISION)
+  CALL MPPDB_CHECK3D(PSIGRC,"CONDENSATION end:PSIGRC",PRECISION)
+END IF
 !
 END SUBROUTINE CONDENSATION
diff --git a/src/MNH/ice4_compute_pdf.f90 b/src/MNH/ice4_compute_pdf.f90
index 1590d8af4019658dec0032177912bcd1fed46e6e..2cc1f35ee01622b8abd1417feb8699214b4ac7f6 100644
--- a/src/MNH/ice4_compute_pdf.f90
+++ b/src/MNH/ice4_compute_pdf.f90
@@ -55,6 +55,8 @@ USE MODE_MSG
 USE MODI_BITREP
 #endif
 !
+USE MODE_MPPDB
+!
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
@@ -85,6 +87,14 @@ REAL, DIMENSION(SIZE(PRHODREF)) :: ZRCRAUTC,      & !RC value to begin rain form
 REAL :: ZCOEFFRCM
 !-------------------------------------------------------------------------------
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all IN arrays
+  CALL MPPDB_CHECK1D(PRHODREF,"ICE4_COMPUTE_PDF beg:PRHODREF",PRECISION)
+  CALL MPPDB_CHECK1D(PRCT,"ICE4_COMPUTE_PDF beg:PRCT",PRECISION)
+  CALL MPPDB_CHECK1D(PCF,"ICE4_COMPUTE_PDF beg:PCF",PRECISION)
+  CALL MPPDB_CHECK1D(PSIGMA_RC,"ICE4_COMPUTE_PDF beg:PSIGMA_RC",PRECISION)
+END IF
+!
 !Cloud water split between high and low content part is done according to autoconversion option
 ZRCRAUTC(:)=XCRIAUTC/PRHODREF(:) ! Autoconversion rc threshold
 IF(HSUBG_AUCV=='NONE') THEN
@@ -282,4 +292,13 @@ ELSE
   CALL PRINT_MSG(NVERB_FATAL,'GEN','ICE4_COMPUTE_PDF','wrong HSUBG_AUCV case')
 ENDIF
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all OUT arrays
+  CALL MPPDB_CHECK1D(PHLC_HCF,"ICE4_COMPUTE_PDF end:PHLC_HCF",PRECISION)
+  CALL MPPDB_CHECK1D(PHLC_LCF,"ICE4_COMPUTE_PDF end:PHLC_LCF",PRECISION)
+  CALL MPPDB_CHECK1D(PHLC_HRC,"ICE4_COMPUTE_PDF end:PHLC_HRC",PRECISION)
+  CALL MPPDB_CHECK1D(PHLC_LRC,"ICE4_COMPUTE_PDF end:PHLC_LRC",PRECISION)
+  CALL MPPDB_CHECK1D(PRF,"ICE4_COMPUTE_PDF end:PRF",PRECISION)
+END IF
+!
 END SUBROUTINE ICE4_COMPUTE_PDF
diff --git a/src/MNH/ice4_fast_rg.f90 b/src/MNH/ice4_fast_rg.f90
index ae67e65594e26f7d11f5c18f5464a429f039517b..c37a8cd88a163825dec691b975892fd636d6b894 100644
--- a/src/MNH/ice4_fast_rg.f90
+++ b/src/MNH/ice4_fast_rg.f90
@@ -105,6 +105,8 @@ USE MODD_PARAM_ICE, ONLY : LEVLIMIT, LNULLWETG, LWETGPOST, LCRFLIMIT
 USE MODI_BITREP
 #endif
 !
+USE MODE_MPPDB
+!
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
@@ -174,6 +176,46 @@ INTEGER :: JJ
 !
 !-------------------------------------------------------------------------------
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all IN arrays
+  CALL MPPDB_CHECK1D_LOG(LDCOMPUTE,"ICE4_FAST_RG beg:LDCOMPUTE")
+  CALL MPPDB_CHECK1D(PRHODREF,"ICE4_FAST_RG beg:PRHODREF",PRECISION)
+  CALL MPPDB_CHECK1D(PLVFACT,"ICE4_FAST_RG beg:PLVFACT",PRECISION)
+  CALL MPPDB_CHECK1D(PLSFACT,"ICE4_FAST_RG beg:PLSFACT",PRECISION)
+  CALL MPPDB_CHECK1D(PPRES,"ICE4_FAST_RG beg:PPRES",PRECISION)
+  CALL MPPDB_CHECK1D(PDV,"ICE4_FAST_RG beg:PDV",PRECISION)
+  CALL MPPDB_CHECK1D(PKA,"ICE4_FAST_RG beg:PKA",PRECISION)
+  CALL MPPDB_CHECK1D(PCJ,"ICE4_FAST_RG beg:PCJ",PRECISION)
+  CALL MPPDB_CHECK1D(PCIT,"ICE4_FAST_RG beg:PCIT",PRECISION)
+  CALL MPPDB_CHECK1D(PLBDAR,"ICE4_FAST_RG beg:PLBDAR",PRECISION)
+  CALL MPPDB_CHECK1D(PLBDAS,"ICE4_FAST_RG beg:PLBDAS",PRECISION)
+  CALL MPPDB_CHECK1D(PLBDAG,"ICE4_FAST_RG beg:PLBDAG",PRECISION)
+  CALL MPPDB_CHECK1D(PT,"ICE4_FAST_RG beg:PT",PRECISION)
+  CALL MPPDB_CHECK1D(PRVT,"ICE4_FAST_RG beg:PRVT",PRECISION)
+  CALL MPPDB_CHECK1D(PRCT,"ICE4_FAST_RG beg:PRCT",PRECISION)
+  CALL MPPDB_CHECK1D(PRRT,"ICE4_FAST_RG beg:PRRT",PRECISION)
+  CALL MPPDB_CHECK1D(PRIT,"ICE4_FAST_RG beg:PRIT",PRECISION)
+  CALL MPPDB_CHECK1D(PRST,"ICE4_FAST_RG beg:PRST",PRECISION)
+  CALL MPPDB_CHECK1D(PRGT,"ICE4_FAST_RG beg:PRGT",PRECISION)
+  CALL MPPDB_CHECK1D(PRGSI,"ICE4_FAST_RG beg:PRGSI",PRECISION)
+  CALL MPPDB_CHECK1D(PRGSI_MR,"ICE4_FAST_RG beg:PRGSI_MR",PRECISION)
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PRICFRRG,"ICE4_FAST_RG beg:PRICFRRG",PRECISION)
+  CALL MPPDB_CHECK1D(PRRCFRIG,"ICE4_FAST_RG beg:PRRCFRIG",PRECISION)
+  CALL MPPDB_CHECK1D(PRICFRR,"ICE4_FAST_RG beg:PRICFRR",PRECISION)
+  CALL MPPDB_CHECK1D(PRGMLTR,"ICE4_FAST_RG beg:PRGMLTR",PRECISION)
+  CALL MPPDB_CHECK2D(PRG_TEND,"ICE4_FAST_RG beg:PRG_TEND",PRECISION)
+  CALL MPPDB_CHECK1D(PA_TH,"ICE4_FAST_RG beg:PA_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RC,"ICE4_FAST_RG beg:PA_RC",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RR,"ICE4_FAST_RG beg:PA_RR",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RI,"ICE4_FAST_RG beg:PA_RI",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RS,"ICE4_FAST_RG beg:PA_RS",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RG,"ICE4_FAST_RG beg:PA_RG",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RH,"ICE4_FAST_RG beg:PA_RH",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RG,"ICE4_FAST_RG beg:PB_RG",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RH,"ICE4_FAST_RG beg:PB_RH",PRECISION)
+END IF
+!
 !*       6.1    rain contact freezing
 !
 GMASK(:)=PRIT(:)>XRTMIN(4) .AND. PRRT(:)>XRTMIN(3) .AND. LDCOMPUTE(:)
@@ -564,4 +606,34 @@ PA_RR(:) = PA_RR(:) + PRGMLTR(:)
 PA_RG(:) = PA_RG(:) - PRGMLTR(:)
 PA_TH(:) = PA_TH(:) - PRGMLTR(:)*(PLSFACT(:)-PLVFACT(:))
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PRICFRRG,"ICE4_FAST_RG end:PRICFRRG",PRECISION)
+  CALL MPPDB_CHECK1D(PRRCFRIG,"ICE4_FAST_RG end:PRRCFRIG",PRECISION)
+  CALL MPPDB_CHECK1D(PRICFRR,"ICE4_FAST_RG end:PRICFRR",PRECISION)
+  CALL MPPDB_CHECK1D(PRGMLTR,"ICE4_FAST_RG end:PRGMLTR",PRECISION)
+  CALL MPPDB_CHECK2D(PRG_TEND,"ICE4_FAST_RG end:PRG_TEND",PRECISION)
+  CALL MPPDB_CHECK1D(PA_TH,"ICE4_FAST_RG end:PA_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RC,"ICE4_FAST_RG end:PA_RC",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RR,"ICE4_FAST_RG end:PA_RR",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RI,"ICE4_FAST_RG end:PA_RI",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RS,"ICE4_FAST_RG end:PA_RS",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RG,"ICE4_FAST_RG end:PA_RG",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RH,"ICE4_FAST_RG end:PA_RH",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RG,"ICE4_FAST_RG end:PB_RG",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RH,"ICE4_FAST_RG end:PB_RH",PRECISION)
+  !Check all OUT arrays
+  CALL MPPDB_CHECK1D_LOG(LDWETG,"ICE4_FAST_RG end:LDWETG")
+  CALL MPPDB_CHECK1D(PRCWETG,"ICE4_FAST_RG end:PRCWETG",PRECISION)
+  CALL MPPDB_CHECK1D(PRIWETG,"ICE4_FAST_RG end:PRIWETG",PRECISION)
+  CALL MPPDB_CHECK1D(PRRWETG,"ICE4_FAST_RG end:PRRWETG",PRECISION)
+  CALL MPPDB_CHECK1D(PRSWETG,"ICE4_FAST_RG end:PRSWETG",PRECISION)
+  CALL MPPDB_CHECK1D(PRCDRYG,"ICE4_FAST_RG end:PRCDRYG",PRECISION)
+  CALL MPPDB_CHECK1D(PRIDRYG,"ICE4_FAST_RG end:PRIDRYG",PRECISION)
+  CALL MPPDB_CHECK1D(PRRDRYG,"ICE4_FAST_RG end:PRRDRYG",PRECISION)
+  CALL MPPDB_CHECK1D(PRSDRYG,"ICE4_FAST_RG end:PRSDRYG",PRECISION)
+  CALL MPPDB_CHECK1D(PRWETGH,"ICE4_FAST_RG end:PRWETGH",PRECISION)
+  CALL MPPDB_CHECK1D(PRWETGH_MR,"ICE4_FAST_RG end:PRWETGH_MR",PRECISION)
+END IF
+!
 END SUBROUTINE ICE4_FAST_RG
diff --git a/src/MNH/ice4_fast_rh.f90 b/src/MNH/ice4_fast_rh.f90
index 0f090561e4615a5e9c79382d322ac97f236ba150..09d3860396d10a77b12c1a33001566c21a36a958 100644
--- a/src/MNH/ice4_fast_rh.f90
+++ b/src/MNH/ice4_fast_rh.f90
@@ -95,6 +95,8 @@ USE MODD_PARAM_ICE, ONLY : LEVLIMIT, LNULLWETH, LWETHPOST, LCONVHG
 USE MODI_BITREP
 #endif
 !
+USE MODE_MPPDB
+!
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
@@ -158,6 +160,40 @@ INTEGER :: JJ
 !
 !-------------------------------------------------------------------------------
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all IN arrays
+  CALL MPPDB_CHECK1D_LOG(LDCOMPUTE,"ICE4_FAST_RH beg:LDCOMPUTE")
+  CALL MPPDB_CHECK1D_LOG(LDWETG,"ICE4_FAST_RH beg:LDWETG")
+  CALL MPPDB_CHECK1D(PRHODREF,"ICE4_FAST_RH beg:PRHODREF",PRECISION)
+  CALL MPPDB_CHECK1D(PLVFACT,"ICE4_FAST_RH beg:PLVFACT",PRECISION)
+  CALL MPPDB_CHECK1D(PLSFACT,"ICE4_FAST_RH beg:PLSFACT",PRECISION)
+  CALL MPPDB_CHECK1D(PPRES,"ICE4_FAST_RH beg:PPRES",PRECISION)
+  CALL MPPDB_CHECK1D(PDV,"ICE4_FAST_RH beg:PDV",PRECISION)
+  CALL MPPDB_CHECK1D(PKA,"ICE4_FAST_RH beg:PKA",PRECISION)
+  CALL MPPDB_CHECK1D(PCJ,"ICE4_FAST_RH beg:PCJ",PRECISION)
+  CALL MPPDB_CHECK1D(PLBDAS,"ICE4_FAST_RH beg:PLBDAS",PRECISION)
+  CALL MPPDB_CHECK1D(PLBDAG,"ICE4_FAST_RH beg:PLBDAG",PRECISION)
+  CALL MPPDB_CHECK1D(PLBDAR,"ICE4_FAST_RH beg:PLBDAR",PRECISION)
+  CALL MPPDB_CHECK1D(PLBDAH,"ICE4_FAST_RH beg:PLBDAH",PRECISION)
+  CALL MPPDB_CHECK1D(PT,"ICE4_FAST_RH beg:PT",PRECISION)
+  CALL MPPDB_CHECK1D(PRVT,"ICE4_FAST_RH beg:PRVT",PRECISION)
+  CALL MPPDB_CHECK1D(PRCT,"ICE4_FAST_RH beg:PRCT",PRECISION)
+  CALL MPPDB_CHECK1D(PRRT,"ICE4_FAST_RH beg:PRRT",PRECISION)
+  CALL MPPDB_CHECK1D(PRIT,"ICE4_FAST_RH beg:PRIT",PRECISION)
+  CALL MPPDB_CHECK1D(PRST,"ICE4_FAST_RH beg:PRST",PRECISION)
+  CALL MPPDB_CHECK1D(PRGT,"ICE4_FAST_RH beg:PRGT",PRECISION)
+  CALL MPPDB_CHECK1D(PRHT,"ICE4_FAST_RH beg:PRHT",PRECISION)
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PRHMLTR,"ICE4_FAST_RH beg:PRHMLTR",PRECISION)
+  CALL MPPDB_CHECK2D(PRH_TEND,"ICE4_FAST_RH beg:PRH_TEND",PRECISION)
+  CALL MPPDB_CHECK1D(PA_TH,"ICE4_FAST_RH beg:PA_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RC,"ICE4_FAST_RH beg:PA_RC",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RR,"ICE4_FAST_RH beg:PA_RR",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RI,"ICE4_FAST_RH beg:PA_RI",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RS,"ICE4_FAST_RH beg:PA_RS",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RG,"ICE4_FAST_RH beg:PA_RG",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RH,"ICE4_FAST_RH beg:PA_RH",PRECISION)
+END IF
 !
 !*       7.2    compute the Wet and Dry growth of hail
 !
@@ -580,5 +616,29 @@ PA_RR(:) = PA_RR(:) + PRHMLTR(:)
 PA_RH(:) = PA_RH(:) - PRHMLTR(:)
 PA_TH(:) = PA_TH(:) - PRHMLTR(:)*(PLSFACT(:)-PLVFACT(:))
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PRHMLTR,"ICE4_FAST_RH end:PRHMLTR",PRECISION)
+  CALL MPPDB_CHECK2D(PRH_TEND,"ICE4_FAST_RH end:PRH_TEND",PRECISION)
+  CALL MPPDB_CHECK1D(PA_TH,"ICE4_FAST_RH end:PA_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RC,"ICE4_FAST_RH end:PA_RC",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RR,"ICE4_FAST_RH end:PA_RR",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RI,"ICE4_FAST_RH end:PA_RI",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RS,"ICE4_FAST_RH end:PA_RS",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RG,"ICE4_FAST_RH end:PA_RG",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RH,"ICE4_FAST_RH end:PA_RH",PRECISION)
+  !Check all OUT arrays
+  CALL MPPDB_CHECK1D(PRCWETH,"ICE4_FAST_RH end:PRCWETH",PRECISION)
+  CALL MPPDB_CHECK1D(PRIWETH,"ICE4_FAST_RH end:PRIWETH",PRECISION)
+  CALL MPPDB_CHECK1D(PRSWETH,"ICE4_FAST_RH end:PRSWETH",PRECISION)
+  CALL MPPDB_CHECK1D(PRGWETH,"ICE4_FAST_RH end:PRGWETH",PRECISION)
+  CALL MPPDB_CHECK1D(PRRWETH,"ICE4_FAST_RH end:PRRWETH",PRECISION)
+  CALL MPPDB_CHECK1D(PRCDRYH,"ICE4_FAST_RH end:PRCDRYH",PRECISION)
+  CALL MPPDB_CHECK1D(PRIDRYH,"ICE4_FAST_RH end:PRIDRYH",PRECISION)
+  CALL MPPDB_CHECK1D(PRSDRYH,"ICE4_FAST_RH end:PRSDRYH",PRECISION)
+  CALL MPPDB_CHECK1D(PRRDRYH,"ICE4_FAST_RH end:PRRDRYH",PRECISION)
+  CALL MPPDB_CHECK1D(PRGDRYH,"ICE4_FAST_RH end:PRGDRYH",PRECISION)
+  CALL MPPDB_CHECK1D(PRDRYHG,"ICE4_FAST_RH end:PRDRYHG",PRECISION)
+END IF
 !
 END SUBROUTINE ICE4_FAST_RH
diff --git a/src/MNH/ice4_fast_ri.f90 b/src/MNH/ice4_fast_ri.f90
index d68a18efa750abbd2acc34100c93074797710d67..7cf9af5412a1a2826eb245062f7eec01c0206c18 100644
--- a/src/MNH/ice4_fast_ri.f90
+++ b/src/MNH/ice4_fast_ri.f90
@@ -74,6 +74,8 @@ USE MODD_RAIN_ICE_DESCR
 USE MODI_BITREP
 #endif
 !
+USE MODE_MPPDB
+!
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
@@ -102,7 +104,24 @@ LOGICAL, DIMENSION(SIZE(PRHODREF)) :: GMASK
 !
 !-------------------------------------------------------------------------------
 !
-!-------------------------------------------------------------------------------
+IF (MPPDB_INITIALIZED) THEN
+  !Check all IN arrays
+  CALL MPPDB_CHECK1D_LOG(LDCOMPUTE,"ICE4_FAST_RI beg:LDCOMPUTE")
+  CALL MPPDB_CHECK1D(PRHODREF,"ICE4_FAST_RI beg:PRHODREF",PRECISION)
+  CALL MPPDB_CHECK1D(PLVFACT,"ICE4_FAST_RI beg:PLVFACT",PRECISION)
+  CALL MPPDB_CHECK1D(PLSFACT,"ICE4_FAST_RI beg:PLSFACT",PRECISION)
+  CALL MPPDB_CHECK1D(PAI,"ICE4_FAST_RI beg:PAI",PRECISION)
+  CALL MPPDB_CHECK1D(PCJ,"ICE4_FAST_RI beg:PCJ",PRECISION)
+  CALL MPPDB_CHECK1D(PCIT,"ICE4_FAST_RI beg:PCIT",PRECISION)
+  CALL MPPDB_CHECK1D(PSSI,"ICE4_FAST_RI beg:PSSI",PRECISION)
+  CALL MPPDB_CHECK1D(PRCT,"ICE4_FAST_RI beg:PRCT",PRECISION)
+  CALL MPPDB_CHECK1D(PRIT,"ICE4_FAST_RI beg:PRIT",PRECISION)
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PRCBERI,"ICE4_FAST_RI beg:PRCBERI",PRECISION)
+  CALL MPPDB_CHECK1D(PA_TH,"ICE4_FAST_RI beg:PA_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RC,"ICE4_FAST_RI beg:PA_RC",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RI,"ICE4_FAST_RI beg:PA_RI",PRECISION)
+END IF
 !
 !*       7.2    Bergeron-Findeisen effect: RCBERI
 !
@@ -130,5 +149,12 @@ PA_RC(:) = PA_RC(:) - PRCBERI(:)
 PA_RI(:) = PA_RI(:) + PRCBERI(:)
 PA_TH(:) = PA_TH(:) + PRCBERI(:)*(PLSFACT(:)-PLVFACT(:))
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PRCBERI,"ICE4_FAST_RI end:PRCBERI",PRECISION)
+  CALL MPPDB_CHECK1D(PA_TH,"ICE4_FAST_RI end:PA_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RC,"ICE4_FAST_RI end:PA_RC",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RI,"ICE4_FAST_RI end:PA_RI",PRECISION)
+END IF
 !
 END SUBROUTINE ICE4_FAST_RI
diff --git a/src/MNH/ice4_fast_rs.f90 b/src/MNH/ice4_fast_rs.f90
index b4eddd321e9f6e1d3fc2058a9fed6e3577a03279..a9ad33f5000bcfde3a233ab2fc3704d9943087d9 100644
--- a/src/MNH/ice4_fast_rs.f90
+++ b/src/MNH/ice4_fast_rs.f90
@@ -88,6 +88,8 @@ USE MODD_PARAM_ICE, ONLY : LEVLIMIT, CSNOWRIMING
 USE MODI_BITREP
 #endif
 !
+USE MODE_MPPDB
+!
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
@@ -137,6 +139,34 @@ REAL, DIMENSION(SIZE(PRHODREF)) :: ZZW, ZZW2, ZZW6, ZFREEZ_RATE
 INTEGER :: JJ
 !-------------------------------------------------------------------------------
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all IN arrays
+  CALL MPPDB_CHECK1D_LOG(LDCOMPUTE,"ICE4_FAST_RS beg:LDCOMPUTE")
+  CALL MPPDB_CHECK1D(PRHODREF,"ICE4_FAST_RS beg:PRHODREF",PRECISION)
+  CALL MPPDB_CHECK1D(PLVFACT,"ICE4_FAST_RS beg:PLVFACT",PRECISION)
+  CALL MPPDB_CHECK1D(PLSFACT,"ICE4_FAST_RS beg:PLSFACT",PRECISION)
+  CALL MPPDB_CHECK1D(PPRES,"ICE4_FAST_RS beg:PPRES",PRECISION)
+  CALL MPPDB_CHECK1D(PDV,"ICE4_FAST_RS beg:PDV",PRECISION)
+  CALL MPPDB_CHECK1D(PKA,"ICE4_FAST_RS beg:PKA",PRECISION)
+  CALL MPPDB_CHECK1D(PCJ,"ICE4_FAST_RS beg:PCJ",PRECISION)
+  CALL MPPDB_CHECK1D(PLBDAR,"ICE4_FAST_RS beg:PLBDAR",PRECISION)
+  CALL MPPDB_CHECK1D(PLBDAS,"ICE4_FAST_RS beg:PLBDAS",PRECISION)
+  CALL MPPDB_CHECK1D(PT,"ICE4_FAST_RS beg:PT",PRECISION)
+  CALL MPPDB_CHECK1D(PRVT,"ICE4_FAST_RS beg:PRVT",PRECISION)
+  CALL MPPDB_CHECK1D(PRCT,"ICE4_FAST_RS beg:PRCT",PRECISION)
+  CALL MPPDB_CHECK1D(PRRT,"ICE4_FAST_RS beg:PRRT",PRECISION)
+  CALL MPPDB_CHECK1D(PRST,"ICE4_FAST_RS beg:PRST",PRECISION)
+  CALL MPPDB_CHECK1D(PRIAGGS,"ICE4_FAST_RS beg:PRIAGGS",PRECISION)
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PRSMLTG,"ICE4_FAST_RS beg:PRSMLTG",PRECISION)
+  CALL MPPDB_CHECK1D(PRCMLTSR,"ICE4_FAST_RS beg:PRCMLTSR",PRECISION)
+  CALL MPPDB_CHECK2D(PRS_TEND,"ICE4_FAST_RS beg:PRS_TEND",PRECISION)
+  CALL MPPDB_CHECK1D(PA_TH,"ICE4_FAST_RS beg:PA_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RC,"ICE4_FAST_RS beg:PA_RC",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RR,"ICE4_FAST_RS beg:PA_RR",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RS,"ICE4_FAST_RS beg:PA_RS",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RG,"ICE4_FAST_RS beg:PA_RG",PRECISION)
+END IF
 !
 !*       5.0    maximum freezing rate
 !
@@ -510,6 +540,24 @@ PA_RS(:) = PA_RS(:) - PRSMLTG(:)
 PA_RG(:) = PA_RG(:) + PRSMLTG(:)
 PA_RC(:) = PA_RC(:) - PRCMLTSR(:)
 PA_RR(:) = PA_RR(:) + PRCMLTSR(:)
-
+!
+IF (MPPDB_INITIALIZED) THEN
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PRSMLTG,"ICE4_FAST_RS end:PRSMLTG",PRECISION)
+  CALL MPPDB_CHECK1D(PRCMLTSR,"ICE4_FAST_RS end:PRCMLTSR",PRECISION)
+  CALL MPPDB_CHECK2D(PRS_TEND,"ICE4_FAST_RS end:PRS_TEND",PRECISION)
+  CALL MPPDB_CHECK1D(PA_TH,"ICE4_FAST_RS end:PA_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RC,"ICE4_FAST_RS end:PA_RC",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RR,"ICE4_FAST_RS end:PA_RR",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RS,"ICE4_FAST_RS end:PA_RS",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RG,"ICE4_FAST_RS end:PA_RG",PRECISION)
+  !Check all OUT arrays
+  CALL MPPDB_CHECK1D(PRCRIMSS,"ICE4_FAST_RS end:PRCRIMSS",PRECISION)
+  CALL MPPDB_CHECK1D(PRCRIMSG,"ICE4_FAST_RS end:PRCRIMSG",PRECISION)
+  CALL MPPDB_CHECK1D(PRSRIMCG,"ICE4_FAST_RS end:PRSRIMCG",PRECISION)
+  CALL MPPDB_CHECK1D(PRRACCSS,"ICE4_FAST_RS end:PRRACCSS",PRECISION)
+  CALL MPPDB_CHECK1D(PRRACCSG,"ICE4_FAST_RS end:PRRACCSG",PRECISION)
+  CALL MPPDB_CHECK1D(PRSACCRG,"ICE4_FAST_RS end:PRSACCRG",PRECISION)
+END IF
 !
 END SUBROUTINE ICE4_FAST_RS
diff --git a/src/MNH/ice4_nucleation.f90 b/src/MNH/ice4_nucleation.f90
index e09612e29834289fd35a3109ac75fe513ac67944..ad0c38d14b092c48f403a3c83a43e4f1155e7674 100644
--- a/src/MNH/ice4_nucleation.f90
+++ b/src/MNH/ice4_nucleation.f90
@@ -53,6 +53,8 @@ USE MODD_RAIN_ICE_PARAM
 USE MODD_RAIN_ICE_DESCR, ONLY : XRTMIN
 USE MODD_PARAM_ICE, ONLY : LFEEDBACKT
 !
+USE MODE_MPPDB
+!
 #ifdef MNH_BITREP
 USE MODI_BITREP
 #endif
@@ -85,7 +87,21 @@ REAL, DIMENSION(KSIZE)  :: ZZW,      & ! Work array
                            ZUSW,     & ! Undersaturation over water
                            ZSSI        ! Supersaturation over ice
 !-------------------------------------------------------------------------------
-!
+IF (MPPDB_INITIALIZED) THEN
+  !Check all IN arrays
+  CALL MPPDB_CHECK1D(PTHT,"ICE4_NUCLEATION beg:PTHT",PRECISION)
+  CALL MPPDB_CHECK1D(PPABST,"ICE4_NUCLEATION beg:PPABST",PRECISION)
+  CALL MPPDB_CHECK1D(PRHODREF,"ICE4_NUCLEATION beg:PRHODREF",PRECISION)
+  CALL MPPDB_CHECK1D(PEXN,"ICE4_NUCLEATION beg:PEXN",PRECISION)
+  CALL MPPDB_CHECK1D(PLSFACT,"ICE4_NUCLEATION beg:PLSFACT",PRECISION)
+  CALL MPPDB_CHECK1D(PT,"ICE4_NUCLEATION beg:PT",PRECISION)
+  CALL MPPDB_CHECK1D(PRVT,"ICE4_NUCLEATION beg:PRVT",PRECISION)
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PCIT,"ICE4_NUCLEATION beg:PCIT",PRECISION)
+  CALL MPPDB_CHECK1D(PB_TH,"ICE4_NUCLEATION beg:PB_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RV,"ICE4_NUCLEATION beg:PB_RV",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RI,"ICE4_NUCLEATION beg:PB_RI",PRECISION)
+END IF
 !
 PRVHENI_MR(:)=0.
 IF(.NOT. LDSOFT) THEN
@@ -165,4 +181,14 @@ IF(.NOT. LDSOFT) THEN
   PB_TH(:)=PB_TH(:) + PRVHENI_MR(:)*PLSFACT(:)
 ENDIF
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all OUT arrays
+  CALL MPPDB_CHECK1D(PRVHENI_MR,"ICE4_NUCLEATION end:PRVHENI_MR",PRECISION)
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PCIT,"ICE4_NUCLEATION end:PCIT",PRECISION)
+  CALL MPPDB_CHECK1D(PB_TH,"ICE4_NUCLEATION end:PB_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RV,"ICE4_NUCLEATION end:PB_RV",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RI,"ICE4_NUCLEATION end:PB_RI",PRECISION)
+END IF
+!
 END SUBROUTINE ICE4_NUCLEATION
diff --git a/src/MNH/ice4_nucleation_wrapper.f90 b/src/MNH/ice4_nucleation_wrapper.f90
index c13ff7c0419b1c054005fa9f9da2349b2024cd89..d23cfd23ef79955a19bc69bdcae5f0b9639523e6 100644
--- a/src/MNH/ice4_nucleation_wrapper.f90
+++ b/src/MNH/ice4_nucleation_wrapper.f90
@@ -1,6 +1,6 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 MODULE MODI_ICE4_NUCLEATION_WRAPPER
 INTERFACE
@@ -46,6 +46,8 @@ SUBROUTINE ICE4_NUCLEATION_WRAPPER(KIT, KJT, KKT, LDMASK, &
 !
 USE MODD_CST, ONLY : XTT
 !
+USE MODE_MPPDB
+!
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
@@ -80,7 +82,19 @@ REAL, DIMENSION(:),ALLOCATABLE  :: ZZT,      & ! Temperature
                                    ZB_TH, ZB_RV, ZB_RI
 !-------------------------------------------------------------------------------
 !
-!
+IF (MPPDB_INITIALIZED) THEN
+  !Check all IN arrays
+  CALL MPPDB_CHECK3D_LOG(LDMASK,"ICE4_NUCLEATION_WRAPPER beg:LDMASK")
+  CALL MPPDB_CHECK3D(PTHT,"ICE4_NUCLEATION_WRAPPER beg:PTHT",PRECISION)
+  CALL MPPDB_CHECK3D(PPABST,"ICE4_NUCLEATION_WRAPPER beg:PPABST",PRECISION)
+  CALL MPPDB_CHECK3D(PRHODREF,"ICE4_NUCLEATION_WRAPPER beg:PRHODREF",PRECISION)
+  CALL MPPDB_CHECK3D(PEXN,"ICE4_NUCLEATION_WRAPPER beg:PEXN",PRECISION)
+  CALL MPPDB_CHECK3D(PLSFACT,"ICE4_NUCLEATION_WRAPPER beg:PLSFACT",PRECISION)
+  CALL MPPDB_CHECK3D(PT,"ICE4_NUCLEATION_WRAPPER beg:PT",PRECISION)
+  CALL MPPDB_CHECK3D(PRVT,"ICE4_NUCLEATION_WRAPPER beg:PRVT",PRECISION)
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK3D(PCIT,"ICE4_NUCLEATION_WRAPPER beg:PCIT",PRECISION)
+END IF
 !
 !  optimization by looking for locations where
 !  the temperature is negative only !!!
@@ -127,6 +141,13 @@ END IF
 DEALLOCATE(I1,I2,I3)
 DEALLOCATE(ZZT,ZPRES,ZRVT,ZCIT,ZTHT,ZRHODREF,ZEXN,ZLSFACT,ZRVHENI_MR,ZB_TH,ZB_RV,ZB_RI)
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK3D(PCIT,"ICE4_NUCLEATION_WRAPPER end:PCIT",PRECISION)
+  !Check all OUT arrays
+  CALL MPPDB_CHECK3D(PRVHENI_MR,"ICE4_NUCLEATION_WRAPPER end:PRVHENI_MR",PRECISION)
+END IF
+!
 CONTAINS
   FUNCTION ICE4_NUCLEATION_COUNTJV(LTAB,KIT,KJT,KKT,KSIZE,I1,I2,I3) RESULT(IC)
   IMPLICIT NONE
diff --git a/src/MNH/ice4_rainfr_vert.f90 b/src/MNH/ice4_rainfr_vert.f90
index 0448e36b0a80751f626dd3d903225c88d4788a7b..f67a05aa32a5e6ea77ad65313f05de2524264044 100644
--- a/src/MNH/ice4_rainfr_vert.f90
+++ b/src/MNH/ice4_rainfr_vert.f90
@@ -32,6 +32,8 @@ SUBROUTINE ICE4_RAINFR_VERT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL, PP
 !
 USE MODD_RAIN_ICE_DESCR, ONLY : XRTMIN
 !
+USE MODE_MPPDB
+!
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
@@ -46,7 +48,9 @@ INTEGER :: JI, JJ, JK
 !
 !-------------------------------------------------------------------------------
 !
-!-------------------------------------------------------------------------------
+!Check all IN arrays
+CALL MPPDB_CHECK3D(PRR,"ICE4_RAINFR_VERT beg:PRR",PRECISION)
+!
 DO JI = KIB,KIE
    DO JJ = KJB, KJE
       PPRFR(JI,JJ,KKE)=0.
@@ -63,5 +67,7 @@ DO JI = KIB,KIE
    END DO
 END DO
 !
+!Check all OUT arrays
+CALL MPPDB_CHECK3D(PPRFR,"ICE4_RAINFR_VERT beg:PPRFR",PRECISION)
 !
 END SUBROUTINE ICE4_RAINFR_VERT
diff --git a/src/MNH/ice4_rimltc.f90 b/src/MNH/ice4_rimltc.f90
index 17efc9b098840471fa7209b8a5b9afec6d33e9f4..47bf2588521e12745e48a9557eded0ef73ad8358 100644
--- a/src/MNH/ice4_rimltc.f90
+++ b/src/MNH/ice4_rimltc.f90
@@ -53,6 +53,8 @@ USE MODD_RAIN_ICE_PARAM
 USE MODD_RAIN_ICE_DESCR
 USE MODD_PARAM_ICE, ONLY : LFEEDBACKT
 !
+USE MODE_MPPDB
+!
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
@@ -76,6 +78,19 @@ REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RI
 LOGICAL, DIMENSION(KSIZE) :: GMASK
 !
 !-------------------------------------------------------------------------------
+IF (MPPDB_INITIALIZED) THEN
+  !Check all IN arrays
+  CALL MPPDB_CHECK1D(PEXN,"ICE4_RIMLTC beg:PEXN",PRECISION)
+  CALL MPPDB_CHECK1D(PLVFACT,"ICE4_RIMLTC beg:PLVFACT",PRECISION)
+  CALL MPPDB_CHECK1D(PLSFACT,"ICE4_RIMLTC beg:PLSFACT",PRECISION)
+  CALL MPPDB_CHECK1D(PT,"ICE4_RIMLTC beg:PT",PRECISION)
+  CALL MPPDB_CHECK1D(PTHT,"ICE4_RIMLTC beg:PTHT",PRECISION)
+  CALL MPPDB_CHECK1D(PRIT,"ICE4_RIMLTC beg:PRIT",PRECISION)
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PB_TH,"ICE4_RIMLTC beg:PB_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RC,"ICE4_RIMLTC beg:PB_RC",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RI,"ICE4_RIMLTC beg:PB_RI",PRECISION)
+END IF
 !
 !*       7.1    cloud ice melting
 !
@@ -97,5 +112,13 @@ PB_RC(:) = PB_RC(:) + PRIMLTC_MR(:)
 PB_RI(:) = PB_RI(:) - PRIMLTC_MR(:)
 PB_TH(:) = PB_TH(:) - PRIMLTC_MR(:)*(PLSFACT(:)-PLVFACT(:))
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PB_TH,"ICE4_RIMLTC end:PB_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RC,"ICE4_RIMLTC end:PB_RC",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RI,"ICE4_RIMLTC end:PB_RI",PRECISION)
+  !Check all OUT arrays
+  CALL MPPDB_CHECK1D(PRIMLTC_MR,"ICE4_RIMLTC end:PRIMLTC_MR",PRECISION)
+END IF
 !
 END SUBROUTINE ICE4_RIMLTC
diff --git a/src/MNH/ice4_rrhong.f90 b/src/MNH/ice4_rrhong.f90
index 7555a0fb52e948d8e68e98993cda2bf24481825f..04be4fe593f03cbe7744074722dcb42cbe005fde 100644
--- a/src/MNH/ice4_rrhong.f90
+++ b/src/MNH/ice4_rrhong.f90
@@ -53,6 +53,8 @@ USE MODD_RAIN_ICE_PARAM
 USE MODD_RAIN_ICE_DESCR
 USE MODD_PARAM_ICE, ONLY : LFEEDBACKT
 !
+USE MODE_MPPDB
+!
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
@@ -76,6 +78,19 @@ REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RG
 LOGICAL, DIMENSION(SIZE(PRRT)) :: GMASK
 !
 !-------------------------------------------------------------------------------
+IF (MPPDB_INITIALIZED) THEN
+  !Check all IN arrays
+  CALL MPPDB_CHECK1D(PEXN,"ICE4_RRHONG beg:PEXN",PRECISION)
+  CALL MPPDB_CHECK1D(PLVFACT,"ICE4_RRHONG beg:PLVFACT",PRECISION)
+  CALL MPPDB_CHECK1D(PLSFACT,"ICE4_RRHONG beg:PLSFACT",PRECISION)
+  CALL MPPDB_CHECK1D(PT,"ICE4_RRHONG beg:PT",PRECISION)
+  CALL MPPDB_CHECK1D(PRRT,"ICE4_RRHONG beg:PRRT",PRECISION)
+  CALL MPPDB_CHECK1D(PTHT,"ICE4_RRHONG beg:PTHT",PRECISION)
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PB_TH,"ICE4_RRHONG beg:PB_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RR,"ICE4_RRHONG beg:PB_RR",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RG,"ICE4_RRHONG beg:PB_RG",PRECISION)
+END IF
 !
 !*       3.3     compute the spontaneous freezing source: RRHONG
 !
@@ -96,5 +111,13 @@ PB_RG(:) = PB_RG(:) + PRRHONG_MR(:)
 PB_RR(:) = PB_RR(:) - PRRHONG_MR(:)
 PB_TH(:) = PB_TH(:) + PRRHONG_MR(:)*(PLSFACT(:)-PLVFACT(:))
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PB_TH,"ICE4_RRHONG end:PB_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RR,"ICE4_RRHONG end:PB_RR",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RG,"ICE4_RRHONG end:PB_RG",PRECISION)
+  !Check all OUT arrays
+  CALL MPPDB_CHECK1D(PRRHONG_MR,"ICE4_RRHONG end:PRRHONG_MR",PRECISION)
+END IF
 !
 END SUBROUTINE ICE4_RRHONG
diff --git a/src/MNH/ice4_rsrimcg_old.f90 b/src/MNH/ice4_rsrimcg_old.f90
index 6cf3671cc3b69d1467365b7d9350ca9f78edd06d..5333ed3477ed42fd01723d55d90ef02604beed2a 100644
--- a/src/MNH/ice4_rsrimcg_old.f90
+++ b/src/MNH/ice4_rsrimcg_old.f90
@@ -55,6 +55,8 @@ USE MODD_PARAM_ICE, ONLY : CSNOWRIMING
 USE MODI_BITREP
 #endif
 !
+USE MODE_MPPDB
+!
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
@@ -81,6 +83,18 @@ REAL, DIMENSION(SIZE(PRHODREF)) :: ZZW, ZZW2, ZZW6
 INTEGER :: JJ
 !-------------------------------------------------------------------------------
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all IN arrays
+  CALL MPPDB_CHECK1D_LOG(LDCOMPUTE,"ICE4_RSRIMCG_OLD beg:LDCOMPUTE")
+  CALL MPPDB_CHECK1D(PRHODREF,"ICE4_RSRIMCG_OLD beg:PRHODREF",PRECISION)
+  CALL MPPDB_CHECK1D(PLBDAS,"ICE4_RSRIMCG_OLD beg:PLBDAS",PRECISION)
+  CALL MPPDB_CHECK1D(PT,"ICE4_RSRIMCG_OLD beg:PT",PRECISION)
+  CALL MPPDB_CHECK1D(PRCT,"ICE4_RSRIMCG_OLD beg:PRCT",PRECISION)
+  CALL MPPDB_CHECK1D(PRST,"ICE4_RSRIMCG_OLD beg:PRST",PRECISION)
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PB_RS,"ICE4_RSRIMCG_OLD beg:PB_RS",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RG,"ICE4_RSRIMCG_OLD beg:PB_RG",PRECISION)
+END IF
 !
 !-------------------------------------------------------------------------------
 !
@@ -137,5 +151,12 @@ ENDIF
 PB_RS(:) = PB_RS(:) - PRSRIMCG_MR(:)
 PB_RG(:) = PB_RG(:) + PRSRIMCG_MR(:)
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PB_RS,"ICE4_RSRIMCG_OLD end:PB_RS",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RG,"ICE4_RSRIMCG_OLD end:PB_RG",PRECISION)
+  !Check all OUT arrays
+  CALL MPPDB_CHECK1D(PRSRIMCG_MR,"ICE4_RSRIMCG_OLD end:PRSRIMCG_MR",PRECISION)
+END IF
 !
 END SUBROUTINE ICE4_RSRIMCG_OLD
diff --git a/src/MNH/ice4_sedimentation_split.f90 b/src/MNH/ice4_sedimentation_split.f90
index d5f516f93e1b12bc7e93408c903c8ffee4ea6ae6..74967f73782e2bc1008d0ef73519f59a9d1094e8 100644
--- a/src/MNH/ice4_sedimentation_split.f90
+++ b/src/MNH/ice4_sedimentation_split.f90
@@ -160,6 +160,28 @@ REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)) :: ZCONC_TMP    ! Weighted co
 !
 !-------------------------------------------------------------------------------
 !
+!Check all IN arrays
+CALL MPPDB_CHECK3D(PDZZ,"ICE4_SEDIMENTATION_SPLIT beg:PDZZ",PRECISION)
+CALL MPPDB_CHECK3D(PRHODREF,"ICE4_SEDIMENTATION_SPLIT beg:PRHODREF",PRECISION)
+CALL MPPDB_CHECK3D(PPABST,"ICE4_SEDIMENTATION_SPLIT beg:PPABST",PRECISION)
+CALL MPPDB_CHECK3D(PTHT,"ICE4_SEDIMENTATION_SPLIT beg:PTHT",PRECISION)
+CALL MPPDB_CHECK3D(PRHODJ,"ICE4_SEDIMENTATION_SPLIT beg:PRHODJ",PRECISION)
+CALL MPPDB_CHECK3D(PRCT,"ICE4_SEDIMENTATION_SPLIT beg:PRCT",PRECISION)
+CALL MPPDB_CHECK3D(PRRT,"ICE4_SEDIMENTATION_SPLIT beg:PRRT",PRECISION)
+CALL MPPDB_CHECK3D(PRIT,"ICE4_SEDIMENTATION_SPLIT beg:PRIT",PRECISION)
+CALL MPPDB_CHECK3D(PRST,"ICE4_SEDIMENTATION_SPLIT beg:PRST",PRECISION)
+CALL MPPDB_CHECK3D(PRGT,"ICE4_SEDIMENTATION_SPLIT beg:PRGT",PRECISION)
+IF (PRESENT(PSEA)) CALL MPPDB_CHECK2D(PSEA,"ICE4_SEDIMENTATION_SPLIT beg:PSEA",PRECISION)
+IF (PRESENT(PTOWN)) CALL MPPDB_CHECK2D(PTOWN,"ICE4_SEDIMENTATION_SPLIT beg:PTOWN",PRECISION)
+IF (PRESENT(PRHT)) CALL MPPDB_CHECK3D(PRHT,"ICE4_SEDIMENTATION_SPLIT beg:PRHT",PRECISION)
+!Check all INOUT arrays
+CALL MPPDB_CHECK3D(PRCS,"ICE4_SEDIMENTATION_SPLIT beg:PRCS",PRECISION)
+CALL MPPDB_CHECK3D(PRRS,"ICE4_SEDIMENTATION_SPLIT beg:PRRS",PRECISION)
+CALL MPPDB_CHECK3D(PRIS,"ICE4_SEDIMENTATION_SPLIT beg:PRIS",PRECISION)
+CALL MPPDB_CHECK3D(PRSS,"ICE4_SEDIMENTATION_SPLIT beg:PRSS",PRECISION)
+CALL MPPDB_CHECK3D(PRGS,"ICE4_SEDIMENTATION_SPLIT beg:PRGS",PRECISION)
+IF (PRESENT(PRHS)) CALL MPPDB_CHECK3D(PRHS,"ICE4_SEDIMENTATION_SPLIT beg:PRHS",PRECISION)
+!
 IF (PRESENT(PFPR)) THEN
   GPRESENT_PFPR = .TRUE.
 ELSE
@@ -329,6 +351,28 @@ ENDIF
 !PW:TODO: to remove when everything on GPU in rain_ice_red
 !$acc update self(PRCS,PRRS,PRIS,PRSS,PRGS,PRHS,PINPRC,PINDEP,PINPRR,PINPRI,PINPRS,PINPRG,PINPRH,PFPR)
 !
+!Check all INOUT arrays
+CALL MPPDB_CHECK3D(PRCS,"ICE4_SEDIMENTATION_SPLIT end:PRCS",PRECISION)
+CALL MPPDB_CHECK3D(PRRS,"ICE4_SEDIMENTATION_SPLIT end:PRRS",PRECISION)
+CALL MPPDB_CHECK3D(PRIS,"ICE4_SEDIMENTATION_SPLIT end:PRIS",PRECISION)
+CALL MPPDB_CHECK3D(PRSS,"ICE4_SEDIMENTATION_SPLIT end:PRSS",PRECISION)
+CALL MPPDB_CHECK3D(PRGS,"ICE4_SEDIMENTATION_SPLIT end:PRGS",PRECISION)
+IF (PRESENT(PRHS)) CALL MPPDB_CHECK3D(PRHS,"ICE4_SEDIMENTATION_SPLIT end:PRHS",PRECISION)
+!Check all OUT arrays
+CALL MPPDB_CHECK2D(PINPRC,"ICE4_SEDIMENTATION_SPLIT end:PINPRC",PRECISION)
+CALL MPPDB_CHECK2D(PINDEP,"ICE4_SEDIMENTATION_SPLIT end:PINDEP",PRECISION)
+CALL MPPDB_CHECK2D(PINPRR,"ICE4_SEDIMENTATION_SPLIT end:PINPRR",PRECISION)
+CALL MPPDB_CHECK2D(PINPRI,"ICE4_SEDIMENTATION_SPLIT end:PINPRI",PRECISION)
+CALL MPPDB_CHECK2D(PINPRS,"ICE4_SEDIMENTATION_SPLIT end:PINPRS",PRECISION)
+CALL MPPDB_CHECK2D(PINPRG,"ICE4_SEDIMENTATION_SPLIT end:PINPRG",PRECISION)
+IF (PRESENT(PINPRH)) CALL MPPDB_CHECK2D(PINPRH,"ICE4_SEDIMENTATION_SPLIT end:PINPRH",PRECISION)
+IF (PRESENT(PFPR)) THEN
+  DO JK=1,SIZE(PFPR,4)
+    CALL MPPDB_CHECK3D(PFPR(:,:,:,JK),"ICE4_SEDIMENTATION_SPLIT end:PFPR(:,:,:,JK)",PRECISION)
+  END DO
+END IF
+!
+!
 CONTAINS
 !
 !
@@ -395,6 +439,26 @@ REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),0:SIZE(PRHODREF,3)+1) :: ZWSED
 !$acc&        copyin(XCPD,XP00,XRD,XEXSEDG,XEXSEDH,XEXSEDR,XEXSEDS,XFSEDG,XFSEDH,XFSEDI,XFSEDR,XFSEDS,XRTMIN, &
 !$acc&               XCC,XCEXVT,XDC,XLBEXC,XEXCSEDI)
 !
+!Check all IN arrays
+CALL MPPDB_CHECK3D(PRHODREF,"INTERNAL_SEDIM_SPLI beg:PRHODREF",PRECISION)
+CALL MPPDB_CHECK3D(POORHODZ,"INTERNAL_SEDIM_SPLI beg:POORHODZ",PRECISION)
+CALL MPPDB_CHECK3D(PDZZ,"INTERNAL_SEDIM_SPLI beg:PDZZ",PRECISION)
+CALL MPPDB_CHECK3D(PPABST,"INTERNAL_SEDIM_SPLI beg:PPABST",PRECISION)
+CALL MPPDB_CHECK3D(PTHT,"INTERNAL_SEDIM_SPLI beg:PTHT",PRECISION)
+CALL MPPDB_CHECK3D(PPRXS,"INTERNAL_SEDIM_SPLI beg:PPRXS",PRECISION)
+IF (PRESENT(PRAY)) CALL MPPDB_CHECK3D(PRAY,"INTERNAL_SEDIM_SPLI beg:PRAY",PRECISION)
+IF (PRESENT(PLBC)) CALL MPPDB_CHECK3D(PLBC,"INTERNAL_SEDIM_SPLI beg:PLBC",PRECISION)
+IF (PRESENT(PFSEDC)) CALL MPPDB_CHECK3D(PFSEDC,"INTERNAL_SEDIM_SPLI beg:PFSEDC",PRECISION)
+IF (PRESENT(PCONC3D)) CALL MPPDB_CHECK3D(PCONC3D,"INTERNAL_SEDIM_SPLI beg:PCONC3D",PRECISION)
+!Check all INOUT arrays
+CALL MPPDB_CHECK3D(PRXT,"INTERNAL_SEDIM_SPLI beg:PRXT",PRECISION)
+CALL MPPDB_CHECK3D(PRXS,"INTERNAL_SEDIM_SPLI beg:PRXS",PRECISION)
+IF (PRESENT(PFPR)) THEN
+  DO JI=1,KRR
+    CALL MPPDB_CHECK3D(PFPR(:,:,:,JI),"INTERNAL_SEDIM_SPLI beg:",PRECISION)
+  END DO
+END IF
+!
 !-------------------------------------------------------------------------------
 IF (KSPE<2 .OR. KSPE>7) CALL PRINT_MSG(NVERB_FATAL,'GEN','ICE4_SEDIMENTATION_SPLIT','invalid species (KSPE variable)')
 !
diff --git a/src/MNH/ice4_slow.f90 b/src/MNH/ice4_slow.f90
index a8ef382abb1b7f9e17e0a3cdcc7d3ac7fe693b7c..92713b432001e5194d1835323c15c1013a5346cd 100644
--- a/src/MNH/ice4_slow.f90
+++ b/src/MNH/ice4_slow.f90
@@ -75,6 +75,8 @@ USE MODD_RAIN_ICE_DESCR
 USE MODI_BITREP
 #endif
 !
+USE MODE_MPPDB
+!
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
@@ -115,9 +117,36 @@ REAL            :: ZTIMAUTIC
 LOGICAL, DIMENSION(SIZE(PRHODREF)) :: GMASK
 !-------------------------------------------------------------------------------
 !
-!
-!-------------------------------------------------------------------------------
-!
+IF (MPPDB_INITIALIZED) THEN
+  !Check all IN arrays
+  CALL MPPDB_CHECK1D_LOG(LDCOMPUTE,"ICE4_SLOW beg:LDCOMPUTE")
+  CALL MPPDB_CHECK1D(PRHODREF,"ICE4_SLOW beg:PRHODREF",PRECISION)
+  CALL MPPDB_CHECK1D(PT,"ICE4_SLOW beg:PT",PRECISION)
+  CALL MPPDB_CHECK1D(PSSI,"ICE4_SLOW beg:PSSI",PRECISION)
+  CALL MPPDB_CHECK1D(PLVFACT,"ICE4_SLOW beg:PLVFACT",PRECISION)
+  CALL MPPDB_CHECK1D(PLSFACT,"ICE4_SLOW beg:PLSFACT",PRECISION)
+  CALL MPPDB_CHECK1D(PRVT,"ICE4_SLOW beg:PRVT",PRECISION)
+  CALL MPPDB_CHECK1D(PRCT,"ICE4_SLOW beg:PRCT",PRECISION)
+  CALL MPPDB_CHECK1D(PRIT,"ICE4_SLOW beg:PRIT",PRECISION)
+  CALL MPPDB_CHECK1D(PRST,"ICE4_SLOW beg:PRST",PRECISION)
+  CALL MPPDB_CHECK1D(PRGT,"ICE4_SLOW beg:PRGT",PRECISION)
+  CALL MPPDB_CHECK1D(PLBDAS,"ICE4_SLOW beg:PLBDAS",PRECISION)
+  CALL MPPDB_CHECK1D(PLBDAG,"ICE4_SLOW beg:PLBDAG",PRECISION)
+  CALL MPPDB_CHECK1D(PAI,"ICE4_SLOW beg:PAI",PRECISION)
+  CALL MPPDB_CHECK1D(PCJ,"ICE4_SLOW beg:PCJ",PRECISION)
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PRCHONI,"ICE4_SLOW beg:PRCHONI",PRECISION)
+  CALL MPPDB_CHECK1D(PRVDEPS,"ICE4_SLOW beg:PRVDEPS",PRECISION)
+  CALL MPPDB_CHECK1D(PRIAGGS,"ICE4_SLOW beg:PRIAGGS",PRECISION)
+  CALL MPPDB_CHECK1D(PRIAUTS,"ICE4_SLOW beg:PRIAUTS",PRECISION)
+  CALL MPPDB_CHECK1D(PRVDEPG,"ICE4_SLOW beg:PRVDEPG",PRECISION)
+  CALL MPPDB_CHECK1D(PA_TH,"ICE4_SLOW beg:PA_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RV,"ICE4_SLOW beg:PA_RV",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RC,"ICE4_SLOW beg:PA_RC",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RI,"ICE4_SLOW beg:PA_RI",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RS,"ICE4_SLOW beg:PA_RS",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RG,"ICE4_SLOW beg:PA_RG",PRECISION)
+END IF
 !
 !*       3.2     compute the homogeneous nucleation source: RCHONI
 !
@@ -253,5 +282,19 @@ PA_RG(:) = PA_RG(:) + PRVDEPG(:)
 PA_RV(:) = PA_RV(:) - PRVDEPG(:)
 PA_TH(:) = PA_TH(:) + PRVDEPG(:)*PLSFACT(:)
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PRCHONI,"ICE4_SLOW end:PRCHONI",PRECISION)
+  CALL MPPDB_CHECK1D(PRVDEPS,"ICE4_SLOW end:PRVDEPS",PRECISION)
+  CALL MPPDB_CHECK1D(PRIAGGS,"ICE4_SLOW end:PRIAGGS",PRECISION)
+  CALL MPPDB_CHECK1D(PRIAUTS,"ICE4_SLOW end:PRIAUTS",PRECISION)
+  CALL MPPDB_CHECK1D(PRVDEPG,"ICE4_SLOW end:PRVDEPG",PRECISION)
+  CALL MPPDB_CHECK1D(PA_TH,"ICE4_SLOW end:PA_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RV,"ICE4_SLOW end:PA_RV",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RC,"ICE4_SLOW end:PA_RC",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RI,"ICE4_SLOW end:PA_RI",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RS,"ICE4_SLOW end:PA_RS",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RG,"ICE4_SLOW end:PA_RG",PRECISION)
+END IF
 !
 END SUBROUTINE ICE4_SLOW
diff --git a/src/MNH/ice4_tendencies.f90 b/src/MNH/ice4_tendencies.f90
index e6c646c3d434f4dd98a2c4b007558af968ccee7d..9a6a3f27ec58c79a065288c777113ce5bbe38090 100644
--- a/src/MNH/ice4_tendencies.f90
+++ b/src/MNH/ice4_tendencies.f90
@@ -190,6 +190,8 @@ USE MODI_ICE4_FAST_RI
 USE MODI_BITREP
 #endif
 !
+USE MODE_MPPDB
+!
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
@@ -309,7 +311,53 @@ REAL, DIMENSION(KSIZE) :: ZRVT, ZRCT, ZRRT, ZRIT, ZRST, ZRGT, &
 REAL, DIMENSION(KIT,KJT,KKT) :: ZRRT3D
 INTEGER :: JL
 LOGICAL, DIMENSION(KSIZE) :: LLWETG
-
+!
+IF (MPPDB_INITIALIZED) THEN
+  !Check all IN arrays
+  CALL MPPDB_CHECK1D(PEXN,"ICE4_TENDENCIES beg:PEXN",PRECISION)
+  CALL MPPDB_CHECK1D(PRHODREF,"ICE4_TENDENCIES begPRHODREF:",PRECISION)
+  CALL MPPDB_CHECK1D(PLVFACT,"ICE4_TENDENCIES beg:PLVFACT",PRECISION)
+  CALL MPPDB_CHECK1D(PLSFACT,"ICE4_TENDENCIES beg:PLSFACT",PRECISION)
+  CALL MPPDB_CHECK3D_LOG(LDMICRO,"ICE4_TENDENCIES beg:LDMICRO")
+  CALL MPPDB_CHECK1D_INT(K1,"ICE4_TENDENCIES beg:K1")
+  CALL MPPDB_CHECK1D_INT(K2,"ICE4_TENDENCIES beg:K2")
+  CALL MPPDB_CHECK1D_INT(K3,"ICE4_TENDENCIES beg:K3")
+  CALL MPPDB_CHECK1D(PPRES,"ICE4_TENDENCIES beg:PPRES",PRECISION)
+  CALL MPPDB_CHECK1D(PCF,"ICE4_TENDENCIES beg:PCF",PRECISION)
+  CALL MPPDB_CHECK1D(PT,"ICE4_TENDENCIES beg:PT",PRECISION)
+  CALL MPPDB_CHECK1D(PTHT,"ICE4_TENDENCIES beg:PTHT",PRECISION)
+  CALL MPPDB_CHECK1D(PRVT,"ICE4_TENDENCIES beg:PRVT",PRECISION)
+  CALL MPPDB_CHECK1D(PRCT,"ICE4_TENDENCIES beg:PRCT",PRECISION)
+  CALL MPPDB_CHECK1D(PRRT,"ICE4_TENDENCIES beg:PRRT",PRECISION)
+  CALL MPPDB_CHECK1D(PRIT,"ICE4_TENDENCIES beg:PRIT",PRECISION)
+  CALL MPPDB_CHECK1D(PRST,"ICE4_TENDENCIES beg:PRST",PRECISION)
+  CALL MPPDB_CHECK1D(PRGT,"ICE4_TENDENCIES beg:PRGT",PRECISION)
+  CALL MPPDB_CHECK1D(PRHT,"ICE4_TENDENCIES beg:PRHT",PRECISION)
+  CALL MPPDB_CHECK3D(PRRT3D,"ICE4_TENDENCIES beg:PRRT3D",PRECISION)
+  CALL MPPDB_CHECK1D(PSIGMA_RC,"ICE4_TENDENCIES beg:PSIGMA_RC",PRECISION)
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PCIT,"ICE4_TENDENCIES beg:PCIT",PRECISION)
+  CALL MPPDB_CHECK1D(PRCHONI,"ICE4_TENDENCIES beg:PRCHONI",PRECISION)
+  CALL MPPDB_CHECK1D(PRVDEPS,"ICE4_TENDENCIES beg:PRVDEPS",PRECISION)
+  CALL MPPDB_CHECK1D(PRIAGGS,"ICE4_TENDENCIES beg:PRIAGGS",PRECISION)
+  CALL MPPDB_CHECK1D(PRIAUTS,"ICE4_TENDENCIES beg:PRIAUTS",PRECISION)
+  CALL MPPDB_CHECK1D(PRVDEPG,"ICE4_TENDENCIES beg:PRVDEPG",PRECISION)
+  CALL MPPDB_CHECK1D(PRCAUTR,"ICE4_TENDENCIES beg:PRCAUTR",PRECISION)
+  CALL MPPDB_CHECK1D(PRCACCR,"ICE4_TENDENCIES beg:PRCACCR",PRECISION)
+  CALL MPPDB_CHECK1D(PRREVAV,"ICE4_TENDENCIES beg:PRREVAV",PRECISION)
+  CALL MPPDB_CHECK1D(PRSMLTG,"ICE4_TENDENCIES beg:PRSMLTG",PRECISION)
+  CALL MPPDB_CHECK1D(PRCMLTSR,"ICE4_TENDENCIES beg:PRCMLTSR",PRECISION)
+  CALL MPPDB_CHECK1D(PRICFRRG,"ICE4_TENDENCIES beg:PRICFRRG",PRECISION)
+  CALL MPPDB_CHECK1D(PRRCFRIG,"ICE4_TENDENCIES beg:PRRCFRIG",PRECISION)
+  CALL MPPDB_CHECK1D(PRICFRR,"ICE4_TENDENCIES beg:PRICFRR",PRECISION)
+  CALL MPPDB_CHECK1D(PRGMLTR,"ICE4_TENDENCIES beg:PRGMLTR",PRECISION)
+  CALL MPPDB_CHECK1D(PRHMLTR,"ICE4_TENDENCIES beg:PRHMLTR",PRECISION)
+  CALL MPPDB_CHECK1D(PRCBERI,"ICE4_TENDENCIES beg:PRCBERI",PRECISION)
+  CALL MPPDB_CHECK2D(PRS_TEND,"ICE4_TENDENCIES beg:PRS_TEND",PRECISION)
+  CALL MPPDB_CHECK2D(PRG_TEND,"ICE4_TENDENCIES beg:PRG_TEND",PRECISION)
+  CALL MPPDB_CHECK2D(PRH_TEND,"ICE4_TENDENCIES beg:PRH_TEND",PRECISION)
+END IF
+!
 PA_TH(:)=0.
 PA_RV(:)=0.
 PA_RC(:)=0.
@@ -590,4 +638,81 @@ CALL ICE4_FAST_RI(KSIZE, LDSOFT, LDCOMPUTE, &
                  &PRCBERI, PA_TH, PA_RC, PA_RI)
 !
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PCIT,"ICE4_TENDENCIES end:PCIT",PRECISION)
+  CALL MPPDB_CHECK1D(PRCHONI,"ICE4_TENDENCIES end:PRCHONI",PRECISION)
+  CALL MPPDB_CHECK1D(PRVDEPS,"ICE4_TENDENCIES end:PRVDEPS",PRECISION)
+  CALL MPPDB_CHECK1D(PRIAGGS,"ICE4_TENDENCIES end:PRIAGGS",PRECISION)
+  CALL MPPDB_CHECK1D(PRIAUTS,"ICE4_TENDENCIES end:PRIAUTS",PRECISION)
+  CALL MPPDB_CHECK1D(PRVDEPG,"ICE4_TENDENCIES end:PRVDEPG",PRECISION)
+  CALL MPPDB_CHECK1D(PRCAUTR,"ICE4_TENDENCIES end:PRCAUTR",PRECISION)
+  CALL MPPDB_CHECK1D(PRCACCR,"ICE4_TENDENCIES end:PRCACCR",PRECISION)
+  CALL MPPDB_CHECK1D(PRREVAV,"ICE4_TENDENCIES end:PRREVAV",PRECISION)
+  CALL MPPDB_CHECK1D(PRSMLTG,"ICE4_TENDENCIES end:PRSMLTG",PRECISION)
+  CALL MPPDB_CHECK1D(PRCMLTSR,"ICE4_TENDENCIES end:PRCMLTSR",PRECISION)
+  CALL MPPDB_CHECK1D(PRICFRRG,"ICE4_TENDENCIES end:PRICFRRG",PRECISION)
+  CALL MPPDB_CHECK1D(PRRCFRIG,"ICE4_TENDENCIES end:PRRCFRIG",PRECISION)
+  CALL MPPDB_CHECK1D(PRICFRR,"ICE4_TENDENCIES end:PRICFRR",PRECISION)
+  CALL MPPDB_CHECK1D(PRGMLTR,"ICE4_TENDENCIES end:PRGMLTR",PRECISION)
+  CALL MPPDB_CHECK1D(PRHMLTR,"ICE4_TENDENCIES end:PRHMLTR",PRECISION)
+  CALL MPPDB_CHECK1D(PRCBERI,"ICE4_TENDENCIES end:PRCBERI",PRECISION)
+  CALL MPPDB_CHECK2D(PRS_TEND,"ICE4_TENDENCIES end:PRS_TEND",PRECISION)
+  CALL MPPDB_CHECK2D(PRG_TEND,"ICE4_TENDENCIES end:PRG_TEND",PRECISION)
+  CALL MPPDB_CHECK2D(PRH_TEND,"ICE4_TENDENCIES end:PRH_TEND",PRECISION)
+  !Check all OUT arrays
+  CALL MPPDB_CHECK1D(PRCRIMSS,"ICE4_TENDENCIES end:PRCRIMSS",PRECISION)
+  CALL MPPDB_CHECK1D(PRCRIMSG,"ICE4_TENDENCIES end:PRCRIMSG",PRECISION)
+  CALL MPPDB_CHECK1D(PRSRIMCG,"ICE4_TENDENCIES end:PRSRIMCG",PRECISION)
+  CALL MPPDB_CHECK1D(PRRACCSS,"ICE4_TENDENCIES end:PRRACCSS",PRECISION)
+  CALL MPPDB_CHECK1D(PRRACCSG,"ICE4_TENDENCIES end:PRRACCSG",PRECISION)
+  CALL MPPDB_CHECK1D(PRSACCRG,"ICE4_TENDENCIES end:PRSACCRG",PRECISION)
+  CALL MPPDB_CHECK1D(PRVHENI_MR,"ICE4_TENDENCIES end:PRVHENI_MR",PRECISION)
+  CALL MPPDB_CHECK1D(PRRHONG_MR,"ICE4_TENDENCIES end:PRRHONG_MR",PRECISION)
+  CALL MPPDB_CHECK1D(PRIMLTC_MR,"ICE4_TENDENCIES end:PRIMLTC_MR",PRECISION)
+  CALL MPPDB_CHECK1D(PRSRIMCG_MR,"ICE4_TENDENCIES end:PRSRIMCG_MR",PRECISION)
+  CALL MPPDB_CHECK1D(PRCWETG,"ICE4_TENDENCIES end:PRCWETG",PRECISION)
+  CALL MPPDB_CHECK1D(PRIWETG,"ICE4_TENDENCIES end:PRIWETG",PRECISION)
+  CALL MPPDB_CHECK1D(PRRWETG,"ICE4_TENDENCIES end:PRRWETG",PRECISION)
+  CALL MPPDB_CHECK1D(PRSWETG,"ICE4_TENDENCIES end:PRSWETG",PRECISION)
+  CALL MPPDB_CHECK1D(PRCDRYG,"ICE4_TENDENCIES end:PRCDRYG",PRECISION)
+  CALL MPPDB_CHECK1D(PRIDRYG,"ICE4_TENDENCIES end:PRIDRYG",PRECISION)
+  CALL MPPDB_CHECK1D(PRRDRYG,"ICE4_TENDENCIES end:PRRDRYG",PRECISION)
+  CALL MPPDB_CHECK1D(PRSDRYG,"ICE4_TENDENCIES end:PRSDRYG",PRECISION)
+  CALL MPPDB_CHECK1D(PRWETGH,"ICE4_TENDENCIES end:PRWETGH",PRECISION)
+  CALL MPPDB_CHECK1D(PRWETGH_MR,"ICE4_TENDENCIES end:PRWETGH_MR",PRECISION)
+  CALL MPPDB_CHECK1D(PRCWETH,"ICE4_TENDENCIES end:PRCWETH",PRECISION)
+  CALL MPPDB_CHECK1D(PRIWETH,"ICE4_TENDENCIES end:PRIWETH",PRECISION)
+  CALL MPPDB_CHECK1D(PRSWETH,"ICE4_TENDENCIES end:PRSWETH",PRECISION)
+  CALL MPPDB_CHECK1D(PRGWETH,"ICE4_TENDENCIES end:PRGWETH",PRECISION)
+  CALL MPPDB_CHECK1D(PRRWETH,"ICE4_TENDENCIES end:PRRWETH",PRECISION)
+  CALL MPPDB_CHECK1D(PRCDRYH,"ICE4_TENDENCIES end:PRCDRYH",PRECISION)
+  CALL MPPDB_CHECK1D(PRIDRYH,"ICE4_TENDENCIES end:PRIDRYH",PRECISION)
+  CALL MPPDB_CHECK1D(PRSDRYH,"ICE4_TENDENCIES end:PRSDRYH",PRECISION)
+  CALL MPPDB_CHECK1D(PRRDRYH,"ICE4_TENDENCIES end:PRRDRYH",PRECISION)
+  CALL MPPDB_CHECK1D(PRGDRYH,"ICE4_TENDENCIES end:PRGDRYH",PRECISION)
+  CALL MPPDB_CHECK1D(PRDRYHG,"ICE4_TENDENCIES end:PRDRYHG",PRECISION)
+  CALL MPPDB_CHECK1D(PA_TH,"ICE4_TENDENCIES end:PA_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RV,"ICE4_TENDENCIES end:PA_RV",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RC,"ICE4_TENDENCIES end:PA_RC",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RR,"ICE4_TENDENCIES end:PA_RR",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RI,"ICE4_TENDENCIES end:PA_RI",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RS,"ICE4_TENDENCIES end:PA_RS",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RG,"ICE4_TENDENCIES end:PA_RG",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RH,"ICE4_TENDENCIES end:PA_RH",PRECISION)
+  CALL MPPDB_CHECK1D(PB_TH,"ICE4_TENDENCIES end:PB_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RV,"ICE4_TENDENCIES end:PB_RV",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RC,"ICE4_TENDENCIES end:PB_RC",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RR,"ICE4_TENDENCIES end:PB_RR",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RI,"ICE4_TENDENCIES end:PB_RI",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RS,"ICE4_TENDENCIES end:PB_RS",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RG,"ICE4_TENDENCIES end:PB_RG",PRECISION)
+  CALL MPPDB_CHECK1D(PB_RH,"ICE4_TENDENCIES end:PB_RH",PRECISION)
+  CALL MPPDB_CHECK1D(PHLC_HCF,"ICE4_TENDENCIES end:PHLC_HCF",PRECISION)
+  CALL MPPDB_CHECK1D(PHLC_LCF,"ICE4_TENDENCIES end:PHLC_LCF",PRECISION)
+  CALL MPPDB_CHECK1D(PHLC_HRC,"ICE4_TENDENCIES end:PHLC_HRC",PRECISION)
+  CALL MPPDB_CHECK1D(PHLC_LRC,"ICE4_TENDENCIES end:PHLC_LRC",PRECISION)
+  CALL MPPDB_CHECK3D(PRAINFR,"ICE4_TENDENCIES end:PRAINFR",PRECISION)
+END IF
+!
 END SUBROUTINE ICE4_TENDENCIES
diff --git a/src/MNH/ice4_warm.f90 b/src/MNH/ice4_warm.f90
index 4966abd0f4f4f943bbd9848495a76aeb90c25c3b..659a44d880caba204b8825049d995d4f17ffe7e3 100644
--- a/src/MNH/ice4_warm.f90
+++ b/src/MNH/ice4_warm.f90
@@ -81,6 +81,8 @@ USE MODE_MSG
 USE MODI_BITREP
 #endif
 !
+USE MODE_MPPDB
+!
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
@@ -126,9 +128,37 @@ REAL            :: ZTIMAUTIC
 LOGICAL, DIMENSION(SIZE(PRHODREF)) :: GMASK, GMASK1, GMASK2
 !-------------------------------------------------------------------------------
 !
-!
-!
-!-------------------------------------------------------------------------------
+IF (MPPDB_INITIALIZED) THEN
+  !Check all IN arrays
+  CALL MPPDB_CHECK1D_LOG(LDCOMPUTE,"ICE4_WARM beg:LDCOMPUTE")
+  CALL MPPDB_CHECK1D(PRHODREF,"ICE4_WARM beg:PRHODREF",PRECISION)
+  CALL MPPDB_CHECK1D(PLVFACT,"ICE4_WARM beg:PLVFACT",PRECISION)
+  CALL MPPDB_CHECK1D(PT,"ICE4_WARM beg:PT",PRECISION)
+  CALL MPPDB_CHECK1D(PPRES,"ICE4_WARM beg:PPRES",PRECISION)
+  CALL MPPDB_CHECK1D(PTHT,"ICE4_WARM beg:PTHT",PRECISION)
+  CALL MPPDB_CHECK1D(PLBDAR,"ICE4_WARM beg:PLBDAR",PRECISION)
+  CALL MPPDB_CHECK1D(PLBDAR_RF,"ICE4_WARM beg:PLBDAR_RF",PRECISION)
+  CALL MPPDB_CHECK1D(PKA,"ICE4_WARM beg:PKA",PRECISION)
+  CALL MPPDB_CHECK1D(PDV,"ICE4_WARM beg:PDV",PRECISION)
+  CALL MPPDB_CHECK1D(PCJ,"ICE4_WARM beg:PCJ",PRECISION)
+  CALL MPPDB_CHECK1D(PHLC_HCF,"ICE4_WARM beg:PHLC_HCF",PRECISION)
+  CALL MPPDB_CHECK1D(PHLC_LCF,"ICE4_WARM beg:PHLC_LCF",PRECISION)
+  CALL MPPDB_CHECK1D(PHLC_HRC,"ICE4_WARM beg:PHLC_HRC",PRECISION)
+  CALL MPPDB_CHECK1D(PHLC_LRC,"ICE4_WARM beg:PHLC_LRC",PRECISION)
+  CALL MPPDB_CHECK1D(PCF,"ICE4_WARM beg:PCF",PRECISION)
+  CALL MPPDB_CHECK1D(PRF,"ICE4_WARM beg:PRF",PRECISION)
+  CALL MPPDB_CHECK1D(PRVT,"ICE4_WARM beg:PRVT",PRECISION)
+  CALL MPPDB_CHECK1D(PRCT,"ICE4_WARM beg:PRCT",PRECISION)
+  CALL MPPDB_CHECK1D(PRRT,"ICE4_WARM beg:PRRT",PRECISION)
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PRCAUTR,"ICE4_WARM beg:PRCAUTR",PRECISION)
+  CALL MPPDB_CHECK1D(PRCACCR,"ICE4_WARM beg:PRCACCR",PRECISION)
+  CALL MPPDB_CHECK1D(PRREVAV,"ICE4_WARM beg:PRREVAV",PRECISION)
+  CALL MPPDB_CHECK1D(PA_TH,"ICE4_WARM beg:PA_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RV,"ICE4_WARM beg:PA_RV",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RC,"ICE4_WARM beg:PA_RC",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RR,"ICE4_WARM beg:PA_RR",PRECISION)
+END IF
 !
 !*       4.2    compute the autoconversion of r_c for r_r production: RCAUTR
 !
@@ -326,5 +356,15 @@ PA_RR(:) = PA_RR(:) - PRREVAV(:)
 PA_RV(:) = PA_RV(:) + PRREVAV(:)
 PA_TH(:) = PA_TH(:) - PRREVAV(:)*PLVFACT(:)
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK1D(PRCAUTR,"ICE4_WARM end:PRCAUTR",PRECISION)
+  CALL MPPDB_CHECK1D(PRCACCR,"ICE4_WARM end:PRCACCR",PRECISION)
+  CALL MPPDB_CHECK1D(PRREVAV,"ICE4_WARM end:PRREVAV",PRECISION)
+  CALL MPPDB_CHECK1D(PA_TH,"ICE4_WARM end:PA_TH",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RV,"ICE4_WARM end:PA_RV",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RC,"ICE4_WARM end:PA_RC",PRECISION)
+  CALL MPPDB_CHECK1D(PA_RR,"ICE4_WARM end:PA_RR",PRECISION)
+END IF
 !
 END SUBROUTINE ICE4_WARM
diff --git a/src/MNH/ice_adjust.f90 b/src/MNH/ice_adjust.f90
index fb0b65f8c0acc69e9f0bf4f3bd5b17ccfa609684..e09adabe22b14b69e287eac8a46a4154ec94eb38 100644
--- a/src/MNH/ice_adjust.f90
+++ b/src/MNH/ice_adjust.f90
@@ -183,6 +183,7 @@ USE MODI_GET_HALO
 #ifdef MNH_BITREP
 USE MODI_BITREP
 #endif
+USE MODE_MPPDB
 !
 IMPLICIT NONE
 !
@@ -289,6 +290,30 @@ INTEGER :: JI,JJ,JK
 !*       1.     PRELIMINARIES
 !               -------------
 !
+!Check all IN arrays
+CALL MPPDB_CHECK3D(PRHODJ,"ICE_ADJUST beg:PRHODJ",PRECISION)
+CALL MPPDB_CHECK3D(PEXNREF,"ICE_ADJUST beg:PEXNREF",PRECISION)
+CALL MPPDB_CHECK3D(PSIGS,"ICE_ADJUST beg:PSIGS",PRECISION)
+CALL MPPDB_CHECK3D(PMFCONV,"ICE_ADJUST beg:PMFCONV",PRECISION)
+CALL MPPDB_CHECK3D(PPABST,"ICE_ADJUST beg:PPABST",PRECISION)
+CALL MPPDB_CHECK3D(PZZ,"ICE_ADJUST beg:PZZ",PRECISION)
+CALL MPPDB_CHECK3D(PEXN,"ICE_ADJUST beg:PEXN",PRECISION)
+CALL MPPDB_CHECK3D(PCF_MF,"ICE_ADJUST beg:PCF_MF",PRECISION)
+CALL MPPDB_CHECK3D(PRC_MF,"ICE_ADJUST beg:PRC_MF",PRECISION)
+CALL MPPDB_CHECK3D(PRI_MF,"ICE_ADJUST begPRI_MF:",PRECISION)
+CALL MPPDB_CHECK3D(PRV,"ICE_ADJUST beg:PRV",PRECISION)
+CALL MPPDB_CHECK3D(PRC,"ICE_ADJUST beg:PRC",PRECISION)
+CALL MPPDB_CHECK3D(PTH,"ICE_ADJUST beg:PTH",PRECISION)
+CALL MPPDB_CHECK3D(PRR,"ICE_ADJUST beg:PRR",PRECISION)
+CALL MPPDB_CHECK3D(PRI,"ICE_ADJUST beg:PRI",PRECISION)
+CALL MPPDB_CHECK3D(PRS,"ICE_ADJUST beg:PRS",PRECISION)
+CALL MPPDB_CHECK3D(PRG,"ICE_ADJUST beg:PRG",PRECISION)
+!Check all INOUT arrays
+CALL MPPDB_CHECK3D(PRVS,"ICE_ADJUST beg:PRVS",PRECISION)
+CALL MPPDB_CHECK3D(PRCS,"ICE_ADJUST beg:PRCS",PRECISION)
+CALL MPPDB_CHECK3D(PTHS,"ICE_ADJUST beg:PTHS",PRECISION)
+CALL MPPDB_CHECK3D(PRIS,"ICE_ADJUST beg:PRIS",PRECISION)
+!
 IIU = SIZE(PEXNREF,1)
 IJU = SIZE(PEXNREF,2)
 IKU = SIZE(PEXNREF,3)
@@ -494,5 +519,13 @@ END IF
 !
 !------------------------------------------------------------------------------
 !
+!Check all INOUT arrays
+CALL MPPDB_CHECK3D(PRVS,"ICE_ADJUST end:PRVS",PRECISION)
+CALL MPPDB_CHECK3D(PRCS,"ICE_ADJUST end:PRCS",PRECISION)
+CALL MPPDB_CHECK3D(PTHS,"ICE_ADJUST end:PTHS",PRECISION)
+CALL MPPDB_CHECK3D(PRIS,"ICE_ADJUST end:PRIS",PRECISION)
+!Check all OUT arrays
+CALL MPPDB_CHECK3D(PSRCS,"ICE_ADJUST end:PSRCS",PRECISION)
+CALL MPPDB_CHECK3D(PCLDFR,"ICE_ADJUST end:PCLDFR",PRECISION)
 !
 END SUBROUTINE ICE_ADJUST 
diff --git a/src/MNH/rain_ice.f90 b/src/MNH/rain_ice.f90
index be405279640d3018ef45363bafee977f6c1d8feb..230db2358df08ff79635002ad8e1832a455ea86a 100644
--- a/src/MNH/rain_ice.f90
+++ b/src/MNH/rain_ice.f90
@@ -263,6 +263,7 @@ USE MODE_PACK_PGI
 #ifdef MNH_BITREP
 USE MODI_BITREP
 #endif
+USE MODE_MPPDB
 !
 IMPLICIT NONE
 !
@@ -526,6 +527,45 @@ LOGICAL :: GPRESENT_PFPR,GPRESENT_PSEA
 !$acc &                 GSEDIMR,GSEDIMC,GSEDIMI,GSEDIMS,GSEDIMG,GSEDIMH,                &
 !$acc &                 GNEGT,I1,I2,I3                                                  )
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all IN arrays
+  CALL MPPDB_CHECK3D(PDZZ,"RAIN_ICE beg:PDZZ",PRECISION)
+  CALL MPPDB_CHECK3D(PRHODJ,"RAIN_ICE beg:PRHODJ",PRECISION)
+  CALL MPPDB_CHECK3D(PRHODREF,"RAIN_ICE beg:PRHODREF",PRECISION)
+  CALL MPPDB_CHECK3D(PEXNREF,"RAIN_ICE beg:PEXNREF",PRECISION)
+  CALL MPPDB_CHECK3D(PPABST,"RAIN_ICE beg:PPABST",PRECISION)
+  CALL MPPDB_CHECK3D(PCLDFR,"RAIN_ICE beg:PCLDFR",PRECISION)
+  CALL MPPDB_CHECK3D(PTHT,"RAIN_ICE beg:PTHT",PRECISION)
+  CALL MPPDB_CHECK3D(PRVT,"RAIN_ICE beg:PRVT",PRECISION)
+  CALL MPPDB_CHECK3D(PRCT,"RAIN_ICE beg:PRCT",PRECISION)
+  CALL MPPDB_CHECK3D(PRRT,"RAIN_ICE beg:PRRT",PRECISION)
+  CALL MPPDB_CHECK3D(PRIT,"RAIN_ICE beg:PRIT",PRECISION)
+  CALL MPPDB_CHECK3D(PRST,"RAIN_ICE beg:PRST",PRECISION)
+  CALL MPPDB_CHECK3D(PRGT,"RAIN_ICE beg:PRGT",PRECISION)
+  CALL MPPDB_CHECK3D(PSIGS,"RAIN_ICE beg:PSIGS",PRECISION)
+  IF (PRESENT(PSEA)) CALL MPPDB_CHECK2D(PSEA,"RAIN_ICE beg:PSEA",PRECISION)
+  IF (PRESENT(PTOWN)) CALL MPPDB_CHECK2D(PTOWN,"RAIN_ICE beg:PTOWN",PRECISION)
+  IF (PRESENT(PRHT)) CALL MPPDB_CHECK3D(PRHT,"RAIN_ICE beg:PRHT",PRECISION)
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK3D(PCIT,"RAIN_ICE beg:PCIT",PRECISION)
+  CALL MPPDB_CHECK3D(PTHS,"RAIN_ICE beg:PTHS",PRECISION)
+  CALL MPPDB_CHECK3D(PRVS,"RAIN_ICE beg:PRVS",PRECISION)
+  CALL MPPDB_CHECK3D(PRCS,"RAIN_ICE beg:PRCS",PRECISION)
+  CALL MPPDB_CHECK3D(PRRS,"RAIN_ICE beg:PRRS",PRECISION)
+  CALL MPPDB_CHECK3D(PRIS,"RAIN_ICE beg:PRIS",PRECISION)
+  CALL MPPDB_CHECK3D(PRSS,"RAIN_ICE beg:PRSS",PRECISION)
+  CALL MPPDB_CHECK3D(PRGS,"RAIN_ICE beg:PRGS",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRC,"RAIN_ICE beg:PINPRC",PRECISION)
+  CALL MPPDB_CHECK2D(PINDEP,"RAIN_ICE beg:PINDEP",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRR,"RAIN_ICE beg:PINPRR",PRECISION)
+  CALL MPPDB_CHECK3D(PINPRR3D,"RAIN_ICE beg:PINPRR3D",PRECISION)
+  CALL MPPDB_CHECK3D(PEVAP3D,"RAIN_ICE beg:PEVAP3D",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRS,"RAIN_ICE beg:PINPRS",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRG,"RAIN_ICE beg:PINPRG",PRECISION)
+  IF (PRESENT(PRHS)) CALL MPPDB_CHECK3D(PRHS,"RAIN_ICE beg:PRHS",PRECISION)
+  IF (PRESENT(PINPRH)) CALL MPPDB_CHECK2D(PINPRH,"RAIN_ICE beg:PINPRH",PRECISION)
+END IF
+!
 #ifdef _OPENACC
 IF ( KRR == 7 ) THEN
   PRINT *,'OPENACC: RAIN_ICE: KRR=7 not yet tested'
@@ -1302,6 +1342,32 @@ CALL RAINFR_VERT(ZRAINFR,ZW)
 !
 !$acc end data
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK3D(PCIT,"RAIN_ICE end:PCIT",PRECISION)
+  CALL MPPDB_CHECK3D(PTHS,"RAIN_ICE end:PTHS",PRECISION)
+  CALL MPPDB_CHECK3D(PRVS,"RAIN_ICE end:PRVS",PRECISION)
+  CALL MPPDB_CHECK3D(PRCS,"RAIN_ICE end:PRCS",PRECISION)
+  CALL MPPDB_CHECK3D(PRRS,"RAIN_ICE end:PRRS",PRECISION)
+  CALL MPPDB_CHECK3D(PRIS,"RAIN_ICE end:PRIS",PRECISION)
+  CALL MPPDB_CHECK3D(PRSS,"RAIN_ICE end:PRSS",PRECISION)
+  CALL MPPDB_CHECK3D(PRGS,"RAIN_ICE end:PRGS",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRC,"RAIN_ICE end:PINPRC",PRECISION)
+  CALL MPPDB_CHECK2D(PINDEP,"RAIN_ICE end:PINDEP",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRR,"RAIN_ICE end:PINPRR",PRECISION)
+  CALL MPPDB_CHECK3D(PINPRR3D,"RAIN_ICE end:PINPRR3D",PRECISION)
+  CALL MPPDB_CHECK3D(PEVAP3D,"RAIN_ICE end:PEVAP3D",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRS,"RAIN_ICE end:PINPRS",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRG,"RAIN_ICE end:PINPRG",PRECISION)
+  IF (PRESENT(PRHS)) CALL MPPDB_CHECK3D(PRHS,"RAIN_ICE end:PRHS",PRECISION)
+  IF (PRESENT(PINPRH)) CALL MPPDB_CHECK2D(PINPRH,"RAIN_ICE end:PINPRH",PRECISION)
+  !Check all OUT arrays
+  IF (PRESENT(PFPR)) THEN
+    DO JL=1,SIZE(PFPR,4)
+      CALL MPPDB_CHECK3D(PFPR(:,:,:,JL),"RAIN_ICE end:PFPR(:,:,:,JL)",PRECISION)
+    END DO
+  END IF
+END IF
 !-------------------------------------------------------------------------------
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/rain_ice_red.f90 b/src/MNH/rain_ice_red.f90
index efe1df09ac971d51edc5107d46609dd918db0fff..3dca1dbb515d038cb474497e39141bbac3ff52e7 100644
--- a/src/MNH/rain_ice_red.f90
+++ b/src/MNH/rain_ice_red.f90
@@ -261,6 +261,7 @@ USE MODE_MSG
 #ifdef MNH_PGI
 USE MODE_PACK_PGI
 #endif
+USE MODE_MPPDB
 !
 IMPLICIT NONE
 !
@@ -483,6 +484,40 @@ REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: &
 !
 !PW: to remove later when everything on GPU
 !$acc update self(PDZZ,PCLDFR,PTHS,PRVS,PRCS,PRIS)
+IF (MPPDB_INITIALIZED) THEN
+  !Check all IN arrays
+  CALL MPPDB_CHECK3D_LOG(LDMICRO,"RAIN_ICE_RED beg:LDMICRO")
+  CALL MPPDB_CHECK3D(PEXN,"RAIN_ICE_RED beg:PEXN",PRECISION)
+  CALL MPPDB_CHECK3D(PDZZ,"RAIN_ICE_RED beg:PDZZ",PRECISION)
+  CALL MPPDB_CHECK3D(PRHODJ,"RAIN_ICE_RED beg:PRHODJ",PRECISION)
+  CALL MPPDB_CHECK3D(PRHODREF,"RAIN_ICE_RED beg:PRHODREF",PRECISION)
+  CALL MPPDB_CHECK3D(PEXNREF,"RAIN_ICE_RED beg:PEXNREF",PRECISION)
+  CALL MPPDB_CHECK3D(PPABST,"RAIN_ICE_RED beg:PPABST",PRECISION)
+  CALL MPPDB_CHECK3D(PCLDFR,"RAIN_ICE_RED beg:PCLDFR",PRECISION)
+  CALL MPPDB_CHECK3D(PTHT,"RAIN_ICE_RED beg:PTHT",PRECISION)
+  CALL MPPDB_CHECK3D(PRVT,"RAIN_ICE_RED beg:PRVT",PRECISION)
+  CALL MPPDB_CHECK3D(PRCT,"RAIN_ICE_RED beg:PRCT",PRECISION)
+  CALL MPPDB_CHECK3D(PRRT,"RAIN_ICE_RED beg:PRRT",PRECISION)
+  CALL MPPDB_CHECK3D(PRIT,"RAIN_ICE_RED beg:PRIT",PRECISION)
+  CALL MPPDB_CHECK3D(PRST,"RAIN_ICE_RED beg:PRST",PRECISION)
+  CALL MPPDB_CHECK3D(PRGT,"RAIN_ICE_RED beg:PRGT",PRECISION)
+  CALL MPPDB_CHECK3D(PSIGS,"RAIN_ICE_RED beg:PSIGS",PRECISION)
+  IF (PRESENT(PSEA)) CALL MPPDB_CHECK2D(PSEA,"RAIN_ICE_RED beg:PSEA",PRECISION)
+  IF (PRESENT(PTOWN)) CALL MPPDB_CHECK2D(PTOWN,"RAIN_ICE_RED beg:PTOWN",PRECISION)
+  IF (PRESENT(PRHT)) CALL MPPDB_CHECK3D(PRHT,"RAIN_ICE_RED beg:PRHT",PRECISION)
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK3D(PCIT,"RAIN_ICE_RED beg:PCIT",PRECISION)
+  CALL MPPDB_CHECK3D(PTHS,"RAIN_ICE_RED beg:PTHS",PRECISION)
+  CALL MPPDB_CHECK3D(PRVS,"RAIN_ICE_RED beg:PRVS",PRECISION)
+  CALL MPPDB_CHECK3D(PRCS,"RAIN_ICE_RED beg:PRCS",PRECISION)
+  CALL MPPDB_CHECK3D(PRRS,"RAIN_ICE_RED beg:PRRS",PRECISION)
+  CALL MPPDB_CHECK3D(PRIS,"RAIN_ICE_RED beg:PRIS",PRECISION)
+  CALL MPPDB_CHECK3D(PRSS,"RAIN_ICE_RED beg:PRSS",PRECISION)
+  CALL MPPDB_CHECK3D(PRGS,"RAIN_ICE_RED beg:PRGS",PRECISION)
+  CALL MPPDB_CHECK2D(PINDEP,"RAIN_ICE_RED beg:PINDEP",PRECISION)
+  IF (PRESENT(PRHS)) CALL MPPDB_CHECK3D(PRHS,"RAIN_ICE_RED beg:PRHS",PRECISION)
+END IF
+!
 !-------------------------------------------------------------------------------
 !
 !-------------------------------------------------------------------------------
@@ -1582,6 +1617,32 @@ IF (PRESENT(PFPR)) THEN
 !$acc update device(PFPR)
 END IF
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK3D(PCIT,"RAIN_ICE_RED end:PCIT",PRECISION)
+  CALL MPPDB_CHECK3D(PTHS,"RAIN_ICE_RED end:PTHS",PRECISION)
+  CALL MPPDB_CHECK3D(PRVS,"RAIN_ICE_RED end:PRVS",PRECISION)
+  CALL MPPDB_CHECK3D(PRCS,"RAIN_ICE_RED end:PRCS",PRECISION)
+  CALL MPPDB_CHECK3D(PRRS,"RAIN_ICE_RED end:PRRS",PRECISION)
+  CALL MPPDB_CHECK3D(PRIS,"RAIN_ICE_RED end:PRIS",PRECISION)
+  CALL MPPDB_CHECK3D(PRSS,"RAIN_ICE_RED end:PRSS",PRECISION)
+  CALL MPPDB_CHECK3D(PRGS,"RAIN_ICE_RED end:PRGS",PRECISION)
+  CALL MPPDB_CHECK2D(PINDEP,"RAIN_ICE_RED end:PINDEP",PRECISION)
+  !Check all OUT arrays
+  CALL MPPDB_CHECK2D(PINPRC,"RAIN_ICE_RED end:PINPRC",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRR,"RAIN_ICE_RED end:PINPRR",PRECISION)
+  CALL MPPDB_CHECK3D(PINPRR3D,"RAIN_ICE_RED end:PINPRR3D",PRECISION)
+  CALL MPPDB_CHECK3D(PEVAP3D,"RAIN_ICE_RED end:PEVAP3D",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRS,"RAIN_ICE_RED end:PINPRS",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRG,"RAIN_ICE_RED end:PINPRG",PRECISION)
+  IF (PRESENT(PINPRH)) CALL MPPDB_CHECK2D(PINPRH,"RAIN_ICE_RED end:PINPRH",PRECISION)
+  IF (PRESENT(PFPR)) THEN
+    DO JL=1,SIZE(PFPR,4)
+      CALL MPPDB_CHECK3D(PFPR(:,:,:,JL),"RAIN_ICE_RED end:PFPR(:,:,:,JL)",PRECISION)
+    END DO
+  END IF
+END IF
+!
 CONTAINS
   FUNCTION RAIN_ICE_COUNTJV(LTAB, KIT, KJT, KKT, KSIZE, I1,I2,I3) RESULT(IC)
   !
diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90
index 6bc88ca4533d63053713bfe0112f40fd2c02c01d..47da8f9cc053c806f71ac60682e73670d62c8630 100644
--- a/src/MNH/resolved_cloud.f90
+++ b/src/MNH/resolved_cloud.f90
@@ -1,6 +1,6 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 ! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/resolved_cloud.f90,v $
 !-----------------------------------------------------------------
@@ -321,6 +321,7 @@ USE MODI_LIMA_ADJUST
 #ifdef MNH_BITREP
 USE MODI_BITREP
 #endif
+USE MODE_MPPDB
 !
 IMPLICIT NONE
 !
@@ -511,6 +512,70 @@ REAL,DIMENSION(SIZE(PRS,1),SIZE(PRS,2),SIZE(PRS,3),SIZE(PRS,4)) :: ZRSSTEP
 !*       1.     PRELIMINARY COMPUTATIONS
 !               ------------------------
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all IN arrays
+  CALL MPPDB_CHECK3D(PZZ,"RESOLVED_CLOUD beg:PZZ",PRECISION)
+  CALL MPPDB_CHECK3D(PRHODJ,"RESOLVED_CLOUD beg:PRHODJ",PRECISION)
+  CALL MPPDB_CHECK3D(PRHODREF,"RESOLVED_CLOUD beg:PRHODREF",PRECISION)
+  CALL MPPDB_CHECK3D(PEXNREF,"RESOLVED_CLOUD beg:PEXNREF",PRECISION)
+  CALL MPPDB_CHECK3D(PPABST,"RESOLVED_CLOUD beg:PPABST",PRECISION)
+  CALL MPPDB_CHECK3D(PTHT,"RESOLVED_CLOUD beg:PTHT",PRECISION)
+  CALL MPPDB_CHECK3D(PSIGS,"RESOLVED_CLOUD beg:PSIGS",PRECISION)
+  CALL MPPDB_CHECK3D(PMFCONV,"RESOLVED_CLOUD beg:PMFCONV",PRECISION)
+  CALL MPPDB_CHECK3D(PTHM,"RESOLVED_CLOUD beg:PTHM",PRECISION)
+  CALL MPPDB_CHECK3D(PPABSM,"RESOLVED_CLOUD beg:PPABSM",PRECISION)
+  CALL MPPDB_CHECK3D(PRCM,"RESOLVED_CLOUD beg:PRCM",PRECISION)
+  CALL MPPDB_CHECK3D(PW_ACT,"RESOLVED_CLOUD beg:PW_ACT",PRECISION)
+  CALL MPPDB_CHECK3D(PDTHRAD,"RESOLVED_CLOUD beg:PDTHRAD",PRECISION)
+  CALL MPPDB_CHECK3D(PCF_MF,"RESOLVED_CLOUD beg:PCF_MF",PRECISION)
+  CALL MPPDB_CHECK3D(PRC_MF,"RESOLVED_CLOUD beg:PRC_MF",PRECISION)
+  CALL MPPDB_CHECK3D(PRI_MF,"RESOLVED_CLOUD beg:PRI_MF",PRECISION)
+  ! DO JI=1,SIZE(PSOLORG,4)
+  !   CALL MPPDB_CHECK3D(PSOLORG(:,:,:,JI),"RESOLVED_CLOUD beg:PSOLORG(:,:,:,JI)",PRECISION)
+  ! END DO
+  ! DO JI=1,SIZE(PMI,4)
+  !   CALL MPPDB_CHECK3D(PMI(:,:,:,JI),"RESOLVED_CLOUD beg:PMI(:,:,:,JI)",PRECISION)
+  ! END DO
+  IF (PRESENT(PSEA)) CALL MPPDB_CHECK2D(PSEA,"RESOLVED_CLOUD beg:PSEA",PRECISION)
+  IF (PRESENT(PTOWN)) CALL MPPDB_CHECK2D(PTOWN,"RESOLVED_CLOUD beg:PTOWN",PRECISION)
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK3D(PRT(:,:,:,1),"RESOLVED_CLOUD beg:PRT(:,:,:,1)",PRECISION)
+  CALL MPPDB_CHECK3D(PRT(:,:,:,2),"RESOLVED_CLOUD beg:PRT(:,:,:,2)",PRECISION)
+  CALL MPPDB_CHECK3D(PRT(:,:,:,3),"RESOLVED_CLOUD beg:PRT(:,:,:,3)",PRECISION)
+  CALL MPPDB_CHECK3D(PRT(:,:,:,4),"RESOLVED_CLOUD beg:PRT(:,:,:,4)",PRECISION)
+  CALL MPPDB_CHECK3D(PRT(:,:,:,5),"RESOLVED_CLOUD beg:PRT(:,:,:,5)",PRECISION)
+  CALL MPPDB_CHECK3D(PRT(:,:,:,6),"RESOLVED_CLOUD beg:PRT(:,:,:,6)",PRECISION)
+  IF(SIZE(PRT,4)>6) CALL MPPDB_CHECK3D(PRT(:,:,:,7),"RESOLVED_CLOUD beg:PRT(:,:,:,7)",PRECISION)
+  CALL MPPDB_CHECK3D(PTHS,"RESOLVED_CLOUD beg:PTHS",PRECISION)
+  CALL MPPDB_CHECK3D(PRS(:,:,:,1),"RESOLVED_CLOUD beg:PRS(:,:,:,1)",PRECISION)
+  CALL MPPDB_CHECK3D(PRS(:,:,:,2),"RESOLVED_CLOUD beg:PRS(:,:,:,2)",PRECISION)
+  CALL MPPDB_CHECK3D(PRS(:,:,:,3),"RESOLVED_CLOUD beg:PRS(:,:,:,3)",PRECISION)
+  CALL MPPDB_CHECK3D(PRS(:,:,:,4),"RESOLVED_CLOUD beg:PRS(:,:,:,4)",PRECISION)
+  CALL MPPDB_CHECK3D(PRS(:,:,:,5),"RESOLVED_CLOUD beg:PRS(:,:,:,5)",PRECISION)
+  CALL MPPDB_CHECK3D(PRS(:,:,:,6),"RESOLVED_CLOUD beg:PRS(:,:,:,6)",PRECISION)
+  IF(SIZE(PRS,4)>6) CALL MPPDB_CHECK3D(PRS(:,:,:,7),"RESOLVED_CLOUD beg:PRS(:,:,:,7)",PRECISION)
+  DO JI=1,SIZE(PSVT,4)
+    CALL MPPDB_CHECK3D(PSVT(:,:,:,JI),"RESOLVED_CLOUD beg:PSVT(:,:,:,JI)",PRECISION)
+  END DO
+  DO JI=1,SIZE(PSVS,4)
+    CALL MPPDB_CHECK3D(PSVS(:,:,:,JI),"RESOLVED_CLOUD beg:PSVS(:,:,:,JI)",PRECISION)
+  END DO
+  CALL MPPDB_CHECK3D(PCLDFR,"RESOLVED_CLOUD beg:PCLDFR",PRECISION)
+  CALL MPPDB_CHECK3D(PCIT,"RESOLVED_CLOUD beg:PCIT",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRC,"RESOLVED_CLOUD beg:PINPRC",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRR,"RESOLVED_CLOUD beg:PINPRR",PRECISION)
+  CALL MPPDB_CHECK3D(PINPRR3D,"RESOLVED_CLOUD beg:PINPRR3D",PRECISION)
+  CALL MPPDB_CHECK3D(PEVAP3D,"RESOLVED_CLOUD beg:PEVAP3D",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRS,"RESOLVED_CLOUD beg:PINPRS",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRG,"RESOLVED_CLOUD beg:PINPRG",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRH,"RESOLVED_CLOUD beg:PINPRH",PRECISION)
+  CALL MPPDB_CHECK2D(PINDEP,"RESOLVED_CLOUD beg:PINDEP",PRECISION)
+  CALL MPPDB_CHECK3D(PSUPSAT,"RESOLVED_CLOUD beg:PSUPSAT",PRECISION)
+  CALL MPPDB_CHECK3D(PNACT,"RESOLVED_CLOUD beg:PNACT",PRECISION)
+  CALL MPPDB_CHECK3D(PNPRO,"RESOLVED_CLOUD beg:PNPRO",PRECISION)
+  CALL MPPDB_CHECK3D(PSSPRO,"RESOLVED_CLOUD beg:PSSPRO",PRECISION)
+END IF
+!
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
 IKB=1+JPVEXT
 IKE=SIZE(PZZ,3) - JPVEXT
@@ -1407,6 +1472,48 @@ IF (HCLOUD=='C2R2' .OR. HCLOUD=='C3R5' .OR. HCLOUD=='KHKO' .OR. HCLOUD=='LIMA')
   DEALLOCATE(ZSVT)
 ENDIF
 !
+IF (MPPDB_INITIALIZED) THEN
+  !Check all INOUT arrays
+  CALL MPPDB_CHECK3D(PRT(:,:,:,1),"RESOLVED_CLOUD end:PRT(:,:,:,1)",PRECISION)
+  CALL MPPDB_CHECK3D(PRT(:,:,:,2),"RESOLVED_CLOUD end:PRT(:,:,:,2)",PRECISION)
+  CALL MPPDB_CHECK3D(PRT(:,:,:,3),"RESOLVED_CLOUD end:PRT(:,:,:,3)",PRECISION)
+  CALL MPPDB_CHECK3D(PRT(:,:,:,4),"RESOLVED_CLOUD end:PRT(:,:,:,4)",PRECISION)
+  CALL MPPDB_CHECK3D(PRT(:,:,:,5),"RESOLVED_CLOUD end:PRT(:,:,:,5)",PRECISION)
+  CALL MPPDB_CHECK3D(PRT(:,:,:,6),"RESOLVED_CLOUD end:PRT(:,:,:,6)",PRECISION)
+  IF(SIZE(PRT,4)>6) CALL MPPDB_CHECK3D(PRT(:,:,:,7),"RESOLVED_CLOUD end:PRT(:,:,:,7)",PRECISION)
+  CALL MPPDB_CHECK3D(PTHS,"RESOLVED_CLOUD end:PTHS",PRECISION)
+  CALL MPPDB_CHECK3D(PRS(:,:,:,1),"RESOLVED_CLOUD end:PRS(:,:,:,1)",PRECISION)
+  CALL MPPDB_CHECK3D(PRS(:,:,:,2),"RESOLVED_CLOUD end:PRS(:,:,:,2)",PRECISION)
+  CALL MPPDB_CHECK3D(PRS(:,:,:,3),"RESOLVED_CLOUD end:PRS(:,:,:,3)",PRECISION)
+  CALL MPPDB_CHECK3D(PRS(:,:,:,4),"RESOLVED_CLOUD end:PRS(:,:,:,4)",PRECISION)
+  CALL MPPDB_CHECK3D(PRS(:,:,:,5),"RESOLVED_CLOUD end:PRS(:,:,:,5)",PRECISION)
+  CALL MPPDB_CHECK3D(PRS(:,:,:,6),"RESOLVED_CLOUD end:PRS(:,:,:,6)",PRECISION)
+  IF(SIZE(PRS,4)>6) CALL MPPDB_CHECK3D(PRS(:,:,:,7),"RESOLVED_CLOUD end:PRS(:,:,:,7)",PRECISION)
+  DO JI=1,SIZE(PSVT,4)
+    CALL MPPDB_CHECK3D(PSVT(:,:,:,JI),"RESOLVED_CLOUD end:PSVT(:,:,:,JI)",PRECISION)
+  END DO
+  DO JI=1,SIZE(PSVS,4)
+    CALL MPPDB_CHECK3D(PSVS(:,:,:,JI),"RESOLVED_CLOUD end:PSVS(:,:,:,JI)",PRECISION)
+  END DO
+  CALL MPPDB_CHECK3D(PCLDFR,"RESOLVED_CLOUD end:PCLDFR",PRECISION)
+  CALL MPPDB_CHECK3D(PCIT,"RESOLVED_CLOUD end:PCIT",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRC,"RESOLVED_CLOUD end:PINPRC",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRR,"RESOLVED_CLOUD end:PINPRR",PRECISION)
+  CALL MPPDB_CHECK3D(PINPRR3D,"RESOLVED_CLOUD end:PINPRR3D",PRECISION)
+  CALL MPPDB_CHECK3D(PEVAP3D,"RESOLVED_CLOUD end:PEVAP3D",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRS,"RESOLVED_CLOUD end:PINPRS",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRG,"RESOLVED_CLOUD end:PINPRG",PRECISION)
+  CALL MPPDB_CHECK2D(PINPRH,"RESOLVED_CLOUD end:PINPRH",PRECISION)
+  CALL MPPDB_CHECK2D(PINDEP,"RESOLVED_CLOUD end:PINDEP",PRECISION)
+  CALL MPPDB_CHECK3D(PSUPSAT,"RESOLVED_CLOUD end:PSUPSAT",PRECISION)
+  CALL MPPDB_CHECK3D(PNACT,"RESOLVED_CLOUD end:PNACT",PRECISION)
+  CALL MPPDB_CHECK3D(PNPRO,"RESOLVED_CLOUD end:PNPRO",PRECISION)
+  CALL MPPDB_CHECK3D(PSSPRO,"RESOLVED_CLOUD end:PSSPRO",PRECISION)
+  !Check all OUT arrays
+  CALL MPPDB_CHECK3D(PSRCS,"RESOLVED_CLOUD end:PSRCS",PRECISION)
+  ! CALL MPPDB_CHECK3DM("RESOLVED_CLOUD: 99: PRS(1:6)",PRECISION,&
+  !                    &  PRS(:,:,:,1),PRS(:,:,:,2),PRS(:,:,:,3),PRS(:,:,:,4),PRS(:,:,:,5),PRS(:,:,:,6))
+END IF
 !-------------------------------------------------------------------------------
 !
 END SUBROUTINE RESOLVED_CLOUD