Changeset 85 for palm/trunk/SOURCE/pres.f90
- Timestamp:
- May 11, 2007 9:35:14 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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.