diff --git a/src/MNH/emoist.f90 b/src/MNH/emoist.f90 index a1c1c43725d259a5eb9f6a34bbd0d6845157b051..5bf959300d897c7d2955a4cbc476a43e23ef399b 100644 --- a/src/MNH/emoist.f90 +++ b/src/MNH/emoist.f90 @@ -98,7 +98,9 @@ SUBROUTINE EMOIST(KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PAMOIST,PSRCM,PEMOIST) !* 0. DECLARATIONS ! ------------ USE MODD_CST -! + +use mode_mppdb + IMPLICIT NONE ! !* 0.1 declarations of arguments and result @@ -134,6 +136,14 @@ INTEGER :: JRR ! moist loop counter !$acc data present( PTHLM, PRM, PLOCPEXNM, PAMOIST, PSRCM, PEMOIST ) +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pthlm, "Emoist beg:pthlm" ) + call Mppdb_check( prm, "Emoist beg:prm" ) + call Mppdb_check( plocpexnm, "Emoist beg:plocpexnm" ) + call Mppdb_check( pamoist, "Emoist beg:pamoist" ) + call Mppdb_check( psrcm, "Emoist beg:psrcm" ) +end if ! !* 1. COMPUTE EMOIST ! -------------- @@ -196,6 +206,11 @@ ELSE ! liquid water & ice present END IF !$acc end kernels +if ( mppdb_initialized ) then + !Check all out arrays + call Mppdb_check( pemoist, "Emoist end:pemoist" ) +end if + !$acc end data !--------------------------------------------------------------------------- diff --git a/src/MNH/etheta.f90 b/src/MNH/etheta.f90 index ec34c39d6fda00995f0c80779b2e58f1cc984f19..73943764e11b4e86a8a4b9f8bce06325cbef8044 100644 --- a/src/MNH/etheta.f90 +++ b/src/MNH/etheta.f90 @@ -100,7 +100,9 @@ SUBROUTINE ETHETA(KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PATHETA,PSRCM,PETHETA) !* 0. DECLARATIONS ! ------------ USE MODD_CST -! + +use mode_mppdb + IMPLICIT NONE ! !* 0.1 declarations of arguments and result @@ -139,6 +141,14 @@ INTEGER :: JRR ! moist loop counter !$acc data present( PTHLM, PRM, PLOCPEXNM, PATHETA, PSRCM, PETHETA ) +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pthlm, "Etheta beg:pthlm" ) + call Mppdb_check( prm, "Etheta beg:prm" ) + call Mppdb_check( plocpexnm, "Etheta beg:plocpexnm" ) + call Mppdb_check( patheta, "Etheta beg:patheta" ) + call Mppdb_check( psrcm, "Etheta beg:psrcm" ) +end if ! !* 1. COMPUTE ETHETA ! -------------- @@ -196,6 +206,11 @@ ELSE ! liquid water & ice present END IF !$acc end kernels +if ( mppdb_initialized ) then + !Check all out arrays + call Mppdb_check( petheta, "Etheta end:petheta" ) +end if + !$acc end data !--------------------------------------------------------------------------- diff --git a/src/MNH/les_mean_subgrid.f90 b/src/MNH/les_mean_subgrid.f90 index 3054a04205eae8d3276d58f4887d5ed50b56f57f..84927d4389446327c55c763640dcb7757317fdad 100644 --- a/src/MNH/les_mean_subgrid.f90 +++ b/src/MNH/les_mean_subgrid.f90 @@ -71,6 +71,7 @@ END MODULE MODI_LES_MEAN_SUBGRID ! USE MODD_LES +use mode_mppdb #ifdef MNH_OPENACC use mode_msg #endif @@ -113,7 +114,13 @@ IF (.NOT. LLES_CALL) RETURN #ifdef MNH_OPENACC call Print_msg( NVERB_WARNING, 'GEN', 'LES_MEAN_SUBGRID_3D', 'OpenACC: not yet tested' ) #endif -! + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pa, "Les_mean_subgrid_3d beg:pa" ) + !Check all inout arrays + call Mppdb_check( pa_mean, "Les_mean_subgrid_3d beg:pa_mean" ) +end if ! !$acc kernels ZA_MEAN_OLD(:) = 0. @@ -361,6 +368,11 @@ IF (LLES_MY_MASK) THEN END DO END IF +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( pa_mean, "Les_mean_subgrid_3d end:pa_mean" ) +end if + !$acc end data !------------------------------------------------------------------------------- @@ -404,6 +416,7 @@ END SUBROUTINE LES_MEAN_SUBGRID_3D ! USE MODD_LES +use mode_mppdb #ifdef MNH_OPENACC use mode_msg #endif @@ -439,7 +452,14 @@ IF (.NOT. LLES_CALL) RETURN #ifdef MNH_OPENACC call Print_msg( NVERB_WARNING, 'GEN', 'LES_MEAN_SUBGRID_SURF', 'OpenACC: not yet tested' ) #endif -! + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pa, "Les_mean_subgrid_surf beg:pa" ) + !Check all inout arrays + call Mppdb_check( pa_mean, "Les_mean_subgrid_surf beg:pa_mean" ) +end if + ZA_MEAN_OLD = 0. IF (PRESENT(OSUM)) THEN !TODO : verifier que ca se passe bien sur GPU, qu'on va bien chercher la bonne valeur dans le PA_MEAN sur GPU @@ -469,6 +489,11 @@ PA_MEAN(NLES_CURRENT_TCOUNT) = ZA_MEAN_OLD + ZA_MEAN !$acc update device(PA_MEAN(NLES_CURRENT_TCOUNT)) ! !$acc end kernels +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( pa_mean, "Les_mean_subgrid_surf end:pa_mean" ) +end if + !$acc end data !------------------------------------------------------------------------------- diff --git a/src/MNH/prandtl.f90 b/src/MNH/prandtl.f90 index 86ccec90ff9ea2c9c6f9478f24b773ee198131fe..f0c6b1a6f9b0d541a7caea7e1bad8b03e74013c6 100644 --- a/src/MNH/prandtl.f90 +++ b/src/MNH/prandtl.f90 @@ -203,6 +203,7 @@ USE MODD_PARAMETERS ! USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_IO_FIELD_WRITE, only: IO_Field_write +use mode_mppdb #ifdef MNH_OPENACC use mode_msg #endif @@ -302,6 +303,26 @@ TYPE(TFIELDDATA) :: TZFIELD !$acc & PRM, PSVM, PSRCM, & !$acc & PREDTH1, PREDR1, PRED2TH3, PRED2R3, PRED2THR3, PREDS1, PRED2THS3, PRED2RS3, & !$acc & PBLL_O_E, PETHETA, PEMOIST ) + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pdxx, "Prandtl beg:pdxx" ) + call Mppdb_check( pdyy, "Prandtl beg:pdyy" ) + call Mppdb_check( pdzz, "Prandtl beg:pdzz" ) + call Mppdb_check( pdzx, "Prandtl beg:pdzx" ) + call Mppdb_check( pdzy, "Prandtl beg:pdzy" ) + call Mppdb_check( pthvref, "Prandtl beg:pthvref" ) + call Mppdb_check( plocpexnm, "Prandtl beg:plocpexnm" ) + call Mppdb_check( patheta, "Prandtl beg:patheta" ) + call Mppdb_check( pamoist, "Prandtl beg:pamoist" ) + call Mppdb_check( plm, "Prandtl beg:plm" ) + call Mppdb_check( pleps, "Prandtl beg:pleps" ) + call Mppdb_check( pthlm, "Prandtl beg:pthlm" ) + call Mppdb_check( ptkem, "Prandtl beg:ptkem" ) + call Mppdb_check( prm, "Prandtl beg:prm" ) + call Mppdb_check( psvm, "Prandtl beg:psvm" ) + call Mppdb_check( psrcm, "Prandtl beg:psrcm" ) +end if ! !* 1. DEFAULT VALUES, 1D REDELSPERGER NUMBERS ! ---------------------------------------- @@ -1015,6 +1036,20 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN ! END IF +if ( mppdb_initialized ) then + !Check all out arrays + call Mppdb_check( predth1, "Prandtl end:predth1" ) + call Mppdb_check( predr1, "Prandtl end:predr1" ) + call Mppdb_check( pred2th3, "Prandtl end:pred2th3" ) + call Mppdb_check( pred2r3, "Prandtl end:pred2r3" ) + call Mppdb_check( pred2thr3, "Prandtl end:pred2thr3" ) + call Mppdb_check( preds1, "Prandtl end:preds1" ) + call Mppdb_check( pred2ths3, "Prandtl end:pred2ths3" ) + call Mppdb_check( pbll_o_e, "Prandtl end:pbll_o_e" ) + call Mppdb_check( petheta, "Prandtl end:petheta" ) + call Mppdb_check( pemoist, "Prandtl end:pemoist" ) +end if + !$acc end data !--------------------------------------------------------------------------- diff --git a/src/MNH/sbl_depth.f90 b/src/MNH/sbl_depth.f90 index 1b8c1e7eb5d03eb75f713f00c0d648ea99d226f5..b03a5c7082a0d8ff1bc11f7c2f9fb87671f011a8 100644 --- a/src/MNH/sbl_depth.f90 +++ b/src/MNH/sbl_depth.f90 @@ -69,6 +69,7 @@ END MODULE MODI_SBL_DEPTH USE MODD_PARAMETERS, ONLY : XUNDEF USE MODD_CTURB, ONLY : XFTOP_O_FSURF, XSBL_O_BL +use mode_mppdb #ifdef MNH_OPENACC use mode_msg #endif @@ -108,6 +109,17 @@ REAL, DIMENSION(SIZE(PZZ,1),SIZE(PZZ,2)) :: ZA ! ponderation coefficient call Print_msg( NVERB_FATAL, 'GEN', 'SBL_DEPTH', 'not yet implemented' ) #endif !---------------------------------------------------------------------------- + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pzz, "Sbl_depth beg:pzz" ) + call Mppdb_check( pflxu, "Sbl_depth beg:pflxu" ) + call Mppdb_check( pflxv, "Sbl_depth beg:pflxv" ) + call Mppdb_check( pwthv, "Sbl_depth beg:pwthv" ) + call Mppdb_check( plmo, "Sbl_depth beg:plmo" ) + !Check all inout arrays + call Mppdb_check( psbl_depth, "Sbl_depth beg:psbl_depth" ) +end if ! !* initialisations ! @@ -148,6 +160,11 @@ DO JLOOP=1,5 END DO WHERE (ABS(PLMO(:,:))<=0.01 ) PSBL_DEPTH = ZSBL_DYN WHERE (PLMO(:,:)==XUNDEF) PSBL_DEPTH = ZSBL_THER -! + +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( psbl_depth, "Sbl_depth end:psbl_depth" ) +end if + !---------------------------------------------------------------------------- END SUBROUTINE SBL_DEPTH diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90 index 2050a646905af6b41710f97abda54cca06e942ae..1e032fb389d26fa7aa5a390b46f160b604c5e8a1 100644 --- a/src/MNH/tke_eps_sources.f90 +++ b/src/MNH/tke_eps_sources.f90 @@ -185,6 +185,7 @@ USE MODD_DIAG_IN_RUN, ONLY : LDIAG_IN_RUN, XCURRENT_TKE_DISS USE MODE_ll USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_IO_FIELD_WRITE, only: IO_Field_write +use mode_mppdb ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -205,7 +206,6 @@ USE MODI_GET_HALO #ifdef MNH_BITREP USE MODI_BITREP #endif -USE MODE_MPPDB ! IMPLICIT NONE ! @@ -281,6 +281,28 @@ REAL, DIMENSION(SIZE(PTKEM,1),SIZE(PTKEM,2),SIZE(PTKEM,3)) :: ZTMP1_DEVICE,ZTMP2 !$acc & PTP, PRTKES, PRTKESM, PRTHLS, PCOEF_DISS, & !$acc & PTR, PDISS ) +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( ptkem, "Tke_eps_sources beg:ptkem" ) + call Mppdb_check( plm, "Tke_eps_sources beg:plm" ) + call Mppdb_check( pleps, "Tke_eps_sources beg:pleps" ) + call Mppdb_check( prhodj, "Tke_eps_sources beg:prhodj" ) + call Mppdb_check( pdxx, "Tke_eps_sources beg:pdxx" ) + call Mppdb_check( pdyy, "Tke_eps_sources beg:pdyy" ) + call Mppdb_check( pdzz, "Tke_eps_sources beg:pdzz" ) + call Mppdb_check( pdzx, "Tke_eps_sources beg:pdzx" ) + call Mppdb_check( pdzy, "Tke_eps_sources beg:pdzy" ) + call Mppdb_check( pzz, "Tke_eps_sources beg:pzz" ) + call Mppdb_check( ptrh, "Tke_eps_sources beg:ptrh" ) + call Mppdb_check( ptp, "Tke_eps_sources beg:ptp" ) + call Mppdb_check( pcoef_diss, "Tke_eps_sources beg:pcoef_diss" ) + call Mppdb_check( prtkesm, "Tke_eps_sources beg:prtkesm" ) + !check all inout arrays + call Mppdb_check( pdp, "Tke_eps_sources beg:pdp" ) + call Mppdb_check( prtkes, "Tke_eps_sources beg:prtkes" ) + call Mppdb_check( prthls, "Tke_eps_sources beg:prthls" ) +end if + NULLIFY(TZFIELDDISS_ll) ! !* 1. PRELIMINARY COMPUTATIONS @@ -328,8 +350,6 @@ ZSOURCE(:,:,:) = PRTKES(:,:,:) / PRHODJ(:,:,:) + PRTKESM(:,:,:) / PRHODJ(:,:,: - PTKEM(:,:,:) / PTSTEP & + PDP(:,:,:) + PTP(:,:,:) + PTR(:,:,:) - PEXPL * ZFLX(:,:,:) * PTKEM(:,:,:) !$acc end kernels -CALL MPPDB_CHECK3DM("tke_eps_sources::",PRECISION,& - & PRTKES,PRHODJ,PRTKESM,PTKEM,PDP,PTP,PTR,ZFLX) ! !* 2.2 implicit vertical TKE transport ! @@ -576,11 +596,16 @@ IF (LLES_CALL ) THEN !$acc end data END IF +if ( mppdb_initialized ) then + !check all inout arrays + call Mppdb_check( pdp, "Tke_eps_sources end:pdp" ) + call Mppdb_check( prtkes, "Tke_eps_sources end:prtkes" ) + call Mppdb_check( prthls, "Tke_eps_sources end:prthls" ) + !check all out arrays + call Mppdb_check( ptr, "Tke_eps_sources end:ptr" ) + call Mppdb_check( pdiss, "Tke_eps_sources end:pdiss" ) +end if + !$acc end data -!---------------------------------------------------------------------------- -! -! -!---------------------------------------------------------------------------- -! END SUBROUTINE TKE_EPS_SOURCES diff --git a/src/MNH/tm06_h.f90 b/src/MNH/tm06_h.f90 index fce556ad3759a7e22bdaf4b5ebeccd1d9239904b..8df331aa0eca0a0c8116ec721ac670afb8f75fdf 100644 --- a/src/MNH/tm06_h.f90 +++ b/src/MNH/tm06_h.f90 @@ -70,6 +70,7 @@ END MODULE MODI_TM06_H ! USE MODD_PARAMETERS, ONLY : XUNDEF +use mode_mppdb #ifdef MNH_OPENACC use mode_msg #endif @@ -106,6 +107,15 @@ LOGICAL, DIMENSION(SIZE(PZZ,1),SIZE(PZZ,2)) :: GWORK #ifdef MNH_OPENACC call Print_msg( NVERB_WARNING, 'GEN', 'TM06_H', 'OpenACC: not yet tested' ) #endif + +if ( mppdb_initialized ) then + !check all in arrays + call Mppdb_check( pzz, "Tm06_h beg:pzz" ) + call Mppdb_check( pflxz, "Tm06_h beg:pflxz" ) + !check all inout arrays + call Mppdb_check( pbl_depth, "Tm06_h beg:pbl_depth" ) +end if + !* mixed boundary layer cannot grow more rapidly than 1800m/h !$acc kernels ZGROWTH = 2.0 ! (m/s) @@ -134,6 +144,11 @@ END DO WHERE(PBL_DEPTH(:,:)/=XUNDEF) PBL_DEPTH(:,:)=MIN(PBL_DEPTH(:,:),ZBL_DEPTH(:,:)+ZGROWTH*PTSTEP) !$acc end kernels +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( pbl_depth, "Tm06_h end:pbl_depth" ) +end if + !$acc end data !---------------------------------------------------------------------------- diff --git a/src/MNH/tridiag.f90 b/src/MNH/tridiag.f90 index 20a4213da2fc107cf0a5e6edd9ea028892c39a64..26a22b411bfd62aa13ab3bab73f80bf5d40668fb 100644 --- a/src/MNH/tridiag.f90 +++ b/src/MNH/tridiag.f90 @@ -145,7 +145,9 @@ END MODULE MODI_TRIDIAG !* 0. DECLARATIONS ! USE MODD_PARAMETERS -! + +use mode_mppdb + IMPLICIT NONE ! ! @@ -176,7 +178,15 @@ INTEGER :: IKTB,IKTE ! start, end of k loops in ! ! --------------------------------------------------------------------------- -! + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pvarm, "Tridiag beg:pvarm" ) + call Mppdb_check( pa, "Tridiag beg:pa" ) + call Mppdb_check( prhodj, "Tridiag beg:prhodj" ) + call Mppdb_check( psource, "Tridiag beg:psource" ) +end if +! !* 1. COMPUTE THE RIGHT HAND SIDE ! --------------------------- ! @@ -255,7 +265,12 @@ END IF ! PVARP(:,:,KKA)=PVARP(:,:,IKB) PVARP(:,:,KKU)=PVARP(:,:,IKE) -! + +if ( mppdb_initialized ) then + !Check all out arrays + call Mppdb_check( pvarp, "Tridiag end:pvarp" ) +end if + !------------------------------------------------------------------------------- ! END SUBROUTINE TRIDIAG diff --git a/src/MNH/tridiag_thermo.f90 b/src/MNH/tridiag_thermo.f90 index 88547ba615fa2a790d499ff53cb74acf79bf2eb9..c4c61cbf8940565dce7ebd67ee0c1f6b61924466 100644 --- a/src/MNH/tridiag_thermo.f90 +++ b/src/MNH/tridiag_thermo.f90 @@ -147,7 +147,9 @@ END MODULE MODI_TRIDIAG_THERMO !* 0. DECLARATIONS ! USE MODD_PARAMETERS, ONLY : JPVEXT_TURB -! + +use mode_mppdb + #ifndef MNH_OPENACC USE MODI_SHUMAN #else @@ -198,6 +200,15 @@ REAL, DIMENSION(SIZE(PVARM,1),SIZE(PVARM,2),SIZE(PVARM,3)) :: ZTMP1_DEVICE ! --------------------------------------------------------------------------- !$acc data present( PVARM, PF, PDFDDTDZ, PDZZ, PRHODJ, PVARP ) + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pvarm, "Tridiag_thermo beg:pvarm" ) + call Mppdb_check( pf, "Tridiag_thermo beg:pf" ) + call Mppdb_check( pdfddtdz, "Tridiag_thermo beg:pdfddtdz" ) + call Mppdb_check( pdzz, "Tridiag_thermo beg:pdzz" ) + call Mppdb_check( prhodj, "Tridiag_thermo beg:prhodj" ) +end if ! !* 1. Preliminaries ! ------------- @@ -354,6 +365,11 @@ PVARP(:,:,KKA)=PVARP(:,:,IKB) PVARP(:,:,KKU)=PVARP(:,:,IKE) !$acc end kernels +if ( mppdb_initialized ) then + !Check all out arrays + call Mppdb_check( pvarp, "Tridiag_thermo end:pvarp" ) +end if + !$acc end data !------------------------------------------------------------------------------- diff --git a/src/MNH/tridiag_tke.f90 b/src/MNH/tridiag_tke.f90 index 0838d4f4d0aa1069bbc50221cb8033dbbcdb4e1a..3060d23cacab7bd27c03c0c0a46371ad99f5b07a 100644 --- a/src/MNH/tridiag_tke.f90 +++ b/src/MNH/tridiag_tke.f90 @@ -176,11 +176,19 @@ INTEGER :: IKTB,IKTE ! start, end of k loops in physical domain ! --------------------------------------------------------------------------- !$acc data present( PVARM, PA, PRHODJ, PSOURCE, PDIAG, PVARP ) + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pvarm, "Tridiag_tke beg:pvarm" ) + call Mppdb_check( pa, "Tridiag_tke beg:pa" ) + call Mppdb_check( prhodj, "Tridiag_tke beg:prhodj" ) + call Mppdb_check( psource, "Tridiag_tke beg:psource" ) + call Mppdb_check( pdiag, "Tridiag_tke beg:pdiag" ) +end if + ! !* 1. COMPUTE THE RIGHT HAND SIDE ! --------------------------- -CALL MPPDB_CHECK3DM("tridiag_tke::PVARM,PA,PRHODJ,PSOURCE,PDIAG",PRECISION,& - & PVARM,PA,PRHODJ,PSOURCE,PDIAG) ! !$acc kernels IKT=SIZE(PVARM,3) @@ -269,6 +277,11 @@ PVARP(:,:,KKA)=PVARP(:,:,IKB) PVARP(:,:,KKU)=PVARP(:,:,IKE) !$acc end kernels +if ( mppdb_initialized ) then + !Check all out arrays + call Mppdb_check( pvarp, "Tridiag_tke end:pvarp" ) +end if + !$acc end data !------------------------------------------------------------------------------- diff --git a/src/MNH/tridiag_w.f90 b/src/MNH/tridiag_w.f90 index 80694b9a6fc23a65fc1d9de74f7ebe0abd266281..6699d45b9383ec8187bb9f09b11732451ab372a2 100644 --- a/src/MNH/tridiag_w.f90 +++ b/src/MNH/tridiag_w.f90 @@ -149,7 +149,9 @@ END MODULE MODI_TRIDIAG_W !* 0. DECLARATIONS ! USE MODD_PARAMETERS, ONLY : JPVEXT -! + +use mode_mppdb + #ifndef MNH_OPENACC USE MODI_SHUMAN #else @@ -191,6 +193,15 @@ INTEGER :: IKB,IKE,IKU ! inner vertical limits ! --------------------------------------------------------------------------- !$acc data present( PVARM, PF, PDFDDWDZ, PMZF_DZZ, PRHODJ, PVARP ) + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pvarm, "Tridiag_w beg:pvarm" ) + call Mppdb_check( pf, "Tridiag_w beg:pf" ) + call Mppdb_check( pdfddwdz, "Tridiag_w beg:pdfddwdz" ) + call Mppdb_check( pmzf_dzz, "Tridiag_w beg:pmzf_dzz" ) + call Mppdb_check( prhodj, "Tridiag_w beg:prhodj" ) +end if ! !* 1. Preliminaries ! ------------- @@ -347,6 +358,11 @@ PVARP(:,:,IKB-1)=PVARP(:,:,IKB) PVARP(:,:,IKE+1)=0. !$acc end kernels +if ( mppdb_initialized ) then + !Check all out arrays + call Mppdb_check( pvarp, "Tridiag_w end:pvarp" ) +end if + !$acc end data !------------------------------------------------------------------------------- diff --git a/src/MNH/tridiag_wind.f90 b/src/MNH/tridiag_wind.f90 index 140602531cb8cc9028404e26b04f1f3f42b2d8da..6aa59aa0a8bf1d9effc07eafa6c6ee6c440e97a1 100644 --- a/src/MNH/tridiag_wind.f90 +++ b/src/MNH/tridiag_wind.f90 @@ -146,7 +146,9 @@ END MODULE MODI_TRIDIAG_WIND !* 0. DECLARATIONS ! USE MODD_PARAMETERS -! + +use mode_mppdb + IMPLICIT NONE ! ! @@ -187,6 +189,15 @@ REAL, DIMENSION(SIZE(PVARM,1),SIZE(PVARM,2),SIZE(PVARM,3)) :: ZTMP1_DEVICE,ZTMP2 ! --------------------------------------------------------------------------- !$acc data present( PVARM, PA, PCOEFS, PRHODJA, PSOURCE, PVARP ) + +if ( mppdb_initialized ) then + !check all in arrays + call Mppdb_check( pvarm, "Tridiag_wind beg:pvarm" ) + call Mppdb_check( pa, "Tridiag_wind beg:pa" ) + call Mppdb_check( pcoefs, "Tridiag_wind beg:pcoefs" ) + call Mppdb_check( prhodja, "Tridiag_wind beg:prhodja" ) + call Mppdb_check( psource, "Tridiag_wind beg:psource" ) +end if ! !* 1. COMPUTE THE RIGHT HAND SIDE ! --------------------------- @@ -286,6 +297,11 @@ PVARP(:,:,KKA)=PVARP(:,:,IKB) PVARP(:,:,KKU)=PVARP(:,:,IKE) !$acc end kernels +if ( mppdb_initialized ) then + !Check all out arrays + call Mppdb_check( pvarp, "Tridiag_wind end:pvarp" ) +end if + !$acc end data !------------------------------------------------------------------------------- diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90 index 1527f68ad967b87d6f9ea2835d78702acea346f0..cf0d7a8b23540d494a82eff85bce28a0ea436ab8 100644 --- a/src/MNH/turb.f90 +++ b/src/MNH/turb.f90 @@ -472,6 +472,50 @@ REAL, DIMENSION(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)) :: ZTMP1_DEVICE,ZTMP2 ! !$acc & create ( PSIGS, PWTH, PWRC, PWSV, PDYP, PTHP, PTR, PDISS, PLEM ) +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pdxx, "Turb beg:pdxx" ) + call Mppdb_check( pdyy, "Turb beg:pdyy" ) + call Mppdb_check( pdzz, "Turb beg:pdzz" ) + call Mppdb_check( pdzx, "Turb beg:pdzx" ) + call Mppdb_check( pdzy, "Turb beg:pdzy" ) + call Mppdb_check( prhodj, "Turb beg:prhodj" ) + call Mppdb_check( pzz, "Turb beg:pzz" ) + call Mppdb_check( pdircosxw, "Turb beg:pdircosxw" ) + call Mppdb_check( pdircosyw, "Turb beg:pdircosyw" ) + call Mppdb_check( pdircoszw, "Turb beg:pdircoszw" ) + call Mppdb_check( pcosslope, "Turb beg:pcosslope" ) + call Mppdb_check( psinslope, "Turb beg:psinslope" ) + call Mppdb_check( pthvref, "Turb beg:pthvref" ) + call Mppdb_check( psfth, "Turb beg:psfth" ) + call Mppdb_check( psfrv, "Turb beg:psfrv" ) + call Mppdb_check( psfu, "Turb beg:psfu" ) + call Mppdb_check( psfv, "Turb beg:psfv" ) + call Mppdb_check( psfsv, "Turb beg:psfsv" ) + call Mppdb_check( ppabst, "Turb beg:ppabst" ) + call Mppdb_check( put, "Turb beg:put" ) + call Mppdb_check( pvt, "Turb beg:pvt" ) + call Mppdb_check( pwt, "Turb beg:pwt" ) + call Mppdb_check( ptket, "Turb beg:ptket" ) + call Mppdb_check( psvt, "Turb beg:psvt" ) + call Mppdb_check( psrct, "Turb beg:psrct" ) + call Mppdb_check( pcei, "Turb beg:pcei" ) + call Mppdb_check( prtkems, "Turb beg:prtkems" ) + call Mppdb_check( pflxzthvmf, "Turb beg:pflxzthvmf" ) + !check all inout arrays + call Mppdb_check( pbl_depth, "Turb beg:pbl_depth" ) + call Mppdb_check( psbl_depth, "Turb beg:psbl_depth" ) + call Mppdb_check( pthlt, "Turb beg:pthlt" ) + call Mppdb_check( prt, "Turb beg:prt" ) + call Mppdb_check( prus, "Turb beg:prus" ) + call Mppdb_check( prvs, "Turb beg:prvs" ) + call Mppdb_check( prws, "Turb beg:prws" ) + call Mppdb_check( prthls, "Turb beg:prthls" ) + call Mppdb_check( prtkes, "Turb beg:prtkes" ) + call Mppdb_check( prrs, "Turb beg:prrs" ) + call Mppdb_check( prsvs, "Turb beg:prsvs" ) +end if + ALLOCATE ( & ZCP(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)), & ZEXN(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)), & @@ -931,7 +975,6 @@ CALL TURB_VER(KKA,KKU,KKL,KRR, KRRL, KRRI, & PRUS,PRVS,PRWS,PRTHLS,PRRS,PRSVS, & PDYP,PTHP,PSIGS,PWTH,PWRC,PWSV ) !$acc update self(PWTH,PWRC,PWSV) -CALL MPPDB_CHECK3DM("turb after turb_ver:PDYP,PTHP",PRECISION,PDYP,PTHP) ! #ifdef MNH_OPENACC IF ( ( LBUDGET_TH .AND. ( ( KRRI >= 1 .AND. KRRL >= 1 ) .OR. ( KRRL >= 1 ) ) ) .OR. & @@ -1001,7 +1044,6 @@ IF (HTURBDIM=='3DIM') THEN PRUS,PRVS,PRWS,PRTHLS,PRRS,PRSVS ) END IF !$acc update self(PSIGS,PRUS,PRVS,PRWS,PRSVS) -CALL MPPDB_CHECK3DM("turb after turb_hor_splt:PDYP,PTHP",PRECISION,PDYP,PTHP) ! ! #ifdef MNH_OPENACC @@ -1069,7 +1111,6 @@ CALL TKE_EPS_SOURCES(KKA,KKU,KKL,KMI,PTKET,PLEM,ZLEPS,PDYP,ZTRH, & ! !$acc update self(PTR,PDISS) !$acc update self(PDYP,PTHP) -CALL MPPDB_CHECK3DM("turb after tke_eps_sources:PDYP,PTHP",PRECISION,PDYP,PTHP) ! !$acc update self(PRTKES) IF (LBUDGET_TH) THEN @@ -1324,9 +1365,33 @@ IF (LLES_CALL) THEN XTIME_LES = XTIME_LES + ZTIME2 - ZTIME1 END IF +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( pbl_depth, "Turb end:pbl_depth" ) + call Mppdb_check( psbl_depth, "Turb end:psbl_depth" ) + call Mppdb_check( pthlt, "Turb end:pthlt" ) + call Mppdb_check( prt, "Turb end:prt" ) + call Mppdb_check( prus, "Turb end:prus" ) + call Mppdb_check( prvs, "Turb end:prvs" ) + call Mppdb_check( prws, "Turb end:prws" ) + call Mppdb_check( prthls, "Turb end:prthls" ) + call Mppdb_check( prtkes, "Turb end:prtkes" ) + call Mppdb_check( prrs, "Turb end:prrs" ) + call Mppdb_check( prsvs, "Turb end:prsvs" ) + !check all out arrays + call Mppdb_check( psigs, "Turb end:psigs" ) + call Mppdb_check( pwth, "Turb end:pwth" ) + call Mppdb_check( pwrc, "Turb end:pwrc" ) + call Mppdb_check( pwsv, "Turb end:pwsv" ) + call Mppdb_check( pdyp, "Turb end:pdyp" ) + call Mppdb_check( pthp, "Turb end:pthp" ) + call Mppdb_check( ptr, "Turb end:ptr" ) + call Mppdb_check( pdiss, "Turb end:pdiss" ) + call Mppdb_check( plem, "Turb end:plem" ) +end if + !$acc end data -! !---------------------------------------------------------------------------- ! CONTAINS @@ -1373,6 +1438,12 @@ INTEGER :: IINFO_ll ! return code of parallel routine ! !$acc data present( PUSLOPE, PVSLOPE ) +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( puslope, "Update_rotate_wind beg:puslope" ) + call Mppdb_check( pvslope, "Update_rotate_wind beg:pvslope" ) +end if + NULLIFY(TZFIELDS_ll) ! CALL GET_INDICE_ll (IIB,IJB,IIE,IJE) @@ -1409,6 +1480,12 @@ IF( HLBCY(2) /= "CYCL" .AND. LNORTH_ll()) THEN END IF !$acc end kernels +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( puslope, "Update_rotate_wind end:puslope" ) + call Mppdb_check( pvslope, "Update_rotate_wind end:pvslope" ) +end if + !$acc end data END SUBROUTINE UPDATE_ROTATE_WIND @@ -1456,6 +1533,13 @@ REAL, DIMENSION(SIZE(PEXN,1),SIZE(PEXN,2),SIZE(PEXN,3)) :: ZDRVSATDT !$acc data present( PT, PEXN, PCP, PLOCPEXN, PAMOIST, PATHETA ) + if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pt, "Compute_function_thermo beg:pt" ) + call Mppdb_check( pexn, "Compute_function_thermo beg:pexn" ) + call Mppdb_check( pcp, "Compute_function_thermo beg:pcp" ) + end if + ZEPS = XMV / XMD ! !* 1.1 Lv/Cph at t @@ -1510,6 +1594,13 @@ REAL, DIMENSION(SIZE(PEXN,1),SIZE(PEXN,2),SIZE(PEXN,3)) :: ZDRVSATDT PLOCPEXN(:,:,:) = PLOCPEXN(:,:,:) / PEXN(:,:,:) !$acc end kernels + if ( mppdb_initialized ) then + !Check all out arrays + call Mppdb_check( plocpexn, "Compute_function_thermo end:plocpexn" ) + call Mppdb_check( pamoist, "Compute_function_thermo end:pamoist" ) + call Mppdb_check( patheta, "Compute_function_thermo end:patheta" ) + end if + !$acc end data END SUBROUTINE COMPUTE_FUNCTION_THERMO @@ -1716,6 +1807,8 @@ SUBROUTINE DELT(KKA,KKU,KKL,KKB, KKE,KKTB, KKTE,ORMC01,HTURBDIM,PDXX, PDYY,PZZ,P ! ------------ use modd_conf, only: l2d +use mode_mppdb + #ifndef MNH_OPENACC USE MODI_SHUMAN #else @@ -1760,6 +1853,14 @@ real, dimension(:,:,:), allocatable :: ztmp1_device, ztmp2_device !$acc data present( PDXX, PDYY, PZZ, PDIRCOSZW, PLM ) +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pdxx, "Delt beg:pdxx" ) + call Mppdb_check( pdyy, "Delt beg:pdyy" ) + call Mppdb_check( pzz, "Delt beg:pzz" ) + call Mppdb_check( pdircoszw, "Delt beg:pdircoszw" ) +end if + #ifdef MNH_OPENACC allocate( ztmp1_device( size( pdxx, 1 ), size( pdxx, 2 ), size( pdxx, 3 ) ) ) allocate( ztmp2_device( size( pdxx, 1 ), size( pdxx, 2 ), size( pdxx, 3 ) ) ) @@ -1832,6 +1933,11 @@ PLM(:,:,KKA) = PLM(:,:,KKB ) PLM(:,:,KKU ) = PLM(:,:,KKE) !$acc end kernels +if ( mppdb_initialized ) then + !Check all out arrays + call Mppdb_check( plm, "Delt end:plm" ) +end if + !$acc end data END SUBROUTINE DELT @@ -1864,6 +1970,8 @@ SUBROUTINE DEAR(KKA,KKU,KKL,KRR, KRRI, KKB, KKE,KKTB, KKTE, & use modd_conf, only: l2d use modd_cst, only: XG, XMNH_EPSILON +use mode_mppdb + USE MODI_EMOIST USE MODI_ETHETA #ifndef MNH_OPENACC @@ -1928,6 +2036,23 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZTMP1_DEVICE,ZTMP2_DEVICE !$acc data present( PDXX, PDYY, PDZZ, PZZ, PDIRCOSZW, PTHLT, PTHVREF, PTKET, PSRCT, PRT, PLOCPEXNM, PLM ) +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pdxx, "Dear beg:pdxx" ) + call Mppdb_check( pdyy, "Dear beg:pdyy" ) + call Mppdb_check( pdzz, "Dear beg:pdzz" ) + call Mppdb_check( pzz, "Dear beg:pzz" ) + call Mppdb_check( pdircoszw, "Dear beg:pdircoszw" ) + call Mppdb_check( pthlt, "Dear beg:pthlt" ) + call Mppdb_check( pthvref, "Dear beg:pthvref" ) + call Mppdb_check( ptket, "Dear beg:ptket" ) + call Mppdb_check( psrct, "Dear beg:psrct" ) + call Mppdb_check( prt, "Dear beg:prt" ) + call Mppdb_check( plocpexnm, "Dear beg:plocpexnm" ) + call Mppdb_check( patheta, "Dear beg:patheta" ) + call Mppdb_check( pamoist, "Dear beg:pamoist" ) +end if + !------------------------------------------------------------------------------- allocate( ZWORK2D(SIZE(PLM,1),SIZE(PLM,2)) ) allocate( ZDTHLDZ(SIZE(PTHLT,1),SIZE(PTHLT,2),SIZE(PTHLT,3)) ) @@ -2075,6 +2200,11 @@ PLM(:,:,KKE ) = PLM(:,:,KKE-KKL) PLM(:,:,KKU ) = PLM(:,:,KKU-KKL) !$acc end kernels +if ( mppdb_initialized ) then + !Check all out arrays + call Mppdb_check( plm, "Dear end:plm" ) +end if + !$acc end data END SUBROUTINE DEAR diff --git a/src/MNH/turb_hor.f90 b/src/MNH/turb_hor.f90 index 5f722984b3cce3c0acdfcaf892c4f8144ce23e11..9d0b3b193c334ea5bbda76641385bd24cfe3b6b3 100644 --- a/src/MNH/turb_hor.f90 +++ b/src/MNH/turb_hor.f90 @@ -257,8 +257,9 @@ USE MODD_CTURB USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES -! -! + +use mode_mppdb + USE MODI_GRADIENT_M USE MODI_GRADIENT_U USE MODI_GRADIENT_V @@ -309,7 +310,6 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PINV_PDXX ! 1./PDXX REAL, DIMENSION(:,:,:), INTENT(IN) :: PINV_PDYY ! 1./PDYY REAL, DIMENSION(:,:,:), INTENT(IN) :: PINV_PDZZ ! 1./PDZZ REAL, DIMENSION(:,:,:), INTENT(IN) :: PMZM_PRHODJ ! MZM(PRHODJ) - REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! density * grid volume REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHVREF ! ref. state VPT ! @@ -369,6 +369,62 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSIGS !$acc & PUSLOPEM, PVSLOPEM, PSFSVM, & !$acc & PDP, PTP, PRTHLS, PRSVS, PRRS, & !$acc & PRUS, PRVS, PRWS, PSIGS ) + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pdxx, "Turb_hor beg:pdxx" ) + call Mppdb_check( pdyy, "Turb_hor beg:pdyy" ) + call Mppdb_check( pdzz, "Turb_hor beg:pdzz" ) + call Mppdb_check( pdzx, "Turb_hor beg:pdzx" ) + call Mppdb_check( pdzy, "Turb_hor beg:pdzy" ) + call Mppdb_check( pzz, "Turb_hor beg:pzz" ) + call Mppdb_check( pdircosxw, "Turb_hor beg:pdircosxw" ) + call Mppdb_check( pdircosyw, "Turb_hor beg:pdircosyw" ) + call Mppdb_check( pdircoszw, "Turb_hor beg:pdircoszw" ) + call Mppdb_check( pcosslope, "Turb_hor beg:pcosslope" ) + call Mppdb_check( psinslope, "Turb_hor beg:psinslope" ) + call Mppdb_check( pk, "Turb_hor beg:pk" ) + call Mppdb_check( pinv_pdxx, "Turb_hor beg:pinv_pdxx" ) + call Mppdb_check( pinv_pdyy, "Turb_hor beg:pinv_pdyy" ) + call Mppdb_check( pinv_pdzz, "Turb_hor beg:pinv_pdzz" ) + call Mppdb_check( pmzm_prhodj, "Turb_hor beg:pmzm_prhodj" ) + call Mppdb_check( prhodj, "Turb_hor beg:prhodj" ) + call Mppdb_check( pthvref, "Turb_hor beg:pthvref" ) + call Mppdb_check( psfthm, "Turb_hor beg:psfthm" ) + call Mppdb_check( psfrm, "Turb_hor beg:psfrm" ) + call Mppdb_check( psfsvm, "Turb_hor beg:psfsvm" ) + call Mppdb_check( pcdueff, "Turb_hor beg:pcdueff" ) + call Mppdb_check( ptau11m, "Turb_hor beg:ptau11m" ) + call Mppdb_check( ptau12m, "Turb_hor beg:ptau12m" ) + call Mppdb_check( ptau22m, "Turb_hor beg:ptau22m" ) + call Mppdb_check( ptau33m, "Turb_hor beg:ptau33m" ) + call Mppdb_check( pum, "Turb_hor beg:pum" ) + call Mppdb_check( pvm, "Turb_hor beg:pvm" ) + call Mppdb_check( pwm, "Turb_hor beg:pwm" ) + call Mppdb_check( pthlm, "Turb_hor beg:pthlm" ) + call Mppdb_check( prm, "Turb_hor beg:prm" ) + call Mppdb_check( psvm, "Turb_hor beg:psvm" ) + call Mppdb_check( puslopem, "Turb_hor beg:puslopem" ) + call Mppdb_check( pvslopem, "Turb_hor beg:pvslopem" ) + call Mppdb_check( ptkem, "Turb_hor beg:ptkem" ) + call Mppdb_check( plm, "Turb_hor beg:plm" ) + call Mppdb_check( pleps, "Turb_hor beg:pleps" ) + call Mppdb_check( plocpexnm, "Turb_hor beg:plocpexnm" ) + call Mppdb_check( patheta, "Turb_hor beg:patheta" ) + call Mppdb_check( pamoist, "Turb_hor beg:pamoist" ) + call Mppdb_check( psrcm, "Turb_hor beg:psrcm" ) + call Mppdb_check( pfrac_ice, "Turb_hor beg:pfrac_ice" ) + !Check all inout arrays + call Mppdb_check( prus, "Turb_hor beg:prus" ) + call Mppdb_check( prvs, "Turb_hor beg:prvs" ) + call Mppdb_check( prws, "Turb_hor beg:prws" ) + call Mppdb_check( prthls, "Turb_hor beg:prthls" ) + call Mppdb_check( prsvs, "Turb_hor beg:prsvs" ) + call Mppdb_check( prrs, "Turb_hor beg:prrs" ) + call Mppdb_check( pdp, "Turb_hor beg:pdp" ) + call Mppdb_check( ptp, "Turb_hor beg:ptp" ) + call Mppdb_check( psigs, "Turb_hor beg:psigs" ) +end if ! !* 1. PRELIMINARY COMPUTATIONS ! ------------------------ @@ -493,6 +549,19 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PSIGS PLOCPEXNM,PATHETA,PAMOIST,PSRCM, & PWM,PSVM ) +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( prus, "Turb_hor end:prus" ) + call Mppdb_check( prvs, "Turb_hor end:prvs" ) + call Mppdb_check( prws, "Turb_hor end:prws" ) + call Mppdb_check( prthls, "Turb_hor end:prthls" ) + call Mppdb_check( prsvs, "Turb_hor end:prsvs" ) + call Mppdb_check( prrs, "Turb_hor end:prrs" ) + call Mppdb_check( PDP, "Turb_hor end:PDP" ) + call Mppdb_check( PTP, "Turb_hor end:PTP" ) + call Mppdb_check( PSIGS, "Turb_hor end:PSIGS" ) +end if + !$acc end data END SUBROUTINE TURB_HOR diff --git a/src/MNH/turb_hor_dyn_corr.f90 b/src/MNH/turb_hor_dyn_corr.f90 index 78a94881b76372d9f8d3deb9c43bde26cb840822..1dad0cb17813e32d584aba20a8db4ce6f1c234c0 100644 --- a/src/MNH/turb_hor_dyn_corr.f90 +++ b/src/MNH/turb_hor_dyn_corr.f90 @@ -153,6 +153,7 @@ USE MODD_NSV USE MODE_ll USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_IO_FIELD_WRITE, only: IO_Field_write +use mode_mppdb ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -282,6 +283,43 @@ TYPE(TFIELDDATA) :: TZFIELD !$acc & PTAU11M, PTAU12M, PTAU22M, PTAU33M, & !$acc & PUM, PVM, PWM, PTHLM, PRM, PSVM, PUSLOPEM, PVSLOPEM, PTKEM, PLM, & !$acc & PRUS, PRVS, PRWS, PDP, PTP ) + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pk, "Turb_hor_dyn_corr beg:pk" ) + call Mppdb_check( pinv_pdzz, "Turb_hor_dyn_corr beg:pinv_pdzz" ) + call Mppdb_check( pdxx, "Turb_hor_dyn_corr beg:pdxx" ) + call Mppdb_check( pdyy, "Turb_hor_dyn_corr beg:pdyy" ) + call Mppdb_check( pdzz, "Turb_hor_dyn_corr beg:pdzz" ) + call Mppdb_check( pdzx, "Turb_hor_dyn_corr beg:pdzx" ) + call Mppdb_check( pdzy, "Turb_hor_dyn_corr beg:pdzy" ) + call Mppdb_check( pzz, "Turb_hor_dyn_corr beg:pzz" ) + call Mppdb_check( pdircoszw, "Turb_hor_dyn_corr beg:pdircoszw" ) + call Mppdb_check( pcosslope, "Turb_hor_dyn_corr beg:pcosslope" ) + call Mppdb_check( psinslope, "Turb_hor_dyn_corr beg:psinslope" ) + call Mppdb_check( prhodj, "Turb_hor_dyn_corr beg:prhodj" ) + call Mppdb_check( pcdueff, "Turb_hor_dyn_corr beg:pcdueff" ) + call Mppdb_check( ptau11m, "Turb_hor_dyn_corr beg:ptau11m" ) + call Mppdb_check( ptau12m, "Turb_hor_dyn_corr beg:ptau12m" ) + call Mppdb_check( ptau22m, "Turb_hor_dyn_corr beg:ptau22m" ) + call Mppdb_check( ptau33m, "Turb_hor_dyn_corr beg:ptau33m" ) + call Mppdb_check( pum, "Turb_hor_dyn_corr beg:pum" ) + call Mppdb_check( pvm, "Turb_hor_dyn_corr beg:pvm" ) + call Mppdb_check( pwm, "Turb_hor_dyn_corr beg:pwm" ) + call Mppdb_check( pthlm, "Turb_hor_dyn_corr beg:pthlm" ) + call Mppdb_check( prm, "Turb_hor_dyn_corr beg:prm" ) + call Mppdb_check( psvm, "Turb_hor_dyn_corr beg:psvm" ) + call Mppdb_check( puslopem, "Turb_hor_dyn_corr beg:puslopem" ) + call Mppdb_check( pvslopem, "Turb_hor_dyn_corr beg:pvslopem" ) + call Mppdb_check( ptkem, "Turb_hor_dyn_corr beg:ptkem" ) + call Mppdb_check( plm, "Turb_hor_dyn_corr beg:plm" ) + !Check all inout arrays + call Mppdb_check( prus, "Turb_hor_dyn_corr beg:prus" ) + call Mppdb_check( prvs, "Turb_hor_dyn_corr beg:prvs" ) + call Mppdb_check( prws, "Turb_hor_dyn_corr beg:prws" ) + call Mppdb_check( pdp, "Turb_hor_dyn_corr beg:pdp" ) + call Mppdb_check( ptp, "Turb_hor_dyn_corr beg:ptp" ) +end if ! !* 1. PRELIMINARY COMPUTATIONS ! ------------------------ @@ -1096,6 +1134,15 @@ END IF ! CALL CLEANLIST_ll(TZFIELDS_ll) +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( prus, "Turb_hor_dyn_corr end:prus" ) + call Mppdb_check( prvs, "Turb_hor_dyn_corr end:prvs" ) + call Mppdb_check( prws, "Turb_hor_dyn_corr end:prws" ) + call Mppdb_check( pdp, "Turb_hor_dyn_corr end:pdp" ) + call Mppdb_check( ptp, "Turb_hor_dyn_corr end:ptp" ) +end if + !$acc end data END SUBROUTINE TURB_HOR_DYN_CORR diff --git a/src/MNH/turb_hor_splt.f90 b/src/MNH/turb_hor_splt.f90 index 74c5b24f6456249554d95e1787492fa1b8acded1..bcbc06df3e1ba5b3031128358d386eff81199d34 100644 --- a/src/MNH/turb_hor_splt.f90 +++ b/src/MNH/turb_hor_splt.f90 @@ -258,8 +258,10 @@ USE MODD_CST USE MODD_CTURB USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS -! -! + +USE MODE_ll +use mode_mppdb + #ifndef MNH_OPENACC USE MODI_SHUMAN #else @@ -268,7 +270,6 @@ USE MODI_SHUMAN_DEVICE USE MODI_TURB_HOR USE MODI_TURB_HOR_TKE ! -USE MODE_ll ! IMPLICIT NONE ! @@ -389,6 +390,56 @@ REAL, DIMENSION(SIZE(PTHLM,1),SIZE(PTHLM,2),SIZE(PTHLM,3)) :: ZTMP1_DEVICE,ZTMP2 !$acc & PDP, PTP, PSIGS, & !$acc & PTRH, & !$acc & PRUS, PRVS, PRWS, PRTHLS, PRRS, PRSVS ) + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pdxx, "Turb_hor_splt beg:pdxx" ) + call Mppdb_check( pdyy, "Turb_hor_splt beg:pdyy" ) + call Mppdb_check( pdzz, "Turb_hor_splt beg:pdzz" ) + call Mppdb_check( pdzx, "Turb_hor_splt beg:pdzx" ) + call Mppdb_check( pdzy, "Turb_hor_splt beg:pdzy" ) + call Mppdb_check( pzz, "Turb_hor_splt beg:pzz" ) + call Mppdb_check( pdircosxw, "Turb_hor_splt beg:pdircosxw" ) + call Mppdb_check( pdircosyw, "Turb_hor_splt beg:pdircosyw" ) + call Mppdb_check( pdircoszw, "Turb_hor_splt beg:pdircoszw" ) + call Mppdb_check( pcosslope, "Turb_hor_splt beg:pcosslope" ) + call Mppdb_check( psinslope, "Turb_hor_splt beg:psinslope" ) + call Mppdb_check( prhodj, "Turb_hor_splt beg:prhodj" ) + call Mppdb_check( pthvref, "Turb_hor_splt beg:pthvref" ) + call Mppdb_check( psfthm, "Turb_hor_splt beg:psfthm" ) + call Mppdb_check( psfrm, "Turb_hor_splt beg:psfrm" ) + call Mppdb_check( psfsvm, "Turb_hor_splt beg:psfsvm" ) + call Mppdb_check( pcdueff, "Turb_hor_splt beg:pcdueff" ) + call Mppdb_check( ptau11m, "Turb_hor_splt beg:ptau11m" ) + call Mppdb_check( ptau12m, "Turb_hor_splt beg:ptau12m" ) + call Mppdb_check( ptau33m, "Turb_hor_splt beg:ptau33m" ) + call Mppdb_check( pum, "Turb_hor_splt beg:pum" ) + call Mppdb_check( pvm, "Turb_hor_splt beg:pvm" ) + call Mppdb_check( pwm, "Turb_hor_splt beg:pwm" ) + call Mppdb_check( pthlm, "Turb_hor_splt beg:pthlm" ) + call Mppdb_check( prm, "Turb_hor_splt beg:prm" ) + call Mppdb_check( psvm, "Turb_hor_splt beg:psvm" ) + call Mppdb_check( puslopem, "Turb_hor_splt beg:puslopem" ) + call Mppdb_check( pvslopem, "Turb_hor_splt beg:pvslopem" ) + call Mppdb_check( ptkem, "Turb_hor_splt beg:ptkem" ) + call Mppdb_check( plm, "Turb_hor_splt beg:plm" ) + call Mppdb_check( pleps, "Turb_hor_splt beg:pleps" ) + call Mppdb_check( plocpexnm, "Turb_hor_splt beg:plocpexnm" ) + call Mppdb_check( patheta, "Turb_hor_splt beg:patheta" ) + call Mppdb_check( pamoist, "Turb_hor_splt beg:pamoist" ) + call Mppdb_check( psrcm, "Turb_hor_splt beg:psrcm" ) + call Mppdb_check( pfrac_ice, "Turb_hor_splt beg:pfrac_ice" ) + !Check all inout arrays + call Mppdb_check( prus, "Turb_hor_splt beg:prus" ) + call Mppdb_check( prvs, "Turb_hor_splt beg:prvs" ) + call Mppdb_check( prws, "Turb_hor_splt beg:prws" ) + call Mppdb_check( prthls, "Turb_hor_splt beg:prthls" ) + call Mppdb_check( prsvs, "Turb_hor_splt beg:prsvs" ) + call Mppdb_check( prrs, "Turb_hor_splt beg:prrs" ) + call Mppdb_check( pdp, "Turb_hor_splt beg:pdp" ) + call Mppdb_check( ptp, "Turb_hor_splt beg:ptp" ) + call Mppdb_check( psigs, "Turb_hor_splt beg:psigs" ) +end if ! !* 1. PRELIMINARY COMPUTATIONS ! ------------------------ @@ -704,6 +755,21 @@ DEALLOCATE(ZINV_PDYY) DEALLOCATE(ZINV_PDZZ) DEALLOCATE(ZMZM_PRHODJ) +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( prus, "Turb_hor_splt beg:prus" ) + call Mppdb_check( prvs, "Turb_hor_splt beg:prvs" ) + call Mppdb_check( prws, "Turb_hor_splt beg:prws" ) + call Mppdb_check( prthls, "Turb_hor_splt beg:prthls" ) + call Mppdb_check( prsvs, "Turb_hor_splt beg:prsvs" ) + call Mppdb_check( prrs, "Turb_hor_splt beg:prrs" ) + call Mppdb_check( pdp, "Turb_hor_splt beg:pdp" ) + call Mppdb_check( ptp, "Turb_hor_splt beg:ptp" ) + call Mppdb_check( psigs, "Turb_hor_splt beg:psigs" ) + !Check all out arrays + call Mppdb_check( ptrh, "Turb_hor_splt beg:ptrh" ) +end if + !$acc end data END SUBROUTINE TURB_HOR_SPLT diff --git a/src/MNH/turb_hor_sv_corr.f90 b/src/MNH/turb_hor_sv_corr.f90 index 51093e435eb73012c1c14ac8a547d75b6d1a7319..9d1980b17b0888eb5bcf556032000e8818eb929d 100644 --- a/src/MNH/turb_hor_sv_corr.f90 +++ b/src/MNH/turb_hor_sv_corr.f90 @@ -92,6 +92,7 @@ USE MODD_NSV, ONLY : NSV,NSV_LGBEG,NSV_LGEND USE MODD_LES USE MODD_BLOWSNOW ! +use mode_mppdb #ifdef MNH_OPENACC use mode_msg #endif @@ -158,6 +159,28 @@ REAL :: ZCSV !constant for the scalar flux #ifdef MNH_OPENACC call Print_msg( NVERB_FATAL, 'GEN', 'TURB_HOR_SV_CORR', 'OpenACC: not yet implemented' ) #endif + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pdxx, "Turb_hor_sv_corr beg:pdxx" ) + call Mppdb_check( pdyy, "Turb_hor_sv_corr beg:pdyy" ) + call Mppdb_check( pdzz, "Turb_hor_sv_corr beg:pdzz" ) + call Mppdb_check( pdzx, "Turb_hor_sv_corr beg:pdzx" ) + call Mppdb_check( pdzy, "Turb_hor_sv_corr beg:pdzy" ) + call Mppdb_check( plm, "Turb_hor_sv_corr beg:plm" ) + call Mppdb_check( pleps, "Turb_hor_sv_corr beg:pleps" ) + call Mppdb_check( PTKEM, "Turb_hor_sv_corr beg:PTKEM" ) + call Mppdb_check( PTHVREF, "Turb_hor_sv_corr beg:PTHVREF" ) + call Mppdb_check( PTHLM, "Turb_hor_sv_corr beg:PTHLM" ) + call Mppdb_check( PRM, "Turb_hor_sv_corr beg:PRM" ) + call Mppdb_check( plocpexnm, "Turb_hor_sv_corr beg:plocpexnm" ) + call Mppdb_check( patheta, "Turb_hor_sv_corr beg:patheta" ) + call Mppdb_check( pamoist, "Turb_hor_sv_corr beg:pamoist" ) + call Mppdb_check( psrcm, "Turb_hor_sv_corr beg:psrcm" ) + call Mppdb_check( PWM, "Turb_hor_sv_corr beg:PWM" ) + call Mppdb_check( PSVM, "Turb_hor_sv_corr beg:PSVM" ) +end if + IKU=SIZE(PTKEM,3) CALL SECOND_MNH(ZTIME1) ! diff --git a/src/MNH/turb_hor_sv_flux.f90 b/src/MNH/turb_hor_sv_flux.f90 index 912594eef1b6f8d37892aa593fa01a8b96f29d8a..7130599a0a11e4ea9f64db469e3b42aead86a845 100644 --- a/src/MNH/turb_hor_sv_flux.f90 +++ b/src/MNH/turb_hor_sv_flux.f90 @@ -122,6 +122,7 @@ USE MODD_BLOWSNOW ! USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_IO_FIELD_WRITE, only: IO_Field_write +use mode_mppdb ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -208,6 +209,28 @@ REAL, DIMENSION(SIZE(PSVM,1),SIZE(PSVM,2),SIZE(PSVM,3)) :: ZTMP1_DEVICE,ZTMP2_DE !$acc & PSFSVM, & !$acc & PSVM, & !$acc & PRSVS ) + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pk, "Turb_hor_sv_flux beg:pk" ) + call Mppdb_check( pinv_pdxx, "Turb_hor_sv_flux beg:pinv_pdxx" ) + call Mppdb_check( pinv_pdyy, "Turb_hor_sv_flux beg:pinv_pdyy" ) + call Mppdb_check( pinv_pdzz, "Turb_hor_sv_flux beg:pinv_pdzz" ) + call Mppdb_check( pmzm_prhodj, "Turb_hor_sv_flux beg:pmzm_prhodj" ) + call Mppdb_check( pdxx, "Turb_hor_sv_flux beg:pdxx" ) + call Mppdb_check( pdyy, "Turb_hor_sv_flux beg:pdyy" ) + call Mppdb_check( pdzz, "Turb_hor_sv_flux beg:pdzz" ) + call Mppdb_check( pdzx, "Turb_hor_sv_flux beg:pdzx" ) + call Mppdb_check( pdzy, "Turb_hor_sv_flux beg:pdzy" ) + call Mppdb_check( pdircosxw, "Turb_hor_sv_flux beg:pdircosxw" ) + call Mppdb_check( pdircosyw, "Turb_hor_sv_flux beg:pdircosyw" ) + call Mppdb_check( prhodj, "Turb_hor_sv_flux beg:prhodj" ) + call Mppdb_check( pwm, "Turb_hor_sv_flux beg:pwm" ) + call Mppdb_check( psfsvm, "Turb_hor_sv_flux beg:psfsvm" ) + call Mppdb_check( psvm, "Turb_hor_sv_flux beg:psvm" ) + !Check all inout arrays + call Mppdb_check( prsvs, "Turb_hor_sv_flux beg:prsvs" ) +end if ! !* 1. PRELIMINARY COMPUTATIONS ! ------------------------ @@ -573,6 +596,11 @@ DO JSV=1,ISV ! END DO ! end loop JSV +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( prsvs, "Turb_hor_sv_flux end:prsvs" ) +end if + !$acc end data END SUBROUTINE TURB_HOR_SV_FLUX diff --git a/src/MNH/turb_hor_thermo_corr.f90 b/src/MNH/turb_hor_thermo_corr.f90 index 3b4bdd4f5f5b9df751dffa01d56076f5e6249b48..a498056b10a95d5421c3c6206e5a7f1f5ca92347 100644 --- a/src/MNH/turb_hor_thermo_corr.f90 +++ b/src/MNH/turb_hor_thermo_corr.f90 @@ -128,6 +128,7 @@ USE MODD_LES ! USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_IO_FIELD_WRITE, only: IO_Field_write +use mode_mppdb ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -226,6 +227,30 @@ REAL, DIMENSION(SIZE(PTHLM,1),SIZE(PTHLM,2),SIZE(PTHLM,3)) :: ZTMP5_DEVICE,ZTMP6 !$acc & PTKEM, PLM, PLEPS, & !$acc & PLOCPEXNM, PATHETA, PAMOIST, PSRCM, & !$acc & PSIGS ) + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pinv_pdxx, "Turb_hor_thermo_corr beg:pinv_pdxx" ) + call Mppdb_check( pinv_pdyy, "Turb_hor_thermo_corr beg:pinv_pdyy" ) + call Mppdb_check( pdxx, "Turb_hor_thermo_corr beg:pdxx" ) + call Mppdb_check( pdyy, "Turb_hor_thermo_corr beg:pdyy" ) + call Mppdb_check( pdzz, "Turb_hor_thermo_corr beg:pdzz" ) + call Mppdb_check( pdzx, "Turb_hor_thermo_corr beg:pdzx" ) + call Mppdb_check( pdzy, "Turb_hor_thermo_corr beg:pdzy" ) + call Mppdb_check( pthvref, "Turb_hor_thermo_corr beg:pthvref" ) + call Mppdb_check( pwm, "Turb_hor_thermo_corr beg:pwm" ) + call Mppdb_check( pthlm, "Turb_hor_thermo_corr beg:pthlm" ) + call Mppdb_check( prm, "Turb_hor_thermo_corr beg:prm" ) + call Mppdb_check( ptkem, "Turb_hor_thermo_corr beg:ptkem" ) + call Mppdb_check( plm, "Turb_hor_thermo_corr beg:plm" ) + call Mppdb_check( pleps, "Turb_hor_thermo_corr beg:pleps" ) + call Mppdb_check( plocpexnm, "Turb_hor_thermo_corr beg:plocpexnm" ) + call Mppdb_check( patheta, "Turb_hor_thermo_corr beg:patheta" ) + call Mppdb_check( pamoist, "Turb_hor_thermo_corr beg:pamoist" ) + call Mppdb_check( psrcm, "Turb_hor_thermo_corr beg:psrcm" ) + !Check all inout arrays + call Mppdb_check( psigs, "Turb_hor_thermo_corr beg:psigs" ) +end if ! !* 1. PRELIMINARY COMPUTATIONS ! ------------------------ @@ -810,6 +835,11 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. OCLOSE_OUT ) & ! END IF +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( psigs, "Turb_hor_thermo_corr end:psigs" ) +end if + !$acc end data END SUBROUTINE TURB_HOR_THERMO_CORR diff --git a/src/MNH/turb_hor_thermo_flux.f90 b/src/MNH/turb_hor_thermo_flux.f90 index 8ca1a0c4eae1cacf2e7193fb0a13b325eb6027c5..4d047394a6377774d65f8518455e98c254790f8d 100644 --- a/src/MNH/turb_hor_thermo_flux.f90 +++ b/src/MNH/turb_hor_thermo_flux.f90 @@ -138,6 +138,7 @@ USE MODD_LES ! USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_IO_FIELD_WRITE, only: IO_Field_write +use mode_mppdb ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -239,6 +240,34 @@ TYPE(TFIELDDATA) :: TZFIELD !$acc & PWM, PTHLM, PRM, & !$acc & PATHETA, PAMOIST, PSRCM, PFRAC_ICE, & !$acc & PRTHLS, PRRS ) + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pinv_pdxx, "Turb_hor_thermo_flux beg:pinv_pdxx" ) + call Mppdb_check( pinv_pdyy, "Turb_hor_thermo_flux beg:pinv_pdyy" ) + call Mppdb_check( pinv_pdzz, "Turb_hor_thermo_flux beg:pinv_pdzz" ) + call Mppdb_check( pmzm_prhodj, "Turb_hor_thermo_flux beg:pmzm_prhodj" ) + call Mppdb_check( pdxx, "Turb_hor_thermo_flux beg:pdxx" ) + call Mppdb_check( pdyy, "Turb_hor_thermo_flux beg:pdyy" ) + call Mppdb_check( pdzz, "Turb_hor_thermo_flux beg:pdzz" ) + call Mppdb_check( pdzx, "Turb_hor_thermo_flux beg:pdzx" ) + call Mppdb_check( pdzy, "Turb_hor_thermo_flux beg:pdzy" ) + call Mppdb_check( pdircosxw, "Turb_hor_thermo_flux beg:pdircosxw" ) + call Mppdb_check( pdircosyw, "Turb_hor_thermo_flux beg:pdircosyw" ) + call Mppdb_check( prhodj, "Turb_hor_thermo_flux beg:prhodj" ) + call Mppdb_check( psfthm, "Turb_hor_thermo_flux beg:psfthm" ) + call Mppdb_check( psfrm, "Turb_hor_thermo_flux beg:psfrm" ) + call Mppdb_check( pwm, "Turb_hor_thermo_flux beg:pwm" ) + call Mppdb_check( pthlm, "Turb_hor_thermo_flux beg:pthlm" ) + call Mppdb_check( prm, "Turb_hor_thermo_flux beg:prm" ) + call Mppdb_check( patheta, "Turb_hor_thermo_flux beg:patheta" ) + call Mppdb_check( pamoist, "Turb_hor_thermo_flux beg:pamoist" ) + call Mppdb_check( psrcm, "Turb_hor_thermo_flux beg:psrcm" ) + call Mppdb_check( pfrac_ice, "Turb_hor_thermo_flux beg:pfrac_ice" ) + !Check all inout arrays + call Mppdb_check( prthls, "Turb_hor_thermo_flux beg:prthls" ) + call Mppdb_check( prrs, "Turb_hor_thermo_flux beg:prrs" ) +end if ! !* 1. PRELIMINARY COMPUTATIONS ! ------------------------ @@ -1638,6 +1667,12 @@ END IF !! ZVPTV(:,:,:)=ZWORK(:,:,:) !!END IF +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( prthls, "Turb_hor_thermo_flux end:prthls" ) + call Mppdb_check( prrs, "Turb_hor_thermo_flux end:prrs" ) +end if + !$acc end data END SUBROUTINE TURB_HOR_THERMO_FLUX diff --git a/src/MNH/turb_hor_tke.f90 b/src/MNH/turb_hor_tke.f90 index d76269d41ef1af10e26efc6fa2ef7ea2e04a3411..59d40b8929090cd1085592aa477b2dc9f5bb6c56 100644 --- a/src/MNH/turb_hor_tke.f90 +++ b/src/MNH/turb_hor_tke.f90 @@ -86,8 +86,9 @@ USE MODD_CST USE MODD_CTURB USE MODD_PARAMETERS USE MODD_LES -! -! + +use mode_mppdb + #ifndef MNH_OPENACC USE MODI_SHUMAN #else @@ -144,6 +145,24 @@ REAL, DIMENSION(SIZE(PTKEM,1),SIZE(PTKEM,2),SIZE(PTKEM,3)) :: ZTMP1_DEVICE,ZTMP2 !$acc & PINV_PDXX, PINV_PDYY, PINV_PDZZ, PMZM_PRHODJ, & !$acc & PK, PRHODJ, PTKEM, & !$acc & PTRH ) + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pdxx, "Turb_hor_tke beg:pdxx" ) + call Mppdb_check( pdyy, "Turb_hor_tke beg:pdyy" ) + call Mppdb_check( pdzz, "Turb_hor_tke beg:pdzz" ) + call Mppdb_check( pdzx, "Turb_hor_tke beg:pdzx" ) + call Mppdb_check( pdzy, "Turb_hor_tke beg:pdzy" ) + call Mppdb_check( pk, "Turb_hor_tke beg:pk" ) + call Mppdb_check( pinv_pdxx, "Turb_hor_tke beg:pinv_pdxx" ) + call Mppdb_check( pinv_pdyy, "Turb_hor_tke beg:pinv_pdyy" ) + call Mppdb_check( pinv_pdzz, "Turb_hor_tke beg:pinv_pdzz" ) + call Mppdb_check( pmzm_prhodj, "Turb_hor_tke beg:pmzm_prhodj" ) + call Mppdb_check( prhodj, "Turb_hor_tke beg:prhodj" ) + call Mppdb_check( ptkem, "Turb_hor_tke beg:ptkem" ) + !Check all inout arrays + call Mppdb_check( ptrh, "Turb_hor_tke beg:ptrh" ) +end if ! !* 1. PRELIMINARY COMPUTATIONS ! ------------------------ @@ -396,6 +415,11 @@ IF (.NOT. L2D) THEN ! END IF +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( ptrh, "Turb_hor_tke end:ptrh" ) +end if + !$acc end data !---------------------------------------------------------------------------- diff --git a/src/MNH/turb_hor_uv.f90 b/src/MNH/turb_hor_uv.f90 index 5336c5cfa2cc710413a018bf813fbf3614116959..12f8d45f1406417043cbb0af4789d8865cd78807 100644 --- a/src/MNH/turb_hor_uv.f90 +++ b/src/MNH/turb_hor_uv.f90 @@ -134,6 +134,7 @@ USE MODD_LES ! USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_IO_FIELD_WRITE, only: IO_Field_write +use mode_mppdb ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -237,6 +238,37 @@ TYPE(TFIELDDATA) :: TZFIELD !$acc & PDIRCOSZW, PCOSSLOPE, PSINSLOPE, PRHODJ, PCDUEFF, PTAU11M, PTAU12M, PTAU22M, PTAU33M, & !$acc & PUM, PVM, PUSLOPEM, PVSLOPEM, & !$acc & PRUS, PRVS, PDP ) + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pk, "Turb_hor_uv beg:pk" ) + call Mppdb_check( pinv_pdxx, "Turb_hor_uv beg:pinv_pdxx" ) + call Mppdb_check( pinv_pdyy, "Turb_hor_uv beg:pinv_pdyy" ) + call Mppdb_check( pinv_pdzz, "Turb_hor_uv beg:pinv_pdzz" ) + call Mppdb_check( pmzm_prhodj, "Turb_hor_uv beg:pmzm_prhodj" ) + call Mppdb_check( pdxx, "Turb_hor_uv beg:pdxx" ) + call Mppdb_check( pdyy, "Turb_hor_uv beg:pdyy" ) + call Mppdb_check( pdzz, "Turb_hor_uv beg:pdzz" ) + call Mppdb_check( pdzx, "Turb_hor_uv beg:pdzx" ) + call Mppdb_check( pdzy, "Turb_hor_uv beg:pdzy" ) + call Mppdb_check( pdircoszw, "Turb_hor_uv beg:pdircoszw" ) + call Mppdb_check( pcosslope, "Turb_hor_uv beg:pcosslope" ) + call Mppdb_check( psinslope, "Turb_hor_uv beg:psinslope" ) + call Mppdb_check( prhodj, "Turb_hor_uv beg:prhodj" ) + call Mppdb_check( pcdueff, "Turb_hor_uv beg:pcdueff" ) + call Mppdb_check( ptau11m, "Turb_hor_uv beg:ptau11m" ) + call Mppdb_check( ptau12m, "Turb_hor_uv beg:ptau12m" ) + call Mppdb_check( ptau22m, "Turb_hor_uv beg:ptau22m" ) + call Mppdb_check( ptau33m, "Turb_hor_uv beg:ptau33m" ) + call Mppdb_check( pum, "Turb_hor_uv beg:pum" ) + call Mppdb_check( pvm, "Turb_hor_uv beg:pvm" ) + call Mppdb_check( puslopem, "Turb_hor_uv beg:puslopem" ) + call Mppdb_check( pvslopem, "Turb_hor_uv beg:pvslopem" ) + !Check all inout arrays + call Mppdb_check( prus, "Turb_hor_uv beg:prus" ) + call Mppdb_check( prvs, "Turb_hor_uv beg:prvs" ) + call Mppdb_check( pdp, "Turb_hor_uv beg:pdp" ) +end if ! !* 1. PRELIMINARY COMPUTATIONS ! ------------------------ @@ -653,6 +685,13 @@ IF (LLES_CALL .AND. KSPLT==1) THEN XTIME_LES = XTIME_LES + ZTIME2 - ZTIME1 END IF +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( prus, "Turb_hor_uv end:prus" ) + call Mppdb_check( prvs, "Turb_hor_uv end:prvs" ) + call Mppdb_check( pdp, "Turb_hor_uv end:pdp" ) +end if + !$acc end data END SUBROUTINE TURB_HOR_UV diff --git a/src/MNH/turb_hor_uw.f90 b/src/MNH/turb_hor_uw.f90 index f372a66c58d9097f2d0048fbabb6a8dc9e313a04..d57b580fb819dc2b0ec6907a79df99a5ffd1e573 100644 --- a/src/MNH/turb_hor_uw.f90 +++ b/src/MNH/turb_hor_uw.f90 @@ -124,6 +124,7 @@ USE MODD_NSV ! USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_IO_FIELD_WRITE, only: IO_Field_write +use mode_mppdb ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -206,6 +207,30 @@ TYPE(TFIELDDATA) :: TZFIELD !$acc & PRHODJ, PTHVREF, & !$acc & PUM, PWM, PTHLM, PRM, PSVM, PTKEM, PLM, & !$acc & PRUS, PRWS, PDP ) + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pk, "Turb_hor_uw beg:pk" ) + call Mppdb_check( pinv_pdxx, "Turb_hor_uw beg:pinv_pdxx" ) + call Mppdb_check( pinv_pdzz, "Turb_hor_uw beg:pinv_pdzz" ) + call Mppdb_check( pmzm_prhodj, "Turb_hor_uw beg:pmzm_prhodj" ) + call Mppdb_check( pdxx, "Turb_hor_uw beg:pdxx" ) + call Mppdb_check( pdzz, "Turb_hor_uw beg:pdzz" ) + call Mppdb_check( pdzx, "Turb_hor_uw beg:pdzx" ) + call Mppdb_check( prhodj, "Turb_hor_uw beg:prhodj" ) + call Mppdb_check( pthvref, "Turb_hor_uw beg:pthvref" ) + call Mppdb_check( pum, "Turb_hor_uw beg:pum" ) + call Mppdb_check( pwm, "Turb_hor_uw beg:pwm" ) + call Mppdb_check( pthlm, "Turb_hor_uw beg:pthlm" ) + call Mppdb_check( prm, "Turb_hor_uw beg:prm" ) + call Mppdb_check( psvm, "Turb_hor_uw beg:psvm" ) + call Mppdb_check( ptkem, "Turb_hor_uw beg:ptkem" ) + call Mppdb_check( plm, "Turb_hor_uw beg:plm" ) + !Check all inout arrays + call Mppdb_check( prus, "Turb_hor_uw beg:prus" ) + call Mppdb_check( prws, "Turb_hor_uw beg:prws" ) + call Mppdb_check( pdp, "Turb_hor_uw beg:pdp" ) +end if ! !* 1. PRELIMINARY COMPUTATIONS ! ------------------------ @@ -472,6 +497,13 @@ IF (LLES_CALL .AND. KSPLT==1) THEN XTIME_LES = XTIME_LES + ZTIME2 - ZTIME1 END IF +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( prus, "Turb_hor_uw end:prus" ) + call Mppdb_check( prws, "Turb_hor_uw end:prws" ) + call Mppdb_check( pdp, "Turb_hor_uw end:pdp" ) +end if + !$acc end data END SUBROUTINE TURB_HOR_UW diff --git a/src/MNH/turb_hor_vw.f90 b/src/MNH/turb_hor_vw.f90 index 737f60737dd28f5bdebaa8455037524044ef979c..21a5965d633854df9deb7b6559e495aec37b2a3e 100644 --- a/src/MNH/turb_hor_vw.f90 +++ b/src/MNH/turb_hor_vw.f90 @@ -123,6 +123,7 @@ USE MODD_NSV ! USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_IO_FIELD_WRITE, only: IO_Field_write +use mode_mppdb ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -207,6 +208,29 @@ TYPE(TFIELDDATA) :: TZFIELD !$acc & PRHODJ, PTHVREF, & !$acc & PVM, PWM, PTHLM, PRM, PSVM, PTKEM, PLM, & !$acc & PRVS, PRWS, PDP) + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pk, "Turb_hor_vw beg:pk" ) + call Mppdb_check( pinv_pdyy, "Turb_hor_vw beg:pinv_pdyy" ) + call Mppdb_check( pinv_pdzz, "Turb_hor_vw beg:pinv_pdzz" ) + call Mppdb_check( pdyy, "Turb_hor_vw beg:pdyy" ) + call Mppdb_check( pdzz, "Turb_hor_vw beg:pdzz" ) + call Mppdb_check( pdzy, "Turb_hor_vw beg:pdzy" ) + call Mppdb_check( prhodj, "Turb_hor_vw beg:prhodj" ) + call Mppdb_check( pthvref, "Turb_hor_vw beg:pthvref" ) + call Mppdb_check( pvm, "Turb_hor_vw beg:pvm" ) + call Mppdb_check( pwm, "Turb_hor_vw beg:pwm" ) + call Mppdb_check( pthlm, "Turb_hor_vw beg:pthlm" ) + call Mppdb_check( prm, "Turb_hor_vw beg:prm" ) + call Mppdb_check( psvm, "Turb_hor_vw beg:psvm" ) + call Mppdb_check( ptkem, "Turb_hor_vw beg:ptkem" ) + call Mppdb_check( plm, "Turb_hor_vw beg:plm" ) + !Check all inout arrays + call Mppdb_check( prvs, "Turb_hor_vw beg:prvs" ) + call Mppdb_check( prws, "Turb_hor_vw beg:prws" ) + call Mppdb_check( pdp, "Turb_hor_vw beg:pdp" ) +end if ! !* 1. PRELIMINARY COMPUTATIONS ! ------------------------ @@ -511,6 +535,13 @@ IF (LLES_CALL .AND. KSPLT==1) THEN XTIME_LES = XTIME_LES + ZTIME2 - ZTIME1 END IF +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( prvs, "Turb_hor_vw end:prvs" ) + call Mppdb_check( prws, "Turb_hor_vw end:prws" ) + call Mppdb_check( pdp, "Turb_hor_vw end:pdp" ) +end if + !$acc end data END SUBROUTINE TURB_HOR_VW diff --git a/src/MNH/turb_ver.f90 b/src/MNH/turb_ver.f90 index 287e96f220fda24a056434725079c009d37fb9c7..a6ac40f97a817a518a698ad5e245f8056d853ad0 100644 --- a/src/MNH/turb_ver.f90 +++ b/src/MNH/turb_ver.f90 @@ -344,6 +344,7 @@ USE MODI_SBL_DEPTH ! USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_IO_FIELD_WRITE, only: IO_Field_write +use mode_mppdb USE MODE_PRANDTL ! USE MODI_SECOND_MNH @@ -495,6 +496,63 @@ TYPE(TFIELDDATA) :: TZFIELD !$acc & ZBLL_O_E, ZETHETA, ZEMOIST, ZREDTH1, ZREDR1, & !$acc & ZPHI3, ZPSI3, ZD, ZWTHV, ZWU, ZWV, ZTHLP, ZRP, & !$acc & ZPSI_SV, ZREDS1, ZRED2THS, ZRED2RS ) + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pdxx, "Turb_ver beg:pdxx" ) + call Mppdb_check( pdyy, "Turb_ver beg:pdyy" ) + call Mppdb_check( pdzz, "Turb_ver beg:pdzz" ) + call Mppdb_check( pdzx, "Turb_ver beg:pdzx" ) + call Mppdb_check( pdzy, "Turb_ver beg:pdzy" ) + call Mppdb_check( pdircoszw, "Turb_ver beg:pdircoszw" ) + call Mppdb_check( pzz, "Turb_ver beg:pzz" ) + call Mppdb_check( pcosslope, "Turb_ver beg:pcosslope" ) + call Mppdb_check( psinslope, "Turb_ver beg:psinslope" ) + call Mppdb_check( prhodj, "Turb_ver beg:prhodj" ) + call Mppdb_check( pthvref, "Turb_ver beg:pthvref" ) + call Mppdb_check( psfthm, "Turb_ver beg:psfthm" ) + call Mppdb_check( psfrm, "Turb_ver beg:psfrm" ) + call Mppdb_check( psfsvm, "Turb_ver beg:psfsvm" ) + call Mppdb_check( psfthp, "Turb_ver beg:psfthp" ) + call Mppdb_check( psfrp, "Turb_ver beg:psfrp" ) + call Mppdb_check( psfsvp, "Turb_ver beg:psfsvp" ) + call Mppdb_check( pcdueff, "Turb_ver beg:pcdueff" ) + call Mppdb_check( ptau11m, "Turb_ver beg:ptau11m" ) + call Mppdb_check( ptau12m, "Turb_ver beg:ptau12m" ) + call Mppdb_check( ptau33m, "Turb_ver beg:ptau33m" ) + call Mppdb_check( pum, "Turb_ver beg:pum" ) + call Mppdb_check( pvm, "Turb_ver beg:pvm" ) + call Mppdb_check( pwm, "Turb_ver beg:pwm" ) + call Mppdb_check( pthlm, "Turb_ver beg:pthlm" ) + call Mppdb_check( prm, "Turb_ver beg:prm" ) + call Mppdb_check( psvm, "Turb_ver beg:psvm" ) + call Mppdb_check( puslopem, "Turb_ver beg:puslopem" ) + call Mppdb_check( pvslopem, "Turb_ver beg:pvslopem" ) + call Mppdb_check( ptkem, "Turb_ver beg:ptkem" ) + call Mppdb_check( plm, "Turb_ver beg:plm" ) + call Mppdb_check( pleps, "Turb_ver beg:pleps" ) + call Mppdb_check( plocpexnm, "Turb_ver beg:plocpexnm" ) + call Mppdb_check( patheta, "Turb_ver beg:patheta" ) + call Mppdb_check( pamoist, "Turb_ver beg:pamoist" ) + call Mppdb_check( psrcm, "Turb_ver beg:psrcm" ) + call Mppdb_check( pfrac_ice, "Turb_ver beg:pfrac_ice" ) + call Mppdb_check( pfwth, "Turb_ver beg:pfwth" ) + call Mppdb_check( pfwr, "Turb_ver beg:pfwr" ) + call Mppdb_check( pfth2, "Turb_ver beg:pfth2" ) + call Mppdb_check( pfr2, "Turb_ver beg:pfr2" ) + call Mppdb_check( pfthr, "Turb_ver beg:pfthr" ) + call Mppdb_check( plmo, "Turb_ver beg:plmo" ) + !Check all inout arrays + call Mppdb_check( pbl_depth, "Turb_ver beg:pbl_depth" ) + call Mppdb_check( psbl_depth, "Turb_ver beg:psbl_depth" ) + call Mppdb_check( plmo, "Turb_ver beg:plmo" ) + call Mppdb_check( prus, "Turb_ver beg:prus" ) + call Mppdb_check( prvs, "Turb_ver beg:prvs" ) + call Mppdb_check( prws, "Turb_ver beg:prws" ) + call Mppdb_check( prthls, "Turb_ver beg:prthls" ) + call Mppdb_check( prsvs, "Turb_ver beg:prsvs" ) + call Mppdb_check( prrs, "Turb_ver beg:prrs" ) +end if ! !* 1. PRELIMINARIES ! ------------- @@ -760,7 +818,27 @@ IF ( OTURB_FLX .AND. OCLOSE_OUT ) THEN ! END IF +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( pbl_depth, "Turb_ver end:pbl_depth" ) + call Mppdb_check( psbl_depth, "Turb_ver end:psbl_depth" ) + call Mppdb_check( plmo, "Turb_ver end:plmo" ) + call Mppdb_check( prus, "Turb_ver end:prus" ) + call Mppdb_check( prvs, "Turb_ver end:prvs" ) + call Mppdb_check( prws, "Turb_ver end:prws" ) + call Mppdb_check( prthls, "Turb_ver end:prthls" ) + call Mppdb_check( prsvs, "Turb_ver end:prsvs" ) + call Mppdb_check( prrs, "Turb_ver end:prrs" ) + !check all out arrays + call Mppdb_check( pdp, "Turb_ver end:pdp" ) + call Mppdb_check( ptp, "Turb_ver end:ptp" ) + call Mppdb_check( psigs, "Turb_ver end:psigs" ) + call Mppdb_check( pwth, "Turb_ver end:pwth" ) + call Mppdb_check( pwrc, "Turb_ver end:pwrc" ) + call Mppdb_check( pwsv, "Turb_ver end:pwsv" ) +end if + !$acc end data !---------------------------------------------------------------------------- -END SUBROUTINE TURB_VER +END SUBROUTINE TURB_VER diff --git a/src/MNH/turb_ver_dyn_flux.f90 b/src/MNH/turb_ver_dyn_flux.f90 index 1da74655aeb9e95dd9c493404c198c31c9a5c368..0649f04cf68103bc860631b2245d93fda9768cba 100644 --- a/src/MNH/turb_ver_dyn_flux.f90 +++ b/src/MNH/turb_ver_dyn_flux.f90 @@ -313,6 +313,7 @@ USE MODI_TRIDIAG_WIND USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll +use mode_mppdb ! IMPLICIT NONE ! @@ -421,6 +422,17 @@ TYPE(TFIELDDATA) :: TZFIELD !$acc & PTKEM, PLM, PWU, PWV, & !$acc & PRUS, PRVS, PRWS, & !$acc & PDP ) + +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( prus, "Turb_ver_dyn_flux end:prus" ) + call Mppdb_check( prvs, "Turb_ver_dyn_flux end:prvs" ) + call Mppdb_check( prws, "Turb_ver_dyn_flux end:prws" ) + !Check all out arrays + call Mppdb_check( pwu, "Turb_ver_dyn_flux end:pwu" ) + call Mppdb_check( pwv, "Turb_ver_dyn_flux end:pwv" ) + call Mppdb_check( pdp, "Turb_ver_dyn_flux end:pdp" ) +end if ! !* 1. PRELIMINARIES ! ------------- @@ -1312,6 +1324,17 @@ IF ( OTURB_FLX .AND. OCLOSE_OUT .AND. HTURBDIM == '1DIM') THEN CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( prus, "Turb_ver_dyn_flux end:prus" ) + call Mppdb_check( prvs, "Turb_ver_dyn_flux end:prvs" ) + call Mppdb_check( prws, "Turb_ver_dyn_flux end:prws" ) + !Check all out arrays + call Mppdb_check( pwu, "Turb_ver_dyn_flux end:pwu" ) + call Mppdb_check( pwv, "Turb_ver_dyn_flux end:pwv" ) + call Mppdb_check( pdp, "Turb_ver_dyn_flux end:pdp" ) +end if + !$acc end data !---------------------------------------------------------------------------- diff --git a/src/MNH/turb_ver_sv_corr.f90 b/src/MNH/turb_ver_sv_corr.f90 index f3b1fcc7158c98ee691791ca9394e14ceb5f3f77..1f73e0c12079375af14c1300faff2fa3f14a0a26 100644 --- a/src/MNH/turb_ver_sv_corr.f90 +++ b/src/MNH/turb_ver_sv_corr.f90 @@ -105,6 +105,7 @@ USE MODD_CONF USE MODD_NSV, ONLY : NSV,NSV_LGBEG,NSV_LGEND USE MODD_BLOWSNOW ! +use mode_mppdb #ifdef MNH_OPENACC use mode_msg #endif @@ -177,6 +178,27 @@ REAL :: ZCQSVD = 2.4 ! constant for humidity - scalar covariance dissipation #ifdef MNH_OPENACC call Print_msg( NVERB_FATAL, 'GEN', 'TURB_VER_SV_CORR', 'OpenACC: not yet implemented' ) #endif + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pdzz, "Turb_ver_sv_corr beg:pdzz" ) + call Mppdb_check( pthlm, "Turb_ver_sv_corr beg:pthlm" ) + call Mppdb_check( prm, "Turb_ver_sv_corr beg:prm" ) + call Mppdb_check( pthvref, "Turb_ver_sv_corr beg:pthvref" ) + call Mppdb_check( plocpexnm, "Turb_ver_sv_corr beg:plocpexnm" ) + call Mppdb_check( patheta, "Turb_ver_sv_corr beg:patheta" ) + call Mppdb_check( pamoist, "Turb_ver_sv_corr beg:pamoist" ) + call Mppdb_check( psrcm, "Turb_ver_sv_corr beg:psrcm" ) + call Mppdb_check( pphi3, "Turb_ver_sv_corr beg:pphi3" ) + call Mppdb_check( ppsi3, "Turb_ver_sv_corr beg:ppsi3" ) + call Mppdb_check( pwm, "Turb_ver_sv_corr beg:pwm" ) + call Mppdb_check( psvm, "Turb_ver_sv_corr beg:psvm" ) + call Mppdb_check( ptkem, "Turb_ver_sv_corr beg:ptkem" ) + call Mppdb_check( plm, "Turb_ver_sv_corr beg:plm" ) + call Mppdb_check( pleps, "Turb_ver_sv_corr beg:pleps" ) + call Mppdb_check( ppsi_sv, "Turb_ver_sv_corr beg:ppsi_sv" ) +end if + CALL SECOND_MNH(ZTIME1) ! IF(LBLOWSNOW) THEN diff --git a/src/MNH/turb_ver_sv_flux.f90 b/src/MNH/turb_ver_sv_flux.f90 index ff35a82b04a6b01aa6546206a296422b0d3b05eb..fab9ce46ef8304945c9fe223f1d75ced66905d40 100644 --- a/src/MNH/turb_ver_sv_flux.f90 +++ b/src/MNH/turb_ver_sv_flux.f90 @@ -277,6 +277,7 @@ USE MODD_NSV, ONLY: XSVMIN, NSV_LGBEG, NSV_LGEND USE MODD_BLOWSNOW USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_IO_FIELD_WRITE, only: IO_Field_write +use mode_mppdb #ifdef MNH_OPENACC use mode_msg #endif @@ -372,6 +373,23 @@ TYPE(TFIELDDATA) :: TZFIELD #ifdef MNH_OPENACC call Print_msg( NVERB_FATAL, 'GEN', 'TURB_VER_SV_FLUX', 'OpenACC: not yet implemented' ) #endif + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pdzz, "Turb_ver_sv_flux beg:pdzz" ) + call Mppdb_check( pdircoszw, "Turb_ver_sv_flux beg:pdircoszw" ) + call Mppdb_check( prhodj, "Turb_ver_sv_flux beg:prhodj" ) + call Mppdb_check( psfsvm, "Turb_ver_sv_flux beg:psfsvm" ) + call Mppdb_check( psfsvp, "Turb_ver_sv_flux beg:psfsvp" ) + call Mppdb_check( psvm, "Turb_ver_sv_flux beg:psvm" ) + call Mppdb_check( pwm, "Turb_ver_sv_flux beg:pwm" ) + call Mppdb_check( ptkem, "Turb_ver_sv_flux beg:ptkem" ) + call Mppdb_check( plm, "Turb_ver_sv_flux beg:plm" ) + call Mppdb_check( ppsi_sv, "Turb_ver_sv_flux beg:ppsi_sv" ) + !Check all INOUT arrays + call Mppdb_check( prsvs, "Turb_ver_sv_flux beg:prsvs" ) +end if + IKB=KKA+JPVEXT_TURB*KKL IKE=KKU-JPVEXT_TURB*KKL IKT=SIZE(PSVM,3) @@ -493,7 +511,14 @@ DO JSV=1,ISV END IF ! END DO ! end of scalar loop -! + +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( prsvs, "Turb_ver_sv_flux end:prsvs" ) + !Check all out arrays + call Mppdb_check( pwsv, "Turb_ver_sv_flux end:pwsv" ) +END IF + !---------------------------------------------------------------------------- ! END SUBROUTINE TURB_VER_SV_FLUX diff --git a/src/MNH/turb_ver_thermo_corr.f90 b/src/MNH/turb_ver_thermo_corr.f90 index e5cc970da507aa8c5f01eef02e61990bc0759156..567c092ac9417445bbc136c99c38d1e0c4ffb0be 100644 --- a/src/MNH/turb_ver_thermo_corr.f90 +++ b/src/MNH/turb_ver_thermo_corr.f90 @@ -332,6 +332,7 @@ USE MODI_LES_MEAN_SUBGRID ! USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_IO_FIELD_WRITE, only: IO_Field_write +use mode_mppdb USE MODE_PRANDTL ! USE MODI_SECOND_MNH @@ -468,6 +469,55 @@ TYPE(TFIELDDATA) :: TZFIELD !$acc & PEMOIST, PREDTH1, PREDR1, PPHI3, PPSI3, PD, & !$acc & PFWTH, PFWR, PFTH2, PFR2, PFTHR, & !$acc & PTHLP, PRP, PSIGS ) + +if ( mppdb_initialized ) then + !Check all in arrays + call Mppdb_check( pdxx, "Turb_ver_thermo_corr beg:pdxx" ) + call Mppdb_check( pdyy, "Turb_ver_thermo_corr beg:pdyy" ) + call Mppdb_check( pdzz, "Turb_ver_thermo_corr beg:pdzz" ) + call Mppdb_check( pdzx, "Turb_ver_thermo_corr beg:pdzx" ) + call Mppdb_check( pdzy, "Turb_ver_thermo_corr beg:pdzy" ) + call Mppdb_check( pdircoszw, "Turb_ver_thermo_corr beg:pdircoszw" ) + call Mppdb_check( prhodj, "Turb_ver_thermo_corr beg:prhodj" ) + call Mppdb_check( pthvref, "Turb_ver_thermo_corr beg:pthvref" ) + call Mppdb_check( psfthm, "Turb_ver_thermo_corr beg:psfthm" ) + call Mppdb_check( psfrm, "Turb_ver_thermo_corr beg:psfrm" ) + call Mppdb_check( psfthp, "Turb_ver_thermo_corr beg:psfthp" ) + call Mppdb_check( psfrp, "Turb_ver_thermo_corr beg:psfrp" ) + call Mppdb_check( pwm, "Turb_ver_thermo_corr beg:pwm" ) + call Mppdb_check( pthlm, "Turb_ver_thermo_corr beg:pthlm" ) + call Mppdb_check( prm, "Turb_ver_thermo_corr beg:prm" ) + call Mppdb_check( psvm, "Turb_ver_thermo_corr beg:psvm" ) + call Mppdb_check( ptkem, "Turb_ver_thermo_corr beg:ptkem" ) + call Mppdb_check( plm, "Turb_ver_thermo_corr beg:plm" ) + call Mppdb_check( pleps, "Turb_ver_thermo_corr beg:pleps" ) + call Mppdb_check( plocpexnm, "Turb_ver_thermo_corr beg:plocpexnm" ) + call Mppdb_check( patheta, "Turb_ver_thermo_corr beg:patheta" ) + call Mppdb_check( pamoist, "Turb_ver_thermo_corr beg:pamoist" ) + call Mppdb_check( psrcm, "Turb_ver_thermo_corr beg:psrcm" ) + call Mppdb_check( pbeta, "Turb_ver_thermo_corr beg:pbeta" ) + call Mppdb_check( psqrt_tke, "Turb_ver_thermo_corr beg:psqrt_tke" ) + call Mppdb_check( pdth_dz, "Turb_ver_thermo_corr beg:pdth_dz" ) + call Mppdb_check( pdr_dz, "Turb_ver_thermo_corr beg:pdr_dz" ) + call Mppdb_check( pred2th3, "Turb_ver_thermo_corr beg:pred2th3" ) + call Mppdb_check( pred2r3, "Turb_ver_thermo_corr beg:pred2r3" ) + call Mppdb_check( pred2thr3, "Turb_ver_thermo_corr beg:pred2thr3" ) + call Mppdb_check( pbll_o_e, "Turb_ver_thermo_corr beg:pbll_o_e" ) + call Mppdb_check( petheta, "Turb_ver_thermo_corr beg:petheta" ) + call Mppdb_check( pemoist, "Turb_ver_thermo_corr beg:pemoist" ) + call Mppdb_check( predth1, "Turb_ver_thermo_corr beg:predth1" ) + call Mppdb_check( predr1, "Turb_ver_thermo_corr beg:predr1" ) + call Mppdb_check( pphi3, "Turb_ver_thermo_corr beg:pphi3" ) + call Mppdb_check( ppsi3, "Turb_ver_thermo_corr beg:ppsi3" ) + call Mppdb_check( pd, "Turb_ver_thermo_corr beg:pd" ) + call Mppdb_check( pfwth, "Turb_ver_thermo_corr beg:pfwth" ) + call Mppdb_check( pfwr, "Turb_ver_thermo_corr beg:pfwr" ) + call Mppdb_check( pfth2, "Turb_ver_thermo_corr beg:pfth2" ) + call Mppdb_check( pfr2, "Turb_ver_thermo_corr beg:pfr2" ) + call Mppdb_check( pfthr, "Turb_ver_thermo_corr beg:pfthr" ) + call Mppdb_check( pthlp, "Turb_ver_thermo_corr beg:pthlp" ) + call Mppdb_check( prp, "Turb_ver_thermo_corr beg:prp" ) +end if ! !* 1. PRELIMINARIES ! ------------- @@ -1383,11 +1433,11 @@ END IF ! IF ( KRRL > 0 ) THEN ! Extrapolate PSIGS at the ground and at the top - !$acc kernels +!$acc kernels PSIGS(:,:,KKA) = PSIGS(:,:,IKB) PSIGS(:,:,KKU) = PSIGS(:,:,IKE) PSIGS(:,:,:) = SQRT( MAX (PSIGS(:,:,:) , 1.E-12) ) - !$acc end kernels +!$acc end kernels END IF ! @@ -1395,6 +1445,11 @@ END IF ! DEALLOCATE(ZCOEFF) +if ( mppdb_initialized ) then + !Check all out arrays + call Mppdb_check( psigs, "Turb_ver_thermo_corr beg:psigs" ) +end if + !$acc end data !---------------------------------------------------------------------------- diff --git a/src/MNH/turb_ver_thermo_flux.f90 b/src/MNH/turb_ver_thermo_flux.f90 index ae1a70291ad801d34bb6a3bd671baf442dd32a97..e650cb5695251e1073fb774e5f0d36f1e1984752 100644 --- a/src/MNH/turb_ver_thermo_flux.f90 +++ b/src/MNH/turb_ver_thermo_flux.f90 @@ -494,6 +494,59 @@ TYPE(TFIELDDATA) :: TZFIELD !$acc & PEMOIST, PREDTH1, PREDR1, PPHI3, PPSI3, PD, & !$acc & PFWTH, PFWR, PFTH2, PFR2, PFTHR, PBL_DEPTH, & !$acc & PWTHV, PRTHLS, PRRS, PTHLP, PRP, PTP, PWTH, PWRC ) + +if ( mppdb_initialized ) then + !check all in arrays + call Mppdb_check( pdxx, "Turb_ver_thermo_flux beg:pdxx" ) + call Mppdb_check( pdyy, "Turb_ver_thermo_flux beg:pdyy" ) + call Mppdb_check( pdzz, "Turb_ver_thermo_flux beg:pdzz" ) + call Mppdb_check( pdzx, "Turb_ver_thermo_flux beg:pdzx" ) + call Mppdb_check( pdzy, "Turb_ver_thermo_flux beg:pdzy" ) + call Mppdb_check( pdircoszw, "Turb_ver_thermo_flux beg:pdircoszw" ) + call Mppdb_check( pzz, "Turb_ver_thermo_flux beg:pzz" ) + call Mppdb_check( prhodj, "Turb_ver_thermo_flux beg:prhodj" ) + call Mppdb_check( pthvref, "Turb_ver_thermo_flux beg:pthvref" ) + call Mppdb_check( psfthm, "Turb_ver_thermo_flux beg:psfthm" ) + call Mppdb_check( psfrm, "Turb_ver_thermo_flux beg:psfrm" ) + call Mppdb_check( psfthp, "Turb_ver_thermo_flux beg:psfthp" ) + call Mppdb_check( psfrp, "Turb_ver_thermo_flux beg:psfrp" ) + call Mppdb_check( pwm, "Turb_ver_thermo_flux beg:pwm" ) + call Mppdb_check( pthlm, "Turb_ver_thermo_flux beg:pthlm" ) + call Mppdb_check( prm, "Turb_ver_thermo_flux beg:prm" ) + call Mppdb_check( psvm, "Turb_ver_thermo_flux beg:psvm" ) + call Mppdb_check( ptkem, "Turb_ver_thermo_flux beg:ptkem" ) + call Mppdb_check( plm, "Turb_ver_thermo_flux beg:plm" ) + call Mppdb_check( pleps, "Turb_ver_thermo_flux beg:pleps" ) + call Mppdb_check( plocpexnm, "Turb_ver_thermo_flux beg:plocpexnm" ) + call Mppdb_check( patheta, "Turb_ver_thermo_flux beg:patheta" ) + call Mppdb_check( pamoist, "Turb_ver_thermo_flux beg:pamoist" ) + call Mppdb_check( psrcm, "Turb_ver_thermo_flux beg:psrcm" ) + call Mppdb_check( pfrac_ice, "Turb_ver_thermo_flux beg:pfrac_ice" ) + call Mppdb_check( pbeta, "Turb_ver_thermo_flux beg:pbeta" ) + call Mppdb_check( psqrt_tke, "Turb_ver_thermo_flux beg:psqrt_tke" ) + call Mppdb_check( pdth_dz, "Turb_ver_thermo_flux beg:pdth_dz" ) + call Mppdb_check( pdr_dz, "Turb_ver_thermo_flux beg:pdr_dz" ) + call Mppdb_check( pred2th3, "Turb_ver_thermo_flux beg:pred2th3" ) + call Mppdb_check( pred2r3, "Turb_ver_thermo_flux beg:pred2r3" ) + call Mppdb_check( pred2thr3, "Turb_ver_thermo_flux beg:pred2thr3" ) + call Mppdb_check( pbll_o_e, "Turb_ver_thermo_flux beg:pbll_o_e" ) + call Mppdb_check( petheta, "Turb_ver_thermo_flux beg:petheta" ) + call Mppdb_check( pemoist, "Turb_ver_thermo_flux beg:pemoist" ) + call Mppdb_check( predth1, "Turb_ver_thermo_flux beg:predth1" ) + call Mppdb_check( predr1, "Turb_ver_thermo_flux beg:predr1" ) + call Mppdb_check( pphi3, "Turb_ver_thermo_flux beg:pphi3" ) + call Mppdb_check( ppsi3, "Turb_ver_thermo_flux beg:ppsi3" ) + call Mppdb_check( pd, "Turb_ver_thermo_flux beg:pd" ) + call Mppdb_check( pfwth, "Turb_ver_thermo_flux beg:pfwth" ) + call Mppdb_check( pfwr, "Turb_ver_thermo_flux beg:pfwr" ) + call Mppdb_check( pfth2, "Turb_ver_thermo_flux beg:pfth2" ) + call Mppdb_check( pfr2, "Turb_ver_thermo_flux beg:pfr2" ) + call Mppdb_check( pfthr, "Turb_ver_thermo_flux beg:pfthr" ) + !check all inout arrays + call Mppdb_check( pbl_depth, "Turb_ver_thermo_flux beg:pbl_depth" ) + call Mppdb_check( prthls, "Turb_ver_thermo_flux beg:prthls" ) + call Mppdb_check( prrs, "Turb_ver_thermo_flux beg:prrs" ) +end if ! !* 1. PRELIMINARIES ! ------------- @@ -703,8 +756,6 @@ ELSE !$acc end kernels END IF ! -CALL MPPDB_CHECK3DM("turb_ver_thermo_flux::ZF,PRHODJ,PREDTH1,PREDR1,PRED2TH3,PRED2THR3",PRECISION,& - & ZF,PRHODJ,PREDTH1,PREDR1,PRED2TH3,PRED2THR3 ) ! Compute the splitted conservative potential temperature at t+deltat CALL TRIDIAG_THERMO(KKA,KKU,KKL,PTHLM,ZF,ZDFDDTDZ,PTSTEP,PIMPL,PDZZ,& PRHODJ,PTHLP) @@ -785,8 +836,6 @@ ELSE !$acc end kernels END IF #endif -CALL MPPDB_CHECK3DM("turb_ver_thermo_flux::PTP,PETHETA,ZFLXZ,PBETA",PRECISION,& - & PTP,PETHETA,ZFLXZ,PBETA) ! ! Buoyancy flux at flux points ! @@ -1384,6 +1433,20 @@ IF ( ((OTURB_FLX .AND. OCLOSE_OUT) .OR. LLES_CALL) .AND. (KRRL > 0) ) THEN ! END IF !end of <w Rc> +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( pbl_depth, "Turb_ver_thermo_flux end:pbl_depth" ) + call Mppdb_check( prthls, "Turb_ver_thermo_flux end:prthls" ) + call Mppdb_check( prrs, "Turb_ver_thermo_flux end:prrs" ) + !Check all out arrays + call Mppdb_check( pwthv, "Turb_ver_thermo_flux end:pwthv" ) + call Mppdb_check( pthlp, "Turb_ver_thermo_flux end:pthlp" ) + call Mppdb_check( prp, "Turb_ver_thermo_flux end:prp" ) + call Mppdb_check( ptp, "Turb_ver_thermo_flux end:ptp" ) + call Mppdb_check( pwth, "Turb_ver_thermo_flux end:pwth" ) + call Mppdb_check( pwrc, "Turb_ver_thermo_flux end:pwrc" ) +end if + !$acc end data !---------------------------------------------------------------------------- diff --git a/src/MNH/update_lm.f90 b/src/MNH/update_lm.f90 index 972f91a124d7ae050254b9ee6beda732c2370b35..a94f7c09ad3e473d49dee9bc2d56b818d68a7e2b 100644 --- a/src/MNH/update_lm.f90 +++ b/src/MNH/update_lm.f90 @@ -1,6 +1,6 @@ !MNH_LIC Copyright 2006-2019 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. !----------------------------------------------------------------- ! ################### @@ -60,11 +60,12 @@ END MODULE MODI_UPDATE_LM ! !* 0. DECLARATIONS ! +USE MODD_ARGSLIST_ll, ONLY : LIST_ll USE MODD_CONF USE MODD_PARAMETERS ! USE MODE_ll -USE MODD_ARGSLIST_ll, ONLY : LIST_ll +use mode_mppdb ! IMPLICIT NONE ! @@ -91,6 +92,12 @@ INTEGER :: IINFO_ll ! return code of parallel routine !------------------------------------------------------------------------------- !$acc data present(PLM,PLEPS) + +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( plm, "Update_lm beg:plm" ) + call Mppdb_check( pleps, "Update_lm beg:pleps" ) +end if ! !* 1. COMPUTE DIMENSIONS OF ARRAYS : ! ---------------------------- @@ -140,6 +147,12 @@ IF ( HLBCY(2) /= "CYCL" .AND. LNORTH_ll()) THEN END IF !$acc end kernels +if ( mppdb_initialized ) then + !Check all inout arrays + call Mppdb_check( plm, "Update_lm end:plm" ) + call Mppdb_check( pleps, "Update_lm end:pleps" ) +end if + !$acc end data !-----------------------------------------------------------------------------