Changeset 85
- Timestamp:
- May 11, 2007 9:35:14 AM (18 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/CURRENT_MODIFICATIONS
r83 r85 5 5 Changed: 6 6 ------- 7 Division through dt_3d replaced by multiplication of the inverse. For performance optimisation, this is done in the loop calculating the divergence instead of using a seperate loop. (pres.f90) 8 9 pres 7 10 8 11 9 12 Errors: 10 13 ------ 14 Bugfix: work_fft*_vec removed from some PRIVATE-declarations (poisfft.f90). 15 16 poisfft -
palm/trunk/SOURCE/poisfft.f90
r82 r85 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! Bugfix: work_fft*_vec removed from some PRIVATE-declarations 7 7 ! 8 8 ! Former revisions: … … 641 641 ! 642 642 !-- Code optimized for vector processors 643 !$OMP PARALLEL PRIVATE ( i, j, k , work_ffty_vec)643 !$OMP PARALLEL PRIVATE ( i, j, k ) 644 644 !$OMP DO 645 645 DO i = nxl, nxr … … 763 763 ! 764 764 !-- Code optimized for vector processors 765 !$OMP PARALLEL PRIVATE ( i, j, k , work_ffty_vec)765 !$OMP PARALLEL PRIVATE ( i, j, k ) 766 766 !$OMP DO 767 767 DO k = 1, nz … … 1003 1003 ! 1004 1004 !-- Code for vector processors 1005 !$OMP PARALLEL PRIVATE ( i, j, k , work_fftx)1005 !$OMP PARALLEL PRIVATE ( i, j, k ) 1006 1006 !$OMP DO 1007 1007 DO i = 0, nx … … 1114 1114 ! 1115 1115 !-- Code optimized for vector processors 1116 !$OMP PARALLEL PRIVATE ( i, j, k , work_fftx)1116 !$OMP PARALLEL PRIVATE ( i, j, k ) 1117 1117 !$OMP DO 1118 1118 DO j = nys, nyn -
palm/trunk/SOURCE/pres.f90
r77 r85 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! Division through dt_3d replaced by multiplication of the inverse. 7 ! For performance optimisation, this is done in the loop calculating the 8 ! divergence instead of using a seperate loop. 7 9 ! 8 10 ! Former revisions: … … 48 50 INTEGER :: i, j, k, sr 49 51 50 REAL :: localsum, threadsum52 REAL :: ddt_3d, localsum, threadsum 51 53 52 54 REAL, DIMENSION(1:2) :: volume_flow_l, volume_flow_offset … … 55 57 56 58 CALL cpu_log( log_point(8), 'pres', 'start' ) 59 60 61 ddt_3d = 1.0 / dt_3d 57 62 58 63 ! … … 167 172 DO j = nys, nyn 168 173 DO k = nzb_s_inner(j,i)+1, nzt 169 d(k,j,i) = ( u(k,j,i+1) - u(k,j,i) ) * ddx + &170 ( v(k,j+1,i) - v(k,j,i) ) * ddy + &171 ( w(k,j,i) - w(k-1,j,i) ) * ddzw(k)174 d(k,j,i) = ( ( u(k,j,i+1) - u(k,j,i) ) * ddx + & 175 ( v(k,j+1,i) - v(k,j,i) ) * ddy + & 176 ( w(k,j,i) - w(k-1,j,i) ) * ddzw(k) ) * ddt_3d 172 177 ENDDO 173 178 ! … … 184 189 - g * ( pt(k+1,j,i) - sums(k+1,4) ) / & 185 190 sums(k+1,4) & 186 ) * ddzw(k+1) 191 ) * ddzw(k+1) * ddt_3d 187 192 ENDIF 188 193 … … 193 198 ENDDO 194 199 195 !196 !-- Velocity corrections are made with Euler step size. Right hand side197 !-- of Poisson equation has to be set appropriately198 DO k = nzb_s_inner(j,i)+1, nzt199 d(k,j,i) = d(k,j,i) / dt_3d200 ENDDO201 202 200 ENDDO 203 201 ENDDO 204 202 205 localsum = localsum + threadsum203 localsum = ( localsum + threadsum ) * dt_3d 206 204 !$OMP END PARALLEL 207 205 #else … … 212 210 DO j = nys, nyn 213 211 DO k = nzb_s_inner(j,i)+1, nzt 214 d(k,j,i) = ( u(k,j,i+1) - u(k,j,i) ) * ddx + &215 ( v(k,j+1,i) - v(k,j,i) ) * ddy + &216 ( w(k,j,i) - w(k-1,j,i) ) * ddzw(k)212 d(k,j,i) = ( ( u(k,j,i+1) - u(k,j,i) ) * ddx + & 213 ( v(k,j+1,i) - v(k,j,i) ) * ddy + & 214 ( w(k,j,i) - w(k-1,j,i) ) * ddzw(k) ) * ddt_3d 217 215 ENDDO 218 216 ENDDO … … 230 228 - g * ( pt(k+1,j,i) - sums(k+1,4) ) / & 231 229 sums(k+1,4) & 232 ) * ddzw(k+1) 230 ) * ddzw(k+1) * ddt_3d 233 231 ENDDO 234 232 ENDDO … … 242 240 DO j = nys, nyn 243 241 DO k = nzb_s_inner(j,i)+1, nzt 244 d(k,j,i) = ( u(k,j,i+1) - u(k,j,i) ) * ddx + &245 ( v(k,j+1,i) - v(k,j,i) ) * ddy + &246 ( w(k,j,i) - w(k-1,j,i) ) * ddzw(k)242 d(k,j,i) = ( ( u(k,j,i+1) - u(k,j,i) ) * ddx + & 243 ( v(k,j+1,i) - v(k,j,i) ) * ddy + & 244 ( w(k,j,i) - w(k-1,j,i) ) * ddzw(k) ) * ddt_3d 247 245 ENDDO 248 246 ENDDO … … 263 261 ENDDO 264 262 ENDDO 265 localsum = localsum + threadsum263 localsum = ( localsum + threadsum ) * dt_3d 266 264 !$OMP END PARALLEL 267 268 !269 !-- Velocity corrections are made with Euler step size. Right hand side270 !-- of Poisson equation has to be set appropriately271 !$OMP DO SCHEDULE( STATIC )272 DO i = nxl, nxr273 DO j = nys, nyn274 DO k = nzb_s_inner(j,i)+1, nzt275 d(k,j,i) = d(k,j,i) / dt_3d276 ENDDO277 ENDDO278 ENDDO279 265 #endif 280 266
Note: See TracChangeset
for help on using the changeset viewer.