From ac1c332289268726d5a68fa357276763785004f5 Mon Sep 17 00:00:00 2001 From: Juan ESCOBAR <juan.escobar@aero.obs-mip.fr> Date: Fri, 16 Jun 2023 17:50:29 +0200 Subject: [PATCH] Juan 16/06/2023:MNH/* , For Nvhpc , remove duplicate "!$acc loop" introduced by use of mnh_do_conncurrent --- src/MNH/advection_metsv.f90 | 5 ---- src/MNH/advection_uvw.f90 | 4 --- src/MNH/condensation.f90 | 1 - src/MNH/gradient_m.f90 | 1 - src/MNH/gradient_u.f90 | 15 ---------- src/MNH/gradient_v.f90 | 15 ---------- src/MNH/rain_ice_red.f90 | 3 -- src/MNH/rain_ice_slow.f90 | 4 --- src/MNH/rotate_wind.f90 | 3 -- src/MNH/sources_neg_correct.f90 | 3 -- src/MNH/tke_eps_sources.f90 | 13 -------- src/MNH/tridiag_thermo.f90 | 5 ++-- src/MNH/tridiag_tke.f90 | 2 +- src/MNH/turb.f90 | 13 ++------ src/MNH/turb_hor_thermo_flux.f90 | 23 -------------- src/MNH/turb_hor_tke.f90 | 39 ------------------------ src/MNH/turb_hor_uw.f90 | 33 --------------------- src/MNH/turb_hor_vw.f90 | 33 --------------------- src/MNH/turb_ver.f90 | 3 -- src/MNH/turb_ver_dyn_flux.f90 | 30 ------------------- src/MNH/turb_ver_thermo_corr.f90 | 51 -------------------------------- src/MNH/turb_ver_thermo_flux.f90 | 27 ----------------- 22 files changed, 5 insertions(+), 321 deletions(-) diff --git a/src/MNH/advection_metsv.f90 b/src/MNH/advection_metsv.f90 index 90ecf0437..22bf95c7b 100644 --- a/src/MNH/advection_metsv.f90 +++ b/src/MNH/advection_metsv.f90 @@ -572,14 +572,12 @@ IF (.NOT. L1D) THEN #else IF (.NOT. L2D) THEN !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU ) ZCFL(JI,JJ,JK) = SQRT(BR_P2(ZCFLU(JI,JJ,JK))+BR_P2(ZCFLV(JI,JJ,JK))+BR_P2(ZCFLW(JI,JJ,JK))) !$mnh_end_do() !$acc end kernels ELSE !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU ) ZCFL(JI,JJ,JK) = SQRT(BR_P2(ZCFLU(JI,JJ,JK))+BR_P2(ZCFLW(JI,JJ,JK))) !$mnh_end_do() @@ -593,7 +591,6 @@ ELSE #if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP) ZCFL(:,:,:) = SQRT(ZCFLW(:,:,:)**2) #else - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU ) ZCFL(JI,JJ,JK) = SQRT(BR_P2(ZCFLW(JI,JJ,JK))) !$mnh_end_do() @@ -927,14 +924,12 @@ DO JSPL=1,KSPLIT !$acc end kernels END IF !$acc kernels - !$acc_nv loop independent collapse(4) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU, JR=1:KRR ) ZR(JI,JJ,JK,JR) = ZR(JI,JJ,JK,JR) + ( ZRRS_PPM(JI,JJ,JK,JR) + ZRRS_OTHER(JI,JJ,JK,JR) + PRRS_CLD(JI,JJ,JK,JR) ) & * ZTSTEP_PPM / PRHODJ(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc loop seq DO JSV = 1, KSV - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZSV(JI,JJ,JK,JSV) = ZSV(JI,JJ,JK,JSV) + ( ZRSVS_PPM(JI,JJ,JK,JSV) + ZRSVS_OTHER(JI,JJ,JK,JSV) + & PRSVS_CLD(JI,JJ,JK,JSV) ) * ZTSTEP_PPM / PRHODJ(JI,JJ,JK) diff --git a/src/MNH/advection_uvw.f90 b/src/MNH/advection_uvw.f90 index ef92cc975..f3ecc5506 100644 --- a/src/MNH/advection_uvw.f90 +++ b/src/MNH/advection_uvw.f90 @@ -435,9 +435,6 @@ DO JSPL=1,ISPLIT ! Tendencies on wind !$acc update device(ZRUS_ADV,ZRVS_ADV,ZRWS_ADV) !$acc kernels -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent (JI=1:IIU , JJ=1:IJU , JK=1:IKU ) PRUS(JI,JJ,JK) = PRUS(JI,JJ,JK) + ZRUS_ADV(JI,JJ,JK) / ISPLIT PRVS(JI,JJ,JK) = PRVS(JI,JJ,JK) + ZRVS_ADV(JI,JJ,JK) / ISPLIT @@ -451,7 +448,6 @@ DO JSPL=1,ISPLIT ! Guesses for next time splitting loop ! ! -!$acc_nv loop independent collapse(3) !$mnh_do_concurrent (JI=1:IIU , JJ=1:IJU , JK=1:IKU ) ZU(JI,JJ,JK) = ZU(JI,JJ,JK) + ZTSTEP / ZMXM_RHODJ(JI,JJ,JK) * & (ZRUS_OTHER(JI,JJ,JK) + ZRUS_ADV(JI,JJ,JK)) diff --git a/src/MNH/condensation.f90 b/src/MNH/condensation.f90 index 5dc18b098..dfd3f5a5d 100644 --- a/src/MNH/condensation.f90 +++ b/src/MNH/condensation.f90 @@ -502,7 +502,6 @@ IF (OUSERI) CALL COMPUTE_FRAC_ICE3D_DEVICE(HFRAC_ICE, ZFRAC, PT) #endif ! !$acc kernels -!$acc_nv loop independent !$mnh_do_concurrent ( JK=IKTB:IKTE ) JKPK(JK)=MAX(MIN(JK+KKL,IKTE),IKTB) JKMK(JK)=MAX(MIN(JK-KKL,IKTE),IKTB) diff --git a/src/MNH/gradient_m.f90 b/src/MNH/gradient_m.f90 index fa869751c..2731cbd34 100644 --- a/src/MNH/gradient_m.f90 +++ b/src/MNH/gradient_m.f90 @@ -1089,7 +1089,6 @@ ELSE / PDYY(:,1+1:IJU,:) ENDIF DO JJ=1,JPHEXT - !$acc_nv loop independent collapse(2) !$mnh_do_concurrent ( JI=1:IIU , JK=1:IKU ) PGY_M_V(JI,JJ,JK)=PGY_M_V(JI,IJU-2*JPHEXT+JJ,JK) !$mnh_end_do() diff --git a/src/MNH/gradient_u.f90 b/src/MNH/gradient_u.f90 index 73ddd61e0..797772f0c 100644 --- a/src/MNH/gradient_u.f90 +++ b/src/MNH/gradient_u.f90 @@ -239,18 +239,12 @@ IF (.NOT. LFLAT) THEN CALL DXF_DEVICE(PA,ZTMP1_DEVICE) CALL DZM_DEVICE( PA, ZTMP2_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP3_DEVICE(JI,JJ,JK) = PDZX(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL MXF_DEVICE(ZTMP3_DEVICE,ZTMP2_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP3_DEVICE(JI,JJ,JK) = ZTMP2_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK) !$mnh_end_do() !CONCURRENT @@ -435,9 +429,6 @@ IF (.NOT. LFLAT) THEN CALL DZM_DEVICE( PA, ZTMP1_DEVICE ) CALL MXM_DEVICE(PDZZ,ZTMP2_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP3_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK)/ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT @@ -445,9 +436,6 @@ IF (.NOT. LFLAT) THEN CALL MYM_DEVICE(ZTMP3_DEVICE,ZTMP1_DEVICE) CALL MXM_DEVICE(PDZY,ZTMP2_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP3_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK)*ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT @@ -456,9 +444,6 @@ IF (.NOT. LFLAT) THEN CALL DYM_DEVICE(PA,ZTMP1_DEVICE) CALL MXM_DEVICE(PDYY,ZTMP3_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) PGY_U_UV_DEVICE(JI,JJ,JK)= ( ZTMP1_DEVICE(JI,JJ,JK) - ZTMP2_DEVICE(JI,JJ,JK) ) / ZTMP3_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT diff --git a/src/MNH/gradient_v.f90 b/src/MNH/gradient_v.f90 index 4dd8e9585..1cf7d5438 100644 --- a/src/MNH/gradient_v.f90 +++ b/src/MNH/gradient_v.f90 @@ -241,18 +241,12 @@ IF (.NOT. LFLAT) THEN CALL DYF_DEVICE(PA,ZTMP1_DEVICE) CALL DZM_DEVICE( PA, ZTMP2_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP3_DEVICE(JI,JJ,JK) = PDZY(JI,JJ,JK)*ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL MYF_DEVICE(ZTMP3_DEVICE,ZTMP2_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP3_DEVICE(JI,JJ,JK) = ZTMP2_DEVICE(JI,JJ,JK)/PDZZ(JI,JJ,JK) !$mnh_end_do() !CONCURRENT @@ -436,9 +430,6 @@ IF (.NOT. LFLAT) THEN CALL MYM_DEVICE(PDZZ,ZTMP2_DEVICE) CALL DZM_DEVICE( PA, ZTMP3_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP4_DEVICE(JI,JJ,JK) = ZTMP3_DEVICE(JI,JJ,JK) / ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT @@ -446,9 +437,6 @@ IF (.NOT. LFLAT) THEN CALL MXM_DEVICE(ZTMP4_DEVICE,ZTMP2_DEVICE) CALL MYM_DEVICE(PDZX,ZTMP3_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP4_DEVICE(JI,JJ,JK) = ZTMP2_DEVICE(JI,JJ,JK) *ZTMP3_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT @@ -456,9 +444,6 @@ IF (.NOT. LFLAT) THEN CALL MZF_DEVICE( ZTMP4_DEVICE, ZTMP2_DEVICE ) CALL MYM_DEVICE(PDXX,ZTMP3_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) PGX_V_UV_DEVICE(JI,JJ,JK)= ( ZTMP1_DEVICE(JI,JJ,JK) - ZTMP2_DEVICE(JI,JJ,JK) ) / ZTMP3_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT diff --git a/src/MNH/rain_ice_red.f90 b/src/MNH/rain_ice_red.f90 index 937ac58e8..ca7de4e74 100644 --- a/src/MNH/rain_ice_red.f90 +++ b/src/MNH/rain_ice_red.f90 @@ -1405,7 +1405,6 @@ IF(HSUBG_AUCV_RC=='PDF ' .AND. CSUBG_PR_PDF=='SIGM') GTEST=.true. #endif IF(IMICRO>0) THEN -!acc loop independent !$mnh_do_concurrent(JL=1:IMICRO) ZRVT(JL) = PRVT(I1(JL),I2(JL),I3(JL)) ZRCT(JL) = PRCT(I1(JL),I2(JL),I3(JL)) @@ -2046,7 +2045,6 @@ end if IF(GEXT_TEND) THEN !$acc kernels !Z..T variables contain the exeternal tendency, we substract it -!$acc loop independent !$mnh_do_concurrent ( JL = 1 : IMICRO ) ZRVT(JL) = ZRVT(JL) - ZEXT_RV(JL) * PTSTEP ZRCT(JL) = ZRCT(JL) - ZEXT_RC(JL) * PTSTEP @@ -2059,7 +2057,6 @@ IF(GEXT_TEND) THEN !$acc end kernels IF (KRR==7) THEN !$acc kernels -!$acc loop independent !$mnh_do_concurrent ( JL = 1 : IMICRO ) ZRHT(JL) = ZRHT(JL) - ZEXT_RH(JL) * PTSTEP !$mnh_end_do() diff --git a/src/MNH/rain_ice_slow.f90 b/src/MNH/rain_ice_slow.f90 index ff37338cc..887c8d370 100644 --- a/src/MNH/rain_ice_slow.f90 +++ b/src/MNH/rain_ice_slow.f90 @@ -260,7 +260,6 @@ CALL MNH_MEM_GET( zz_diff, SIZE(PLSFACT) ) !$mnh_end_do() ! CONCURRENT ZZW(:) = 0.0 GWORK(:) = (PRST(:)>XRTMIN(5)) .AND. (PRSS(:)>0.0) - !$acc loop independent !$mnh_do_concurrent ( JL=1:JLU ) IF ( GWORK(JL) ) THEN ZZW(JL) = ( PSSI(JL)/(PRHODREF(JL)*PAI(JL)) ) * & @@ -290,7 +289,6 @@ CALL MNH_MEM_GET( zz_diff, SIZE(PLSFACT) ) !$acc kernels ZZW(:) = 0.0 GWORK(:) = PRIT(:)>XRTMIN(4) .AND. PRST(:)>XRTMIN(5) .AND. PRIS(:)>0.0 - !$acc loop independent !$mnh_do_concurrent ( JL=1:JLU ) IF ( GWORK(JL) ) THEN #if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP) @@ -353,7 +351,6 @@ CALL MNH_MEM_GET( zz_diff, SIZE(PLSFACT) ) ! !$acc kernels GWORK(:) = PRGT(:)>0.0 - !$acc loop independent !$mnh_do_concurrent ( JL=1:JLU ) IF ( GWORK(JL) ) THEN #if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP) @@ -367,7 +364,6 @@ CALL MNH_MEM_GET( zz_diff, SIZE(PLSFACT) ) !$mnh_end_do() ! CONCURRENT ZZW(:) = 0.0 GWORK(:) = PRGT(:)>XRTMIN(6) .AND. PRGS(:)>0.0 - !$acc loop independent !$mnh_do_concurrent ( JL=1:JLU ) IF ( GWORK(JL) ) THEN ZZW(JL) = ( PSSI(JL)/(PRHODREF(JL)*PAI(JL)) ) * & diff --git a/src/MNH/rotate_wind.f90 b/src/MNH/rotate_wind.f90 index f2b752afb..60a91dc4c 100644 --- a/src/MNH/rotate_wind.f90 +++ b/src/MNH/rotate_wind.f90 @@ -240,7 +240,6 @@ JLOC(:,:)=NINT(SIGN(1.,-PSINSLOPE(:,:))) ! ! interpolation in x direction ! -!$acc_nv loop independent collapse(2) !$mnh_do_concurrent(JI=IIB:IIE,JJ=1:IJU) ZCOEFF(JI,JJ) = & (0.5*PDXX(JI,JJ,IKB) + 0.5*PDZZ(JI,JJ,IKB)*PDIRCOSXW(JI,JJ) ) & @@ -260,7 +259,6 @@ JLOC(:,:)=NINT(SIGN(1.,-PSINSLOPE(:,:))) ! ! interpolation in y direction ! -!$acc_nv loop independent collapse(2) !$mnh_do_concurrent(JI=IIB:IIE,JJ=IJB:IJE) ZCOEFF(JI,JJ) = & (0.5*PDYY(JI,JJ,IKB) + 0.5*PDZZ(JI,JJ,IKB)*PDIRCOSYW(JI,JJ) ) & @@ -280,7 +278,6 @@ JLOC(:,:)=NINT(SIGN(1.,-PSINSLOPE(:,:))) ! --------------- ! ! -!$acc_nv loop independent collapse(2) !$mnh_do_concurrent(JI=IIB:IIE,JJ=IJB:IJE) PUSLOPE(JI,JJ) = PCOSSLOPE(JI,JJ) * PDIRCOSZW(JI,JJ) * ZUFIN(JI,JJ) + & PSINSLOPE(JI,JJ) * PDIRCOSZW(JI,JJ) * ZVFIN(JI,JJ) + & diff --git a/src/MNH/sources_neg_correct.f90 b/src/MNH/sources_neg_correct.f90 index 551de61db..58bbe13a0 100644 --- a/src/MNH/sources_neg_correct.f90 +++ b/src/MNH/sources_neg_correct.f90 @@ -345,9 +345,6 @@ CLOUD: select case ( hcloud ) !$mnh_end_do() ! ice if ( krr > 3 ) then -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent( ji = 1 : jiu, jj = 1 : jju, jk = 1 : jku ) if ( prrs(ji, jj, jk, 1) < 0. .and. prrs(ji, jj, jk, 4) > 0. ) then zcor(ji, jj, jk) = Min( -prrs(ji, jj, jk, 1), prrs(ji, jj, jk, 4) ) diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90 index 68b912f64..7194e886d 100644 --- a/src/MNH/tke_eps_sources.f90 +++ b/src/MNH/tke_eps_sources.f90 @@ -352,9 +352,6 @@ IKE=KKU-JPVEXT_TURB*KKL #if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP) ZKEFF(:,:,:) = PLM(:,:,:) * SQRT(PTKEM(:,:,:)) #else -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZKEFF(JI,JJ,JK) = PLM(JI,JJ,JK) * BR_POW(PTKEM(JI,JJ,JK),0.5) !$mnh_end_do() @@ -393,16 +390,10 @@ PDP(:,:,IKB) = PDP(:,:,IKB) * (1. + PDZZ(:,:,IKB+KKL)/PDZZ(:,:,IKB)) #if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP) ZFLX(:,:,:) = XCED * SQRT(PTKEM(:,:,:)) / PLEPS(:,:,:) #else -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZFLX(JI,JJ,JK) = XCED * BR_POW(PTKEM(JI,JJ,JK),0.5) / PLEPS(JI,JJ,JK) !$mnh_end_do() #endif -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZSOURCE(JI,JJ,JK) = ( PRTKES(JI,JJ,JK) + PRTKESM(JI,JJ,JK) ) / PRHODJ(JI,JJ,JK) & - PTKEM(JI,JJ,JK) / PTSTEP & @@ -432,7 +423,6 @@ CALL MZM_DEVICE(PRHODJ,ZTMP2_DEVICE) !Warning: re-used later ZA(:,:,:) = - PTSTEP * XCET * ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:) / PDZZ(:,:,:)**2 !$mnh_end_expand_array() #else -!$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZA(JI,JJ,JK) = - PTSTEP * XCET * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) / BR_P2(PDZZ(JI,JJ,JK)) !$mnh_end_do() !CONCURRENT @@ -448,9 +438,6 @@ CALL TRIDIAG_TKE(KKA,KKU,KKL,PTKEM,ZA,PTSTEP,PEXPL,PIMPL,PRHODJ,& CALL GET_HALO(ZRES) #else !$acc kernels -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP3_DEVICE(JI,JJ,JK) = PTSTEP*ZFLX(JI,JJ,JK) !$mnh_end_do() !CONCURRENT diff --git a/src/MNH/tridiag_thermo.f90 b/src/MNH/tridiag_thermo.f90 index 2855dae8e..bb4480467 100644 --- a/src/MNH/tridiag_thermo.f90 +++ b/src/MNH/tridiag_thermo.f90 @@ -262,7 +262,6 @@ CALL MZM_DEVICE(PRHODJ,ZMZM_RHODJ) #ifndef MNH_BITREP ZRHODJ_DFDDTDZ_O_DZ2(:,:,:) = ZMZM_RHODJ(:,:,:)*PDFDDTDZ(:,:,:)/PDZZ(:,:,:)**2 #else -!$acc_nv loop independent collapse(3) !$mnh_do_concurrent (JK=1:JKU,JJ=1:JJU,JI=1:JIU) ZRHODJ_DFDDTDZ_O_DZ2(JI,JJ,JK) = ZMZM_RHODJ(JI,JJ,JK)*PDFDDTDZ(JI,JJ,JK)/BR_P2(PDZZ(JI,JJ,JK)) !$mnh_end_do() !CONCURRENT @@ -372,7 +371,7 @@ IF ( PIMPL > 1.E-10 ) THEN DO JK = IKB+KKL,IKE-KKL,KKL #ifdef MNH_COMPILER_NVHPC ! gang+vector needed or parallisation vector only - !$acc loop independent gang, vector collapse(2) + ! acc loop independent gang, vector collapse(2) #endif !$mnh_do_concurrent (JJ=1:JJU,JI=1:JIU) ZGAM(JI,JJ,JK) = ZC(JI,JJ,JK-KKL) / ZBET(JI,JJ) @@ -404,7 +403,7 @@ END DO DO JK = IKE-KKL,IKB,-1*KKL #ifdef MNH_COMPILER_NVHPC ! gang+vector needed or parallisation vector only - !$acc loop independent gang, vector collapse(2) + ! acc loop independent gang, vector collapse(2) #endif !$mnh_do_concurrent (JJ=1:JJU,JI=1:JIU) PVARP(JI,JJ,JK) = PVARP(JI,JJ,JK) - ZGAM(JI,JJ,JK+KKL) * PVARP(JI,JJ,JK+KKL) diff --git a/src/MNH/tridiag_tke.f90 b/src/MNH/tridiag_tke.f90 index ba836e09c..a3f1fd96f 100644 --- a/src/MNH/tridiag_tke.f90 +++ b/src/MNH/tridiag_tke.f90 @@ -268,7 +268,7 @@ IF ( PIMPL > 1.E-10 ) THEN !$acc loop seq DO JK = IKB+KKL,IKE-KKL,KKL #ifdef MNH_COMPILER_NVHPC - !$acc loop gang, vector collapse(2) independent + ! acc loop gang, vector collapse(2) independent #endif !$mnh_do_concurrent (JJ=1:JJU,JI=1:JIU) ZGAM(JI,JJ,JK) = PIMPL * PA(JI,JJ,JK) / PRHODJ(JI,JJ,JK-KKL) / ZBET(JI,JJ) diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90 index 9b44aed1e..af75646a8 100644 --- a/src/MNH/turb.f90 +++ b/src/MNH/turb.f90 @@ -1084,7 +1084,6 @@ ENDIF ZCDUEFF(:,:) =-SQRT ( (PSFU(:,:)**2 + PSFV(:,:)**2) / & (XMNH_TINY + ZUSLOPE(:,:)**2 + ZVSLOPE(:,:)**2 ) ) #else - !$acc_nv loop independent collapse(2) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU ) ZCDUEFF(JI,JJ) =-SQRT ( (BR_P2(PSFU(JI,JJ)) + BR_P2(PSFV(JI,JJ))) / & (XMNH_TINY + BR_P2(ZUSLOPE(JI,JJ)) + BR_P2(ZVSLOPE(JI,JJ)) ) ) @@ -1908,7 +1907,6 @@ CALL MNH_MEM_GET( zdrvsatdt, size( pexn, 1 ), size( pexn, 2 ), size( pexn, 3 ) ) !$acc end kernels #else !$acc kernels -!$acc_nv loop independent collapse(3) !$mnh_do_concurrent(JI=1:JIU,JJ=1:JJU,JK=1:JKU) PATHETA(JI,JJ,JK)= PAMOIST(JI,JJ,JK) * PEXN(JI,JJ,JK) * & ( ( ZRVSAT(JI,JJ,JK) - PRT(JI,JJ,JK,1) ) * PLOCPEXN(JI,JJ,JK) / & @@ -1928,7 +1926,6 @@ CALL MNH_MEM_GET( zdrvsatdt, size( pexn, 1 ), size( pexn, 2 ), size( pexn, 3 ) ) ! !!$acc kernels present(PLOCPEXN) !$acc kernels -!$acc_nv loop independent collapse(3) !$mnh_do_concurrent(JI=1:JIU,JJ=1:JJU,JK=1:JKU) PLOCPEXN(JI,JJ,JK) = PLOCPEXN(JI,JJ,JK) / PEXN(JI,JJ,JK) !$mnh_end_do() @@ -2600,7 +2597,7 @@ CALL EMOIST(KRR,KRRI,PTHLT,PRT,PLOCPEXNM,PAMOIST,PSRCT,ZEMOIST) ! !$acc kernels present(ZWORK2D,PLM) IF (KRR>0) THEN - !$acc_nv loop independent collapse(3) private(ZVAR) + ! acc_nv loop independent collapse(3) private(ZVAR) !$mnh_do_concurrent( JI=1:JIU, JJ=1:JJU, JK = KKTB+1:KKTE-1) ZDTHLDZ(JI,JJ,JK)= 0.5*((PTHLT(JI,JJ,JK+KKL)-PTHLT(JI,JJ,JK ))/PDZZ(JI,JJ,JK+KKL)+ & (PTHLT(JI,JJ,JK )-PTHLT(JI,JJ,JK-KKL))/PDZZ(JI,JJ,JK )) @@ -2619,7 +2616,7 @@ IF (KRR>0) THEN END IF !$mnh_end_do() ELSE! For dry atmos or unsalted ocean runs - !$acc_nv loop independent collapse(3) private(ZVAR) + ! acc_nv loop independent collapse(3) private(ZVAR) !$mnh_do_concurrent( JI=1:JIU, JJ=1:JJU, JK = KKTB+1:KKTE-1) ZDTHLDZ(JI,JJ,JK)= 0.5*((PTHLT(JI,JJ,JK+KKL)-PTHLT(JI,JJ,JK ))/PDZZ(JI,JJ,JK+KKL)+ & (PTHLT(JI,JJ,JK )-PTHLT(JI,JJ,JK-KKL))/PDZZ(JI,JJ,JK )) @@ -2650,9 +2647,6 @@ IF (GOCEAN) THEN ZWORK2D(:,:)=XG*(XALPHAOC*ZDTHLDZ(:,:,KKB)-XBETAOC*ZDRTDZ(:,:,KKB)) #else !PW: bug: nvhpc 21.11 does not parallelize this loop even with loop independent directive! -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(2) -#endif !$mnh_do_concurrent( JI = 1 : JIU, JJ = 1 : JJU ) ZWORK2D(JI,JJ)=XG*(XALPHAOC*ZDTHLDZ(JI,JJ,KKB)-XBETAOC*ZDRTDZ(JI,JJ,KKB)) !$mnh_end_do() @@ -2664,9 +2658,6 @@ ELSE (ZETHETA(:,:,KKB)*ZDTHLDZ(:,:,KKB)+ZEMOIST(:,:,KKB)*ZDRTDZ(:,:,KKB)) #else !PW: bug: nvhpc 21.11 does not parallelize this loop even with loop independent directive! -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(2) -#endif !$mnh_do_concurrent( JI = 1 : JIU, JJ = 1 : JJU ) ZWORK2D(JI,JJ)=XG/PTHVREF(JI,JJ,KKB)* & (ZETHETA(JI,JJ,KKB)*ZDTHLDZ(JI,JJ,KKB)+ZEMOIST(JI,JJ,KKB)*ZDRTDZ(JI,JJ,KKB)) diff --git a/src/MNH/turb_hor_thermo_flux.f90 b/src/MNH/turb_hor_thermo_flux.f90 index 7fbb58985..3d6873a4f 100644 --- a/src/MNH/turb_hor_thermo_flux.f90 +++ b/src/MNH/turb_hor_thermo_flux.f90 @@ -332,7 +332,6 @@ ZFLX(:,:,IKE+1) = ZFLX(:,:,IKE) CALL MXM_DEVICE( PK, ZTMP1_DEVICE ) CALL GX_M_U_DEVICE(1,IKU,1,PTHLM,PDXX,PDZZ,PDZX,ZTMP2_DEVICE) !$acc kernels present_cr(ZFLX) -!$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZFLX(JI,JJ,JK) = -XCSHF * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -398,28 +397,24 @@ END IF IF (.NOT. LFLAT) THEN CALL MXM_DEVICE(PRHODJ, ZTMP1_DEVICE) !$acc kernels present_cr(ZTMP2_DEVICE) - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLX(JI,JJ,JK) * PINV_PDXX(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL DXF_DEVICE(ZTMP2_DEVICE, ZTMP3_DEVICE) !$acc kernels present_cr(ZTMP2_DEVICE) - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK) * PINV_PDXX(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL MZM_DEVICE(ZTMP2_DEVICE,ZTMP4_DEVICE) !$acc kernels present_cr(ZTMP2_DEVICE) - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = PDZX(JI,JJ,JK)*ZTMP4_DEVICE(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL MXF_DEVICE(ZTMP2_DEVICE, ZTMP4_DEVICE) !$acc kernels present_cr(ZTMP2_DEVICE) -!$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP4_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK) !$mnh_end_do() @@ -765,7 +760,6 @@ END IF CALL MXM_DEVICE( PK, ZTMP1_DEVICE ) CALL GX_M_U_DEVICE(1,IKU,1,PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP2_DEVICE) !$acc kernels present_cr(ZFLX) -!$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZFLX(JI,JJ,JK) = -XCHF * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -804,35 +798,30 @@ END IF IF (.NOT. LFLAT) THEN CALL MXM_DEVICE(PRHODJ,ZTMP1_DEVICE) !$acc kernels present_cr(ZTMP2_DEVICE) - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLX(JI,JJ,JK) * PINV_PDXX(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL DXF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) !$acc kernels present_cr(ZTMP2_DEVICE) - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK) * PINV_PDXX(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL MZM_DEVICE(ZTMP2_DEVICE,ZTMP4_DEVICE) !$acc kernels present_cr(ZTMP2_DEVICE) - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = PDZX(JI,JJ,JK)*ZTMP4_DEVICE(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL MXF_DEVICE(ZTMP2_DEVICE,ZTMP4_DEVICE) !$acc kernels present_cr(ZTMP2_DEVICE) - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP4_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL DZF_DEVICE(ZTMP2_DEVICE,ZTMP4_DEVICE) !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) PRRS(JI,JJ,JK,1) = PRRS(JI,JJ,JK,1) - ZTMP3_DEVICE(JI,JJ,JK) + ZTMP4_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -1140,7 +1129,6 @@ END IF CALL MYM_DEVICE( PK, ZTMP1_DEVICE ) CALL GY_M_V_DEVICE(1,IKU,1,PTHLM,PDYY,PDZZ,PDZY,ZTMP2_DEVICE) !$acc kernels present_cr(ZFLX) - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZFLX(JI,JJ,JK) = -XCSHF * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -1187,35 +1175,30 @@ IF (.NOT. L2D) THEN IF (.NOT. LFLAT) THEN CALL MYM_DEVICE(PRHODJ, ZTMP1_DEVICE) !$acc kernels present_cr(ZTMP2_DEVICE) - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLX(JI,JJ,JK) * PINV_PDYY(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL DYF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) !$acc kernels present_cr(ZTMP1_DEVICE) - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP1_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK) * PINV_PDYY(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL MZM_DEVICE(ZTMP1_DEVICE, ZTMP2_DEVICE) !$acc kernels present_cr(ZTMP1_DEVICE) - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP1_DEVICE(JI,JJ,JK) = PDZY(JI,JJ,JK)*ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL MYF_DEVICE(ZTMP1_DEVICE, ZTMP2_DEVICE) !$acc kernels present_cr(ZTMP1_DEVICE) - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP1_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL DZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) PRTHLS(JI,JJ,JK) = PRTHLS(JI,JJ,JK) - ZTMP3_DEVICE(JI,JJ,JK) + ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -1507,7 +1490,6 @@ IF (KRR/=0) THEN CALL MYM_DEVICE( PK, ZTMP1_DEVICE ) CALL GY_M_V_DEVICE(1,IKU,1,PRM(:,:,:,1),PDYY,PDZZ,PDZY, ZTMP2_DEVICE) !$acc kernels present_cr(ZFLX) - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZFLX(JI,JJ,JK) = -XCHF * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT @@ -1553,7 +1535,6 @@ IF (KRR/=0) THEN IF (.NOT. LFLAT) THEN CALL MYM_DEVICE(PRHODJ, ZTMP1_DEVICE) !$acc kernels present_cr(ZTMP2_DEVICE) - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLX(JI,JJ,JK) * PINV_PDYY(JI,JJ,JK) !$mnh_end_do() @@ -1561,21 +1542,18 @@ IF (KRR/=0) THEN CALL DYF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) ! !$acc kernels present_cr(ZTMP1_DEVICE) - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP1_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK) * PINV_PDYY(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL MZM_DEVICE(ZTMP1_DEVICE,ZTMP2_DEVICE) !$acc kernels present_cr(ZTMP1_DEVICE) - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP1_DEVICE(JI,JJ,JK) = PDZY(JI,JJ,JK)*ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL MYF_DEVICE(ZTMP1_DEVICE,ZTMP2_DEVICE) !$acc kernels present_cr(ZTMP1_DEVICE) - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP1_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK) !$mnh_end_do() @@ -1583,7 +1561,6 @@ IF (KRR/=0) THEN CALL DZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) ! !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) PRRS(JI,JJ,JK,1) = PRRS(JI,JJ,JK,1) - ZTMP3_DEVICE(JI,JJ,JK) + ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() diff --git a/src/MNH/turb_hor_tke.f90 b/src/MNH/turb_hor_tke.f90 index 2e97d39d2..0aa4d3d69 100644 --- a/src/MNH/turb_hor_tke.f90 +++ b/src/MNH/turb_hor_tke.f90 @@ -224,9 +224,6 @@ ZFLX = -XCET * MXM(PK) * GX_M_U(1,IKU,1,PTKEM,PDXX,PDZZ,PDZX) ! < u'e > CALL MXM_DEVICE(PK,ZTMP1_DEVICE) CALL GX_M_U_DEVICE(1,IKU,1,PTKEM,PDXX,PDZZ,PDZX,ZTMP2_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZFLX(JI,JJ,JK) = -XCET * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) ! < u'e > !$mnh_end_do() !CONCURRENT @@ -234,9 +231,6 @@ CALL GX_M_U_DEVICE(1,IKU,1,PTKEM,PDXX,PDZZ,PDZX,ZTMP2_DEVICE) ! ! special case near the ground ( uncentred gradient ) ! -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(2) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU ) ZFLX(JI,JJ,IKB) = ZCOEFF(JI,JJ,IKB+2)*PTKEM(JI,JJ,IKB+2) & + ZCOEFF(JI,JJ,IKB+1)*PTKEM(JI,JJ,IKB+1) & @@ -295,45 +289,30 @@ END IF IF (.NOT. LFLAT) THEN CALL MXM_DEVICE(PRHODJ,ZTMP1_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLX(JI,JJ,JK) * PINV_PDXX(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL DXF_DEVICE(ZTMP2_DEVICE,ZTMP1_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK)*PINV_PDXX(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL MZM_DEVICE(ZTMP2_DEVICE,ZTMP3_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = PDZX(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL MXF_DEVICE( ZTMP2_DEVICE,ZTMP3_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) PTRH(JI,JJ,JK) =-( ZTMP1_DEVICE(JI,JJ,JK) - ZTMP3_DEVICE(JI,JJ,JK) ) /PRHODJ(JI,JJ,JK) !$mnh_end_do() !CONCURRENT @@ -377,9 +356,6 @@ IF (.NOT. L2D) THEN CALL MYM_DEVICE(PK,ZTMP1_DEVICE) CALL GY_M_V_DEVICE(1,IKU,1,PTKEM,PDYY,PDZZ,PDZY,ZTMP2_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZFLX(JI,JJ,JK) =-XCET * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) ! < v'e > !$mnh_end_do() !CONCURRENT @@ -451,45 +427,30 @@ IF (.NOT. L2D) THEN IF (.NOT. LFLAT) THEN CALL MYM_DEVICE(PRHODJ,ZTMP1_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLX(JI,JJ,JK) * PINV_PDYY(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL DYF_DEVICE(ZTMP2_DEVICE,ZTMP1_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK)*PINV_PDYY(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL MZM_DEVICE(ZTMP2_DEVICE,ZTMP3_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = PDZY(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL MYF_DEVICE(ZTMP2_DEVICE,ZTMP3_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) PTRH(JI,JJ,JK) = PTRH(JI,JJ,JK) - ( ZTMP1_DEVICE(JI,JJ,JK) - ZTMP3_DEVICE(JI,JJ,JK) ) & /PRHODJ(JI,JJ,JK) diff --git a/src/MNH/turb_hor_uw.f90 b/src/MNH/turb_hor_uw.f90 index 0c003af62..39a3a6e76 100644 --- a/src/MNH/turb_hor_uw.f90 +++ b/src/MNH/turb_hor_uw.f90 @@ -286,9 +286,6 @@ ZFLX(:,:,:) = & CALL MZM_DEVICE(PK,ZTMP1_DEVICE) CALL MXM_DEVICE(ZTMP1_DEVICE,ZTMP2_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZFLX(JI,JJ,JK) = - XCMFS * ZTMP2_DEVICE(JI,JJ,JK) * GX_W_UW_PWM(JI,JJ,JK) !$mnh_end_do() !CONCURRENT @@ -329,18 +326,12 @@ PRUS(:,:,:) = PRUS(:,:,:) - DZF( ZFLX* MXM( PMZM_PRHODJ ) / MXM( PDZZ ) ) CALL MXM_DEVICE( PMZM_PRHODJ, ZTMP1_DEVICE ) CALL MXM_DEVICE( PDZZ, ZTMP2_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP3_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK)* ZTMP1_DEVICE(JI,JJ,JK) / ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL DZF_DEVICE( ZTMP3_DEVICE, ZTMP1_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) PRUS(JI,JJ,JK) = PRUS(JI,JJ,JK) - ZTMP1_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT @@ -359,18 +350,12 @@ END IF #else CALL MXM_DEVICE(PRHODJ,ZTMP1_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * PINV_PDXX(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL MZM_DEVICE(ZTMP2_DEVICE, ZTMP1_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLX(JI,JJ,JK) !$mnh_end_do() !CONCURRENT @@ -378,18 +363,12 @@ END IF CALL DXF_DEVICE( ZTMP2_DEVICE,ZTMP1_DEVICE) IF (.NOT. LFLAT) THEN !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK)*PDZX(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP3_DEVICE(JI,JJ,JK)*PINV_PDXX(JI,JJ,JK) !$mnh_end_do() !CONCURRENT @@ -397,18 +376,12 @@ IF (.NOT. LFLAT) THEN CALL MXF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) CALL MZF_DEVICE( PDZZ, ZTMP2_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP4_DEVICE(JI,JJ,JK) = PRHODJ(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) / ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL DZM_DEVICE( ZTMP4_DEVICE, ZTMP2_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) PRWS(JI,JJ,JK) = PRWS(JI,JJ,JK) & - ZTMP1_DEVICE(JI,JJ,JK) & @@ -432,9 +405,6 @@ IF (KSPLT==1) THEN #else CALL GZ_U_UW_DEVICE(PUM,PDZZ,ZTMP1_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK) *( ZTMP1_DEVICE(JI,JJ,JK) + GX_W_UW_PWM(JI,JJ,JK) ) !$mnh_end_do() !CONCURRENT @@ -442,9 +412,6 @@ IF (KSPLT==1) THEN CALL MXF_DEVICE( ZTMP2_DEVICE,ZTMP1_DEVICE ) CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZWORK(JI,JJ,JK) = -ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT diff --git a/src/MNH/turb_hor_vw.f90 b/src/MNH/turb_hor_vw.f90 index 7f67565d3..02f32f21e 100644 --- a/src/MNH/turb_hor_vw.f90 +++ b/src/MNH/turb_hor_vw.f90 @@ -286,9 +286,6 @@ IF (.NOT. L2D) THEN CALL MZM_DEVICE(PK,ZTMP1_DEVICE) CALL MYM_DEVICE(ZTMP1_DEVICE,ZTMP2_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZFLX(JI,JJ,JK) = - XCMFS * ZTMP2_DEVICE(JI,JJ,JK) * GY_W_VW_PWM(JI,JJ,JK) !$mnh_end_do() !CONCURRENT @@ -336,18 +333,12 @@ IF (.NOT. L2D) THEN CALL MYM_DEVICE( PMZM_PRHODJ, ZTMP1_DEVICE ) CALL MYM_DEVICE( PDZZ, ZTMP2_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP3_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK)* ZTMP1_DEVICE(JI,JJ,JK) / ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL DZF_DEVICE( ZTMP3_DEVICE, ZTMP1_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) PRVS(JI,JJ,JK) = PRVS(JI,JJ,JK) - ZTMP1_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT @@ -371,36 +362,24 @@ IF (.NOT. L2D) THEN IF (.NOT. LFLAT) THEN CALL MYM_DEVICE(PRHODJ, ZTMP1_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * PINV_PDYY(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL MZM_DEVICE(ZTMP2_DEVICE, ZTMP1_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLX(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL DYF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK) *PDZY(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP3_DEVICE(JI,JJ,JK) * PINV_PDYY(JI,JJ,JK) !$mnh_end_do() !CONCURRENT @@ -408,18 +387,12 @@ IF (.NOT. L2D) THEN CALL MYF_DEVICE(ZTMP2_DEVICE,ZTMP3_DEVICE) CALL MZF_DEVICE( PDZZ, ZTMP2_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP4_DEVICE(JI,JJ,JK) = PRHODJ(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) / ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT !$acc end kernels CALL DZM_DEVICE( ZTMP4_DEVICE, ZTMP2_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) PRWS(JI,JJ,JK) = PRWS(JI,JJ,JK) & - ZTMP1_DEVICE(JI,JJ,JK) & @@ -453,9 +426,6 @@ IF (KSPLT==1) THEN #else CALL GZ_V_VW_DEVICE(PVM,PDZZ,ZTMP1_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK) *( ZTMP1_DEVICE(JI,JJ,JK) + GY_W_VW_PWM(JI,JJ,JK) ) !$mnh_end_do() !CONCURRENT @@ -463,9 +433,6 @@ IF (KSPLT==1) THEN CALL MYF_DEVICE(ZTMP2_DEVICE,ZTMP1_DEVICE) CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZWORK(JI,JJ,JK) = -ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() !CONCURRENT diff --git a/src/MNH/turb_ver.f90 b/src/MNH/turb_ver.f90 index 4963175b2..733e74de4 100644 --- a/src/MNH/turb_ver.f90 +++ b/src/MNH/turb_ver.f90 @@ -676,9 +676,6 @@ ENDIF ! Denominator factor in 3rd order terms ! !$acc kernels -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZD(JI,JJ,JK) = (1.+ZREDTH1(JI,JJ,JK)+ZREDR1(JI,JJ,JK)) * (1.+0.5*(ZREDTH1(JI,JJ,JK)+ZREDR1(JI,JJ,JK))) !$mnh_end_do() diff --git a/src/MNH/turb_ver_dyn_flux.f90 b/src/MNH/turb_ver_dyn_flux.f90 index 6046b2f54..419721d81 100644 --- a/src/MNH/turb_ver_dyn_flux.f90 +++ b/src/MNH/turb_ver_dyn_flux.f90 @@ -531,7 +531,6 @@ ZSOURCE(:,:,:) = 0. #ifndef MNH_BITREP ZDIRSINZW(:,:) = SQRT(1.-PDIRCOSZW(:,:)**2) #else -!$acc_nv loop independent collapse(2) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU ) ZDIRSINZW(JI,JJ) = SQRT(1.-BR_P2(PDIRCOSZW(JI,JJ))) !$mnh_end_do() @@ -583,7 +582,6 @@ CALL MXM_DEVICE( PDZZ, ZTMP4_DEVICE ) #ifndef MNH_BITREP ZA(:,:,:) = -PTSTEP * XCMFS * ZTMP1_DEVICE(:,:,:) * ZTMP3_DEVICE(:,:,:) / ZTMP4_DEVICE(:,:,:)**2 #else -!$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZA(JI,JJ,JK) = -PTSTEP * XCMFS * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) / BR_P2(ZTMP4_DEVICE(JI,JJ,JK)) !$mnh_end_do() @@ -601,13 +599,11 @@ ZA(:,:,:) = -PTSTEP * XCMFS * ZTMP1_DEVICE(:,:,:) * ZTMP3_DEVICE(:,:,:) / ZTMP4_ ZCOEFFLXU(:,:,1) = PCDUEFF(:,:) * (PDIRCOSZW(:,:)**2 - ZDIRSINZW(:,:)**2) & * PCOSSLOPE(:,:) #else -!$acc_nv loop independent collapse(2) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU ) ZCOEFFLXU(JI,JJ,1) = PCDUEFF(JI,JJ) * (BR_P2(PDIRCOSZW(JI,JJ)) - BR_P2(ZDIRSINZW(JI,JJ))) & * PCOSSLOPE(JI,JJ) !$mnh_end_do() #endif -!$acc_nv loop independent collapse(2) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU ) ZCOEFFLXV(JI,JJ,1) = PCDUEFF(JI,JJ) * PDIRCOSZW(JI,JJ) * PSINSLOPE(JI,JJ) @@ -620,7 +616,6 @@ ZCOEFFLXU(:,:,1) = PCDUEFF(:,:) * (PDIRCOSZW(:,:)**2 - ZDIRSINZW(:,:)**2) & #ifndef MNH_OPENACC ZCOEFS(:,:,1:1)=MXM(ZCOEFS(:,:,1:1) / PDZZ(:,:,IKB:IKB) ) #else -!$acc_nv loop independent collapse(2) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU ) ZTMP1_DEVICE(JI,JJ,1) = ZCOEFS(JI,JJ,1) / PDZZ(JI,JJ,IKB) !$mnh_end_do() @@ -728,7 +723,6 @@ ZFLXZ(:,:,:) = -XCMFS * MXM(ZKEFF) * & DZM (PIMPL*ZRES + PEXPL*PUM) / MXM(PDZZ) #else !$acc kernels -!$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = PIMPL*ZRES(JI,JJ,JK) + PEXPL*PUM(JI,JJ,JK) !$mnh_end_do() @@ -737,7 +731,6 @@ CALL MXM_DEVICE(ZKEFF,ZTMP1_DEVICE) CALL DZM_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) CALL MXM_DEVICE(PDZZ,ZTMP4_DEVICE) !$acc kernels -!$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZFLXZ(JI,JJ,JK) = -XCMFS * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) / ZTMP4_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -801,7 +794,6 @@ PDP(:,:,:) = - MZF( MXF ( ZFLXZ * GZ_U_UW(PUM,PDZZ) ) ) #else CALL GZ_U_UW_DEVICE(PUM,PDZZ,ZTMP1_DEVICE) !$acc kernels -!$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU ) ZTMP2_DEVICE(JI,JJ,JK) = ZFLXZ(JI,JJ,JK) * ZTMP1_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -903,14 +895,12 @@ IF(HTURBDIM=='3DIM') THEN #else CALL MXM_DEVICE(PRHODJ,ZTMP1_DEVICE) !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) /PDXX(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL MZM_DEVICE(ZTMP2_DEVICE,ZTMP3_DEVICE ) !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP3_DEVICE(JI,JJ,JK) * ZFLXZ(JI,JJ,JK) !$mnh_end_do() @@ -919,21 +909,18 @@ IF(HTURBDIM=='3DIM') THEN IF (.NOT. LFLAT) THEN CALL MZF_DEVICE( PDZZ, ZTMP2_DEVICE ) !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP3_DEVICE(JI,JJ,JK) = ZFLXZ(JI,JJ,JK)*PDZX(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL MZF_DEVICE( ZTMP3_DEVICE, ZTMP4_DEVICE ) !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP3_DEVICE(JI,JJ,JK) = ZTMP4_DEVICE(JI,JJ,JK) / PDXX(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL MXF_DEVICE( ZTMP3_DEVICE,ZTMP4_DEVICE ) !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP3_DEVICE(JI,JJ,JK) = PRHODJ(JI,JJ,JK) / ZTMP2_DEVICE(JI,JJ,JK) * ZTMP4_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -956,7 +943,6 @@ IF(HTURBDIM=='3DIM') THEN #else CALL GX_W_UW_DEVICE( PWM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE) !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZFLXZ(JI,JJ,JK) * ZTMP1_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -964,7 +950,6 @@ IF(HTURBDIM=='3DIM') THEN CALL MXF_DEVICE(ZTMP2_DEVICE,ZTMP1_DEVICE) CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZA(JI,JJ,JK)=-ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -1115,7 +1100,6 @@ CALL MYM_DEVICE(ZTMP3_DEVICE,ZTMP4_DEVICE) #ifndef MNH_BITREP ZA(:,:,:) = - PTSTEP * XCMFS * ZTMP1_DEVICE(:,:,:) * ZTMP4_DEVICE(:,:,:) / ZTMP2_DEVICE(:,:,:)**2 #else -!$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZA(JI,JJ,JK) = - PTSTEP * XCMFS * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP4_DEVICE(JI,JJ,JK) / BR_P2(ZTMP2_DEVICE(JI,JJ,JK)) !$mnh_end_do() @@ -1131,7 +1115,6 @@ ZA(:,:,:) = - PTSTEP * XCMFS * ZTMP1_DEVICE(:,:,:) * ZTMP4_DEVICE(:,:,:) / ZT ZCOEFFLXU(:,:,1) = PCDUEFF(:,:) * (PDIRCOSZW(:,:)**2 - ZDIRSINZW(:,:)**2) & * PSINSLOPE(:,:) #else -!$acc_nv loop independent collapse(2) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU ) ZCOEFFLXU(JI,JJ,1) = PCDUEFF(JI,JJ) * (BR_P2(PDIRCOSZW(JI,JJ)) - BR_P2(ZDIRSINZW(JI,JJ))) & * PSINSLOPE(JI,JJ) @@ -1140,7 +1123,6 @@ ZCOEFFLXU(JI,JJ,1) = PCDUEFF(JI,JJ) * (BR_P2(PDIRCOSZW(JI,JJ)) - BR_P2(ZDIRSINZW ZCOEFFLXV(:,:,1) = PCDUEFF(:,:) * PDIRCOSZW(:,:) * PCOSSLOPE(:,:) ! prepare the implicit scheme coefficients for the surface flux -!$acc_nv loop independent collapse(2) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU ) ZCOEFS(JI,JJ,1)= ZCOEFFLXU(JI,JJ,1) * PSINSLOPE(JI,JJ) * PDIRCOSZW(JI,JJ) & +ZCOEFFLXV(JI,JJ,1) * PCOSSLOPE(JI,JJ) @@ -1150,7 +1132,6 @@ ZCOEFS(JI,JJ,1)= ZCOEFFLXU(JI,JJ,1) * PSINSLOPE(JI,JJ) * PDIRCOSZW(JI,JJ) & #ifndef MNH_OPENACC ZCOEFS(:,:,1:1)=MYM(ZCOEFS(:,:,1:1) / PDZZ(:,:,IKB:IKB) ) #else -!$acc_nv loop independent collapse(2) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU ) ZTMP1_DEVICE(JI,JJ,1) = ZCOEFS(JI,JJ,1) / PDZZ(JI,JJ,IKB) !$mnh_end_do() @@ -1256,7 +1237,6 @@ ZFLXZ(:,:,IKB:IKB) = MYM(PDZZ(:,:,IKB:IKB)) * & ) / 0.5 / ( 1. + MYM(PRHODJ(:,:,KKA:KKA)) / MYM(PRHODJ(:,:,IKB:IKB)) ) #else !$acc kernels -!$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP1_DEVICE(JI,JJ,JK) = PIMPL*ZRES(JI,JJ,JK) + PEXPL*PVM(JI,JJ,JK) !$mnh_end_do() @@ -1265,7 +1245,6 @@ CALL DZM_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) CALL MYM_DEVICE(PDZZ,ZTMP3_DEVICE) CALL MYM_DEVICE(ZKEFF,ZTMP1_DEVICE) !$acc kernels -!$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZFLXZ(JI,JJ,JK) = -XCMFS * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) / ZTMP3_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -1321,7 +1300,6 @@ ZA(:,:,:) = - MZF( MYF ( ZFLXZ * GZ_V_VW(PVM,PDZZ) ) ) #else CALL GZ_V_VW_DEVICE(PVM,PDZZ,ZTMP1_DEVICE) !$acc kernels -!$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZFLXZ(JI,JJ,JK) * ZTMP1_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -1329,7 +1307,6 @@ CALL GZ_V_VW_DEVICE(PVM,PDZZ,ZTMP1_DEVICE) CALL MYF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) CALL MZF_DEVICE( ZTMP3_DEVICE, ZTMP1_DEVICE ) !$acc kernels -!$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZA(JI,JJ,JK) = - ZTMP1_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -1426,14 +1403,12 @@ IF(HTURBDIM=='3DIM') THEN IF (.NOT. L2D) THEN CALL MYM_DEVICE(PRHODJ,ZTMP1_DEVICE) !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) /PDYY(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL MZM_DEVICE(ZTMP2_DEVICE,ZTMP1_DEVICE) !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLXZ(JI,JJ,JK) !$mnh_end_do() @@ -1442,21 +1417,18 @@ IF(HTURBDIM=='3DIM') THEN IF (.NOT. LFLAT) THEN CALL MZF_DEVICE( PDZZ, ZTMP2_DEVICE ) !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP3_DEVICE(JI,JJ,JK) = ZFLXZ(JI,JJ,JK)*PDZY(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL MZF_DEVICE( ZTMP3_DEVICE, ZTMP4_DEVICE ) !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP3_DEVICE(JI,JJ,JK) = ZTMP4_DEVICE(JI,JJ,JK) / PDYY(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL MYF_DEVICE(ZTMP3_DEVICE,ZTMP4_DEVICE) !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP3_DEVICE(JI,JJ,JK) = PRHODJ(JI,JJ,JK) / ZTMP2_DEVICE(JI,JJ,JK) * ZTMP4_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -1480,7 +1452,6 @@ IF(HTURBDIM=='3DIM') THEN #else CALL GY_W_VW_DEVICE( PWM,PDYY,PDZZ,PDZY,ZTMP1_DEVICE) !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZFLXZ(JI,JJ,JK) * ZTMP1_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -1488,7 +1459,6 @@ IF(HTURBDIM=='3DIM') THEN CALL MYF_DEVICE(ZTMP2_DEVICE,ZTMP1_DEVICE) CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) !$acc kernels - !$acc_nv loop independent collapse(3) !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZA(JI,JJ,JK) = - ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() diff --git a/src/MNH/turb_ver_thermo_corr.f90 b/src/MNH/turb_ver_thermo_corr.f90 index c78119ca5..590cc7d74 100644 --- a/src/MNH/turb_ver_thermo_corr.f90 +++ b/src/MNH/turb_ver_thermo_corr.f90 @@ -566,9 +566,6 @@ END IF !dir$ concurrent ZTMP1_DEVICE(:,:,:) = PPHI3(:,:,:)*PDTH_DZ(:,:,:)**2 #else -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP1_DEVICE(JI,JJ,JK) = PPHI3(JI,JJ,JK)*BR_P2(PDTH_DZ(JI,JJ,JK)) !$mnh_end_do() @@ -576,9 +573,6 @@ END IF !$acc end kernels CALL MZF_DEVICE( ZTMP1_DEVICE(:,:,:), ZTMP2_DEVICE(:,:,:) ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZF (JI,JJ,JK) = XCTV*PLM(JI,JJ,JK)*PLEPS(JI,JJ,JK)*ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -722,9 +716,6 @@ END IF !$acc end kernels CALL DZM_DEVICE( ZTMP1_DEVICE(:,:,:), ZTMP2_DEVICE(:,:,:) ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP3_DEVICE(JI,JJ,JK) = ZTMP2_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK) !$mnh_end_do() @@ -735,9 +726,6 @@ END IF !$acc kernels #else !$acc kernels -#endif -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) #endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZFLXZ(JI,JJ,JK) = ZF(JI,JJ,JK) & @@ -763,9 +751,6 @@ END IF !$acc end kernels #else !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(2) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU ) ZFLXZ(JI,JJ,IKB) = XCTV * PPHI3(JI,JJ,IKB+KKL) * PLM(JI,JJ,IKB) & * PLEPS(JI,JJ,IKB) & @@ -869,9 +854,6 @@ END IF !$acc end kernels CALL MZF_DEVICE( ZTMP1_DEVICE(:,:,:), ZTMP2_DEVICE(:,:,:) ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZF (JI,JJ,JK) = XCTV*PLM(JI,JJ,JK)*PLEPS(JI,JJ,JK)*ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -1060,9 +1042,6 @@ END IF CALL DZM_DEVICE( ZTMP1_DEVICE(:,:,:), ZTMP3_DEVICE(:,:,:) ) CALL DZM_DEVICE( ZTMP2_DEVICE(:,:,:), ZTMP4_DEVICE(:,:,:) ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP1_DEVICE(JI,JJ,JK) = ZTMP3_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP4_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK) @@ -1085,9 +1064,6 @@ END IF CALL DZM_DEVICE( ZTMP8_DEVICE(:,:,:), ZTMP1_DEVICE(:,:,:) ) !!! !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP7_DEVICE(JI,JJ,JK) = ( ZTMP3_DEVICE(JI,JJ,JK) + ZTMP4_DEVICE(JI,JJ,JK)) * PDR_DZ(JI,JJ,JK) & * ZTMP2_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK) & @@ -1103,9 +1079,6 @@ END IF CALL DZM_DEVICE( ZTMP1_DEVICE(:,:,:), ZTMP3_DEVICE(:,:,:) ) CALL DZM_DEVICE( ZTMP2_DEVICE(:,:,:), ZTMP4_DEVICE(:,:,:) ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP1_DEVICE(JI,JJ,JK) = ZTMP3_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP4_DEVICE(JI,JJ,JK) /PDZZ(JI,JJ,JK) @@ -1116,9 +1089,6 @@ END IF CALL MZF_DEVICE( ZTMP1_DEVICE(:,:,:), ZTMP4_DEVICE(:,:,:) ) CALL MZF_DEVICE( ZTMP2_DEVICE(:,:,:), ZTMP5_DEVICE(:,:,:) ) !$acc kernels present_cr(zflxz) -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZFLXZ(JI,JJ,JK) = ZF(JI,JJ,JK) & + PIMPL * XCTV*PLM(JI,JJ,JK)*PLEPS(JI,JJ,JK)*0.5 * ZTMP3_DEVICE(JI,JJ,JK) & @@ -1128,9 +1098,6 @@ END IF #endif ! ! special case near the ground ( uncentred gradient ) -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(2) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU ) ZFLXZ(JI,JJ,IKB) = & (XCHT1 * PPHI3(JI,JJ,IKB+KKL) + XCHT2 * PPSI3(JI,JJ,IKB+KKL)) & @@ -1246,9 +1213,6 @@ END IF !dir$ concurrent ZTMP1_DEVICE(:,:,:) = PPSI3(:,:,:)*PDR_DZ(:,:,:)**2 #else -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP1_DEVICE(JI,JJ,JK) = PPSI3(JI,JJ,JK)*BR_P2(PDR_DZ(JI,JJ,JK)) !$mnh_end_do() @@ -1256,9 +1220,6 @@ END IF !$acc end kernels CALL MZF_DEVICE( ZTMP1_DEVICE(:,:,:), ZTMP2_DEVICE(:,:,:) ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZF (JI,JJ,JK) = XCTV*PLM(JI,JJ,JK)*PLEPS(JI,JJ,JK)*ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -1404,18 +1365,12 @@ END IF !$acc end kernels CALL DZM_DEVICE( ZTMP2_DEVICE(:,:,:), ZTMP3_DEVICE(:,:,:) ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL MZF_DEVICE( ZTMP2_DEVICE(:,:,:), ZTMP1_DEVICE(:,:,:) ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_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) !$mnh_end_do() @@ -1425,9 +1380,6 @@ END IF !$acc kernels #else !$acc kernels -#endif -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) #endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZFLXZ(JI,JJ,JK) = ZF(JI,JJ,JK) & @@ -1454,9 +1406,6 @@ END IF !$acc end kernels #else !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(2) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU ) ZFLXZ(JI,JJ,IKB) = XCHV * PPSI3(JI,JJ,IKB+KKL) * PLM(JI,JJ,IKB) & * PLEPS(JI,JJ,IKB) & diff --git a/src/MNH/turb_ver_thermo_flux.f90 b/src/MNH/turb_ver_thermo_flux.f90 index 4dae26c8d..ac93e74a9 100644 --- a/src/MNH/turb_ver_thermo_flux.f90 +++ b/src/MNH/turb_ver_thermo_flux.f90 @@ -745,9 +745,6 @@ ZDFDDTDZ(:,:,:) = -XCSHF*ZKEFF(:,:,:)*D_PHI3DTDZ_O_DDTDZ(PPHI3,PREDTH1,PREDR1,PR #else CALL DZM_DEVICE(PTHLM, ZTMP1_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZF (JI,JJ,JK) = -XCSHF*PPHI3(JI,JJ,JK)*ZKEFF(JI,JJ,JK)*ZTMP1_DEVICE(JI,JJ,JK)/PDZZ(JI,JJ,JK) !$mnh_end_do() @@ -755,9 +752,6 @@ CALL DZM_DEVICE(PTHLM, ZTMP1_DEVICE ) ! CALL D_PHI3DTDZ_O_DDTDZ(PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,HTURBDIM,GUSERV,ZTMP2_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZDFDDTDZ(JI,JJ,JK) = -XCSHF*ZKEFF(JI,JJ,JK)*ZTMP2_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -978,9 +972,6 @@ ZTMP1_DEVICE(:,:,:) = PTHLP(:,:,:) - PTHLM(:,:,:) !$acc end kernels CALL DZM_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZFLXZ(JI,JJ,JK) = ZF(JI,JJ,JK) + PIMPL * ZDFDDTDZ(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK) !$mnh_end_do() @@ -1055,9 +1046,6 @@ ELSE IF (KRR /= 0) THEN CALL MZM_DEVICE(PETHETA,ZTMP1_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLXZ(JI,JJ,JK) !$mnh_end_do() @@ -1256,9 +1244,6 @@ IF (KRR /= 0) THEN #else CALL DZM_DEVICE( PRM(:,:,:,1), ZTMP1_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZF (JI,JJ,JK) = -XCSHF*PPSI3(JI,JJ,JK)*ZKEFF(JI,JJ,JK)*ZTMP1_DEVICE(JI,JJ,JK)/PDZZ(JI,JJ,JK) !$mnh_end_do() @@ -1266,9 +1251,6 @@ IF (KRR /= 0) THEN CALL D_PSI3DRDZ_O_DDRDZ(PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,HTURBDIM,GUSERV,ZTMP1_DEVICE) !CALL D_PHI3DRDZ_O_DDRDZ_DEVICE(PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,HTURBDIM,GUSERV,ZTMP1_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC - !$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZDFDDRDZ(JI,JJ,JK) = -XCSHF*ZKEFF(JI,JJ,JK)*ZTMP1_DEVICE(JI,JJ,JK) !$mnh_end_do() @@ -1492,9 +1474,6 @@ IF (KRR /= 0) THEN !$acc end kernels CALL DZM_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZFLXZ(JI,JJ,JK) = ZF(JI,JJ,JK) + PIMPL * ZDFDDRDZ(JI,JJ,JK) *ZTMP2_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK) !$mnh_end_do() @@ -1555,18 +1534,12 @@ IF (KRR /= 0) THEN #else CALL MZM_DEVICE(PEMOIST,ZTMP1_DEVICE) !$acc kernels -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLXZ(JI,JJ,JK) !$mnh_end_do() !$acc end kernels CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE ) !$acc kernels -#ifdef MNH_COMPILER_NVHPC -!$acc loop independent collapse(3) -#endif !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) ZA(JI,JJ,JK) = PBETA(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) !$mnh_end_do() -- GitLab