- Timestamp:
- May 10, 2013 2:33:08 PM (12 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/buoyancy.f90
r1132 r1153 20 20 ! Currrent revisions: 21 21 ! ----------------- 22 ! 22 ! code adjustment of accelerator version for PGI 12.3 / CUDA 5.0 23 23 ! 24 24 ! Former revisions: … … 238 238 DO i = i_left, i_right 239 239 DO j = j_south, j_north 240 !$acc loop vector(32) 241 DO k = 1, nzt-1 242 IF ( k > nzb_s_inner(j,i) ) THEN 243 tend(k,j,i) = tend(k,j,i) + atmos_ocean_sign * g * 0.5 * & 244 ( & 245 ( var(k,j,i) - hom(k,1,pr,0) ) / hom(k,1,pr,0) + & 246 ( var(k+1,j,i) - hom(k+1,1,pr,0) ) / hom(k+1,1,pr,0) & 247 ) 248 ENDIF 240 !$acc loop independent vector(32) 241 DO k = nzb_s_inner(j,i)+1, nzt-1 242 tend(k,j,i) = tend(k,j,i) + atmos_ocean_sign * g * 0.5 * & 243 ( & 244 ( var(k,j,i) - hom(k,1,pr,0) ) / hom(k,1,pr,0) + & 245 ( var(k+1,j,i) - hom(k+1,1,pr,0) ) / hom(k+1,1,pr,0) & 246 ) 249 247 ENDDO 250 248 ENDDO -
palm/trunk/SOURCE/cuda_fft_interfaces.f90
r1112 r1153 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! code adjustment of data types for CUDA fft required by PGI 12.3 / CUDA 5.0 23 23 ! 24 24 ! Former revisions: … … 87 87 88 88 USE ISO_C_BINDING 89 USE precision_kind90 89 91 INTEGER(C_INT) , value:: plan92 COMPLEX( dpk), device:: idata(:,:,:)93 REAL( dpk), device:: odata(:,:,:)90 INTEGER(C_INT) :: plan 91 COMPLEX(C_DOUBLE_COMPLEX) :: idata(:,:,:) 92 REAL(C_DOUBLE) :: odata(:,:,:) 94 93 95 94 END SUBROUTINE CUFFTEXECZ2D … … 103 102 104 103 USE ISO_C_BINDING 105 USE precision_kind106 104 107 INTEGER(C_INT) , value:: plan108 REAL( dpk), device:: idata(:,:,:)109 COMPLEX( dpk), device:: odata(:,:,:)105 INTEGER(C_INT) :: plan 106 REAL(C_DOUBLE) :: idata(:,:,:) 107 COMPLEX(C_DOUBLE_COMPLEX) :: odata(:,:,:) 110 108 111 109 END SUBROUTINE CUFFTEXECD2Z -
palm/trunk/SOURCE/fft_xy.f90
r1112 r1153 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! code adjustment of data types for CUDA fft required by PGI 12.3 / CUDA 5.0 23 23 ! 24 24 ! Former revisions: … … 74 74 USE control_parameters 75 75 USE indices 76 #if defined( __cuda_fft ) 77 USE ISO_C_BINDING 78 #endif 76 79 USE precision_kind 77 80 USE singleton … … 102 105 trig_yf 103 106 #elif defined( __cuda_fft ) 104 INTEGER , SAVE :: plan_xf, plan_xi, plan_yf, plan_yi, total_points_x_transpo, &105 107 INTEGER(C_INT), SAVE :: plan_xf, plan_xi, plan_yf, plan_yi 108 INTEGER, SAVE :: total_points_x_transpo, total_points_y_transpo 106 109 #endif 107 110 … … 262 265 263 266 USE cuda_fft_interfaces 267 #if defined( __cuda_fft ) 268 USE ISO_C_BINDING 269 #endif 264 270 265 271 IMPLICIT NONE … … 279 285 #elif defined( __cuda_fft ) 280 286 !$acc declare create( ar_tmp ) 281 COMPLEX( dpk), DIMENSION(0:(nx+1)/2,nys_x:nyn_x,nzb_x:nzt_x) :: ar_tmp287 COMPLEX(C_DOUBLE_COMPLEX), DIMENSION(0:(nx+1)/2,nys_x:nyn_x,nzb_x:nzt_x) :: ar_tmp 282 288 #endif 283 289 REAL, DIMENSION(0:nx,nys_x:nyn_x,nzb_x:nzt_x) :: ar … … 770 776 771 777 USE cuda_fft_interfaces 778 #if defined( __cuda_fft ) 779 USE ISO_C_BINDING 780 #endif 772 781 773 782 IMPLICIT NONE … … 787 796 #elif defined( __cuda_fft ) 788 797 !$acc declare create( ar_tmp ) 789 COMPLEX( dpk), DIMENSION(0:(ny+1)/2,nxl_y:nxr_y,nzb_y:nzt_y) :: ar_tmp798 COMPLEX(C_DOUBLE_COMPLEX), DIMENSION(0:(ny+1)/2,nxl_y:nxr_y,nzb_y:nzt_y) :: ar_tmp 790 799 #endif 791 800 REAL, DIMENSION(0:ny,nxl_y:nxr_y,nzb_y:nzt_y) :: ar -
palm/trunk/SOURCE/init_3d_model.f90
r1116 r1153 23 23 ! Current revisions: 24 24 ! ------------------ 25 ! 25 ! diss array is allocated with dummy elements even if it is not needed 26 ! (required by PGI 12.3 / CUDA 5.0) 26 27 ! 27 28 ! Former revisions: … … 501 502 !-- particle velocities 502 503 IF ( use_sgs_for_particles .OR. wang_kernel .OR. turbulence ) THEN 503 ALLOCATE ( diss(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 504 ALLOCATE( diss(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 505 ELSE 506 ALLOCATE( diss(2,2,2) ) 504 507 ENDIF 505 508 -
palm/trunk/SOURCE/wall_fluxes.f90
r1132 r1153 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! code adjustment of accelerator version for PGI 12.3 / CUDA 5.0 23 23 ! 24 24 ! Former revisions: … … 259 259 !$acc kernels present( hom, nzb_uvw_inner, nzb_uvw_outer, pt, rif_wall ) & 260 260 !$acc present( u, v, w, wall, wall_flux, z0 ) 261 !$acc loop 261 !$acc loop independent 262 262 DO i = i_left, i_right 263 263 DO j = j_south, j_north 264 !$acc loop vector( 32 ) 265 DO k = min_inner, max_outer264 265 IF ( wall(j,i) /= 0.0 ) THEN 266 266 ! 267 267 !-- All subsequent variables are computed for the respective 268 268 !-- location where the respective flux is defined. 269 IF ( k >= nzb_uvw_inner(j,i)+1 .AND. & 270 k <= nzb_uvw_outer(j,i) .AND. wall(j,i) /= 0.0 ) THEN 269 !$acc loop independent vector( 32 ) 270 DO k = nzb_uvw_inner(j,i)+1, nzb_uvw_outer(j,i) 271 271 272 ! 272 273 !-- (1) Compute rifs, u_i, v_i, ws, pt' and w'pt' … … 365 366 rif_wall(k,j,i,wall_index) = rifs 366 367 367 ENDIF 368 369 ENDDO 368 ! ENDIF 369 370 ENDDO 371 372 ENDIF 373 370 374 ENDDO 371 375 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.