From a5dd04e810274c9d794568e38ce2de997f2f515a Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 22 Nov 2021 11:16:57 +0100 Subject: [PATCH] Philippe 22/11/2021: minor changes --- src/MNH/advection_uvw.f90 | 47 ++++++++++++++++++++++----------------- src/MNH/advecuvw_rk.f90 | 7 +++--- src/MNH/pressurez.f90 | 2 +- src/MNH/turb.f90 | 2 +- 4 files changed, 33 insertions(+), 25 deletions(-) diff --git a/src/MNH/advection_uvw.f90 b/src/MNH/advection_uvw.f90 index 9451c5fbf..f6e1f9bfe 100644 --- a/src/MNH/advection_uvw.f90 +++ b/src/MNH/advection_uvw.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2021 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. @@ -107,7 +107,7 @@ use mode_budget, only: Budget_store_init, Budget_store_end USE MODE_ll #ifdef MNH_OPENACC USE MODE_DEVICE -USE MODE_MNH_ZWORK, ONLY : ZT3D, MNH_GET_ZT3D , MNH_REL_ZT3D, MNH_GET_ZT4D , MNH_REL_ZT4D +USE MODE_MNH_ZWORK, ONLY : ZT3D, MNH_ALLOCATE_ZT3D, MNH_GET_ZT3D , MNH_REL_ZT3D, MNH_GET_ZT4D , MNH_REL_ZT4D #endif use mode_mppdb @@ -198,11 +198,18 @@ INTEGER :: ISPL, IZUT, IZVT, IZWT, IZ1, IZ2 INTEGER :: IZRUSB, IZRUSE, IZRVSB, IZRVSE, IZRWSB, IZRWSE, IIBMS, IIBME #endif ! +INTEGER :: IIU,IJU,IKU ! !------------------------------------------------------------------------------- ! !* 0. INITIALIZATION ! -------------- +! +! +IIU = SIZE(PUT,1) +IJU = SIZE(PUT,2) +IKU = SIZE(PUT,3) +! !$acc data present( PUT, PVT, PWT, PRHODJ, PDXX, PDYY, PDZZ, PDZX, PDZY, PRUS, PRVS, PRWS, PRUS_PRES, PRVS_PRES, PRWS_PRES ) IF (MPPDB_INITIALIZED) THEN @@ -225,24 +232,24 @@ IF (MPPDB_INITIALIZED) THEN CALL MPPDB_CHECK(PRWS,"ADVECTION_UVW beg:PRWS") END IF -ALLOCATE( ZRUT ( SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3) ) ) -ALLOCATE( ZRVT ( SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3) ) ) -ALLOCATE( ZRWT ( SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3) ) ) -ALLOCATE( ZRUCT ( SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3) ) ) -ALLOCATE( ZRVCT ( SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3) ) ) -ALLOCATE( ZRWCT ( SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3) ) ) -ALLOCATE( ZU ( SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3) ) ) -ALLOCATE( ZV ( SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3) ) ) -ALLOCATE( ZW ( SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3) ) ) -ALLOCATE( ZRUS_OTHER( SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3) ) ) -ALLOCATE( ZRVS_OTHER( SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3) ) ) -ALLOCATE( ZRWS_OTHER( SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3) ) ) -ALLOCATE( ZRUS_ADV ( SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3) ) ) -ALLOCATE( ZRVS_ADV ( SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3) ) ) -ALLOCATE( ZRWS_ADV ( SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3) ) ) -ALLOCATE( ZMXM_RHODJ( SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3) ) ) -ALLOCATE( ZMYM_RHODJ( SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3) ) ) -ALLOCATE( ZMZM_RHODJ( SIZE(PUT,1), SIZE(PUT,2), SIZE(PUT,3) ) ) +ALLOCATE( ZRUT ( IIU,IJU,IKU ) ) +ALLOCATE( ZRVT ( IIU,IJU,IKU ) ) +ALLOCATE( ZRWT ( IIU,IJU,IKU ) ) +ALLOCATE( ZRUCT ( IIU,IJU,IKU ) ) +ALLOCATE( ZRVCT ( IIU,IJU,IKU ) ) +ALLOCATE( ZRWCT ( IIU,IJU,IKU ) ) +ALLOCATE( ZU ( IIU,IJU,IKU ) ) +ALLOCATE( ZV ( IIU,IJU,IKU ) ) +ALLOCATE( ZW ( IIU,IJU,IKU ) ) +ALLOCATE( ZRUS_OTHER( IIU,IJU,IKU ) ) +ALLOCATE( ZRVS_OTHER( IIU,IJU,IKU ) ) +ALLOCATE( ZRWS_OTHER( IIU,IJU,IKU ) ) +ALLOCATE( ZRUS_ADV ( IIU,IJU,IKU ) ) +ALLOCATE( ZRVS_ADV ( IIU,IJU,IKU ) ) +ALLOCATE( ZRWS_ADV ( IIU,IJU,IKU ) ) +ALLOCATE( ZMXM_RHODJ( IIU,IJU,IKU ) ) +ALLOCATE( ZMYM_RHODJ( IIU,IJU,IKU ) ) +ALLOCATE( ZMZM_RHODJ( IIU,IJU,IKU ) ) !$acc data create( zrut, zrvt, zrwt, zruct, zrvct, zrwct, zu, zv, zw, & !$acc & zrus_other, zrvs_other, zrws_other, zrus_adv, zrvs_adv, zrws_adv, & diff --git a/src/MNH/advecuvw_rk.f90 b/src/MNH/advecuvw_rk.f90 index 6ef138732..49c53ed6b 100644 --- a/src/MNH/advecuvw_rk.f90 +++ b/src/MNH/advecuvw_rk.f90 @@ -254,7 +254,9 @@ IF (MPPDB_INITIALIZED) THEN CALL MPPDB_CHECK(PRWS_OTHER,"ADVECUVW_RK beg:PRWS_OTHER") END IF +#ifdef MNH_OPENACC if ( LIBM ) call Print_msg( NVERB_FATAL, 'GEN', 'ADVECUVW_RK', 'OpenACC: LIBM=T not yet implemented' ) +#endif ! !* 0. INITIALIZATION ! --------------------- @@ -531,11 +533,10 @@ RKLOOP: DO JS = 1, ISPL WHERE(XIBM_LS(:,:,:,4).GT.-XIBM_EPSI) ZRWS(:,:,:,JS)=ZIBM(:,:,:,3) ZIBM(:,:,:,:)=1. ENDIF -! - NULLIFY(TZFIELDS4_ll) ! write ( ynum, '( I3 )' ) js #ifndef MNH_OPENACC + NULLIFY(TZFIELDS4_ll) CALL ADD3DFIELD_ll( TZFIELDS4_ll, ZRUS(:,:,:,JS), 'ADVECUVW_RK::ZRUS(:,:,:,'//trim( adjustl( ynum ) )//')' ) CALL ADD3DFIELD_ll( TZFIELDS4_ll, ZRVS(:,:,:,JS), 'ADVECUVW_RK::ZRVS(:,:,:,'//trim( adjustl( ynum ) )//')' ) CALL ADD3DFIELD_ll( TZFIELDS4_ll, ZRWS(:,:,:,JS), 'ADVECUVW_RK::ZRWS(:,:,:,'//trim( adjustl( ynum ) )//')' ) @@ -625,7 +626,7 @@ CALL MNH_REL_ZT3D(IZMEAN,IZWORK) #endif ! CALL CLEANLIST_ll(TZFIELDMT_ll) -CALL DEL_HALO2_ll(TZHALO2MT_ll) +CALL DEL_HALO2_ll(TZHALO2MT_ll) !$acc update self(PRUS_ADV,PRVS_ADV,PRWS_ADV) !------------------------------------------------------------------------------- ! diff --git a/src/MNH/pressurez.f90 b/src/MNH/pressurez.f90 index 1f597f104..e9d0240e7 100644 --- a/src/MNH/pressurez.f90 +++ b/src/MNH/pressurez.f90 @@ -392,7 +392,7 @@ ILUOUT = TLUOUT%NLU ! CALL GET_GLOBALDIMS_ll (IIMAX_ll,IJMAX_ll) IF ( ( MIN(IIMAX_ll,IJMAX_ll) < NPROC ) .AND. ( HPRESOPT /= 'ZRESI' ) ) THEN - WRITE(UNIT=ILUOUT,FMT=*) 'ERROR IN PRESSUREZ:: YOU WANT TO USE TO MANY PROCESSOR WITHOUT CPRESOPT="ZRESI" ' + WRITE(UNIT=ILUOUT,FMT=*) 'ERROR IN PRESSUREZ:: YOU WANT TO USE TO MANY PROCESSES WITHOUT CPRESOPT="ZRESI" ' WRITE(UNIT=ILUOUT,FMT=*) 'MIN(IIMAX_ll,IJMAX_ll)=',MIN(IIMAX_ll,IJMAX_ll),' < NPROC =', NPROC WRITE(UNIT=ILUOUT,FMT=*) 'YOU HAVE TO SET CPRESOPT="ZRESI => JOB ABORTED ' CALL PRINT_MSG(NVERB_FATAL,'GEN','PRESSUREZ','') diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90 index ff8b8437d..0eeef1423 100644 --- a/src/MNH/turb.f90 +++ b/src/MNH/turb.f90 @@ -2146,7 +2146,7 @@ IF (ODZ) THEN PLM(:,:,KKA) = PZZ(:,:,KKB) - PZZ(:,:,KKA) !$acc end kernels IF ( HTURBDIM /= '1DIM' ) THEN ! 3D turbulence scheme - IF ( L2D) THEN + IF ( L2D ) THEN #ifndef MNH_OPENACC PLM(:,:,:) = SQRT( PLM(:,:,:)*MXF(PDXX(:,:,:)) ) #else -- GitLab