New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
maxval_bug.f90 in NEMO/branches/UKMO/BPC_miniapp/OpenACC – NEMO

source: NEMO/branches/UKMO/BPC_miniapp/OpenACC/maxval_bug.f90 @ 10838

Last change on this file since 10838 was 10838, checked in by wayne_gaudin, 5 years ago

Ticket #2197 - extracted versions added

File size: 1.2 KB
Line 
1PROGRAM main_bpc_hpg
2
3  IMPLICIT NONE
4 
5  INTEGER :: jpi, jpj, jpk
6  INTEGER :: jk,jj,ji
7 
8  REAL(8), DIMENSION(:,:,:),   ALLOCATABLE :: tmask
9  REAL(8), DIMENSION(:,:)  ,   ALLOCATABLE :: ssmask
10  REAL(8)                                  :: answer
11
12  jpi=3 ; jpj=3 ; jpk=3
13
14  ALLOCATE(ssmask(jpi,jpj),tmask(jpi,jpj,jpk))
15
16!$ACC KERNELS
17  DO jk = 1, jpk
18    DO jj = 1, jpj
19      DO ji = 1, jpi
20        tmask(ji,jj,jk)=ji+jpj*(jj-1)+jpk*jpj*(jk-1)
21      END DO
22    END DO
23  END DO 
24!$ACC END KERNELS
25  answer=SUM(MAXVAL( tmask(:,:,:), DIM=3 ))
26  write(0,*)
27  write(0,*)"tmask"
28  write(0,*)tmask
29  write(0,*)"Correct Answer",answer
30
31!$ACC KERNELS
32  DO jj = 1, jpj
33    DO ji = 1, jpi
34      ssmask(ji,jj)=MAXVAL(tmask(ji,jj,:), DIM=1)
35    END DO
36  END DO 
37!$ACC END KERNELS
38  write(0,*)"Variation 1: ssmask"
39  write(0,*)ssmask
40  write(0,*)"        Answer",SUM(ssmask)
41
42!$ACC KERNELS
43  DO ji = 1, jpi
44      ssmask(ji,:)=MAXVAL(tmask(ji,:,:), DIM=2)
45  END DO 
46!$ACC END KERNELS
47  write(0,*)"Variation 2: ssmask"
48  write(0,*)ssmask
49  write(0,*)"        Answer",SUM(ssmask)
50
51!$ACC KERNELS
52  ssmask (:,:) = MAXVAL( tmask(:,:,:), DIM=3 )   
53!$ACC END KERNELS
54  write(0,*)"Variation 3: ssmask"
55  write(0,*)ssmask
56  write(0,*)"        Answer",SUM(ssmask)
57
58END PROGRAM
Note: See TracBrowser for help on using the repository browser.