Changeset 1257 for palm/trunk/SOURCE/fft_xy.f90
- Timestamp:
- Nov 8, 2013 3:18:40 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/fft_xy.f90
r1220 r1257 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! openacc loop and loop vector clauses removed, declare create moved after 23 ! the FORTRAN declaration statement 23 24 ! 24 25 ! Former revisions: … … 328 329 REAL, DIMENSION(6*(nx+1)) :: work2 329 330 #elif defined( __cuda_fft ) 331 COMPLEX(dpk), DIMENSION(0:(nx+1)/2,nys_x:nyn_x,nzb_x:nzt_x) :: ar_tmp 330 332 !$acc declare create( ar_tmp ) 331 COMPLEX(dpk), DIMENSION(0:(nx+1)/2,nys_x:nyn_x,nzb_x:nzt_x) :: ar_tmp332 333 #endif 333 334 REAL, DIMENSION(0:nx,nys_x:nyn_x), OPTIONAL :: ar_2d … … 634 635 635 636 !$acc kernels 636 !$acc loop637 637 DO k = nzb_x, nzt_x 638 638 DO j = nys_x, nyn_x 639 639 640 !$acc loop vector( 32 )641 640 DO i = 0, (nx+1)/2 642 641 ar(i,j,k) = REAL( ar_tmp(i,j,k) ) * dnx 643 642 ENDDO 644 643 645 !$acc loop vector( 32 )646 644 DO i = 1, (nx+1)/2 - 1 647 645 ar(nx+1-i,j,k) = AIMAG( ar_tmp(i,j,k) ) * dnx … … 657 655 !$acc data present( ar ) 658 656 !$acc kernels 659 !$acc loop660 657 DO k = nzb_x, nzt_x 661 658 DO j = nys_x, nyn_x … … 663 660 ar_tmp(0,j,k) = CMPLX( ar(0,j,k), 0.0 ) 664 661 665 !$acc loop vector( 32 )666 662 DO i = 1, (nx+1)/2 - 1 667 663 ar_tmp(i,j,k) = CMPLX( ar(i,j,k), ar(nx+1-i,j,k) ) … … 957 953 REAL, DIMENSION(6*(ny+1)) :: work2 958 954 #elif defined( __cuda_fft ) 955 COMPLEX(dpk), DIMENSION(0:(ny+1)/2,nxl_y:nxr_y,nzb_y:nzt_y) :: ar_tmp 959 956 !$acc declare create( ar_tmp ) 960 COMPLEX(dpk), DIMENSION(0:(ny+1)/2,nxl_y:nxr_y,nzb_y:nzt_y) :: ar_tmp961 957 #endif 962 958 REAL, DIMENSION(0:ny,nxl_y_l:nxr_y_l,nzb_y:nzt_y) :: ar … … 1236 1232 1237 1233 !$acc kernels 1238 !$acc loop1239 1234 DO k = nzb_y, nzt_y 1240 1235 DO i = nxl_y, nxr_y 1241 1236 1242 !$acc loop vector( 32 )1243 1237 DO j = 0, (ny+1)/2 1244 1238 ar(j,i,k) = REAL( ar_tmp(j,i,k) ) * dny 1245 1239 ENDDO 1246 1240 1247 !$acc loop vector( 32 )1248 1241 DO j = 1, (ny+1)/2 - 1 1249 1242 ar(ny+1-j,i,k) = AIMAG( ar_tmp(j,i,k) ) * dny … … 1259 1252 !$acc data present( ar ) 1260 1253 !$acc kernels 1261 !$acc loop1262 1254 DO k = nzb_y, nzt_y 1263 1255 DO i = nxl_y, nxr_y … … 1265 1257 ar_tmp(0,i,k) = CMPLX( ar(0,i,k), 0.0 ) 1266 1258 1267 !$acc loop vector( 32 )1268 1259 DO j = 1, (ny+1)/2 - 1 1269 1260 ar_tmp(j,i,k) = CMPLX( ar(j,i,k), ar(ny+1-j,i,k) )
Note: See TracChangeset
for help on using the changeset viewer.