diff --git a/src/MNH/fast_terms.f90 b/src/MNH/fast_terms.f90 index ac55cbd5cbbb4fec2f589eb400be05732108db9f..f7d1578d8b3e3337046db1590474e3e06ba28b4c 100644 --- a/src/MNH/fast_terms.f90 +++ b/src/MNH/fast_terms.f90 @@ -267,7 +267,6 @@ IF( NVERB>5) THEN END IF END IF ! -!PW: OpenACC directives not interpreted (see Rules.LXpgi_openacc.mk due to internal compiler error PGI) !$acc kernels WHERE ( PRCS(:,:,:)+PRVS(:,:,:) < 0.) PRVS(:,:,:) = - PRCS(:,:,:) diff --git a/src/MNH/mode_prandtl.f90 b/src/MNH/mode_prandtl.f90 index 501ba1d6913d65cd7f4927554727408a490fe28c..d1665a314a0f5be73bf08f267c3a5e365b6f913d 100644 --- a/src/MNH/mode_prandtl.f90 +++ b/src/MNH/mode_prandtl.f90 @@ -97,7 +97,7 @@ IF (HTURBDIM=='3DIM') THEN (PRED2TH3(:,:,:) / PREDTH1(:,:,:) + ZW2(:,:,:)) / ZW1(:,:,:) END IF ! -!WARNING: BUG PGI (tested up to PGI 16.09): necessary to use a logical mask +!WARNING: BUG PGI (tested up to PGI 16.10): necessary to use a logical mask !because the compiler does not manage correctly the .OR. in the WHERE !WHERE( PPHI3 <= 0. .OR. PPHI3 > XPHI_LIM ) PHI3LOGIC = (PPHI3 <= 0. .OR. PPHI3 > XPHI_LIM) @@ -160,8 +160,9 @@ DO JSV=1,SIZE(PPSI_SV,4) ) / ( 1. + XCPR5 * ( PREDTH1 + PREDR1 ) ) ! control of the PPSI_SV positivity -!WARNING: BUG PGI (tested up to PGI 16.09): necessary to use a logical mask +!WARNING: BUG PGI (tested up to PGI 16.10): necessary to use a logical mask !because the compiler does not manage correctly the .AND. in the WHERE +!Failure during execution !WHERE ( (PPSI_SV(:,:,:,JSV) <=0.).AND. (PREDTH1+PREDR1) <= 0. ) PSILOGIC = ((PPSI_SV(:,:,:,JSV) <=0.).AND. (PREDTH1+PREDR1) <= 0. ) WHERE ( PSILOGIC ) diff --git a/src/MNH/ppm.f90 b/src/MNH/ppm.f90 index 27ac38c1ec0ba14051a3b7d5809d0cfe4f99ffee..7e5b0d26d81773be86474223a28d80994a10be0c 100644 --- a/src/MNH/ppm.f90 +++ b/src/MNH/ppm.f90 @@ -1862,7 +1862,7 @@ ELSEWHERE ( ZQ60*ZDQ > (ZDQ)**2 ) ZQR = ZQR0 END WHERE #else -!PW: BUG: done like that because if using PGI 16.04 (at least) +!PW: BUG: done like that because if using PGI (tested up to 16.10) ! will cause crashes at run (address not mapped) ! and problems at compilation WHERE ( ZDMQ == 0.0 ) diff --git a/src/MNH/ppm_met.f90 b/src/MNH/ppm_met.f90 index d3a91e8a4e08e75d115d6b8ced0af51934388255..a0f3171a2ac092ec20fafc256067e78c49399c59 100644 --- a/src/MNH/ppm_met.f90 +++ b/src/MNH/ppm_met.f90 @@ -41,14 +41,14 @@ REAL, INTENT(IN) :: PTSTEP_PPM ! Time Step PPM ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT, PTKET ! Vars at t REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT -!PW: bug workaround with PGI 15.10 +!PW: bug workaround with PGI (tested up to 16.10) !PTKET is present but if zero-size => not detected as present !!$acc declare present(PTHT,PTKET,PRT) !$acc declare present(PTHT,PRT) !$acc declare pcopyin(PTKET) ! REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRTHS, PRTKES! Source terms -!PW: bug workaround with PGI 15.10 +!PW: bug workaround with PGI (tested up to 16.10) !PRTKES is present but if zero-size => not detected as present !!$acc declare present(PRTHS,PRTKES) !$acc declare present(PRTHS) @@ -147,14 +147,14 @@ REAL, INTENT(IN) :: PTSTEP_PPM ! Time Step PPM ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT, PTKET ! Vars at t REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT -!PW: bug workaround with PGI 15.10 +!PW: bug workaround with PGI (tested up to 16.10) !PTKET is present but if zero-size => not detected as present !!$acc declare present(PTHT,PTKET,PRT) !$acc declare present(PTHT,PRT) !$acc declare pcopyin(PTKET) ! REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRTHS, PRTKES! Source terms -!PW: bug workaround with PGI 15.10 +!PW: bug workaround with PGI (tested up to 16.10) !PRTKES is present but if zero-size => not detected as present !!$acc declare present(PRTHS,PRTKES) !$acc declare present(PRTHS) diff --git a/src/MNH/ppm_scalar.f90 b/src/MNH/ppm_scalar.f90 index 4b41ff4c6d018bf2093f9abe777fae6d0003d1fe..bf722f2c5c92e375a252f51133b91185075a6627 100644 --- a/src/MNH/ppm_scalar.f90 +++ b/src/MNH/ppm_scalar.f90 @@ -43,13 +43,13 @@ REAL, INTENT(IN) :: PTSTEP ! Time step model REAL, INTENT(IN) :: PTSTEP_PPM ! Time Step PPM ! REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVT ! Vars at t -!PW: bug workaround with PGI 15.10 +!PW: bug workaround with PGI (tested up to 16.10) !PSVT is present but if zero-size => not detected as present !!$acc declare present(PSVT) !$acc declare pcopyin(PSVT) ! REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PRSVS ! Source terms -!PW: bug workaround with PGI 15.10 +!PW: bug workaround with PGI (tested up to 16.10) !PRSVS is present but if zero-size => not detected as present !!$acc declare present(PRSVS) !$acc declare pcopyout(PRSVS) @@ -97,13 +97,13 @@ REAL, INTENT(IN) :: PTSTEP ! Time step REAL, INTENT(IN) :: PTSTEP_PPM ! Time Step PPM ! REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVT -!PW: bug workaround with PGI 15.10 +!PW: bug workaround with PGI (tested up to 16.10) !PSVT is present but if zero-size => not detected as present !!$acc declare present(PSVT) !$acc declare pcopyin(PSVT) ! REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PRSVS ! Source terms -!PW: bug workaround with PGI 15.10 +!PW: bug workaround with PGI (tested up to 16.10) !PRSVS is present but if zero-size => not detected as present !!$acc declare present(PRSVS) !$acc declare pcopyout(PRSVS)