Changeset 3690 for palm/trunk/SOURCE/tridia_solver_mod.f90
- Timestamp:
- Jan 22, 2019 10:56:42 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/tridia_solver_mod.f90
r3655 r3690 101 101 ! the beginning, i.e. routine split is called within tridia_init. 102 102 ! 103 104 #define __acc_fft_device ( defined( _OPENACC ) && ( defined ( __cuda_fft ) ) ) 105 103 106 ! 104 107 ! Description: … … 173 176 CALL split 174 177 178 #if __acc_fft_device 175 179 !$ACC ENTER DATA & 176 180 !$ACC COPYIN(ddzuw(0:nz-1,1:3)) & 177 181 !$ACC COPYIN(tri(nxl_z:nxr_z,nys_z:nyn_z,0:nz-1,1:2)) 182 #endif 178 183 179 184 END SUBROUTINE tridia_init … … 297 302 298 303 REAL(wp), DIMENSION(nxl_z:nxr_z,nys_z:nyn_z,0:nz-1) :: ar1 !< 304 #if __acc_fft_device 299 305 !$ACC DECLARE CREATE(ar1) 306 #endif 300 307 301 308 ! 302 309 !-- Forward substitution 310 #if __acc_fft_device 303 311 !$ACC PARALLEL PRESENT(ar, ar1, tri) PRIVATE(i,j,k) 312 #endif 304 313 DO k = 0, nz - 1 314 #if __acc_fft_device 305 315 !$ACC LOOP COLLAPSE(2) 316 #endif 306 317 DO j = nys_z, nyn_z 307 318 DO i = nxl_z, nxr_z … … 316 327 ENDDO 317 328 ENDDO 329 #if __acc_fft_device 318 330 !$ACC END PARALLEL 331 #endif 319 332 320 333 ! … … 323 336 !-- by zero appearing if the pressure bc is set to neumann at the top of 324 337 !-- the model domain. 338 #if __acc_fft_device 325 339 !$ACC PARALLEL PRESENT(ar, ar1, ddzuw, tri) PRIVATE(i,j,k) 340 #endif 326 341 DO k = nz-1, 0, -1 342 #if __acc_fft_device 327 343 !$ACC LOOP COLLAPSE(2) 344 #endif 328 345 DO j = nys_z, nyn_z 329 346 DO i = nxl_z, nxr_z … … 338 355 ENDDO 339 356 ENDDO 357 #if __acc_fft_device 340 358 !$ACC END PARALLEL 359 #endif 341 360 342 361 ! … … 346 365 IF ( ibc_p_b == 1 .AND. ibc_p_t == 1 ) THEN 347 366 IF ( nys_z == 0 .AND. nxl_z == 0 ) THEN 367 #if __acc_fft_device 348 368 !$ACC PARALLEL LOOP PRESENT(ar) 369 #endif 349 370 DO k = 1, nz 350 371 ar(nxl_z,nys_z,k) = 0.0_wp
Note: See TracChangeset
for help on using the changeset viewer.