Changeset 51 for palm/trunk/SOURCE/diffusion_u.f90
- Timestamp:
- Mar 7, 2007 8:38:00 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/diffusion_u.f90
r39 r51 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! wall functions now include diabatic conditions, call of routine wall_fluxes 7 7 ! 8 8 ! Former revisions: … … 30 30 ! ------------ 31 31 ! Diffusion term of the u-component 32 ! To do: additional damping (needed for non-cyclic bc) causes bad vectorization 33 ! and slows down the speed on NEC about 5-10% 32 34 !------------------------------------------------------------------------------! 33 35 … … 55 57 56 58 INTEGER :: i, j, k 57 REAL :: kmym_x, kmym_y, kmyp_x, kmyp_y, kmzm, kmzp , usvs59 REAL :: kmym_x, kmym_y, kmyp_x, kmyp_y, kmzm, kmzp 58 60 REAL :: ddzu(1:nzt+1), ddzw(1:nzt+1), km_damp_y(nys-1:nyn+1) 59 61 REAL :: z0(nys-1:nyn+1,nxl-1:nxr+1) 60 62 REAL :: tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) 63 REAL, DIMENSION(nzb:nzt+1) :: usvs 61 64 REAL, DIMENSION(:,:), POINTER :: usws 62 65 REAL, DIMENSION(:,:,:), POINTER :: km, u, v, w … … 100 103 !-- Wall functions at the north and south walls, respectively 101 104 IF ( wall_u(j,i) /= 0.0 ) THEN 105 106 ! 107 !-- Calculate the horizontal momentum flux u'v' 108 CALL wall_fluxes( i, j, nzb_u_inner(j,i)+1, nzb_u_outer(j,i), & 109 usvs, 1.0, 0.0, 0.0, 0.0 ) 110 102 111 DO k = nzb_u_inner(j,i)+1, nzb_u_outer(j,i) 103 usvs = kappa * u(k,j,i) / LOG( 0.5 * dy / z0(j,i) )104 usvs = -usvs * ABS( usvs )105 112 kmyp_x = 0.25 * & 106 113 ( km(k,j,i)+km(k,j+1,i)+km(k,j,i-1)+km(k,j+1,i-1) ) … … 132 139 + kmym_x * ( v(k,j,i) - v(k,j,i-1) ) * ddx & 133 140 ) & 134 + wall_u(j,i) * usvs 141 + wall_u(j,i) * usvs(k) & 135 142 ) * ddy 136 143 ENDDO … … 204 211 205 212 INTEGER :: i, j, k 206 REAL :: kmym_x, kmym_y, kmyp_x, kmyp_y, kmzm, kmzp , usvs213 REAL :: kmym_x, kmym_y, kmyp_x, kmyp_y, kmzm, kmzp 207 214 REAL :: ddzu(1:nzt+1), ddzw(1:nzt+1), km_damp_y(nys-1:nyn+1) 208 215 REAL :: z0(nys-1:nyn+1,nxl-1:nxr+1) 209 216 REAL :: tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) 217 REAL, DIMENSION(nzb:nzt+1) :: usvs 210 218 REAL, DIMENSION(:,:), POINTER :: usws 211 219 REAL, DIMENSION(:,:,:), POINTER :: km, u, v, w … … 246 254 !-- Wall functions at the north and south walls, respectively 247 255 IF ( wall_u(j,i) .NE. 0.0 ) THEN 256 257 ! 258 !-- Calculate the horizontal momentum flux u'v' 259 CALL wall_fluxes( i, j, nzb_u_inner(j,i)+1, nzb_u_outer(j,i), & 260 usvs, 1.0, 0.0, 0.0, 0.0 ) 261 248 262 DO k = nzb_u_inner(j,i)+1, nzb_u_outer(j,i) 249 usvs = kappa * u(k,j,i) / LOG( 0.5 * dy / z0(j,i) )250 usvs = -usvs * ABS( usvs )251 263 kmyp_x = 0.25 * ( km(k,j,i)+km(k,j+1,i)+km(k,j,i-1)+km(k,j+1,i-1) ) 252 264 kmym_x = 0.25 * ( km(k,j,i)+km(k,j-1,i)+km(k,j,i-1)+km(k,j-1,i-1) ) … … 276 288 + kmym_x * ( v(k,j,i) - v(k,j,i-1) ) * ddx & 277 289 ) & 278 + wall_u(j,i) * usvs 290 + wall_u(j,i) * usvs(k) & 279 291 ) * ddy 280 292 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.