diff --git a/src/MNH/advection_metsv.f90 b/src/MNH/advection_metsv.f90 index cc1b8cf7d5be24e8a1bcb634f75821a89a80b9a8..39b1b0a38a0d838baf6104b7358ec053cb6fe32f 100644 --- a/src/MNH/advection_metsv.f90 +++ b/src/MNH/advection_metsv.f90 @@ -553,6 +553,7 @@ END DO ! ! Top and bottom Boundaries ! +#ifdef _OPENACC CALL ADV_BOUNDARIES_DEVICE (HLBCX, HLBCY, ZRTHS_OTHER) IF (GTKE) CALL ADV_BOUNDARIES_DEVICE (HLBCX, HLBCY, ZRTKES_OTHER) DO JR = 1, KRR @@ -562,6 +563,16 @@ DO JSV = 1, KSV CALL ADV_BOUNDARIES_DEVICE (HLBCX, HLBCY, ZRSVS_OTHER(:,:,:,JSV)) END DO !Already done in ADV_BOUNDARIES_DEVICE !$acc update self(ZRTHS_OTHER,ZRTKES_OTHER,ZRRS_OTHER(:,:,:,1:KRR),ZRSVS_OTHER(:,:,:,1:KSV)) +#else +CALL ADV_BOUNDARIES (HLBCX, HLBCY, ZRTHS_OTHER) +IF (GTKE) CALL ADV_BOUNDARIES (HLBCX, HLBCY, ZRTKES_OTHER) +DO JR = 1, KRR + CALL ADV_BOUNDARIES (HLBCX, HLBCY, ZRRS_OTHER(:,:,:,JR)) +END DO +DO JSV = 1, KSV + CALL ADV_BOUNDARIES (HLBCX, HLBCY, ZRSVS_OTHER(:,:,:,JSV)) +END DO +#endif ! ! Exchanges on processors ! diff --git a/src/MNH/init_mnh.f90 b/src/MNH/init_mnh.f90 index 0ee13afd6e8d692984e828e0de1e52918f815ce0..52c2d65345b84c3d26badba4859b102192c2cc20 100644 --- a/src/MNH/init_mnh.f90 +++ b/src/MNH/init_mnh.f90 @@ -106,7 +106,9 @@ USE MODI_INI_SPECTRE_n USE MODE_SPLITTINGZ_ll !JUAN ! +#ifdef _OPENACC USE MODE_MNH_ZWORK +#endif ! ! IMPLICIT NONE @@ -221,7 +223,9 @@ DO JMI=1,NMODEL ENDIF ENDDO ! +#ifdef _OPENACC CALL MNH_ALLOC_ZWORK(NMODEL) +#endif ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/les_mean_1proc.f90 b/src/MNH/les_mean_1proc.f90 index 560e5d59b7b125c82dd287198d223e4f2d690b2a..245f41ed5c2ff269a22a593fe9a487c6330109ee 100644 --- a/src/MNH/les_mean_1proc.f90 +++ b/src/MNH/les_mean_1proc.f90 @@ -242,7 +242,9 @@ INTEGER :: JI, JJ ! loop counters ! !------------------------------------------------------------------------------- ! +#ifdef _OPENACC PRINT *,'OPENACC: LES_MEAN_1PROC_DEVICE_2D not yet tested' +#endif CALL GET_PHYSICAL_ll(IIB,IJB,IIE,IJE) ! PA_MEAN = 0. diff --git a/src/MNH/mode_prandtl.f90 b/src/MNH/mode_prandtl.f90 index d46e5218dee51eeba8c8a57c43171982c644728c..501ba1d6913d65cd7f4927554727408a490fe28c 100644 --- a/src/MNH/mode_prandtl.f90 +++ b/src/MNH/mode_prandtl.f90 @@ -356,8 +356,10 @@ SUBROUTINE D_PHI3DTDZ2_O_DDTDZ(PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,PDTDZ,HTU #endif !$acc declare present(PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,PDTDZ,PD_PHI3DTDZ2_O_DDTDZ) INTEGER :: IKB, IKE +#ifdef _OPENACC REAL, DIMENSION(SIZE(PREDTH1,1),SIZE(PREDTH1,2),SIZE(PREDTH1,3)) :: ZTMP1_DEVICE !$acc declare create(ZTMP1_DEVICE) +#endif ! IKB = 1+JPVEXT_TURB IKE = SIZE(PREDTH1,3)-JPVEXT_TURB @@ -402,9 +404,13 @@ ELSE END IF ! !* smoothing +#ifndef _OPENACC +CALL SMOOTH_TURB_FUNCT(PPHI3,PPHI3*2.*PDTDZ,PD_PHI3DTDZ2_O_DDTDZ) +#else ZTMP1_DEVICE = PPHI3*2.*PDTDZ !$acc end kernels CALL SMOOTH_TURB_FUNCT(PPHI3,ZTMP1_DEVICE,PD_PHI3DTDZ2_O_DDTDZ) +#endif ! ! !$acc kernels @@ -900,7 +906,7 @@ SUBROUTINE D_M3_WTH_WTHR_O_DDTDZ(PM3_WTH_WTHR,PREDTH1,PREDR1,PD,PBLL_O_E,PETHETA REAL, DIMENSION(SIZE(PD,1),SIZE(PD,2),SIZE(PD,3)),INTENT(OUT) :: PD_M3_WTH_WTHR_O_DDTDZ #endif !$acc declare present(PM3_WTH_WTHR,PREDTH1,PREDR1,PD,PBLL_O_E,PETHETA,PD_M3_WTH_WTHR_O_DDTDZ) -INTEGER :: IKB, IKE + INTEGER :: IKB, IKE ! #ifdef _OPENACC PRINT *,'OPENACC: D_M3_WTH_WTHR_O_DDTDZ not yet tested' diff --git a/src/MNH/prandtl.f90 b/src/MNH/prandtl.f90 index 119d39b69d3afe040a1e59233b0c913cb09b4bfb..8314af2ec23059cbdf633a152a654f1e9664bf8e 100644 --- a/src/MNH/prandtl.f90 +++ b/src/MNH/prandtl.f90 @@ -449,7 +449,9 @@ END DO ! IF(HTURBDIM=='1DIM') THEN ! 1D case ! +#ifdef _OPENACC PRINT *,'OPENACC: prandtl::1DIM not yet tested' +#endif ! !$acc kernels async PRED2TH3(:,:,:) = PREDTH1(:,:,:)**2 @@ -521,7 +523,9 @@ ELSE IF (L2D) THEN ! 3D case in a 2D model #endif ! ELSE ! dry 3D case in a 2D model +#ifdef _OPENACC PRINT *,'OPENACC: prandtl::L2D=.T. and KRR=0 not yet tested' +#endif #ifndef _OPENACC PRED2TH3(:,:,:) = PREDTH1(:,:,:)**2 + XCTV**2*PBLL_O_E(:,:,:)**2 * & MZM(KKA,KKU,KKL, GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)**2 ) @@ -620,7 +624,9 @@ ELSE ! 3D case in a 3D model #endif ! ELSE ! dry 3D case in a 3D model +#ifdef _OPENACC PRINT *,'OPENACC: prandtl::L2D=.F. and KRR=0 not yet tested' +#endif #ifndef _OPENACC PRED2TH3(:,:,:) = PREDTH1(:,:,:)**2 + XCTV**2*PBLL_O_E(:,:,:)**2 * & MZM(KKA,KKU,KKL, GX_M_M(KKA,KKU,KKL,PTHLM,PDXX,PDZZ,PDZX)**2 &