diff --git a/src/ZSOLVER/p_abs.f90 b/src/ZSOLVER/p_abs.f90
index a05854af13d903ebb33de57f17b4fd79bd83325d..db94cb0febf7d03fe1f8c81e2b887b97b018b339 100644
--- a/src/ZSOLVER/p_abs.f90
+++ b/src/ZSOLVER/p_abs.f90
@@ -126,6 +126,8 @@ USE MODI_BITREP
 #ifdef MNH_OPENACC
 USE MODE_MNH_ZWORK,   ONLY: MNH_MEM_GET, MNH_MEM_POSITION_PIN, MNH_MEM_RELEASE
 #endif
+!
+USE MODE_MPPDB
 !  
 IMPLICIT NONE
 !  
@@ -200,6 +202,18 @@ INTEGER         :: IIU,IJU
 LOGICAL, SAVE :: GFIRST_CALL_P_ABS = .TRUE.
 !
 !-------------------------------------------------------------------------------
+IF (MPPDB_INITIALIZED) THEN
+   !Check all IN arrays
+   CALL MPPDB_CHECK(PTHT,"P_ABS beg:PTHT")
+   CALL MPPDB_CHECK(PRT,"P_ABS beg:PRT")
+   CALL MPPDB_CHECK(PRHODJ,"P_ABS beg:PRHODJ")
+   CALL MPPDB_CHECK(PTHETAV,"P_ABS beg:PTHETAV")
+   CALL MPPDB_CHECK(PRHODREF,"P_ABS beg:PRHODREF")
+   CALL MPPDB_CHECK(PTHVREF,"P_ABS beg:PTHVREF")
+   CALL MPPDB_CHECK(PRVREF,"P_ABS beg:PRVREF")
+   CALL MPPDB_CHECK(PEXNREF,"P_ABS beg:PEXNREF")
+   CALL MPPDB_CHECK(PPHIT,"P_ABS beg:PPHIT")
+END IF
 !
 !*       1.    COMPUTE DIMENSIONS OF ARRAYS AND OTHER INDICES:
 !              ----------------------------------------------
@@ -354,7 +368,7 @@ IF ( CEQNSYS=='DUR' .OR. CEQNSYS=='MAE' ) THEN
     END DO
   END IF
 !
-
+  !$acc update host(ZMASSGUESS_2D)
   ZMASSGUESS  = SUM_DD_R2_ll(ZMASSGUESS_2D)
   !
   ZPI0 = (PDRYMASST + ZWATERMASST - ZP00_O_RD*ZMASSGUESS ) / ZMASS_O_PI
@@ -453,6 +467,9 @@ DEALLOCATE (ZRTOT, ZRHOREF, ZWORK)
 !Release all memory allocated with MNH_MEM_GET calls since last call to MNH_MEM_POSITION_PIN
 CALL MNH_MEM_RELEASE()
 #endif
+IF (MPPDB_INITIALIZED) THEN
+   CALL MPPDB_CHECK(PPHIT,"P_ABS end:PPHIT")
+END IF
 !-------------------------------------------------------------------------------
 !
 END SUBROUTINE P_ABS