diff --git a/src/MNH/advecuvw_4th.f90 b/src/MNH/advecuvw_4th.f90 index a921f7e84e442c18fc06020f3aaa6694949b5737..c220818c86f8850b7ae0da88a47b457f3a1f3f01 100644 --- a/src/MNH/advecuvw_4th.f90 +++ b/src/MNH/advecuvw_4th.f90 @@ -399,7 +399,7 @@ call dyf_device(ZTEMP2,ZTEMP3) PRWS(:,:,:) = PRWS(:,:,:) - ZTEMP3 !$acc end kernels ! -call mzf_device(1,IKU,1,PRWCT,ZTEMP1) +call mzf_device( PRWCT, ZTEMP1 ) ZTEMP2 = MZF4( PWT ) !$acc kernels ZTEMP1 = ZTEMP1 * ZTEMP2 diff --git a/src/MNH/advecuvw_weno_k.f90 b/src/MNH/advecuvw_weno_k.f90 index 7c0a5a372f48ca48cc0c23f5656a7c0f71a91f26..4353eab11e256c9a712ccc8da6ef7b0360c3bfc9 100644 --- a/src/MNH/advecuvw_weno_k.f90 +++ b/src/MNH/advecuvw_weno_k.f90 @@ -125,7 +125,6 @@ REAL, DIMENSION(:,:,:) :: ZMEAN, ZWORK #endif ! #ifdef MNH_OPENACC -INTEGER :: IKU INTEGER :: IZFPOS1, IZFPOS2, IZFPOS3 INTEGER :: IZFNEG1, IZFNEG2, IZFNEG3 INTEGER :: IZBPOS1, IZBPOS2, IZBPOS3 @@ -167,9 +166,6 @@ TZHALO2_UT => TPHALO2LIST ! 1rst add3dfield in model_n TZHALO2_VT => TPHALO2LIST%NEXT ! 2nd add3dfield in model_n TZHALO2_WT => TPHALO2LIST%NEXT%NEXT ! 3rst add3dfield in model_n ! -#ifdef MNH_OPENACC -IKU=SIZE(PUT,3) -#endif ! ------------------------------------------------------- ! SELECT CASE(KWENO_ORDER) @@ -220,7 +216,7 @@ CASE(1) ! WENO 1 PRUS(:,:,:) = PRUS(:,:,:) - ZWORK(:,:,:) !$acc end kernels ! - !PRUS = PRUS - DZF(1,IKU,1,UP_MZ(PUT,MXM(PRWCT))) + !PRUS = PRUS - DZF(UP_MZ(PUT,MXM(PRWCT))) CALL MXM_DEVICE(PRWCT,ZWORK) CALL UP_MZ_DEVICE(PUT,ZWORK,ZMEAN) CALL DZF_DEVICE( ZMEAN, ZWORK ) @@ -246,7 +242,7 @@ CASE(1) ! WENO 1 PRVS(:,:,:) = PRVS(:,:,:) - ZWORK(:,:,:) !$acc end kernels ! - !PRVS = PRVS - DZF(1,IKU,1,UP_MZ(PVT,MYM(PRWCT))) + !PRVS = PRVS - DZF(UP_MZ(PVT,MYM(PRWCT))) CALL MYM_DEVICE(PRWCT,ZWORK) CALL UP_MZ_DEVICE(PVT,ZWORK,ZMEAN) CALL DZF_DEVICE( ZMEAN, ZWORK ) @@ -256,7 +252,7 @@ CASE(1) ! WENO 1 ! ! W component ! - !PRWS = PRWS - DXF(UP_MX(PWT,MZM(1,IKU,1,PRUCT))) + !PRWS = PRWS - DXF(UP_MX(PWT,MZM(PRUCT))) CALL MZM_DEVICE(PRUCT,ZWORK) CALL UP_MX_DEVICE(PWT,ZWORK,ZMEAN) CALL DXF_DEVICE(ZMEAN,ZWORK) @@ -264,7 +260,7 @@ CASE(1) ! WENO 1 PRWS(:,:,:) = PRWS(:,:,:) - ZWORK(:,:,:) !$acc end kernels ! - !PRWS = PRWS - DYF(UP_MY(PWT,MZM(1,IKU,1,PRVCT))) + !PRWS = PRWS - DYF(UP_MY(PWT,MZM(PRVCT))) CALL MZM_DEVICE(PRVCT,ZWORK) CALL UP_MY_DEVICE(PWT,ZWORK,ZMEAN) CALL DYF_DEVICE(ZMEAN,ZWORK) @@ -272,8 +268,8 @@ CASE(1) ! WENO 1 PRWS(:,:,:) = PRWS(:,:,:) - ZWORK(:,:,:) !$acc end kernels ! - !PRWS = PRWS - DZM(1,IKU,1,UP_WZ(PWT,MZF(1,IKU,1,PRWCT))) - CALL MZF_DEVICE(1,IKU,1,PRWCT,ZWORK) + !PRWS = PRWS - DZM(UP_WZ(PWT,MZF(PRWCT))) + CALL MZF_DEVICE( PRWCT, ZWORK ) CALL UP_WZ_DEVICE(PWT,ZWORK,ZMEAN) CALL DZM_DEVICE( ZMEAN, ZWORK ) !$acc kernels @@ -354,7 +350,7 @@ CASE(3) ! WENO 3 !$acc end kernels END IF ! -! PRUS = PRUS - DZF(1,IKU,1,WENO_K_2_MZ(PUT, MXM(PRWCT))) +! PRUS = PRUS - DZF(WENO_K_2_MZ(PUT, MXM(PRWCT))) CALL MXM_DEVICE(PRWCT,ZWORK) CALL WENO_K_2_MZ(PUT, ZWORK, ZMEAN, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), & @@ -388,7 +384,7 @@ CASE(3) ! WENO 3 PRVS(:,:,:) = PRVS(:,:,:) - ZWORK(:,:,:) !$acc end kernels ! -! PRVS = PRVS - DZF(1,IKU,1,WENO_K_2_MZ(PVT, MYM(PRWCT))) +! PRVS = PRVS - DZF(WENO_K_2_MZ(PVT, MYM(PRWCT))) CALL MYM_DEVICE(PRWCT,ZWORK) CALL WENO_K_2_MZ(PVT, ZWORK, ZMEAN, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), & @@ -402,7 +398,7 @@ CASE(3) ! WENO 3 ! ! W component ! -! ZWORK = MZM(1,IKU,1,PRUCT) +! ZWORK = MZM(PRUCT) CALL MZM_DEVICE(PRUCT,ZWORK) CALL ADVEC_WENO_K_2_MX(HLBCX, PWT, ZWORK, ZMEAN, TZHALO2_WT%HALO2%WEST, TZHALO2_WT%HALO2%EAST, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), & @@ -414,7 +410,7 @@ CASE(3) ! WENO 3 !$acc end kernels ! IF (.NOT.L2D) THEN -! ZWORK = MZM(1,IKU,1,PRVCT) +! ZWORK = MZM(PRVCT) CALL MZM_DEVICE(PRVCT,ZWORK) CALL ADVEC_WENO_K_2_MY(HLBCY, PWT, ZWORK, ZMEAN, TZHALO2_WT%HALO2%NORTH, TZHALO2_WT%HALO2%SOUTH, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), & @@ -426,8 +422,8 @@ CASE(3) ! WENO 3 !$acc end kernels END IF ! -! PRWS = PRWS - DZM(1,IKU,1,WENO_K_2_WZ(PWT,MZF(1,IKU,1,PRWCT))) - CALL MZF_DEVICE(1,IKU,1,PRWCT,ZWORK) +! PRWS = PRWS - DZM(WENO_K_2_WZ(PWT,MZF(PRWCT))) + CALL MZF_DEVICE( PRWCT, ZWORK ) CALL WENO_K_2_WZ(PWT, ZWORK, ZMEAN, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), & ZT3D(:,:,:,IZBPOS1), ZT3D(:,:,:,IZBPOS2), ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), & @@ -627,7 +623,7 @@ CASE(5) ! WENO 5 !$acc end kernels END IF ! - CALL MZF_DEVICE(1,IKU,1,PRWCT,ZWORK) + CALL MZF_DEVICE( PRWCT, ZWORK ) CALL WENO_K_3_WZ(PWT,ZWORK,ZMEAN, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFPOS3), & ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), ZT3D(:,:,:,IZFNEG3), & diff --git a/src/MNH/gradient_m.f90 b/src/MNH/gradient_m.f90 index 79569e43888cc6fef479b770876267d1bad182ad..b74fb40d947f7c3ace3aba78574019cc06d47e59 100644 --- a/src/MNH/gradient_m.f90 +++ b/src/MNH/gradient_m.f90 @@ -324,7 +324,7 @@ IF (.NOT. LFLAT) THEN !$acc kernels ZT3D(:,:,:,IDX4) = ZT3D(:,:,:,IDX1)*ZT3D(:,:,:,IDX3)/PDZZ(:,:,:) !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KL,ZT3D(:,:,:,IDX4),ZT3D(:,:,:,IDX1)) + CALL MZF_DEVICE( ZT3D(:,:,:,IDX4), ZT3D(:,:,:,IDX1) ) CALL MXF_DEVICE(PDXX(:,:,:),ZT3D(:,:,:,IDX3)) !$acc kernels PGX_M_M(:,:,:)= (ZT3D(:,:,:,IDX2) - ZT3D(:,:,:,IDX1) & @@ -493,7 +493,7 @@ IF (.NOT. LFLAT) THEN !$acc kernels ZT3D(:,:,:,IDX4) = ZT3D(:,:,:,IDX1)*ZT3D(:,:,:,IDX3)/PDZZ !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KL,ZT3D(:,:,:,IDX4),ZT3D(:,:,:,IDX1)) + CALL MZF_DEVICE( ZT3D(:,:,:,IDX4), ZT3D(:,:,:,IDX1) ) CALL MYF_DEVICE(PDYY,ZT3D(:,:,:,IDX3)) !$acc kernels PGY_M_M(:,:,:)= (ZT3D(:,:,:,IDX2) - ZT3D(:,:,:,IDX1) & @@ -643,7 +643,7 @@ CALL DZM_DEVICE( PA(:,:,:), ZT3D(:,:,:,IDX1) ) !$acc kernels ZT3D(:,:,:,IDX2) = ZT3D(:,:,:,IDX1)/PDZZ(:,:,:) !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KL,ZT3D(:,:,:,IDX2),PGZ_M_M) +CALL MZF_DEVICE( ZT3D(:,:,:,IDX2), PGZ_M_M ) ! CALL MNH_REL_ZT3D(IDX1,IDX2) diff --git a/src/MNH/gradient_u.f90 b/src/MNH/gradient_u.f90 index 35bc55f48b321a2033c448da9cc8168c4ac55527..1721bdf08ac2b62e6038c222192d483805700984 100644 --- a/src/MNH/gradient_u.f90 +++ b/src/MNH/gradient_u.f90 @@ -257,7 +257,7 @@ IF (.NOT. LFLAT) THEN ZTMP3_DEVICE(JI,JJ,JK) = ZTMP2_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK) END DO !CONCURRENT !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KL,ZTMP3_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP3_DEVICE, ZTMP2_DEVICE ) CALL MXF_DEVICE(PDXX,ZTMP3_DEVICE) !$acc kernels PGX_U_M_DEVICE(:,:,:)= ( ZTMP1_DEVICE(:,:,:) - ZTMP2_DEVICE(:,:,:) ) / ZTMP3_DEVICE(:,:,:) @@ -449,7 +449,7 @@ IF (.NOT. LFLAT) THEN ZTMP3_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK)*ZTMP2_DEVICE(JI,JJ,JK) END DO !CONCURRENT !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KL, ZTMP3_DEVICE,ZTMP2_DEVICE ) + CALL MZF_DEVICE( ZTMP3_DEVICE, ZTMP2_DEVICE ) CALL DYM_DEVICE(PA,ZTMP1_DEVICE) CALL MXM_DEVICE(PDYY,ZTMP3_DEVICE) !$acc kernels diff --git a/src/MNH/gradient_v.f90 b/src/MNH/gradient_v.f90 index dcf283fe8a373f1bf051153807d9a424322f11ff..80161d8c6188715b0d0e3f08c8269ce9f74ef59f 100644 --- a/src/MNH/gradient_v.f90 +++ b/src/MNH/gradient_v.f90 @@ -259,7 +259,7 @@ IF (.NOT. LFLAT) THEN ZTMP3_DEVICE(JI,JJ,JK) = ZTMP2_DEVICE(JI,JJ,JK)/PDZZ(JI,JJ,JK) END DO !CONCURRENT !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KL,ZTMP3_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP3_DEVICE, ZTMP2_DEVICE ) CALL MYF_DEVICE(PDYY,ZTMP3_DEVICE) !$acc kernels PGY_V_M_DEVICE(:,:,:)= (ZTMP1_DEVICE(:,:,:) - ZTMP2_DEVICE(:,:,:)) / ZTMP3_DEVICE(:,:,:) @@ -450,7 +450,7 @@ IF (.NOT. LFLAT) THEN ZTMP4_DEVICE(JI,JJ,JK) = ZTMP2_DEVICE(JI,JJ,JK) *ZTMP3_DEVICE(JI,JJ,JK) END DO !CONCURRENT !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KL,ZTMP4_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP4_DEVICE, ZTMP2_DEVICE ) CALL MYM_DEVICE(PDXX,ZTMP3_DEVICE) !$acc kernels !$acc loop independent collapse(3) diff --git a/src/MNH/gradient_w.f90 b/src/MNH/gradient_w.f90 index 03f0702035d07c9c9b82f6f1f4f0561c1f69559f..54e2847abf142934913dd938662b82eb1764200d 100644 --- a/src/MNH/gradient_w.f90 +++ b/src/MNH/gradient_w.f90 @@ -218,7 +218,7 @@ iztmp2_device = MNH_ALLOCATE_ZT3D( ztmp2_device,JIU,JJU,JKU ) ! -------------------- ! CALL DZF_DEVICE( PA(:,:,:), ZTMP1_DEVICE ) -CALL MZF_DEVICE(KKA,KKU,KL,PDZZ(:,:,:),ZTMP2_DEVICE) +CALL MZF_DEVICE( PDZZ(:,:,:), ZTMP2_DEVICE ) !$acc kernels PGZ_W_M_DEVICE(:,:,:)= ZTMP1_DEVICE(:,:,:)/ZTMP2_DEVICE(:,:,:) !$acc end kernels @@ -377,7 +377,7 @@ IF (.NOT. LFLAT) THEN CALL DXM_DEVICE(PA(:,:,:),ZTMP1_DEVICE) CALL MZM_DEVICE(PDXX(:,:,:),ZTMP2_DEVICE) ! - CALL MZF_DEVICE(KKA,KKU,KL,PA(:,:,:),ZTMP3_DEVICE) + CALL MZF_DEVICE( PA(:,:,:), ZTMP3_DEVICE ) CALL MXM_DEVICE(ZTMP3_DEVICE,ZTMP4_DEVICE) CALL DZM_DEVICE( ZTMP4_DEVICE, ZTMP3_DEVICE ) ! @@ -551,7 +551,7 @@ IF (.NOT. LFLAT) THEN CALL DYM_DEVICE(PA(:,:,:),ZTMP1_DEVICE) CALL MZM_DEVICE(PDYY(:,:,:),ZTMP2_DEVICE) ! - CALL MZF_DEVICE(KKA,KKU,KL,PA(:,:,:),ZTMP3_DEVICE) + CALL MZF_DEVICE( PA(:,:,:), ZTMP3_DEVICE ) CALL MYM_DEVICE(ZTMP3_DEVICE,ZTMP4_DEVICE) CALL DZM_DEVICE( ZTMP4_DEVICE, ZTMP3_DEVICE ) ! diff --git a/src/MNH/mode_prandtl.f90 b/src/MNH/mode_prandtl.f90 index 9b2de24881114d337e4a734604e0b7e3e6f9f676..56f23a59de4ce8498d3547841566cecef185e2c4 100644 --- a/src/MNH/mode_prandtl.f90 +++ b/src/MNH/mode_prandtl.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2022 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -1224,7 +1224,7 @@ PM3_TH2_W2TH(:,:,:) = - MZF((1.-0.5*PREDR1*(1.+PREDR1)/PD)/(1.+PREDTH1)*PDTDZ) & !$acc kernels ZTMP2_DEVICE = (1.-0.5*PREDR1*(1.+PREDR1)/PD)/(1.+PREDTH1)*PDTDZ !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels PM3_TH2_W2TH(:,:,:) = - ZTMP1_DEVICE & * 1.5*PLM*PLEPS/PTKE*XCTV @@ -1312,7 +1312,7 @@ ZTMP2_DEVICE = (1.-0.5*PREDR1*(1.+PREDR1)/PD)*(1.-(1.5+PREDTH1+PREDR1)* & PREDTH1*(1.+PREDTH1)/PD ) / BR_P2(1.+PREDTH1) #endif !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE, ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels PD_M3_TH2_W2TH_O_DDTDZ(:,:,:) = - 1.5*PLM*PLEPS/PTKE*XCTV * ZTMP1_DEVICE !$acc end kernels @@ -1325,7 +1325,7 @@ ZTMP2_DEVICE = 1./(1.+PREDTH1)**2 ZTMP2_DEVICE = 1./BR_P2(1.+PREDTH1) #endif !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels PD_M3_TH2_W2TH_O_DDTDZ(:,:,:) = - 1.5*PLM*PLEPS/PTKE*XCTV * ZTMP1_DEVICE !$acc end kernels @@ -1401,7 +1401,7 @@ ZTMP2_DEVICE = (1.+0.5*PREDTH1+1.5*PREDR1+0.5*PREDR1**2)/PD ZTMP2_DEVICE = (1.+0.5*PREDTH1+1.5*PREDR1+0.5*BR_P2(PREDR1))/PD #endif !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL, ZTMP2_DEVICE ,ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels PM3_TH2_WTH2(:,:,:) = PLEPS*0.5/XCTD/PSQRT_TKE*ZTMP1_DEVICE #endif @@ -1480,7 +1480,7 @@ ZTMP2_DEVICE = PBLL_O_E*PETHETA* (0.5/PD #endif ) !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL, ZTMP2_DEVICE ,ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels PD_M3_TH2_WTH2_O_DDTDZ(:,:,:) = PLEPS*0.5/XCTD/PSQRT_TKE*XCTV*ZTMP1_DEVICE #endif @@ -1554,7 +1554,7 @@ ZTMP2_DEVICE = PBLL_O_E*PEMOIST/PD*PDTDZ**2 ZTMP2_DEVICE = PBLL_O_E*PEMOIST/PD*BR_P2(PDTDZ) #endif !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels #ifndef MNH_BITREP PM3_TH2_W2R(:,:,:) = 0.75*XCTV**2*ZTMP1_DEVICE*PLM*PLEPS/PTKE @@ -1631,7 +1631,7 @@ PD_M3_TH2_W2R_O_DDTDZ(:,:,:) = 0.75*BR_P2(XCTV)*PLM*PLEPS/PTKE & !$acc kernels ZTMP2_DEVICE = PBLL_O_E*PEMOIST/PD*PDTDZ*(2.-PREDTH1*(1.5+PREDTH1+PREDR1)/PD) !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels #ifndef MNH_BITREP PD_M3_TH2_W2R_O_DDTDZ(:,:,:) = 0.75*XCTV**2*PLM*PLEPS/PTKE & @@ -1709,7 +1709,7 @@ ZTMP2_DEVICE = (PBLL_O_E*PEMOIST*PDTDZ)**2/PD ZTMP2_DEVICE = BR_P2(PBLL_O_E*PEMOIST*PDTDZ)/PD #endif !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels #ifndef MNH_BITREP PM3_TH2_WR2(:,:,:) = 0.25*XCTV**2*ZTMP1_DEVICE*PLEPS/PSQRT_TKE/XCTD @@ -1789,7 +1789,7 @@ ZTMP2_DEVICE = (PBLL_O_E*PEMOIST)**2*PDTDZ/PD*(2.-PREDTH1*(1.5+PREDTH1+PREDR1)/P ZTMP2_DEVICE = BR_P2(PBLL_O_E*PEMOIST)*PDTDZ/PD*(2.-PREDTH1*(1.5+PREDTH1+PREDR1)/PD) #endif !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels #ifndef MNH_BITREP PD_M3_TH2_WR2_O_DDTDZ(:,:,:) = 0.25*XCTV**2*PLEPS/PSQRT_TKE/XCTD & @@ -1861,7 +1861,7 @@ PM3_TH2_WTHR(:,:,:) = - 0.5*XCTV*PLEPS/PSQRT_TKE/XCTD & !$acc kernels ZTMP2_DEVICE = PBLL_O_E*PEMOIST*PDTDZ*(1.+PREDR1)/PD !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels PM3_TH2_WTHR(:,:,:) = - 0.5*XCTV*PLEPS/PSQRT_TKE/XCTD*ZTMP1_DEVICE #endif @@ -1929,7 +1929,7 @@ PD_M3_TH2_WTHR_O_DDTDZ(:,:,:) = - 0.5*XCTV*PLEPS/PSQRT_TKE/XCTD & !$acc kernels ZTMP2_DEVICE = PBLL_O_E*PEMOIST*(1.+PREDR1)/PD * (1. -PREDTH1*(1.5+PREDTH1+PREDR1)/PD) !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels PD_M3_TH2_WTHR_O_DDTDZ(:,:,:) = - 0.5*XCTV*PLEPS/PSQRT_TKE/XCTD & * ZTMP1_DEVICE @@ -1995,7 +1995,7 @@ PM3_THR_WTHR(:,:,:) = 0.5*PLEPS/PSQRT_TKE/XCTD & !$acc kernels ZTMP2_DEVICE = (1.+PREDTH1)*(1.+PREDR1)/PD !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels PM3_THR_WTHR(:,:,:) = 0.5*PLEPS/PSQRT_TKE/XCTD*ZTMP1_DEVICE #endif @@ -2062,7 +2062,7 @@ PD_M3_THR_WTHR_O_DDTDZ(:,:,:) = 0.5*PLEPS/PSQRT_TKE/XCTD * XCTV & !$acc kernels ZTMP2_DEVICE = PETHETA*PBLL_O_E/PD*(1.+PREDR1)*(1.-(1.+PREDTH1)*(1.5+PREDTH1+PREDR1)/PD) !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels PD_M3_THR_WTHR_O_DDTDZ(:,:,:) = 0.5*PLEPS/PSQRT_TKE/XCTD * XCTV * ZTMP1_DEVICE #endif @@ -2129,7 +2129,7 @@ PM3_THR_WTH2(:,:,:) = - 0.25*PLEPS/PSQRT_TKE/XCTD*XCTV & !$acc kernels ZTMP2_DEVICE = (1.+PREDR1)*PBLL_O_E*PETHETA*PDRDZ/PD !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels PM3_THR_WTH2(:,:,:) = - 0.25*PLEPS/PSQRT_TKE/XCTD*XCTV * ZTMP1_DEVICE #endif @@ -2206,7 +2206,7 @@ ZTMP2_DEVICE = -(1.+PREDR1)*(PBLL_O_E*PETHETA/PD)**2*PDRDZ*(1.5+PREDTH1+PREDR1) ZTMP2_DEVICE = -(1.+PREDR1)*BR_P2(PBLL_O_E*PETHETA/PD)*PDRDZ*(1.5+PREDTH1+PREDR1) #endif !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels #ifndef MNH_BITREP PD_M3_THR_WTH2_O_DDTDZ(:,:,:) = - 0.25*PLEPS/PSQRT_TKE/XCTD*XCTV**2 * ZTMP1_DEVICE @@ -2280,7 +2280,7 @@ PD_M3_THR_WTH2_O_DDRDZ(:,:,:) = - 0.25*PLEPS/PSQRT_TKE/XCTD*XCTV & ZTMP2_DEVICE = PBLL_O_E*PETHETA/PD & *(-(1.+PREDR1)*PREDR1/PD*(1.5+PREDTH1+PREDR1)+(1.+2.*PREDR1)) !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels PD_M3_THR_WTH2_O_DDRDZ(:,:,:) = - 0.25*PLEPS/PSQRT_TKE/XCTD*XCTV * ZTMP1_DEVICE #endif @@ -2346,7 +2346,7 @@ PM3_THR_W2TH(:,:,:) = - 0.75*PLM*PLEPS/PTKE * XCTV & !$acc kernels ZTMP2_DEVICE = (1.+PREDR1)*PDRDZ/PD !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels PM3_THR_W2TH(:,:,:) = - 0.75*PLM*PLEPS/PTKE * XCTV * ZTMP1_DEVICE #endif @@ -2424,7 +2424,7 @@ ZTMP2_DEVICE = -PETHETA*PBLL_O_E*(1.+PREDR1)*PDRDZ*(1.5+PREDTH1+PREDR1)/PD**2 ZTMP2_DEVICE = -PETHETA*PBLL_O_E*(1.+PREDR1)*PDRDZ*(1.5+PREDTH1+PREDR1)/BR_P2(PD) #endif !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels #ifndef MNH_BITREP PD_M3_THR_W2TH_O_DDTDZ(:,:,:) = - 0.75*PLM*PLEPS/PTKE * XCTV**2 * ZTMP1_DEVICE @@ -2505,7 +2505,7 @@ ZTMP2_DEVICE = -(1.+PREDR1)*PREDR1*(1.5+PREDTH1+PREDR1)/BR_P2(PD) & #endif +(1.+2.*PREDR1)/PD !$acc end kernels -CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP1_DEVICE) +CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels PD_M3_THR_W2TH_O_DDRDZ(:,:,:) = - 0.75*PLM*PLEPS/PTKE * XCTV * ZTMP1_DEVICE #endif diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90 index 0938d644327686ba4e933532de3a946cffd1f17f..d92cf49253ab29e2191c1acdbe1dd46dcb1794bd 100644 --- a/src/MNH/resolved_cloud.f90 +++ b/src/MNH/resolved_cloud.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2022 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -930,7 +930,7 @@ CALL PRINT_MSG(NVERB_FATAL,'GEN','RESOLVED_CLOUD','C2R2//KHKO not yet implemente #ifndef MNH_OPENACC ZZZ(:,:,:) = MZF( PZZ(:,:,:) ) #else - CALL MZF_DEVICE(1,IKU,1,PZZ,ZZZ) + CALL MZF_DEVICE( PZZ, ZZZ ) #endif IF(LRED .AND. LADJ_BEFORE) THEN CALL ICE_ADJUST (1, IKU, 1, KRR, CFRAC_ICE_ADJUST, CCONDENS, CLAMBDA3, & diff --git a/src/MNH/shuman_device.f90 b/src/MNH/shuman_device.f90 index d67c815e3d7ceb8dec7656108ad990820d06c2eb..d33acba5d2596bb0f7a04875abb4689c0906464d 100644 --- a/src/MNH/shuman_device.f90 +++ b/src/MNH/shuman_device.f90 @@ -60,9 +60,7 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at mass localization REAL, DIMENSION(:,:,:), INTENT(OUT) :: PMYM ! result at flux localization END SUBROUTINE MYM_DEVICE ! -SUBROUTINE MZF_DEVICE(KKA,KKU,KL,PA,PMZF) -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +SUBROUTINE MZF_DEVICE(PA,PMZF) REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at flux side REAL, DIMENSION(:,:,:), INTENT(OUT) :: PMZF ! result at mass localization END SUBROUTINE MZF_DEVICE @@ -565,7 +563,7 @@ END DO END SUBROUTINE MYM_DEVICE ! ! ############################### - SUBROUTINE MZF_DEVICE(KKA,KKU,KL,PA,PMZF) + SUBROUTINE MZF_DEVICE(PA,PMZF) ! ############################### ! !!**** *MZF* - Shuman operator : mean operator in z direction for a @@ -615,8 +613,6 @@ IMPLICIT NONE !* 0.1 Declarations of argument and result ! ------------------------------------ ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at flux side REAL, DIMENSION(:,:,:), INTENT(OUT) :: PMZF ! result at mass localization ! diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90 index 0de226669bacc1853cdca0d23b795a8664d1d0dd..c37a2d81aa9f5c8b43af906c106ff27ee17fe6e8 100644 --- a/src/MNH/tke_eps_sources.f90 +++ b/src/MNH/tke_eps_sources.f90 @@ -508,7 +508,7 @@ IF ( LLES_CALL .OR. & CALL LES_MEAN_SUBGRID( -PTR, X_LES_SUBGRID_ddz_WTke ) #else !$acc data copy(X_LES_SUBGRID_WTke,X_LES_SUBGRID_ddz_WTke) - CALL MZF_DEVICE(KKA,KKU,KKL,ZFLX,ZTMP1_DEVICE) + CALL MZF_DEVICE( ZFLX, ZTMP1_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE, X_LES_SUBGRID_WTke ) !$acc kernels ZTMP1_DEVICE(:,:,:) = -PTR(:,:,:) diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90 index bd109f01b0ae10ed893ee4515458de847958ce13..3f7a343cc4bc616dc97a863ca797dd512756a8b2 100644 --- a/src/MNH/turb.f90 +++ b/src/MNH/turb.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2022 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -1330,7 +1330,7 @@ end if #ifndef MNH_OPENACC PTHP = PTHP + XG / PTHVREF * MZF( PFLXZTHVMF ) #else - CALL MZF_DEVICE(KKA,KKU,KKL,PFLXZTHVMF,ZTMP1_DEVICE) + CALL MZF_DEVICE( PFLXZTHVMF, ZTMP1_DEVICE ) !$acc kernels PTHP(:,:,:) = PTHP(:,:,:) + XG / PTHVREF(:,:,:) * ZTMP1_DEVICE(:,:,:) !$acc end kernels @@ -1516,7 +1516,7 @@ IF (LLES_CALL) THEN X_LES_SUBGRID_W2 = X_LES_SUBGRID_U2 !$acc end kernels CALL GZ_M_W_DEVICE(KKA,KKU,KKL,PTHLT,PDZZ,ZTMP2_DEVICE) - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP3_DEVICE) + CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) !$acc kernels ZTMP2_DEVICE = ZTMP1_DEVICE*ZTMP3_DEVICE !$acc end kernels @@ -1525,7 +1525,7 @@ IF (LLES_CALL) THEN IF (KRR>=1) THEN !$acc data copy(X_LES_RES_ddz_Rt_SBG_W2) CALL GZ_M_W_DEVICE(KKA,KKU,KKL,PRT(:,:,:,1),PDZZ,ZTMP2_DEVICE) - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP3_DEVICE) + CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) !$acc kernels ZTMP2_DEVICE = ZTMP1_DEVICE*PTKET*ZTMP3_DEVICE !$acc end kernels @@ -1535,7 +1535,7 @@ IF (LLES_CALL) THEN !$acc data copy(X_LES_RES_ddz_Sv_SBG_W2(:,:,:,1:NSV)) DO JSV=1,NSV CALL GZ_M_W_DEVICE(KKA,KKU,KKL,PSVT(:,:,:,JSV),PDZZ,ZTMP2_DEVICE) - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP3_DEVICE) + CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) !$acc kernels ZTMP2_DEVICE = ZTMP1_DEVICE*PTKET*ZTMP3_DEVICE !$acc end kernels diff --git a/src/MNH/turb_hor_dyn_corr.f90 b/src/MNH/turb_hor_dyn_corr.f90 index 521e66616a0876ac00fc855e0846f750ab6603e7..4581679589ed22c2803b123df662ce4b0e0f4857 100644 --- a/src/MNH/turb_hor_dyn_corr.f90 +++ b/src/MNH/turb_hor_dyn_corr.f90 @@ -429,7 +429,7 @@ IF (.NOT. L2D) THEN END IF CALL GZ_W_M_DEVICE(1,IKU,1,PWM,PDZZ,GZ_W_M_PWM) ! -CALL MZF_DEVICE(1,IKU,1,PDZZ,ZMZF_DZZ) +CALL MZF_DEVICE( PDZZ, ZMZF_DZZ ) #endif ! CALL ADD3DFIELD_ll( TZFIELDS_ll, ZFLX, 'TURB_HOR_DYN_CORR::ZFLX' ) @@ -1209,7 +1209,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE, X_LES_RES_ddxa_Thl_SBG_UaW , .TRUE.) ! CALL GZ_M_W_DEVICE(1,IKU,1,PTHLM,PDZZ,ZTMP1_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) !$acc kernels ZTMP3_DEVICE = ZFLX*ZTMP2_DEVICE !$acc end kernels @@ -1227,7 +1227,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE, X_LES_RES_ddxa_Rt_SBG_UaW , .TRUE.) ! CALL GZ_M_W_DEVICE(1,IKU,1,PRM(:,:,:,1),PDZZ,ZTMP1_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) !$acc kernels ZTMP3_DEVICE = ZFLX*ZTMP2_DEVICE !$acc end kernels @@ -1247,7 +1247,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN X_LES_RES_ddxa_Sv_SBG_UaW(:,:,:,JSV) , .TRUE.) ! CALL GZ_M_W_DEVICE(1,IKU,1,PSVM(:,:,:,JSV),PDZZ,ZTMP1_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE,ZTMP2_DEVICE) !$acc kernels ZTMP3_DEVICE = ZFLX*ZTMP2_DEVICE !$acc end kernels diff --git a/src/MNH/turb_hor_sv_flux.f90 b/src/MNH/turb_hor_sv_flux.f90 index b43300c3f31d30c0baa07c61da3fff52d38ee1e0..39692bb03b13808d218a0a8c0ec3f519eeff4f24 100644 --- a/src/MNH/turb_hor_sv_flux.f90 +++ b/src/MNH/turb_hor_sv_flux.f90 @@ -398,7 +398,7 @@ DO JSV=1,ISV ZTMP3_DEVICE = ZTMP1_DEVICE*ZTMP2_DEVICE !$acc end kernels CALL MXF_DEVICE(ZTMP3_DEVICE,ZTMP1_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE, X_LES_RES_ddxa_W_SBG_UaSv(:,:,:,JSV) , .TRUE. ) ! CALL GX_M_M_DEVICE(1,IKU,1,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX,ZTMP1_DEVICE) @@ -517,7 +517,7 @@ DO JSV=1,ISV ZTMP3_DEVICE = ZTMP1_DEVICE*ZTMP2_DEVICE !$acc end kernels CALL MYF_DEVICE(ZTMP3_DEVICE,ZTMP1_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE,X_LES_RES_ddxa_W_SBG_UaSv(:,:,:,JSV) , .TRUE. ) ! CALL GY_M_M_DEVICE(1,IKU,1,PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY,ZTMP1_DEVICE) diff --git a/src/MNH/turb_hor_thermo_corr.f90 b/src/MNH/turb_hor_thermo_corr.f90 index 3b1ef464d335dabacbd922bd52d77ac113d94101..f0bf84af1834082b8e21ebe2e329e54fc6dea157 100644 --- a/src/MNH/turb_hor_thermo_corr.f90 +++ b/src/MNH/turb_hor_thermo_corr.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2022 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -461,7 +461,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & ! CALL LES_MEAN_SUBGRID( ZFLX, X_LES_SUBGRID_Thl2, .TRUE. ) ! - CALL MZF_DEVICE(1,IKU,1,PWM, ZTMP1_DEVICE) + CALL MZF_DEVICE( PWM, ZTMP1_DEVICE) !$acc kernels ZTMP2_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZFLX(:,:,:) !$acc end kernels @@ -664,7 +664,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & ! CALL LES_MEAN_SUBGRID( ZFLX, X_LES_SUBGRID_ThlRt, .TRUE. ) ! - CALL MZF_DEVICE(1,IKU,1,PWM,ZTMP1_DEVICE) + CALL MZF_DEVICE( PWM, ZTMP1_DEVICE ) !$acc kernels ZTMP2_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZFLX(:,:,:) !$acc end kernels @@ -837,7 +837,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & ! CALL LES_MEAN_SUBGRID( ZFLX, X_LES_SUBGRID_Rt2, .TRUE. ) ! - CALL MZF_DEVICE(1,IKU,1,PWM,ZTMP1_DEVICE) + CALL MZF_DEVICE( PWM, ZTMP1_DEVICE ) !$acc kernels ZTMP2_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZFLX(:,:,:) !$acc end kernels diff --git a/src/MNH/turb_hor_thermo_flux.f90 b/src/MNH/turb_hor_thermo_flux.f90 index b4ae8261b8d2ee3b5a8b91dd953f69fce9620fd5..9b88a408c3e561d7df4b4b5c8328d5c098764e40 100644 --- a/src/MNH/turb_hor_thermo_flux.f90 +++ b/src/MNH/turb_hor_thermo_flux.f90 @@ -516,7 +516,7 @@ IF ( KRRL >= 1 ) THEN !$acc kernels ZTMP6_DEVICE(:,:,:) = ZTMP4_DEVICE(:,:,:)*ZTMP5_DEVICE(:,:,:) !$acc end kernels - CALL MZF_DEVICE(1,IKU,1, ZTMP6_DEVICE,ZTMP7_DEVICE ) + CALL MZF_DEVICE( ZTMP6_DEVICE, ZTMP7_DEVICE ) !$acc kernels ZFLXC(:,:,:) = 2.*( ZTMP2_DEVICE(:,:,:) +ZTMP7_DEVICE(:,:,:) ) !$acc end kernels @@ -632,7 +632,7 @@ IF (KSPLT==1 .AND. LLES_CALL) THEN ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:) !$acc end kernels CALL MXF_DEVICE(ZTMP3_DEVICE,ZTMP1_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE,X_LES_RES_ddxa_W_SBG_UaThl , .TRUE. ) ! CALL GX_M_M_DEVICE(1,IKU,1,PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE) @@ -880,7 +880,7 @@ END DO !$acc kernels ZTMP6_DEVICE(:,:,:) = ZTMP4_DEVICE(:,:,:)*ZTMP5_DEVICE(:,:,:) !$acc end kernels - CALL MZF_DEVICE(1,IKU,1, ZTMP6_DEVICE, ZTMP7_DEVICE ) + CALL MZF_DEVICE( ZTMP6_DEVICE, ZTMP7_DEVICE ) !$acc kernels ZFLXC(:,:,:) = ZFLXC(:,:,:) + 2.*( ZTMP3_DEVICE(:,:,:) + ZTMP7_DEVICE(:,:,:) ) !$acc end kernels @@ -961,7 +961,7 @@ END DO ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:) !$acc end kernels CALL MXF_DEVICE(ZTMP3_DEVICE,ZTMP4_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP4_DEVICE,ZTMP3_DEVICE) + CALL MZF_DEVICE( ZTMP4_DEVICE, ZTMP3_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP3_DEVICE, X_LES_RES_ddxa_W_SBG_UaRt , .TRUE. ) ! CALL GX_M_M_DEVICE(1,IKU,1,PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE) @@ -1270,7 +1270,7 @@ IF ( KRRL >= 1 .AND. .NOT. L2D) THEN !$acc kernels ZTMP6_DEVICE(:,:,:) = ZTMP4_DEVICE(:,:,:)*ZTMP5_DEVICE(:,:,:) !$acc end kernels - CALL MZF_DEVICE(1,IKU,1, ZTMP6_DEVICE, ZTMP4_DEVICE ) + CALL MZF_DEVICE( ZTMP6_DEVICE, ZTMP4_DEVICE ) !$acc kernels ZFLXC(:,:,:) = 2.*( ZTMP3_DEVICE(:,:,:) + ZTMP4_DEVICE(:,:,:) ) !$acc end kernels @@ -1362,7 +1362,7 @@ IF (KSPLT==1 .AND. LLES_CALL) THEN ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:) !$acc end kernels CALL MYF_DEVICE(ZTMP3_DEVICE, ZTMP4_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP4_DEVICE, ZTMP1_DEVICE) + CALL MZF_DEVICE( ZTMP4_DEVICE, ZTMP1_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE, X_LES_RES_ddxa_W_SBG_UaThl , .TRUE. ) ! CALL GY_M_M_DEVICE(1,IKU,1,PTHLM,PDYY,PDZZ,PDZY,ZTMP1_DEVICE) @@ -1637,7 +1637,7 @@ IF (KRR/=0) THEN !$acc kernels ZTMP1_DEVICE(:,:,:) = ZTMP5_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:) !$acc end kernels - CALL MZF_DEVICE(1,IKU,1, ZTMP1_DEVICE, ZTMP2_DEVICE ) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) !$acc kernels ZFLXC(:,:,:) = ZFLXC(:,:,:) + 2.*( ZTMP4_DEVICE(:,:,:) + ZTMP2_DEVICE(:,:,:) ) !$acc end kernels @@ -1720,7 +1720,7 @@ IF (KRR/=0) THEN ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:) !$acc end kernels CALL MYF_DEVICE(ZTMP3_DEVICE, ZTMP4_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP4_DEVICE,ZTMP1_DEVICE) + CALL MZF_DEVICE( ZTMP4_DEVICE, ZTMP1_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE,X_LES_RES_ddxa_W_SBG_UaRt , .TRUE. ) ! CALL GY_M_M_DEVICE(1,IKU,1,PTHLM,PDYY,PDZZ,PDZY,ZTMP1_DEVICE) diff --git a/src/MNH/turb_hor_uw.f90 b/src/MNH/turb_hor_uw.f90 index 9b4d26e4e639fa90f3ecd3ae0e12414e4989ab7e..f32af0bf960905f7d14756d7cb5ad9855e063e52 100644 --- a/src/MNH/turb_hor_uw.f90 +++ b/src/MNH/turb_hor_uw.f90 @@ -376,7 +376,7 @@ IF (.NOT. LFLAT) THEN ZTMP2_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK)*PDZX(JI,JJ,JK) END DO !CONCURRENT !$acc end kernels - CALL MZF_DEVICE(1,IKU,1, ZTMP2_DEVICE, ZTMP3_DEVICE ) + CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) @@ -384,7 +384,7 @@ IF (.NOT. LFLAT) THEN END DO !CONCURRENT !$acc end kernels CALL MXF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) - CALL MZF_DEVICE(1,IKU,1,PDZZ, ZTMP2_DEVICE) + CALL MZF_DEVICE( PDZZ, ZTMP2_DEVICE ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) @@ -423,7 +423,7 @@ IF (KSPLT==1) THEN END DO !CONCURRENT !$acc end kernels CALL MXF_DEVICE( ZTMP2_DEVICE,ZTMP1_DEVICE ) - CALL MZF_DEVICE(1,IKU,1, ZTMP1_DEVICE, ZTMP2_DEVICE ) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) @@ -502,7 +502,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN !$acc & X_LES_RES_ddxa_Thl_SBG_UaW,X_LES_RES_ddxa_Sv_SBG_UaW) ! CALL MXF_DEVICE(ZFLX,ZTMP1_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE, X_LES_SUBGRID_WU , .TRUE. ) ! CALL GZ_U_UW_DEVICE(1,IKU,1,PUM,PDZZ,ZTMP1_DEVICE) @@ -510,17 +510,17 @@ IF (LLES_CALL .AND. KSPLT==1) THEN ZTMP2_DEVICE = ZTMP1_DEVICE*ZFLX !$acc end kernels CALL MXF_DEVICE(ZTMP2_DEVICE,ZTMP1_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE, X_LES_RES_ddxa_U_SBG_UaU , .TRUE.) ! !$acc kernels ZTMP1_DEVICE = GX_W_UW_PWM*ZFLX !$acc end kernels CALL MXF_DEVICE(ZTMP1_DEVICE,ZTMP2_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP2_DEVICE,ZTMP1_DEVICE) + CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE, X_LES_RES_ddxa_W_SBG_UaW , .TRUE.) ! - CALL MZF_DEVICE(1,IKU,1,ZFLX,ZTMP1_DEVICE) + CALL MZF_DEVICE( ZFLX, ZTMP1_DEVICE ) CALL GX_M_U_DEVICE(1,IKU,1,PTHLM,PDXX,PDZZ,PDZX,ZTMP2_DEVICE) !$acc kernels ZTMP3_DEVICE = ZTMP2_DEVICE*ZTMP1_DEVICE @@ -532,7 +532,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN ! !$acc data copy(X_LES_RES_ddxa_Rt_SBG_UaW) ! - CALL MZF_DEVICE(1,IKU,1,ZFLX,ZTMP1_DEVICE) + CALL MZF_DEVICE( ZFLX, ZTMP1_DEVICE ) CALL GX_M_U_DEVICE(1,IKU,1,PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP2_DEVICE) !$acc kernels ZTMP3_DEVICE = ZTMP1_DEVICE*ZTMP2_DEVICE @@ -544,7 +544,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN ! END IF ! - CALL MZF_DEVICE(1,IKU,1,ZFLX,ZTMP1_DEVICE) + CALL MZF_DEVICE( ZFLX, ZTMP1_DEVICE ) DO JSV=1,NSV CALL GX_M_U_DEVICE(1,IKU,1,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX,ZTMP2_DEVICE) !$acc kernels diff --git a/src/MNH/turb_hor_vw.f90 b/src/MNH/turb_hor_vw.f90 index 68935ec335b5b01ad36a50270ebfee2ac50ad282..0af42385c75bc0d4359ce142236e3cd24317462a 100644 --- a/src/MNH/turb_hor_vw.f90 +++ b/src/MNH/turb_hor_vw.f90 @@ -387,7 +387,7 @@ IF (.NOT. L2D) THEN ZTMP2_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK) *PDZY(JI,JJ,JK) END DO !CONCURRENT !$acc end kernels - CALL MZF_DEVICE(1,IKU,1,ZTMP2_DEVICE,ZTMP3_DEVICE ) + CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) @@ -395,7 +395,7 @@ IF (.NOT. L2D) THEN END DO !CONCURRENT !$acc end kernels CALL MYF_DEVICE(ZTMP2_DEVICE,ZTMP3_DEVICE) - CALL MZF_DEVICE(1,IKU,1,PDZZ,ZTMP2_DEVICE) + CALL MZF_DEVICE( PDZZ, ZTMP2_DEVICE ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) @@ -444,7 +444,7 @@ IF (KSPLT==1) THEN END DO !CONCURRENT !$acc end kernels CALL MYF_DEVICE(ZTMP2_DEVICE,ZTMP1_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) @@ -524,7 +524,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN !$acc & X_LES_RES_ddxa_Thl_SBG_UaW,X_LES_RES_ddxa_Sv_SBG_UaW) ! CALL MYF_DEVICE(ZFLX,ZTMP1_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE, X_LES_SUBGRID_WV , .TRUE. ) ! CALL GZ_V_VW_DEVICE(1,IKU,1,PVM,PDZZ,ZTMP1_DEVICE) @@ -532,7 +532,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN ZTMP2_DEVICE = ZTMP1_DEVICE*ZFLX !$acc end kernels CALL MYF_DEVICE(ZTMP2_DEVICE,ZTMP1_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE, X_LES_RES_ddxa_V_SBG_UaV , .TRUE.) ! CALL GY_W_VW_DEVICE(1,IKU,1,PWM,PDYY,PDZZ,PDZY,ZTMP1_DEVICE) @@ -540,11 +540,11 @@ IF (LLES_CALL .AND. KSPLT==1) THEN ZTMP2_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZFLX(:,:,:) !$acc end kernels CALL MYF_DEVICE(ZTMP2_DEVICE,ZTMP1_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE, X_LES_RES_ddxa_W_SBG_UaW , .TRUE.) ! CALL GY_M_V_DEVICE(1,IKU,1,PTHLM,PDYY,PDZZ,PDZY,ZTMP1_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZFLX,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZFLX, ZTMP2_DEVICE ) !PW: kernel removed to work around a PGI 19.10 bug !$acc update self(ZTMP1_DEVICE,ZTMP2_DEVICE) ! !$acc kernels @@ -559,7 +559,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN !$acc data copy(X_LES_RES_ddxa_Rt_SBG_UaW) ! CALL GY_M_V_DEVICE(1,IKU,1,PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZTMP1_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZFLX,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZFLX, ZTMP2_DEVICE ) !PW: kernel removed to work around a PGI 19.10 bug !$acc update self(ZTMP1_DEVICE,ZTMP2_DEVICE) ! !$acc kernels @@ -573,7 +573,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN ! END IF ! - CALL MZF_DEVICE(1,IKU,1,ZFLX,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZFLX, ZTMP2_DEVICE ) DO JSV=1,NSV CALL GY_M_V_DEVICE(1,IKU,1,PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY,ZTMP1_DEVICE) !$acc kernels diff --git a/src/MNH/turb_ver_dyn_flux.f90 b/src/MNH/turb_ver_dyn_flux.f90 index ff2d88b75b2bb36d8c00ea6637e7278a232c2a90..23c49fd1714d889034718c29f26b4f0b23a9c30a 100644 --- a/src/MNH/turb_ver_dyn_flux.f90 +++ b/src/MNH/turb_ver_dyn_flux.f90 @@ -806,7 +806,7 @@ DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU ) END DO !$acc end kernels CALL MXF_DEVICE( ZTMP2_DEVICE,ZTMP3_DEVICE ) -CALL MZF_DEVICE(KKA,KKU,KKL, ZTMP3_DEVICE, ZTMP4_DEVICE ) +CALL MZF_DEVICE( ZTMP3_DEVICE, ZTMP4_DEVICE ) !$acc kernels PDP(:,:,:) = - ZTMP4_DEVICE(:,:,:) !$acc end kernels @@ -851,7 +851,7 @@ IF (LLES_CALL) THEN !$acc data copy(X_LES_SUBGRID_WU,X_LES_RES_ddxa_U_SBG_UaU,X_LES_SUBGRID_Km) ! CALL MXF_DEVICE(ZFLXZ,ZTMP1_DEVICE) - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE, X_LES_SUBGRID_WU ) ! CALL GZ_U_UW_DEVICE(KKA,KKU,KKL,PUM,PDZZ,ZTMP1_DEVICE) @@ -859,7 +859,7 @@ IF (LLES_CALL) THEN ZTMP2_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZFLXZ(:,:,:) !$acc end kernels CALL MXF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP3_DEVICE,ZTMP4_DEVICE) + CALL MZF_DEVICE( ZTMP3_DEVICE, ZTMP4_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP4_DEVICE, X_LES_RES_ddxa_U_SBG_UaU ) ! !$acc kernels @@ -913,14 +913,14 @@ IF(HTURBDIM=='3DIM') THEN !$acc end kernels CALL DXF_DEVICE( ZTMP2_DEVICE,ZTMP1_DEVICE ) IF (.NOT. LFLAT) THEN - CALL MZF_DEVICE(KKA,KKU,KKL,PDZZ,ZTMP2_DEVICE ) + CALL MZF_DEVICE( PDZZ, ZTMP2_DEVICE ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP3_DEVICE(JI,JJ,JK) = ZFLXZ(JI,JJ,JK)*PDZX(JI,JJ,JK) END DO !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL, ZTMP3_DEVICE,ZTMP4_DEVICE ) + CALL MZF_DEVICE( ZTMP3_DEVICE, ZTMP4_DEVICE ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) @@ -958,7 +958,7 @@ IF(HTURBDIM=='3DIM') THEN END DO !$acc end kernels CALL MXF_DEVICE(ZTMP2_DEVICE,ZTMP1_DEVICE) - CALL MZF_DEVICE(KKA,KKU,KKL, ZTMP1_DEVICE,ZTMP2_DEVICE ) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) @@ -1046,11 +1046,11 @@ END IF ZTMP2_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZFLXZ(:,:,:) !$acc end kernels CALL MXF_DEVICE(ZTMP2_DEVICE,ZTMP3_DEVICE) - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP3_DEVICE,ZTMP4_DEVICE) + CALL MZF_DEVICE( ZTMP3_DEVICE, ZTMP4_DEVICE ) CALL LES_MEAN_SUBGRID(ZTMP4_DEVICE, X_LES_RES_ddxa_W_SBG_UaW ) ! CALL GX_M_U_DEVICE(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE) - CALL MZF_DEVICE(KKA,KKU,KKL,ZFLXZ,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZFLXZ, ZTMP2_DEVICE ) !$acc kernels ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:) !$acc end kernels @@ -1059,7 +1059,7 @@ END IF ! IF (KRR>=1) THEN CALL GX_U_M_DEVICE(KKA,KKU,KKL,PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP1_DEVICE) - CALL MZF_DEVICE(KKA,KKU,KKL,ZFLXZ,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZFLXZ, ZTMP2_DEVICE ) !$acc kernels ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:) !$acc end kernels @@ -1069,7 +1069,7 @@ END IF ! DO JSV=1,NSV CALL GX_U_M_DEVICE(KKA,KKU,KKL,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX,ZTMP1_DEVICE) - CALL MZF_DEVICE(KKA,KKU,KKL,ZFLXZ,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZFLXZ, ZTMP2_DEVICE ) !$acc kernels ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:) !$acc end kernels @@ -1323,7 +1323,7 @@ DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) END DO !$acc end kernels CALL MYF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) -CALL MZF_DEVICE(KKA,KKU,KKL, ZTMP3_DEVICE, ZTMP1_DEVICE ) +CALL MZF_DEVICE( ZTMP3_DEVICE, ZTMP1_DEVICE ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) @@ -1374,7 +1374,7 @@ IF (LLES_CALL) THEN !$acc data copy(X_LES_SUBGRID_WV,X_LES_RES_ddxa_V_SBG_UaV) ! CALL MYF_DEVICE(ZFLXZ,ZTMP1_DEVICE) - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE, X_LES_SUBGRID_WV ) ! CALL GZ_V_VW_DEVICE(KKA,KKU,KKL,PVM,PDZZ,ZTMP1_DEVICE) @@ -1382,7 +1382,7 @@ IF (LLES_CALL) THEN ZTMP2_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZFLXZ(:,:,:) !$acc end kernels CALL MYF_DEVICE(ZTMP2_DEVICE,ZTMP3_DEVICE) - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP3_DEVICE,ZTMP4_DEVICE) + CALL MZF_DEVICE( ZTMP3_DEVICE, ZTMP4_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP4_DEVICE, X_LES_RES_ddxa_V_SBG_UaV ) ! !$acc end data @@ -1433,14 +1433,14 @@ IF(HTURBDIM=='3DIM') THEN !$acc end kernels CALL DYF_DEVICE( ZTMP2_DEVICE,ZTMP1_DEVICE ) IF (.NOT. LFLAT) THEN - CALL MZF_DEVICE(KKA,KKU,KKL,PDZZ,ZTMP2_DEVICE ) + CALL MZF_DEVICE( PDZZ, ZTMP2_DEVICE ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP3_DEVICE(JI,JJ,JK) = ZFLXZ(JI,JJ,JK)*PDZY(JI,JJ,JK) END DO !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP3_DEVICE,ZTMP4_DEVICE) + CALL MZF_DEVICE( ZTMP3_DEVICE, ZTMP4_DEVICE ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) @@ -1479,7 +1479,7 @@ IF(HTURBDIM=='3DIM') THEN END DO !$acc end kernels CALL MYF_DEVICE(ZTMP2_DEVICE,ZTMP1_DEVICE) - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP1_DEVICE,ZTMP2_DEVICE ) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) @@ -1562,11 +1562,11 @@ IF(HTURBDIM=='3DIM') THEN ZTMP2_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZFLXZ(:,:,:) !$acc end kernels CALL MYF_DEVICE(ZTMP2_DEVICE,ZTMP3_DEVICE) - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP3_DEVICE,ZTMP4_DEVICE) + CALL MZF_DEVICE( ZTMP3_DEVICE, ZTMP4_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP4_DEVICE, X_LES_RES_ddxa_W_SBG_UaW , .TRUE. ) ! CALL GY_M_V_DEVICE(KKA,KKU,KKL,PTHLM,PDYY,PDZZ,PDZY,ZTMP1_DEVICE) - CALL MZF_DEVICE(KKA,KKU,KKL,ZFLXZ,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZFLXZ, ZTMP2_DEVICE ) !$acc kernels ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:) !$acc end kernels @@ -1575,7 +1575,7 @@ IF(HTURBDIM=='3DIM') THEN ! IF (KRR>=1) THEN CALL GY_V_M_DEVICE(KKA,KKU,KKL,PRM(:,:,:,1),PDYY,PDZZ,PDZY,ZTMP1_DEVICE) - CALL MZF_DEVICE(KKA,KKU,KKL,ZFLXZ,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZFLXZ, ZTMP2_DEVICE ) !$acc kernels ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:) !$acc end kernels diff --git a/src/MNH/turb_ver_thermo_corr.f90 b/src/MNH/turb_ver_thermo_corr.f90 index a70de0a3e5d472f1881ae44f49ee2155b181c53d..b5fa0ccffeea5dd059a4e83b845eccde7a7d00a2 100644 --- a/src/MNH/turb_ver_thermo_corr.f90 +++ b/src/MNH/turb_ver_thermo_corr.f90 @@ -578,7 +578,7 @@ END IF END DO #endif !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP1_DEVICE(:,:,:),ZTMP2_DEVICE(:,:,:)) + CALL MZF_DEVICE( ZTMP1_DEVICE(:,:,:), ZTMP2_DEVICE(:,:,:) ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) @@ -622,7 +622,7 @@ END IF END IF #else IF (GFWTH) THEN - CALL MZF_DEVICE(KKA,KKU,KKL,PFWTH(:,:,:),ZTMP1_DEVICE(:,:,:)) + CALL MZF_DEVICE( PFWTH(:,:,:), ZTMP1_DEVICE(:,:,:) ) CALL M3_TH2_W2TH(KKA,KKU,KKL,PREDTH1(:,:,:),PREDR1(:,:,:),PD(:,:,:),PDTH_DZ(:,:,:),& & PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),ZTMP2_DEVICE(:,:,:)) !$acc kernels @@ -670,7 +670,7 @@ END IF END IF #else IF (GFWR) THEN - CALL MZF_DEVICE(KKA,KKU,KKL,PFWR(:,:,:),ZTMP1_DEVICE(:,:,:)) + CALL MZF_DEVICE( PFWR(:,:,:), ZTMP1_DEVICE(:,:,:) ) CALL M3_TH2_W2R(KKA,KKU,KKL,PD(:,:,:),PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),PBLL_O_E(:,:,:),& & PEMOIST(:,:,:),PDTH_DZ(:,:,:),ZTMP2_DEVICE(:,:,:)) CALL D_M3_TH2_W2R_O_DDTDZ(KKA,KKU,KKL,PREDTH1(:,:,:),PREDR1(:,:,:),PD(:,:,:),& @@ -727,7 +727,7 @@ END IF ZTMP3_DEVICE(JI,JJ,JK) = ZTMP2_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK) END DO !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP3_DEVICE(:,:,:),ZTMP4_DEVICE(:,:,:) ) + CALL MZF_DEVICE( ZTMP3_DEVICE(:,:,:), ZTMP4_DEVICE(:,:,:) ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) @@ -811,7 +811,7 @@ END IF !$acc & X_LES_SUBGRID_ThlThv,X_LES_SUBGRID_ThlPz) CALL LES_MEAN_SUBGRID( ZFLXZ(:,:,:), X_LES_SUBGRID_Thl2 ) ! - CALL MZF_DEVICE(KKA,KKU,KKL,PWM(:,:,:),ZTMP1_DEVICE(:,:,:)) + CALL MZF_DEVICE( PWM(:,:,:), ZTMP1_DEVICE(:,:,:) ) !$acc kernels ZTMP2_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZFLXZ(:,:,:) !$acc end kernels @@ -850,7 +850,7 @@ END IF !$acc kernels ZTMP1_DEVICE(:,:,:) = 0.5*(PPHI3(:,:,:)+PPSI3(:,:,:))*PDTH_DZ(:,:,:)*PDR_DZ(:,:,:) !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP1_DEVICE(:,:,:),ZTMP2_DEVICE(:,:,:)) + CALL MZF_DEVICE( ZTMP1_DEVICE(:,:,:), ZTMP2_DEVICE(:,:,:) ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) @@ -909,7 +909,7 @@ END IF IF (GFWTH) THEN CALL M3_THR_W2TH(KKA,KKU,KKL,PREDR1(:,:,:),PD(:,:,:),PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),& & PDR_DZ(:,:,:),ZTMP1_DEVICE(:,:,:)) - CALL MZF_DEVICE(KKA,KKU,KKL,PFWTH(:,:,:),ZTMP2_DEVICE(:,:,:)) + CALL MZF_DEVICE( PFWTH(:,:,:), ZTMP2_DEVICE(:,:,:) ) !$acc kernels ZF(:,:,:) = ZF(:,:,:) + ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:) !$acc end kernels @@ -968,7 +968,7 @@ END IF END IF #else IF (GFWR) THEN - CALL MZF_DEVICE(KKA,KKU,KKL,PFWR(:,:,:),ZTMP1_DEVICE(:,:,:)) + CALL MZF_DEVICE( PFWR(:,:,:), ZTMP1_DEVICE(:,:,:) ) CALL M3_THR_W2R(KKA,KKU,KKL,PREDTH1(:,:,:),PD(:,:,:),PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),& & PDTH_DZ(:,:,:),ZTMP2_DEVICE(:,:,:)) !$acc kernels @@ -1087,9 +1087,9 @@ END IF END DO !$acc end kernels !!! - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP7_DEVICE(:,:,:),ZTMP3_DEVICE(:,:,:)) - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP1_DEVICE(:,:,:), ZTMP4_DEVICE(:,:,:) ) - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE(:,:,:), ZTMP5_DEVICE(:,:,:) ) + CALL MZF_DEVICE( ZTMP7_DEVICE(:,:,:), ZTMP3_DEVICE(:,:,:) ) + CALL MZF_DEVICE( ZTMP1_DEVICE(:,:,:), ZTMP4_DEVICE(:,:,:) ) + CALL MZF_DEVICE( ZTMP2_DEVICE(:,:,:), ZTMP5_DEVICE(:,:,:) ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) @@ -1163,7 +1163,7 @@ END IF ! CALL LES_MEAN_SUBGRID( ZFLXZ(:,:,:), X_LES_SUBGRID_THlRt ) ! - CALL MZF_DEVICE(KKA,KKU,KKL,PWM(:,:,:),ZTMP1_DEVICE(:,:,:)) + CALL MZF_DEVICE( PWM(:,:,:), ZTMP1_DEVICE(:,:,:) ) !$acc kernels ZTMP2_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZFLXZ(:,:,:) !$acc end kernels @@ -1222,7 +1222,7 @@ END IF END DO #endif !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP1_DEVICE(:,:,:),ZTMP2_DEVICE(:,:,:)) + CALL MZF_DEVICE( ZTMP1_DEVICE(:,:,:), ZTMP2_DEVICE(:,:,:) ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) @@ -1267,7 +1267,7 @@ END IF END IF #else IF (GFWR) THEN - CALL MZF_DEVICE(KKA,KKU,KKL,PFWR(:,:,:),ZTMP1_DEVICE(:,:,:)) + CALL MZF_DEVICE( PFWR(:,:,:), ZTMP1_DEVICE(:,:,:) ) CALL M3_R2_W2R(KKA,KKU,KKL,PREDR1(:,:,:),PREDTH1(:,:,:),PD(:,:,:),PDR_DZ(:,:,:),& & PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),ZTMP2_DEVICE(:,:,:)) !$acc kernels @@ -1316,7 +1316,7 @@ END IF END IF #else IF (GFWTH) THEN - CALL MZF_DEVICE(KKA,KKU,KKL,PFWTH(:,:,:),ZTMP1_DEVICE(:,:,:)) + CALL MZF_DEVICE( PFWTH(:,:,:), ZTMP1_DEVICE(:,:,:) ) CALL M3_R2_W2TH(KKA,KKU,KKL,PD(:,:,:),PLM(:,:,:),PLEPS(:,:,:),PTKEM(:,:,:),& & PBLL_O_E(:,:,:),PETHETA(:,:,:),PDR_DZ(:,:,:),ZTMP2_DEVICE(:,:,:)) !$acc kernels @@ -1375,14 +1375,14 @@ END IF ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK) END DO !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE(:,:,:),ZTMP1_DEVICE(:,:,:)) + CALL MZF_DEVICE( ZTMP2_DEVICE(:,:,:), ZTMP1_DEVICE(:,:,:) ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP3_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK) END DO !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE(:,:,:),ZTMP3_DEVICE(:,:,:)) + CALL MZF_DEVICE( ZTMP2_DEVICE(:,:,:), ZTMP3_DEVICE(:,:,:) ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) @@ -1464,7 +1464,7 @@ END IF ! CALL LES_MEAN_SUBGRID( ZFLXZ(:,:,:), X_LES_SUBGRID_Rt2 ) ! - CALL MZF_DEVICE(KKA,KKU,KKL,PWM(:,:,:),ZTMP1_DEVICE(:,:,:)) + CALL MZF_DEVICE( PWM(:,:,:), ZTMP1_DEVICE(:,:,:) ) ZTMP2_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:) * ZFLXZ(:,:,:) CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE(:,:,:), X_LES_RES_W_SBG_Rt2 ) ! diff --git a/src/MNH/turb_ver_thermo_flux.f90 b/src/MNH/turb_ver_thermo_flux.f90 index 9fe38eb7079e31eb4f6c369e31b15e957cf0a577..660a8e7197c22e6d2c6b28845089de0e673acbb8 100644 --- a/src/MNH/turb_ver_thermo_flux.f90 +++ b/src/MNH/turb_ver_thermo_flux.f90 @@ -1029,7 +1029,7 @@ IF (LOCEAN) THEN #ifndef MNH_OPENACC PTP(:,:,:)= XG*XALPHAOC * MZF(ZFLXZ ) #else - CALL MZF_DEVICE( KKA, KKU, KKL, ZFLXZ, ZTMP1_DEVICE ) + CALL MZF_DEVICE( ZFLXZ, ZTMP1_DEVICE ) PTP(:,:,:) = XG * XALPHAOC * ZTMP1_DEVICE #endif ELSE @@ -1050,14 +1050,14 @@ ELSE ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLXZ(JI,JJ,JK) END DO !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL, ZTMP2_DEVICE,ZTMP3_DEVICE) + CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) !$acc kernels PTP(:,:,:) = PBETA(:,:,:) * ZTMP3_DEVICE(:,:,:) PTP(:,:,IKB)= PBETA(:,:,IKB) * PETHETA(:,:,IKB) * & 0.5 * ( ZFLXZ(:,:,IKB) + ZFLXZ(:,:,IKB+KKL) ) !$acc end kernels ELSE - CALL MZF_DEVICE(KKA,KKU,KKL, ZFLXZ,ZTMP1_DEVICE) + CALL MZF_DEVICE( ZFLXZ, ZTMP1_DEVICE ) !$acc kernels PTP(:,:,:)= PBETA(:,:,:) * ZTMP1_DEVICE(:,:,:) !$acc end kernels @@ -1150,15 +1150,15 @@ IF (LLES_CALL) THEN #else !$acc data copy(X_LES_SUBGRID_WThl,X_LES_RES_W_SBG_WThl,X_LES_RES_ddxa_W_SBG_UaThl,X_LES_RES_ddxa_Thl_SBG_UaThl,& !$acc & X_LES_SUBGRID_ThlPz,X_LES_SUBGRID_WThv,X_LES_RES_ddxa_Rt_SBG_UaThl,X_LES_SUBGRID_Kh) - CALL MZF_DEVICE(KKA,KKU,KKL,ZFLXZ, ZTMP1_DEVICE) + CALL MZF_DEVICE( ZFLXZ, ZTMP1_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE, X_LES_SUBGRID_WThl ) !$acc kernels ZTMP1_DEVICE(:,:,:) = PWM(:,:,:)*ZFLXZ(:,:,:) !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP1_DEVICE, ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE, X_LES_RES_W_SBG_WThl ) CALL GZ_W_M_DEVICE(KKA,KKU,KKL,PWM,PDZZ,ZTMP1_DEVICE ) - CALL MZF_DEVICE(KKA,KKU,KKL,ZFLXZ,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZFLXZ, ZTMP2_DEVICE ) !$acc kernels ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:) !$acc end kernels @@ -1166,9 +1166,9 @@ IF (LLES_CALL) THEN !$acc kernels ZTMP1_DEVICE(:,:,:) = PDTH_DZ(:,:,:)*ZFLXZ(:,:,:) !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE, X_LES_RES_ddxa_Thl_SBG_UaThl ) - CALL MZF_DEVICE(KKA,KKU,KKL,ZFLXZ,ZTMP1_DEVICE) + CALL MZF_DEVICE( ZFLXZ, ZTMP1_DEVICE ) !$acc kernels ZTMP2_DEVICE(:,:,:) = -XCTP*PSQRT_TKE(:,:,:)/PLM(:,:,:)*ZTMP1_DEVICE(:,:,:) !$acc end kernels @@ -1177,13 +1177,13 @@ IF (LLES_CALL) THEN !$acc kernels ZTMP2_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZFLXZ(:,:,:) !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP3_DEVICE) + CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP3_DEVICE, X_LES_SUBGRID_WThv ) IF (KRR>=1) THEN !$acc kernels ZTMP1_DEVICE(:,:,:) = PDR_DZ(:,:,:)*ZFLXZ(:,:,:) !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE, X_LES_RES_ddxa_Rt_SBG_UaThl ) END IF !* diagnostic of mixing coefficient for heat @@ -1199,7 +1199,7 @@ IF (LLES_CALL) THEN !Copy ZA into ZTMP1_DEVICE to prevent aliasing in the following call to MZF_DEVICE ZTMP1_DEVICE(:,:,:) = ZA(:,:,:) !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL, ZTMP1_DEVICE, ZA ) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZA ) !$acc kernels ZA(:,:,:) = MIN(MAX(ZA(:,:,:),-1000.),1000.) !$acc end kernels @@ -1519,7 +1519,7 @@ END DO #ifndef MNH_OPENACC ZA(:,:,:)= -XG * XBETAOC * MZF(ZFLXZ ) #else - CALL MZF_DEVICE( KKA, KKU, KKL, ZFLXZ, ZTMP1_DEVICE ) + CALL MZF_DEVICE( ZFLXZ, ZTMP1_DEVICE ) !$acc kernels ZA(:,:,:)= -XG * XBETAOC * ZTMP1_DEVICE(:,:,:) !$acc end kernels @@ -1535,7 +1535,7 @@ END DO ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLXZ(JI,JJ,JK) END DO !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL, ZTMP2_DEVICE, ZTMP3_DEVICE ) + CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) !$acc kernels !$acc loop independent collapse(3) DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) @@ -1626,13 +1626,13 @@ END DO #else !$acc data copy(X_LES_SUBGRID_WRt,X_LES_RES_W_SBG_WRt,X_LES_RES_ddxa_W_SBG_UaRt,X_LES_RES_ddxa_Thl_SBG_UaRt,& !$acc & X_LES_RES_ddxa_Rt_SBG_UaRt,X_LES_SUBGRID_WThv,X_LES_SUBGRID_RtPz) - CALL MZF_DEVICE(KKA,KKU,KKL,ZFLXZ,ZTMP1_DEVICE) + CALL MZF_DEVICE( ZFLXZ, ZTMP1_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE, X_LES_SUBGRID_WRt ) ! !$acc kernels ZTMP2_DEVICE(:,:,:) = PWM(:,:,:)*ZFLXZ(:,:,:) !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP3_DEVICE) + CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP3_DEVICE, X_LES_RES_W_SBG_WRt ) ! !$acc kernels @@ -1647,20 +1647,20 @@ END DO !$acc kernels ZTMP2_DEVICE(:,:,:) = PDTH_DZ(:,:,:)*ZFLXZ(:,:,:) !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP3_DEVICE) + CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP3_DEVICE, X_LES_RES_ddxa_Thl_SBG_UaRt ) ! !$acc kernels ZTMP2_DEVICE(:,:,:) = PDR_DZ(:,:,:)*ZFLXZ(:,:,:) !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP3_DEVICE) + CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP3_DEVICE, X_LES_RES_ddxa_Rt_SBG_UaRt ) ! CALL MZM_DEVICE(PEMOIST,ZTMP2_DEVICE) !$acc kernels ZTMP3_DEVICE(:,:,:) = ZTMP2_DEVICE(:,:,:)*ZFLXZ(:,:,:) !$acc end kernels - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP3_DEVICE,ZTMP4_DEVICE) + CALL MZF_DEVICE( ZTMP3_DEVICE, ZTMP4_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP4_DEVICE, X_LES_SUBGRID_WThv , .TRUE. ) ! !$acc kernels @@ -1749,7 +1749,7 @@ IF ( ((OTURB_FLX .AND. tpfile%lopened) .OR. LLES_CALL) .AND. (KRRL > 0) ) THEN CALL LES_MEAN_SUBGRID( MZF(ZFLXZ), X_LES_SUBGRID_WRc ) #else !$acc data copy(X_LES_SUBGRID_WRc) - CALL MZF_DEVICE(KKA,KKU,KKL,ZFLXZ,ZTMP1_DEVICE) + CALL MZF_DEVICE( ZFLXZ, ZTMP1_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE, X_LES_SUBGRID_WRc ) !$acc end data #endif diff --git a/src/ZSOLVER/advecuvw_weno_k.f90 b/src/ZSOLVER/advecuvw_weno_k.f90 index 3bcd61443e22b231d642ada5c62c36ed55be37a1..8486449ef818ff7dd21d571edf4c51df4a71091c 100644 --- a/src/ZSOLVER/advecuvw_weno_k.f90 +++ b/src/ZSOLVER/advecuvw_weno_k.f90 @@ -132,7 +132,6 @@ REAL, DIMENSION(:,:,:), allocatable :: ZMEAN, ZWORK REAL, DIMENSION(:,:,:) :: ZMEAN, ZWORK #endif ! -INTEGER :: IKU #ifdef MNH_OPENACC INTEGER :: IZFPOS1, IZFPOS2, IZFPOS3 INTEGER :: IZFNEG1, IZFNEG2, IZFNEG3 @@ -181,7 +180,6 @@ TZHALO2_VT => TPHALO2_VT TZHALO2_WT => TPHALO2_WT #endif ! -IKU=SIZE(PUT,3) ! ------------------------------------------------------- ! SELECT CASE(KWENO_ORDER) @@ -232,7 +230,7 @@ CASE(1) ! WENO 1 PRUS(:,:,:) = PRUS(:,:,:) - ZWORK(:,:,:) !$acc end kernels ! - !PRUS = PRUS - DZF(1,IKU,1,UP_MZ(PUT,MXM(PRWCT))) + !PRUS = PRUS - DZF(UP_MZ(PUT,MXM(PRWCT))) CALL MXM_DEVICE(PRWCT,ZWORK) CALL UP_MZ_DEVICE(PUT,ZWORK,ZMEAN) CALL DZF_DEVICE( ZMEAN, ZWORK ) @@ -258,7 +256,7 @@ CASE(1) ! WENO 1 PRVS(:,:,:) = PRVS(:,:,:) - ZWORK(:,:,:) !$acc end kernels ! - !PRVS = PRVS - DZF(1,IKU,1,UP_MZ(PVT,MYM(PRWCT))) + !PRVS = PRVS - DZF( UP_MZ(PVT,MYM(PRWCT))) CALL MYM_DEVICE(PRWCT,ZWORK) CALL UP_MZ_DEVICE(PVT,ZWORK,ZMEAN) CALL DZF_DEVICE( ZMEAN, ZWORK ) @@ -268,7 +266,7 @@ CASE(1) ! WENO 1 ! ! W component ! - !PRWS = PRWS - DXF(UP_MX(PWT,MZM(1,IKU,1,PRUCT))) + !PRWS = PRWS - DXF(UP_MX(PWT,MZM(PRUCT))) CALL MZM_DEVICE(PRUCT,ZWORK) CALL UP_MX_DEVICE(PWT,ZWORK,ZMEAN) CALL DXF_DEVICE(ZMEAN,ZWORK) @@ -276,7 +274,7 @@ CASE(1) ! WENO 1 PRWS(:,:,:) = PRWS(:,:,:) - ZWORK(:,:,:) !$acc end kernels ! - !PRWS = PRWS - DYF(UP_MY(PWT,MZM(1,IKU,1,PRVCT))) + !PRWS = PRWS - DYF(UP_MY(PWT,MZM(PRVCT))) CALL MZM_DEVICE(PRVCT,ZWORK) CALL UP_MY_DEVICE(PWT,ZWORK,ZMEAN) CALL DYF_DEVICE(ZMEAN,ZWORK) @@ -284,8 +282,8 @@ CASE(1) ! WENO 1 PRWS(:,:,:) = PRWS(:,:,:) - ZWORK(:,:,:) !$acc end kernels ! - !PRWS = PRWS - DZM(1,IKU,1,UP_WZ(PWT,MZF(1,IKU,1,PRWCT))) - CALL MZF_DEVICE(1,IKU,1,PRWCT,ZWORK) + !PRWS = PRWS - DZM(UP_WZ(PWT,MZF(PRWCT))) + CALL MZF_DEVICE( PRWCT, ZWORK ) CALL UP_WZ_DEVICE(PWT,ZWORK,ZMEAN) CALL DZM_DEVICE( ZMEAN, ZWORK ) !$acc kernels @@ -366,7 +364,7 @@ CASE(3) ! WENO 3 !$acc end kernels END IF ! -! PRUS = PRUS - DZF(1,IKU,1,WENO_K_2_MZ(PUT, MXM(PRWCT))) +! PRUS = PRUS - DZF(WENO_K_2_MZ(PUT, MXM(PRWCT))) CALL MXM_DEVICE(PRWCT,ZWORK) CALL WENO_K_2_MZ(PUT, ZWORK, ZMEAN, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), & @@ -400,7 +398,7 @@ CASE(3) ! WENO 3 PRVS(:,:,:) = PRVS(:,:,:) - ZWORK(:,:,:) !$acc end kernels ! -! PRVS = PRVS - DZF(1,IKU,1,WENO_K_2_MZ(PVT, MYM(PRWCT))) +! PRVS = PRVS - DZF(WENO_K_2_MZ(PVT, MYM(PRWCT))) CALL MYM_DEVICE(PRWCT,ZWORK) CALL WENO_K_2_MZ(PVT, ZWORK, ZMEAN, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), & @@ -414,7 +412,7 @@ CASE(3) ! WENO 3 ! ! W component ! -! ZWORK = MZM(1,IKU,1,PRUCT) +! ZWORK = MZM(PRUCT) CALL MZM_DEVICE(PRUCT,ZWORK) CALL ADVEC_WENO_K_2_MX(HLBCX, PWT, ZWORK, ZMEAN, TZHALO2_WT%HALO2%WEST, TZHALO2_WT%HALO2%EAST, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), & @@ -426,7 +424,7 @@ CASE(3) ! WENO 3 !$acc end kernels ! IF (.NOT.L2D) THEN -! ZWORK = MZM(1,IKU,1,PRVCT) +! ZWORK = MZM(PRVCT) CALL MZM_DEVICE(PRVCT,ZWORK) CALL ADVEC_WENO_K_2_MY(HLBCY, PWT, ZWORK, ZMEAN, TZHALO2_WT%HALO2%NORTH, TZHALO2_WT%HALO2%SOUTH, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), & @@ -438,8 +436,8 @@ CASE(3) ! WENO 3 !$acc end kernels END IF ! -! PRWS = PRWS - DZM(1,IKU,1,WENO_K_2_WZ(PWT,MZF(1,IKU,1,PRWCT))) - CALL MZF_DEVICE(1,IKU,1,PRWCT,ZWORK) +! PRWS = PRWS - DZM(WENO_K_2_WZ(PWT,MZF(PRWCT))) + CALL MZF_DEVICE( PRWCT, ZWORK ) CALL WENO_K_2_WZ(PWT, ZWORK, ZMEAN, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), & ZT3D(:,:,:,IZBPOS1), ZT3D(:,:,:,IZBPOS2), ZT3D(:,:,:,IZBNEG1), ZT3D(:,:,:,IZBNEG2), & @@ -639,7 +637,7 @@ CASE(5) ! WENO 5 !$acc end kernels END IF ! - CALL MZF_DEVICE(1,IKU,1,PRWCT,ZWORK) + CALL MZF_DEVICE( PRWCT, ZWORK ) CALL WENO_K_3_WZ(PWT,ZWORK,ZMEAN, & ZT3D(:,:,:,IZFPOS1), ZT3D(:,:,:,IZFPOS2), ZT3D(:,:,:,IZFPOS3), & ZT3D(:,:,:,IZFNEG1), ZT3D(:,:,:,IZFNEG2), ZT3D(:,:,:,IZFNEG3), & diff --git a/src/ZSOLVER/turb.f90 b/src/ZSOLVER/turb.f90 index 05252079c24d2cf2a164d182c27f1a919a3a8cbb..b1906245f1ad3d3f71eea33dd2c918510d2e687c 100644 --- a/src/ZSOLVER/turb.f90 +++ b/src/ZSOLVER/turb.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2022 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -1330,7 +1330,7 @@ end if #ifndef MNH_OPENACC PTHP = PTHP + XG / PTHVREF * MZF( PFLXZTHVMF ) #else - CALL MZF_DEVICE(KKA,KKU,KKL,PFLXZTHVMF,ZTMP1_DEVICE) + CALL MZF_DEVICE( PFLXZTHVMF, ZTMP1_DEVICE ) !$acc kernels PTHP(:,:,:) = PTHP(:,:,:) + XG / PTHVREF(:,:,:) * ZTMP1_DEVICE(:,:,:) !$acc end kernels @@ -1516,7 +1516,7 @@ IF (LLES_CALL) THEN X_LES_SUBGRID_W2 = X_LES_SUBGRID_U2 !$acc end kernels CALL GZ_M_W_DEVICE(KKA,KKU,KKL,PTHLT,PDZZ,ZTMP2_DEVICE) - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP3_DEVICE) + CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) !$acc kernels ZTMP2_DEVICE = ZTMP1_DEVICE*ZTMP3_DEVICE !$acc end kernels @@ -1525,7 +1525,7 @@ IF (LLES_CALL) THEN IF (KRR>=1) THEN !$acc data copy(X_LES_RES_ddz_Rt_SBG_W2) CALL GZ_M_W_DEVICE(KKA,KKU,KKL,PRT(:,:,:,1),PDZZ,ZTMP2_DEVICE) - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP3_DEVICE) + CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) !$acc kernels ZTMP2_DEVICE = ZTMP1_DEVICE*PTKET*ZTMP3_DEVICE !$acc end kernels @@ -1535,7 +1535,7 @@ IF (LLES_CALL) THEN !$acc data copy(X_LES_RES_ddz_Sv_SBG_W2(:,:,:,1:NSV)) DO JSV=1,NSV CALL GZ_M_W_DEVICE(KKA,KKU,KKL,PSVT(:,:,:,JSV),PDZZ,ZTMP2_DEVICE) - CALL MZF_DEVICE(KKA,KKU,KKL,ZTMP2_DEVICE,ZTMP3_DEVICE) + CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) !$acc kernels ZTMP2_DEVICE = ZTMP1_DEVICE*PTKET*ZTMP3_DEVICE !$acc end kernels diff --git a/src/ZSOLVER/turb_hor_dyn_corr.f90 b/src/ZSOLVER/turb_hor_dyn_corr.f90 index 9c9fb79dd445e15be05838ae9d506fb0586001e7..4fd456bf8b1ab59908debfe23e28fe78df54b34d 100644 --- a/src/ZSOLVER/turb_hor_dyn_corr.f90 +++ b/src/ZSOLVER/turb_hor_dyn_corr.f90 @@ -433,7 +433,7 @@ IF (.NOT. L2D) THEN END IF CALL GZ_W_M_DEVICE(1,IKU,1,PWM,PDZZ,GZ_W_M_PWM) ! -CALL MZF_DEVICE(1,IKU,1,PDZZ,ZMZF_DZZ) +CALL MZF_DEVICE( PDZZ, ZMZF_DZZ ) #endif ! #ifndef MNH_OPENACC @@ -1215,7 +1215,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE, X_LES_RES_ddxa_Thl_SBG_UaW , .TRUE.) ! CALL GZ_M_W_DEVICE(1,IKU,1,PTHLM,PDZZ,ZTMP1_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) !$acc kernels ZTMP3_DEVICE = ZFLX*ZTMP2_DEVICE !$acc end kernels @@ -1233,7 +1233,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE, X_LES_RES_ddxa_Rt_SBG_UaW , .TRUE.) ! CALL GZ_M_W_DEVICE(1,IKU,1,PRM(:,:,:,1),PDZZ,ZTMP1_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) !$acc kernels ZTMP3_DEVICE = ZFLX*ZTMP2_DEVICE !$acc end kernels @@ -1253,7 +1253,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN X_LES_RES_ddxa_Sv_SBG_UaW(:,:,:,JSV) , .TRUE.) ! CALL GZ_M_W_DEVICE(1,IKU,1,PSVM(:,:,:,JSV),PDZZ,ZTMP1_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) !$acc kernels ZTMP3_DEVICE = ZFLX*ZTMP2_DEVICE !$acc end kernels diff --git a/src/ZSOLVER/turb_hor_thermo_flux.f90 b/src/ZSOLVER/turb_hor_thermo_flux.f90 index 8217fa9da82dd684f1fbf5cfff94000e44aa8567..ec6c195bcbc5ed7c7f016abe73f721d2ac8b97af 100644 --- a/src/ZSOLVER/turb_hor_thermo_flux.f90 +++ b/src/ZSOLVER/turb_hor_thermo_flux.f90 @@ -514,7 +514,7 @@ IF ( KRRL >= 1 ) THEN !$acc kernels ZTMP6_DEVICE(:,:,:) = ZTMP4_DEVICE(:,:,:)*ZTMP5_DEVICE(:,:,:) !$acc end kernels - CALL MZF_DEVICE(1,IKU,1, ZTMP6_DEVICE,ZTMP7_DEVICE ) + CALL MZF_DEVICE( ZTMP6_DEVICE, ZTMP7_DEVICE ) !$acc kernels ZFLXC(:,:,:) = 2.*( ZTMP2_DEVICE(:,:,:) +ZTMP7_DEVICE(:,:,:) ) !$acc end kernels @@ -630,7 +630,7 @@ IF (KSPLT==1 .AND. LLES_CALL) THEN ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:) !$acc end kernels CALL MXF_DEVICE(ZTMP3_DEVICE,ZTMP1_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP1_DEVICE,ZTMP2_DEVICE) + CALL MZF_DEVICE( ZTMP1_DEVICE,ZTMP2_DEVICE) CALL LES_MEAN_SUBGRID( ZTMP2_DEVICE,X_LES_RES_ddxa_W_SBG_UaThl , .TRUE. ) ! CALL GX_M_M_DEVICE(1,IKU,1,PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE) @@ -878,7 +878,7 @@ END DO !$acc kernels ZTMP6_DEVICE(:,:,:) = ZTMP4_DEVICE(:,:,:)*ZTMP5_DEVICE(:,:,:) !$acc end kernels - CALL MZF_DEVICE(1,IKU,1, ZTMP6_DEVICE, ZTMP7_DEVICE ) + CALL MZF_DEVICE( ZTMP6_DEVICE, ZTMP7_DEVICE ) !$acc kernels ZFLXC(:,:,:) = ZFLXC(:,:,:) + 2.*( ZTMP3_DEVICE(:,:,:) + ZTMP7_DEVICE(:,:,:) ) ! @@ -956,7 +956,7 @@ END DO ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:) !$acc end kernels CALL MXF_DEVICE(ZTMP3_DEVICE,ZTMP4_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP4_DEVICE,ZTMP3_DEVICE) + CALL MZF_DEVICE( ZTMP4_DEVICE, ZTMP3_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP3_DEVICE, X_LES_RES_ddxa_W_SBG_UaRt , .TRUE. ) ! CALL GX_M_M_DEVICE(1,IKU,1,PTHLM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE) @@ -1265,7 +1265,7 @@ IF ( KRRL >= 1 .AND. .NOT. L2D) THEN !$acc kernels ZTMP6_DEVICE(:,:,:) = ZTMP4_DEVICE(:,:,:)*ZTMP5_DEVICE(:,:,:) !$acc end kernels - CALL MZF_DEVICE(1,IKU,1, ZTMP6_DEVICE, ZTMP4_DEVICE ) + CALL MZF_DEVICE( ZTMP6_DEVICE, ZTMP4_DEVICE ) !$acc kernels ZFLXC(:,:,:) = 2.*( ZTMP3_DEVICE(:,:,:) + ZTMP4_DEVICE(:,:,:) ) !$acc end kernels @@ -1357,7 +1357,7 @@ IF (KSPLT==1 .AND. LLES_CALL) THEN ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:) !$acc end kernels CALL MYF_DEVICE(ZTMP3_DEVICE, ZTMP4_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP4_DEVICE, ZTMP1_DEVICE) + CALL MZF_DEVICE( ZTMP4_DEVICE, ZTMP1_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE, X_LES_RES_ddxa_W_SBG_UaThl , .TRUE. ) ! CALL GY_M_M_DEVICE(1,IKU,1,PTHLM,PDYY,PDZZ,PDZY,ZTMP1_DEVICE) @@ -1632,7 +1632,7 @@ IF (KRR/=0) THEN !$acc kernels ZTMP1_DEVICE(:,:,:) = ZTMP5_DEVICE(:,:,:)*ZTMP2_DEVICE(:,:,:) !$acc end kernels - CALL MZF_DEVICE(1,IKU,1, ZTMP1_DEVICE, ZTMP2_DEVICE ) + CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) !$acc kernels ZFLXC(:,:,:) = ZFLXC(:,:,:) + 2.*( ZTMP4_DEVICE(:,:,:) + ZTMP2_DEVICE(:,:,:) ) !$acc end kernels @@ -1715,7 +1715,7 @@ IF (KRR/=0) THEN ZTMP3_DEVICE(:,:,:) = ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:) !$acc end kernels CALL MYF_DEVICE(ZTMP3_DEVICE, ZTMP4_DEVICE) - CALL MZF_DEVICE(1,IKU,1,ZTMP4_DEVICE,ZTMP1_DEVICE) + CALL MZF_DEVICE( ZTMP4_DEVICE, ZTMP1_DEVICE ) CALL LES_MEAN_SUBGRID( ZTMP1_DEVICE,X_LES_RES_ddxa_W_SBG_UaRt , .TRUE. ) ! CALL GY_M_M_DEVICE(1,IKU,1,PTHLM,PDYY,PDZZ,PDZY,ZTMP1_DEVICE)