diff --git a/ifsrrtm/CMakeLists.txt b/ifsrrtm/CMakeLists.txt index 183a1c9c..08b5683d 100644 --- a/ifsrrtm/CMakeLists.txt +++ b/ifsrrtm/CMakeLists.txt @@ -236,6 +236,16 @@ ecbuild_add_library( PRIVATE_DEFINITIONS ${GPU_OFFLOAD}GPU ) +# To ensure device code is generated and all link time dependencies are +# available with OpenMP target offloading, force the `-mp=gpu` flag for NVHPC +if( HAVE_GPU AND HAVE_OMP AND GPU_OFFLOAD STREQUAL "OMP" ) + target_link_libraries( ifsrrtm.${PREC} PUBLIC OpenMP::OpenMP_Fortran ) + if( CMAKE_Fortran_COMPILER_ID MATCHES "NVHPC" ) + target_compile_options( ifsrrtm.${PREC} PRIVATE "-mp=gpu" ) + target_link_options( ifsrrtm.${PREC} PRIVATE "-mp=gpu" ) + endif() +endif() + install( FILES ${ifsrrtm_HEADERS} diff --git a/ifsrrtm/rrtm_gas_optical_depth.F90 b/ifsrrtm/rrtm_gas_optical_depth.F90 index 8772d0b4..2af49f25 100644 --- a/ifsrrtm/rrtm_gas_optical_depth.F90 +++ b/ifsrrtm/rrtm_gas_optical_depth.F90 @@ -118,7 +118,9 @@ SUBROUTINE RRTM_GAS_OPTICAL_DEPTH(KIDIA,KFDIA,KLEV,POD,PAVEL, PCOLDRY,PCOLBRD,PW ASSOCIATE(NFLEVG=>KLEV) !$OMP TARGET ENTER DATA MAP(ALLOC: ZTAU) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: POD) +#endif !$ACC DATA CREATE(ZTAU) PRESENT(POD) CALL COMPUTE_LAYTROP_MIN_MAX(KIDIA, KFDIA, KLAYTROP, laytrop_min, laytrop_max) @@ -250,7 +252,9 @@ SUBROUTINE RRTM_GAS_OPTICAL_DEPTH(KIDIA,KFDIA,KLEV,POD,PAVEL, PCOLDRY,PCOLBRD,PW !$ACC WAIT !$ACC END DATA !$OMP TARGET EXIT DATA MAP(DELETE: ZTAU) +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END ASSOCIATE diff --git a/ifsrrtm/rrtm_prepare_gases.F90 b/ifsrrtm/rrtm_prepare_gases.F90 index d34a2bb4..07a4fa97 100644 --- a/ifsrrtm/rrtm_prepare_gases.F90 +++ b/ifsrrtm/rrtm_prepare_gases.F90 @@ -133,11 +133,13 @@ SUBROUTINE RRTM_PREPARE_GASES & !$ACC PQ, PCO2, PCH4, PN2O, PNO2, PC11, PC12, PC22, PCL4, POZN, & !$ACC PCOLDRY, PWBRODL, PWKL, PWX , & !$ACC PAVEL, PTAVEL, PZ, PTZ , KREFLECT) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: PAPH, PAP, & !$OMP PTH, PT, & !$OMP PQ, PCO2, PCH4, PN2O, PNO2, PC11, PC12, PC22, PCL4, POZN, & !$OMP PCOLDRY, PWBRODL, PWKL, PWX , & !$OMP PAVEL, PTAVEL, PZ, PTZ , KREFLECT) +#endif ZGRAVIT=(RG/RPLRG)*1.E2_JPRB @@ -306,7 +308,9 @@ SUBROUTINE RRTM_PREPARE_GASES & ENDDO ENDDO !$OMP END TARGET TEAMS DISTRIBUTE PARALLEL DO +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif #else diff --git a/ifsrrtm/rrtm_taumol1.F90 b/ifsrrtm/rrtm_taumol1.F90 index f6b98a41..18a7abcc 100644 --- a/ifsrrtm/rrtm_taumol1.F90 +++ b/ifsrrtm/rrtm_taumol1.F90 @@ -201,10 +201,12 @@ SUBROUTINE RRTM_TAUMOL1 (KIDIA,KFDIA,KLEV,taug,PAVEL,& !$ACC FORFAC, FORFRAC, JP, JT, jt1, COLH2O, LAYTROP, SELFFAC, & !$ACC SELFFRAC, MINORFRAC, INDSELF, fracs, & !$ACC INDFOR, INDMINOR, SCALEMINORN2, COLBRD) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: PAVEL, taug, P_TAUAERL, FAC00, FAC01, FAC10, FAC11, & !$OMP FORFAC, FORFRAC, JP, JT, jt1, COLH2O, LAYTROP, SELFFAC, & !$OMP SELFFRAC, MINORFRAC, INDSELF, fracs, & !$OMP INDFOR, INDMINOR, SCALEMINORN2, COLBRD) +#endif #if !defined(_OPENACC) && !defined(OMPGPU) ixlow = 0 @@ -409,6 +411,8 @@ SUBROUTINE RRTM_TAUMOL1 (KIDIA,KFDIA,KLEV,taug,PAVEL,& ENDIF !$ACC END DATA +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE RRTM_TAUMOL1 diff --git a/ifsrrtm/rrtm_taumol10.F90 b/ifsrrtm/rrtm_taumol10.F90 index 8ba4530c..1d12f642 100644 --- a/ifsrrtm/rrtm_taumol10.F90 +++ b/ifsrrtm/rrtm_taumol10.F90 @@ -73,9 +73,11 @@ SUBROUTINE RRTM_TAUMOL10 (KIDIA,KFDIA,KLEV,taug,& !$ACC DATA PRESENT(taug, P_TAUAERL, fac00, fac01, fac10, fac11, jp, jt, jt1, & !$ACC colh2o, laytrop, fracs, selffac, selffrac, indself, & !$ACC indfor, forfrac, forfac) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: taug, P_TAUAERL, fac00, fac01, fac10, fac11, jp, jt, jt1, & !$OMP colh2o, laytrop, fracs, selffac, selffrac, indself, & !$OMP indfor, forfrac, forfac) +#endif #if !defined(_OPENACC) && !defined(OMPGPU) ixlow = 0 @@ -240,6 +242,8 @@ SUBROUTINE RRTM_TAUMOL10 (KIDIA,KFDIA,KLEV,taug,& ENDIF !$ACC END DATA +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE RRTM_TAUMOL10 diff --git a/ifsrrtm/rrtm_taumol11.F90 b/ifsrrtm/rrtm_taumol11.F90 index 83d8a8bf..bc1b0d22 100644 --- a/ifsrrtm/rrtm_taumol11.F90 +++ b/ifsrrtm/rrtm_taumol11.F90 @@ -81,9 +81,11 @@ SUBROUTINE RRTM_TAUMOL11 (KIDIA,KFDIA,KLEV,taug,& !$ACC DATA PRESENT(taug, P_TAUAERL, fac00, fac01, fac10, fac11, jp, jt, jt1, & !$ACC colh2o, colo2, laytrop, selffac, selffrac, indself, fracs, & !$ACC indfor, forfac, forfrac, minorfrac, indminor, scaleminor) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: taug, P_TAUAERL, fac00, fac01, fac10, fac11, jp, jt, jt1, & !$OMP colh2o, colo2, laytrop, selffac, selffrac, indself, fracs, & !$OMP indfor, forfac, forfrac, minorfrac, indminor, scaleminor) +#endif #if !defined(_OPENACC) && !defined(OMPGPU) ixlow = 0 @@ -273,6 +275,8 @@ SUBROUTINE RRTM_TAUMOL11 (KIDIA,KFDIA,KLEV,taug,& ENDIF !$ACC END DATA +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE RRTM_TAUMOL11 diff --git a/ifsrrtm/rrtm_taumol12.F90 b/ifsrrtm/rrtm_taumol12.F90 index 1c687655..26d1ce3b 100644 --- a/ifsrrtm/rrtm_taumol12.F90 +++ b/ifsrrtm/rrtm_taumol12.F90 @@ -1,7 +1,7 @@ !---------------------------------------------------------------------------- SUBROUTINE RRTM_TAUMOL12 (KIDIA,KFDIA,KLEV,taug,& & P_TAUAERL,fac00,fac01,fac10,fac11,forfac,forfrac,indfor,jp,jt,jt1,oneminus,& - & colh2o,colco2,laytrop,selffac,selffrac,indself,fracs, & + & colh2o,colco2,laytrop,selffac,selffrac,indself,fracs, & & rat_h2oco2, rat_h2oco2_1,laytrop_min,laytrop_max) ! BAND 12: 1800-2080 cm-1 (low - H2O,CO2; high - nothing) @@ -97,9 +97,11 @@ SUBROUTINE RRTM_TAUMOL12 (KIDIA,KFDIA,KLEV,taug,& !$ACC DATA PRESENT(taug, P_TAUAERL, fac00, fac01, fac10, fac11, jp, jt, jt1, & !$ACC colh2o, colco2, laytrop, selffac, selffrac, indself, fracs, & !$ACC rat_h2oco2, rat_h2oco2_1, indfor, forfrac, forfac) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: taug, P_TAUAERL, fac00, fac01, fac10, fac11, jp, jt, jt1, & !$OMP colh2o, colco2, laytrop, selffac, selffrac, indself, fracs, & !$OMP rat_h2oco2, rat_h2oco2_1, indfor, forfrac, forfac) +#endif #if !defined(_OPENACC) && !defined(OMPGPU) ixlow = 0 @@ -673,6 +675,8 @@ SUBROUTINE RRTM_TAUMOL12 (KIDIA,KFDIA,KLEV,taug,& ENDIF !$ACC END DATA +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE RRTM_TAUMOL12 diff --git a/ifsrrtm/rrtm_taumol13.F90 b/ifsrrtm/rrtm_taumol13.F90 index 197963e8..27c89c59 100644 --- a/ifsrrtm/rrtm_taumol13.F90 +++ b/ifsrrtm/rrtm_taumol13.F90 @@ -110,10 +110,12 @@ SUBROUTINE RRTM_TAUMOL13 (KIDIA,KFDIA,KLEV,taug,& !$ACC selffrac, indself, fracs, rat_h2on2o, rat_h2on2o_1, & !$ACC indfor, forfac, forfrac, minorfrac, indminor) & !$ACC CREATE(colco) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: taug, P_TAUAERL, fac00, fac01, fac10, fac11, jp, jt, jt1, & !$OMP colh2o, coln2o, colco2, colo3, coldry, laytrop, selffac, & !$OMP selffrac, indself, fracs, rat_h2on2o, rat_h2on2o_1, & !$OMP indfor, forfac, forfrac, minorfrac, indminor) +#endif !$OMP TARGET ENTER DATA MAP(ALLOC: colco) !$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO COLLAPSE(2) @@ -797,6 +799,8 @@ SUBROUTINE RRTM_TAUMOL13 (KIDIA,KFDIA,KLEV,taug,& !$ACC WAIT !$ACC END DATA !$OMP TARGET EXIT DATA MAP(DELETE:colco) +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE RRTM_TAUMOL13 diff --git a/ifsrrtm/rrtm_taumol14.F90 b/ifsrrtm/rrtm_taumol14.F90 index 34fad10a..4e02b154 100644 --- a/ifsrrtm/rrtm_taumol14.F90 +++ b/ifsrrtm/rrtm_taumol14.F90 @@ -70,9 +70,11 @@ SUBROUTINE RRTM_TAUMOL14 (KIDIA,KFDIA,KLEV,taug,& !$ACC DATA PRESENT(taug, P_TAUAERL, fac00, fac01, fac10, fac11, jp, jt, jt1, & !$ACC colco2, laytrop, selffac, selffrac, indself, fracs, & !$ACC indfor, forfac, forfrac) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC:taug, P_TAUAERL, fac00, fac01, fac10, fac11, jp, jt, jt1, & !$OMP colco2, laytrop, selffac, selffrac, indself, fracs, & !$OMP indfor, forfac, forfrac) +#endif #if !defined(_OPENACC) && !defined(OMPGPU) ixlow = 0 @@ -231,6 +233,8 @@ SUBROUTINE RRTM_TAUMOL14 (KIDIA,KFDIA,KLEV,taug,& ENDIF !$ACC END DATA +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE RRTM_TAUMOL14 diff --git a/ifsrrtm/rrtm_taumol15.F90 b/ifsrrtm/rrtm_taumol15.F90 index 9a2d4795..40cd8ef5 100644 --- a/ifsrrtm/rrtm_taumol15.F90 +++ b/ifsrrtm/rrtm_taumol15.F90 @@ -97,10 +97,12 @@ SUBROUTINE RRTM_TAUMOL15 (KIDIA,KFDIA,KLEV,taug,& !$ACC colh2o, colco2, coln2o, laytrop, selffac, selffrac, & !$ACC indself, fracs, rat_n2oco2, rat_n2oco2_1, indfor, forfac, & !$ACC forfrac, minorfrac, indminor, scaleminor, colbrd) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: taug, P_TAUAERL, fac00, fac01, fac10, fac11, jp, jt, jt1, & !$OMP colh2o, colco2, coln2o, laytrop, selffac, selffrac, & !$OMP indself, fracs, rat_n2oco2, rat_n2oco2_1, indfor, forfac, & !$OMP forfrac, minorfrac, indminor, scaleminor, colbrd) +#endif #if !defined(_OPENACC) && !defined(OMPGPU) ixlow = 0 @@ -730,6 +732,8 @@ SUBROUTINE RRTM_TAUMOL15 (KIDIA,KFDIA,KLEV,taug,& ENDIF !$ACC END DATA +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE RRTM_TAUMOL15 diff --git a/ifsrrtm/rrtm_taumol16.F90 b/ifsrrtm/rrtm_taumol16.F90 index 802a3a4f..1fcf56e3 100644 --- a/ifsrrtm/rrtm_taumol16.F90 +++ b/ifsrrtm/rrtm_taumol16.F90 @@ -91,9 +91,11 @@ SUBROUTINE RRTM_TAUMOL16 (KIDIA,KFDIA,KLEV,taug,& !$ACC DATA PRESENT(taug, P_TAUAERL, fac00, fac01, fac10, fac11, jp, jt, jt1, & !$ACC colh2o, colch4, laytrop, selffac, selffrac, indself, & !$ACC fracs, rat_h2och4, rat_h2och4_1, indfor, forfac, forfrac) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: taug, P_TAUAERL, fac00, fac01, fac10, fac11, jp, jt, jt1, & !$OMP colh2o, colch4, laytrop, selffac, selffrac, indself, & !$OMP fracs, rat_h2och4, rat_h2och4_1, indfor, forfac, forfrac) +#endif #if !defined(_OPENACC) && !defined(OMPGPU) ixlow = 0 @@ -679,6 +681,8 @@ SUBROUTINE RRTM_TAUMOL16 (KIDIA,KFDIA,KLEV,taug,& ENDIF !$ACC END DATA +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE RRTM_TAUMOL16 diff --git a/ifsrrtm/rrtm_taumol2.F90 b/ifsrrtm/rrtm_taumol2.F90 index ce141957..06a9cf18 100644 --- a/ifsrrtm/rrtm_taumol2.F90 +++ b/ifsrrtm/rrtm_taumol2.F90 @@ -82,9 +82,11 @@ SUBROUTINE RRTM_TAUMOL2 (KIDIA,KFDIA,KLEV,taug,PAVEL,coldry,& !$ACC DATA PRESENT(taug, PAVEL, coldry, P_TAUAERL, fac00, fac01, fac10, & !$ACC fac11, forfrac, forfac, jp, jt, jt1, colh2o, laytrop, & !$ACC selffac, selffrac, indself, indfor, fracs) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: taug, PAVEL, coldry, P_TAUAERL, fac00, fac01, fac10, & !$OMP fac11, forfrac, forfac, jp, jt, jt1, colh2o, laytrop, & !$OMP selffac, selffrac, indself, indfor, fracs) +#endif #if !defined(_OPENACC) && !defined(OMPGPU) ixlow = 0 @@ -254,6 +256,8 @@ SUBROUTINE RRTM_TAUMOL2 (KIDIA,KFDIA,KLEV,taug,PAVEL,coldry,& ENDIF !$ACC END DATA +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE RRTM_TAUMOL2 diff --git a/ifsrrtm/rrtm_taumol3.F90 b/ifsrrtm/rrtm_taumol3.F90 index c12f6990..e117d0c6 100644 --- a/ifsrrtm/rrtm_taumol3.F90 +++ b/ifsrrtm/rrtm_taumol3.F90 @@ -105,10 +105,12 @@ SUBROUTINE RRTM_TAUMOL3 (KIDIA,KFDIA,KLEV,taug,& !$ACC JT, jt1, COLH2O, COLCO2, COLN2O, COLDRY, LAYTROP, & !$ACC SELFFAC, SELFFRAC, INDSELF, FRACS, RAT_H2OCO2, & !$ACC RAT_H2OCO2_1, INDFOR, FORFRAC, MINORFRAC, INDMINOR) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC:taug, P_TAUAERL, FAC00, FAC01, FAC10, FAC11, FORFAC, JP, & !$OMP JT, jt1, COLH2O, COLCO2, COLN2O, COLDRY, LAYTROP, & !$OMP SELFFAC, SELFFRAC, INDSELF, FRACS, RAT_H2OCO2, & !$OMP RAT_H2OCO2_1, INDFOR, FORFRAC, MINORFRAC, INDMINOR) +#endif #if !defined(_OPENACC) && !defined(OMPGPU) ixlow = 0 @@ -889,6 +891,8 @@ SUBROUTINE RRTM_TAUMOL3 (KIDIA,KFDIA,KLEV,taug,& ENDIF !$ACC END DATA +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE RRTM_TAUMOL3 diff --git a/ifsrrtm/rrtm_taumol4.F90 b/ifsrrtm/rrtm_taumol4.F90 index 8e5574ad..409d5707 100644 --- a/ifsrrtm/rrtm_taumol4.F90 +++ b/ifsrrtm/rrtm_taumol4.F90 @@ -97,10 +97,12 @@ SUBROUTINE RRTM_TAUMOL4 (KIDIA,KFDIA,KLEV,taug,& !$ACC colh2o, colco2, colo3, laytrop, selffac, selffrac, indself, & !$ACC fracs, rat_h2oco2, rat_h2oco2_1, rat_o3co2, rat_o3co2_1, & !$ACC indfor, forfac, forfrac) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: taug, P_TAUAERL, fac00, fac01, fac10, fac11, jp, jt, jt1, & !$OMP colh2o, colco2, colo3, laytrop, selffac, selffrac, indself, & !$OMP fracs, rat_h2oco2, rat_h2oco2_1, rat_o3co2, rat_o3co2_1, & !$OMP indfor, forfac, forfrac) +#endif #if !defined(_OPENACC) && !defined(OMPGPU) ixlow = 0 @@ -800,6 +802,8 @@ SUBROUTINE RRTM_TAUMOL4 (KIDIA,KFDIA,KLEV,taug,& END IF !$ACC END DATA +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE RRTM_TAUMOL4 diff --git a/ifsrrtm/rrtm_taumol5.F90 b/ifsrrtm/rrtm_taumol5.F90 index 443f4b82..4b2a2e18 100644 --- a/ifsrrtm/rrtm_taumol5.F90 +++ b/ifsrrtm/rrtm_taumol5.F90 @@ -105,10 +105,12 @@ SUBROUTINE RRTM_TAUMOL5 (KIDIA,KFDIA,KLEV,taug,wx,& !$ACC jt1, colh2o, colco2, colo3, laytrop, selffac, selffrac, & !$ACC indself, fracs, rat_h2oco2, rat_h2oco2_1, rat_o3co2, & !$ACC rat_o3co2_1, indfor, forfrac, forfac, minorfrac, indminor) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC:taug, wx, P_TAUAERL, fac00, fac01, fac10, fac11, jp, jt, & !$OMP jt1, colh2o, colco2, colo3, laytrop, selffac, selffrac, & !$OMP indself, fracs, rat_h2oco2, rat_h2oco2_1, rat_o3co2, & !$OMP rat_o3co2_1, indfor, forfrac, forfac, minorfrac, indminor) +#endif #if !defined(_OPENACC) && !defined(OMPGPU) ixlow = 0 @@ -809,6 +811,8 @@ SUBROUTINE RRTM_TAUMOL5 (KIDIA,KFDIA,KLEV,taug,wx,& END IF !$ACC END DATA +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE RRTM_TAUMOL5 diff --git a/ifsrrtm/rrtm_taumol6.F90 b/ifsrrtm/rrtm_taumol6.F90 index bd9c84b5..2b271d03 100644 --- a/ifsrrtm/rrtm_taumol6.F90 +++ b/ifsrrtm/rrtm_taumol6.F90 @@ -84,10 +84,12 @@ SUBROUTINE RRTM_TAUMOL6 (KIDIA,KFDIA,KLEV,taug,wx,& !$ACC jt1, colh2o, colco2, coldry, laytrop, selffac, selffrac , & !$ACC indself, fracs, indfor, forfac, forfrac, minorfrac, & !$ACC indminor) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC:taug, wx, P_TAUAERL, fac00, fac01, fac10, fac11, jp, jt, & !$OMP jt1, colh2o, colco2, coldry, laytrop, selffac, selffrac , & !$OMP indself, fracs, indfor, forfac, forfrac, minorfrac, & !$OMP indminor) +#endif #if !defined(_OPENACC) && !defined(OMPGPU) ixlow = 0 @@ -279,6 +281,8 @@ SUBROUTINE RRTM_TAUMOL6 (KIDIA,KFDIA,KLEV,taug,wx,& ENDIF !$ACC END DATA +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE RRTM_TAUMOL6 diff --git a/ifsrrtm/rrtm_taumol7.F90 b/ifsrrtm/rrtm_taumol7.F90 index c0d4f241..97f42813 100644 --- a/ifsrrtm/rrtm_taumol7.F90 +++ b/ifsrrtm/rrtm_taumol7.F90 @@ -104,10 +104,12 @@ SUBROUTINE RRTM_TAUMOL7 (KIDIA,KFDIA,KLEV,taug,& !$ACC colh2o, colo3, colco2, coldry, laytrop, selffac, selffrac, indself, fracs, & !$ACC rat_h2oo3, rat_h2oo3_1, indfor, forfrac, forfac, & !$ACC minorfrac, indminor) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC:taug, P_TAUAERL, fac00, fac01, fac10, fac11, jp, jt, jt1, & !$OMP colh2o, colo3, colco2, coldry, laytrop, selffac, selffrac, indself, fracs, & !$OMP rat_h2oo3, rat_h2oo3_1, indfor, forfrac, forfac, & !$OMP minorfrac, indminor) +#endif #if !defined(_OPENACC) && !defined(OMPGPU) ixlow = 0 @@ -819,6 +821,8 @@ SUBROUTINE RRTM_TAUMOL7 (KIDIA,KFDIA,KLEV,taug,& ENDIF !$ACC END DATA +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE RRTM_TAUMOL7 diff --git a/ifsrrtm/rrtm_taumol8.F90 b/ifsrrtm/rrtm_taumol8.F90 index 6c378ab3..1d883689 100644 --- a/ifsrrtm/rrtm_taumol8.F90 +++ b/ifsrrtm/rrtm_taumol8.F90 @@ -88,10 +88,12 @@ SUBROUTINE RRTM_TAUMOL8 (KIDIA,KFDIA,KLEV,taug,wx,& !$ACC jt1, colh2o, colo3, coln2o, colco2, coldry, laytrop, & !$ACC selffac, selffrac, indself, fracs, indfor, forfrac, forfac, & !$ACC minorfrac, indminor) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC:taug, wx, P_TAUAERL, fac00, fac01, fac10, fac11, jp, jt, & !$OMP jt1, colh2o, colo3, coln2o, colco2, coldry, laytrop, & !$OMP selffac, selffrac, indself, fracs, indfor, forfrac, forfac, & !$OMP minorfrac, indminor) +#endif #if !defined(_OPENACC) && !defined(OMPGPU) ixlow = 0 @@ -350,6 +352,8 @@ SUBROUTINE RRTM_TAUMOL8 (KIDIA,KFDIA,KLEV,taug,wx,& ENDIF !$ACC END DATA +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE RRTM_TAUMOL8 diff --git a/ifsrrtm/rrtm_taumol9.F90 b/ifsrrtm/rrtm_taumol9.F90 index 3beaf01f..ac266683 100644 --- a/ifsrrtm/rrtm_taumol9.F90 +++ b/ifsrrtm/rrtm_taumol9.F90 @@ -108,10 +108,12 @@ SUBROUTINE RRTM_TAUMOL9 (KIDIA,KFDIA,KLEV,taug,& !$ACC colh2o, coln2o, colch4, coldry, laytrop, K_LAYSWTCH, & !$ACC K_LAYLOW, selffac, selffrac, indself, fracs, rat_h2och4, & !$ACC rat_h2och4_1, indfor, forfac, forfrac, minorfrac, indminor) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: taug, P_TAUAERL, fac00, fac01, fac10, fac11, jp, jt, jt1, & !$OMP colh2o, coln2o, colch4, coldry, laytrop, K_LAYSWTCH, & !$OMP K_LAYLOW, selffac, selffrac, indself, fracs, rat_h2och4, & !$OMP rat_h2och4_1, indfor, forfac, forfrac, minorfrac, indminor) +#endif #if !defined(_OPENACC) && !defined(OMPGPU) ixlow = 0 @@ -785,6 +787,8 @@ SUBROUTINE RRTM_TAUMOL9 (KIDIA,KFDIA,KLEV,taug,& ENDIF !$ACC END DATA +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE RRTM_TAUMOL9 diff --git a/ifsrrtm/srtm_gas_optical_depth.F90 b/ifsrrtm/srtm_gas_optical_depth.F90 index 7c165a1e..eb0e5d74 100644 --- a/ifsrrtm/srtm_gas_optical_depth.F90 +++ b/ifsrrtm/srtm_gas_optical_depth.F90 @@ -9,7 +9,7 @@ SUBROUTINE SRTM_GAS_OPTICAL_DEPTH & & PFORFAC , PFORFRAC , KINDFOR , PSELFFAC, PSELFFRAC, KINDSELF ,& & PFAC00 , PFAC01 , PFAC10 , PFAC11 ,& & KJP , KJT , KJT1 ,& - !-- output arrays + !-- output arrays & POD, PSSA, PINCSOL) @@ -130,10 +130,12 @@ SUBROUTINE SRTM_GAS_OPTICAL_DEPTH & IF (LHOOK) CALL DR_HOOK('SRTM_GAS_OPTICAL_DEPTH',0,ZHOOK_HANDLE) !$OMP TARGET ENTER DATA MAP(ALLOC:IW, ZTAUG, ZTAUR, ZSFLXZEN) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC:PONEMINUS, PRMU0, KLAYTROP, PCOLCH4, PCOLCO2, PCOLH2O, & !$OMP PCOLMOL, PCOLO2, PCOLO3, PFORFAC, PFORFRAC, KINDFOR, PSELFFAC, & !$OMP PSELFFRAC, KINDSELF, PFAC00, PFAC01, PFAC10, PFAC11, KJP, & !$OMP KJT, KJT1, POD, PSSA, PINCSOL) +#endif !$ACC DATA CREATE(IW, ZTAUG, ZTAUR, ZSFLXZEN) & !$ACC PRESENT(PONEMINUS, PRMU0, KLAYTROP, PCOLCH4, PCOLCO2, PCOLH2O, & @@ -166,7 +168,7 @@ SUBROUTINE SRTM_GAS_OPTICAL_DEPTH & IBM = JB-15 IGT = NGC(IBM) - !-- for each band, computes the gaseous and Rayleigh optical thickness + !-- for each band, computes the gaseous and Rayleigh optical thickness ! for all g-points within the band IF (JB == 16) THEN @@ -352,7 +354,9 @@ SUBROUTINE SRTM_GAS_OPTICAL_DEPTH & !$OMP TARGET EXIT DATA MAP(DELETE:laytrop_min,laytrop_max) !$OMP TARGET EXIT DATA MAP(DELETE: IW, ZTAUG, ZTAUR, ZSFLXZEN) +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif ! ------------------------------------------------------------------ diff --git a/ifsrrtm/srtm_taumol16.F90 b/ifsrrtm/srtm_taumol16.F90 index 83b28539..c8ca4b36 100644 --- a/ifsrrtm/srtm_taumol16.F90 +++ b/ifsrrtm/srtm_taumol16.F90 @@ -80,10 +80,12 @@ SUBROUTINE SRTM_TAUMOL16 & !$ACC P_SELFFAC, P_SELFFRAC, K_INDSELF, P_FORFAC, P_FORFRAC, & !$ACC K_INDFOR, P_SFLUXZEN, P_TAUG, P_TAUR, PRMU0) !$OMP TARGET ENTER DATA MAP(ALLOC: I_LAYSOLFR) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC:P_FAC00, P_FAC01, P_FAC10, P_FAC11, K_JP, K_JT, K_JT1, & !$OMP P_ONEMINUS, P_COLH2O, P_COLCH4, P_COLMOL, K_LAYTROP, & !$OMP P_SELFFAC, P_SELFFRAC, K_INDSELF, P_FORFAC, P_FORFRAC, & !$OMP K_INDFOR, P_SFLUXZEN, P_TAUG, P_TAUR, PRMU0) +#endif i_nlayers = klev !$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO @@ -270,6 +272,8 @@ SUBROUTINE SRTM_TAUMOL16 & !$ACC END DATA !$OMP TARGET EXIT DATA MAP(DELETE: I_LAYSOLFR) +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE SRTM_TAUMOL16 diff --git a/ifsrrtm/srtm_taumol17.F90 b/ifsrrtm/srtm_taumol17.F90 index 6c6e5582..59052675 100644 --- a/ifsrrtm/srtm_taumol17.F90 +++ b/ifsrrtm/srtm_taumol17.F90 @@ -79,10 +79,12 @@ SUBROUTINE SRTM_TAUMOL17 & !$ACC P_SELFFAC, P_SELFFRAC, K_INDSELF, P_FORFAC, P_FORFRAC, & !$ACC K_INDFOR, P_SFLUXZEN, P_TAUG, P_TAUR, PRMU0) !$OMP TARGET ENTER DATA MAP(ALLOC: I_LAYSOLFR) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: P_FAC00, P_FAC01, P_FAC10, P_FAC11, K_JP, K_JT, K_JT1, & !$OMP P_ONEMINUS, P_COLH2O, P_COLCO2, P_COLMOL, K_LAYTROP, & !$OMP P_SELFFAC, P_SELFFRAC, K_INDSELF, P_FORFAC, P_FORFRAC, & !$OMP K_INDFOR, P_SFLUXZEN, P_TAUG, P_TAUR, PRMU0) +#endif i_nlayers = klev !$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO @@ -322,6 +324,8 @@ SUBROUTINE SRTM_TAUMOL17 & !$ACC END DATA !$OMP TARGET EXIT DATA MAP(DELETE: I_LAYSOLFR) +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE SRTM_TAUMOL17 diff --git a/ifsrrtm/srtm_taumol18.F90 b/ifsrrtm/srtm_taumol18.F90 index 44012972..7f40335f 100644 --- a/ifsrrtm/srtm_taumol18.F90 +++ b/ifsrrtm/srtm_taumol18.F90 @@ -81,10 +81,12 @@ SUBROUTINE SRTM_TAUMOL18 & !$ACC P_SELFFAC, P_SELFFRAC, K_INDSELF, P_FORFAC, P_FORFRAC, & !$ACC K_INDFOR, P_SFLUXZEN, P_TAUG, P_TAUR, PRMU0) !$OMP TARGET ENTER DATA MAP(ALLOC: I_LAYSOLFR) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: P_FAC00, P_FAC01, P_FAC10, P_FAC11, K_JP, K_JT, K_JT1, & !$OMP P_ONEMINUS, P_COLH2O, P_COLCH4, P_COLMOL, K_LAYTROP, & !$OMP P_SELFFAC, P_SELFFRAC, K_INDSELF, P_FORFAC, P_FORFRAC, & !$OMP K_INDFOR, P_SFLUXZEN, P_TAUG, P_TAUR, PRMU0) +#endif i_nlayers = klev !$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO @@ -301,6 +303,8 @@ SUBROUTINE SRTM_TAUMOL18 & !$ACC END DATA !$OMP TARGET EXIT DATA MAP(DELETE: I_LAYSOLFR) +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE SRTM_TAUMOL18 diff --git a/ifsrrtm/srtm_taumol19.F90 b/ifsrrtm/srtm_taumol19.F90 index 0eb724e8..a21a9390 100644 --- a/ifsrrtm/srtm_taumol19.F90 +++ b/ifsrrtm/srtm_taumol19.F90 @@ -81,10 +81,12 @@ SUBROUTINE SRTM_TAUMOL19 & !$ACC P_SELFFAC, P_SELFFRAC, K_INDSELF, P_FORFAC, P_FORFRAC, & !$ACC K_INDFOR, P_SFLUXZEN, P_TAUG, P_TAUR, PRMU0) !$OMP TARGET ENTER DATA MAP(ALLOC: I_LAYSOLFR) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: P_FAC00, P_FAC01, P_FAC10, P_FAC11, K_JP, K_JT, K_JT1, & !$OMP P_ONEMINUS, P_COLH2O, P_COLCO2, P_COLMOL, K_LAYTROP, & !$OMP P_SELFFAC, P_SELFFRAC, K_INDSELF, P_FORFAC, P_FORFRAC, & !$OMP K_INDFOR, P_SFLUXZEN, P_TAUG, P_TAUR, PRMU0) +#endif i_nlayers = klev !$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO @@ -301,6 +303,8 @@ SUBROUTINE SRTM_TAUMOL19 & !$ACC END DATA !$OMP TARGET EXIT DATA MAP(DELETE: I_LAYSOLFR) +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE SRTM_TAUMOL19 diff --git a/ifsrrtm/srtm_taumol20.F90 b/ifsrrtm/srtm_taumol20.F90 index d8700590..5cf4b80d 100644 --- a/ifsrrtm/srtm_taumol20.F90 +++ b/ifsrrtm/srtm_taumol20.F90 @@ -79,10 +79,12 @@ SUBROUTINE SRTM_TAUMOL20 & !$ACC p_selffrac, k_indself, p_forfac, p_forfrac, k_indfor, & !$ACC p_sfluxzen, p_taug, p_taur, prmu0) !$OMP TARGET ENTER DATA MAP(ALLOC: i_laysolfr) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: p_fac00, p_fac01, p_fac10, p_fac11, k_jp, k_jt, k_jt1, & !$OMP p_colh2o, p_colch4, p_colmol, k_laytrop, p_selffac, & !$OMP p_selffrac, k_indself, p_forfac, p_forfrac, k_indfor, & !$OMP p_sfluxzen, p_taug, p_taur, prmu0) +#endif i_nlayers = klev !$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO @@ -256,6 +258,8 @@ SUBROUTINE SRTM_TAUMOL20 & !$ACC END DATA !$OMP TARGET EXIT DATA MAP(DELETE: i_laysolfr) +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE SRTM_TAUMOL20 diff --git a/ifsrrtm/srtm_taumol21.F90 b/ifsrrtm/srtm_taumol21.F90 index 0a4314ca..a338fb88 100644 --- a/ifsrrtm/srtm_taumol21.F90 +++ b/ifsrrtm/srtm_taumol21.F90 @@ -81,10 +81,12 @@ SUBROUTINE SRTM_TAUMOL21 & !$ACC P_SELFFAC, P_SELFFRAC, K_INDSELF, P_FORFAC, P_FORFRAC, & !$ACC K_INDFOR, P_SFLUXZEN, P_TAUG, P_TAUR, PRMU0) !$OMP TARGET ENTER DATA MAP(ALLOC: i_laysolfr) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC:P_FAC00, P_FAC01, P_FAC10, P_FAC11, K_JP, K_JT, K_JT1, & !$OMP P_ONEMINUS, P_COLH2O, P_COLCO2, P_COLMOL, K_LAYTROP, & !$OMP P_SELFFAC, P_SELFFRAC, K_INDSELF, P_FORFAC, P_FORFRAC, & !$OMP K_INDFOR, P_SFLUXZEN, P_TAUG, P_TAUR, PRMU0) +#endif i_nlayers = klev !$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO @@ -333,6 +335,8 @@ SUBROUTINE SRTM_TAUMOL21 & !$ACC END DATA !$OMP TARGET EXIT DATA MAP(DELETE: i_laysolfr) +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE SRTM_TAUMOL21 diff --git a/ifsrrtm/srtm_taumol22.F90 b/ifsrrtm/srtm_taumol22.F90 index 7b9dfd15..1f338b48 100644 --- a/ifsrrtm/srtm_taumol22.F90 +++ b/ifsrrtm/srtm_taumol22.F90 @@ -81,10 +81,12 @@ SUBROUTINE SRTM_TAUMOL22 & !$ACC P_SELFFAC, P_SELFFRAC, K_INDSELF, P_FORFAC, P_FORFRAC, & !$ACC K_INDFOR, P_SFLUXZEN, P_TAUG, P_TAUR, PRMU0) !$OMP TARGET ENTER DATA MAP(ALLOC: I_LAYSOLFR) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: P_FAC00, P_FAC01, P_FAC10, P_FAC11, K_JP, K_JT, K_JT1, & !$OMP P_ONEMINUS, P_COLH2O, P_COLMOL, P_COLO2, K_LAYTROP, & !$OMP P_SELFFAC, P_SELFFRAC, K_INDSELF, P_FORFAC, P_FORFRAC, & !$OMP K_INDFOR, P_SFLUXZEN, P_TAUG, P_TAUR, PRMU0) +#endif i_nlayers = klev @@ -316,6 +318,8 @@ SUBROUTINE SRTM_TAUMOL22 & !$ACC END DATA !$OMP TARGET EXIT DATA MAP(DELETE: I_LAYSOLFR) +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE SRTM_TAUMOL22 diff --git a/ifsrrtm/srtm_taumol23.F90 b/ifsrrtm/srtm_taumol23.F90 index d5a95d6a..e477357b 100644 --- a/ifsrrtm/srtm_taumol23.F90 +++ b/ifsrrtm/srtm_taumol23.F90 @@ -78,10 +78,12 @@ SUBROUTINE SRTM_TAUMOL23 & !$ACC k_indself, p_forfac, p_forfrac, k_indfor, p_sfluxzen, & !$ACC p_taug, p_taur , prmu0) !$OMP TARGET ENTER DATA MAP(ALLOC: i_laysolfr) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: p_fac00, p_fac01, p_fac10, p_fac11, k_jp, k_jt, k_jt1, & !$OMP p_colh2o, p_colmol, k_laytrop, p_selffac, p_selffrac, & !$OMP k_indself, p_forfac, p_forfrac, k_indfor, p_sfluxzen, & !$OMP p_taug, p_taur , prmu0) +#endif i_nlayers = klev !$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO @@ -234,6 +236,8 @@ SUBROUTINE SRTM_TAUMOL23 & !$ACC END DATA !$OMP TARGET EXIT DATA MAP(DELETE: i_laysolfr) +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE SRTM_TAUMOL23 diff --git a/ifsrrtm/srtm_taumol24.F90 b/ifsrrtm/srtm_taumol24.F90 index a5cbd03d..a84344d5 100644 --- a/ifsrrtm/srtm_taumol24.F90 +++ b/ifsrrtm/srtm_taumol24.F90 @@ -83,10 +83,12 @@ SUBROUTINE SRTM_TAUMOL24 & !$ACC K_LAYTROP, P_SELFFAC, P_SELFFRAC, K_INDSELF, P_FORFAC, & !$ACC P_FORFRAC, K_INDFOR, P_SFLUXZEN, P_TAUG, P_TAUR, PRMU0) !$OMP TARGET ENTER DATA MAP(ALLOC: i_laysolfr) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC:P_FAC00, P_FAC01, P_FAC10, P_FAC11, K_JP, K_JT, K_JT1, & !$OMP P_ONEMINUS, P_COLH2O, P_COLMOL, P_COLO2, P_COLO3, & !$OMP K_LAYTROP, P_SELFFAC, P_SELFFRAC, K_INDSELF, P_FORFAC, & !$OMP P_FORFRAC, K_INDFOR, P_SFLUXZEN, P_TAUG, P_TAUR, PRMU0) +#endif i_nlayers = klev !$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO @@ -311,6 +313,8 @@ SUBROUTINE SRTM_TAUMOL24 & !$ACC END DATA !$OMP TARGET EXIT DATA MAP(DELETE: i_laysolfr) +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE SRTM_TAUMOL24 diff --git a/ifsrrtm/srtm_taumol25.F90 b/ifsrrtm/srtm_taumol25.F90 index 1ef80705..a55ca8e9 100644 --- a/ifsrrtm/srtm_taumol25.F90 +++ b/ifsrrtm/srtm_taumol25.F90 @@ -74,9 +74,11 @@ SUBROUTINE SRTM_TAUMOL25 & !$ACC P_COLH2O, P_COLMOL, P_COLO3, K_LAYTROP, P_SFLUXZEN, & !$ACC P_TAUG, P_TAUR, PRMU0) !$OMP TARGET ENTER DATA MAP(ALLOC: I_LAYSOLFR) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: P_FAC00, P_FAC01, P_FAC10, P_FAC11, K_JP, K_JT, K_JT1, & !$OMP P_COLH2O, P_COLMOL, P_COLO3, K_LAYTROP, P_SFLUXZEN, & !$OMP P_TAUG, P_TAUR, PRMU0) +#endif i_nlayers = klev !$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO @@ -204,6 +206,8 @@ SUBROUTINE SRTM_TAUMOL25 & !$ACC END DATA !$OMP TARGET EXIT DATA MAP(DELETE: I_LAYSOLFR) +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE SRTM_TAUMOL25 diff --git a/ifsrrtm/srtm_taumol26.F90 b/ifsrrtm/srtm_taumol26.F90 index 65e8b599..8bb96573 100644 --- a/ifsrrtm/srtm_taumol26.F90 +++ b/ifsrrtm/srtm_taumol26.F90 @@ -56,7 +56,9 @@ SUBROUTINE SRTM_TAUMOL26 & !$ACC DATA CREATE(i_laysolfr) & !$ACC PRESENT(p_colmol, k_laytrop, p_sfluxzen, p_taug, p_taur, prmu0) !$OMP TARGET ENTER DATA MAP(ALLOC: i_laysolfr) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: p_colmol, k_laytrop, p_sfluxzen, p_taug, p_taur, prmu0) +#endif i_nlayers = klev !$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO @@ -129,6 +131,8 @@ SUBROUTINE SRTM_TAUMOL26 & !$ACC END DATA !$OMP TARGET EXIT DATA MAP(DELETE: i_laysolfr) +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE SRTM_TAUMOL26 diff --git a/ifsrrtm/srtm_taumol27.F90 b/ifsrrtm/srtm_taumol27.F90 index daa1ca00..9bca7684 100644 --- a/ifsrrtm/srtm_taumol27.F90 +++ b/ifsrrtm/srtm_taumol27.F90 @@ -69,9 +69,11 @@ SUBROUTINE SRTM_TAUMOL27 & !$ACC P_COLMOL, P_COLO3, K_LAYTROP, P_SFLUXZEN, P_TAUG, P_TAUR, & !$ACC PRMU0) !$OMP TARGET ENTER DATA MAP(ALLOC: i_laysolfr) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: P_FAC00, P_FAC01, P_FAC10, P_FAC11, K_JP, K_JT, K_JT1, & !$OMP P_COLMOL, P_COLO3, K_LAYTROP, P_SFLUXZEN, P_TAUG, P_TAUR, & !$OMP PRMU0) +#endif i_nlayers = klev !$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO @@ -181,6 +183,8 @@ SUBROUTINE SRTM_TAUMOL27 & !$ACC END DATA !$OMP TARGET EXIT DATA MAP(DELETE: i_laysolfr) +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE SRTM_TAUMOL27 diff --git a/ifsrrtm/srtm_taumol28.F90 b/ifsrrtm/srtm_taumol28.F90 index ec67ad4d..05509663 100644 --- a/ifsrrtm/srtm_taumol28.F90 +++ b/ifsrrtm/srtm_taumol28.F90 @@ -72,9 +72,11 @@ SUBROUTINE SRTM_TAUMOL28 & !$ACC P_ONEMINUS, P_COLMOL, P_COLO2, P_COLO3, K_LAYTROP, & !$ACC P_SFLUXZEN, P_TAUG, P_TAUR, PRMU0) !$OMP TARGET ENTER DATA MAP(ALLOC: i_laysolfr) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC: P_FAC00, P_FAC01, P_FAC10, P_FAC11, K_JP, K_JT, K_JT1, & !$OMP P_ONEMINUS, P_COLMOL, P_COLO2, P_COLO3, K_LAYTROP, & !$OMP P_SFLUXZEN, P_TAUG, P_TAUR, PRMU0) +#endif i_nlayers = klev !$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO @@ -236,6 +238,8 @@ SUBROUTINE SRTM_TAUMOL28 & !$ACC END DATA !$OMP TARGET EXIT DATA MAP(DELETE: i_laysolfr) +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE SRTM_TAUMOL28 diff --git a/ifsrrtm/srtm_taumol29.F90 b/ifsrrtm/srtm_taumol29.F90 index 0747f036..250650aa 100644 --- a/ifsrrtm/srtm_taumol29.F90 +++ b/ifsrrtm/srtm_taumol29.F90 @@ -79,10 +79,12 @@ SUBROUTINE SRTM_TAUMOL29 & !$ACC P_SELFFRAC, K_INDSELF, P_FORFAC, P_FORFRAC, K_INDFOR, & !$ACC P_SFLUXZEN, P_TAUG, P_TAUR, PRMU0) !$OMP TARGET ENTER DATA MAP(ALLOC: i_laysolfr) +#ifndef __NVCOMPILER !$OMP TARGET DATA MAP(PRESENT, ALLOC:P_FAC00, P_FAC01, P_FAC10, P_FAC11, K_JP, K_JT, K_JT1, & !$OMP P_COLH2O, P_COLCO2, P_COLMOL, K_LAYTROP, P_SELFFAC, & !$OMP P_SELFFRAC, K_INDSELF, P_FORFAC, P_FORFRAC, K_INDFOR, & !$OMP P_SFLUXZEN, P_TAUG, P_TAUR, PRMU0) +#endif i_nlayers = klev !$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO @@ -213,6 +215,8 @@ SUBROUTINE SRTM_TAUMOL29 & !$ACC END DATA !$OMP TARGET EXIT DATA MAP(DELETE: i_laysolfr) +#ifndef __NVCOMPILER !$OMP END TARGET DATA +#endif END SUBROUTINE SRTM_TAUMOL29