Changeset 1320 for palm/trunk/SOURCE/diffusion_u.f90
- Timestamp:
- Mar 20, 2014 8:40:49 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/diffusion_u.f90
r1310 r1320 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! ONLY-attribute added to USE-statements, 23 ! kind-parameters added to all INTEGER and REAL declaration statements, 24 ! kinds are defined in new module kinds, 25 ! old module precision_kind is removed, 26 ! revision history before 2012 removed, 27 ! comment fields (!:) to be used for variable explanations added to 28 ! all variable declaration statements 23 29 ! 24 30 ! Former revisions: … … 46 52 ! outflow damping layer removed 47 53 ! kmym_x/_y and kmyp_x/_y change to kmym and kmyp 48 !49 ! 667 2010-12-23 12:06:00Z suehring/gryschka50 ! nxl-1, nxr+1, nys-1, nyn+1 replaced by nxlg, nxrg, nysg, nyng51 !52 ! 366 2009-08-25 08:06:27Z raasch53 ! bc_ns replaced by bc_ns_cyc54 !55 ! 106 2007-08-16 14:30:26Z raasch56 ! Momentumflux at top (uswst) included as boundary condition,57 ! i loop is starting from nxlu (needed for non-cyclic boundary conditions)58 !59 ! 75 2007-03-22 09:54:05Z raasch60 ! Wall functions now include diabatic conditions, call of routine wall_fluxes,61 ! z0 removed from argument list, uxrp eliminated62 !63 ! 20 2007-02-26 00:12:32Z raasch64 ! Bugfix: ddzw dimensioned 1:nzt"+1"65 !66 ! RCS Log replace by Id keyword, revision history cleaned up67 !68 ! Revision 1.15 2006/02/23 10:35:35 raasch69 ! nzb_2d replaced by nzb_u_outer in horizontal diffusion and by nzb_u_inner70 ! or nzb_diff_u, respectively, in vertical diffusion,71 ! wall functions added for north and south walls, +z0 in argument list,72 ! terms containing w(k-1,..) are removed from the Prandtl-layer equation73 ! because they cause errors at the edges of topography74 ! WARNING: loops containing the MAX function are still not properly vectorized!75 54 ! 76 55 ! Revision 1.1 1997/09/12 06:23:51 raasch … … 107 86 SUBROUTINE diffusion_u 108 87 109 USE arrays_3d 110 USE control_parameters 111 USE grid_variables 112 USE indices 88 USE arrays_3d, & 89 ONLY: ddzu, ddzw, km, tend, u, usws, uswst, v, w 90 91 USE control_parameters, & 92 ONLY: constant_top_momentumflux, topography, use_surface_fluxes, & 93 use_top_fluxes 94 95 USE grid_variables, & 96 ONLY: ddx, ddx2, ddy, fym, fyp, wall_u 97 98 USE indices, & 99 ONLY: nxl, nxlu, nxr, nyn, nys, nzb, nzb_diff_u, nzb_u_inner, & 100 nzb_u_outer, nzt, nzt_diff 101 102 USE kinds 113 103 114 104 IMPLICIT NONE 115 105 116 INTEGER :: i, j, k 117 REAL :: kmym, kmyp, kmzm, kmzp 118 119 REAL, DIMENSION(nzb:nzt+1,nys:nyn,nxl:nxr) :: usvs 106 INTEGER(iwp) :: i !: 107 INTEGER(iwp) :: j !: 108 INTEGER(iwp) :: k !: 109 REAL(wp) :: kmym !: 110 REAL(wp) :: kmyp !: 111 REAL(wp) :: kmzm !: 112 REAL(wp) :: kmzp !: 113 114 REAL(wp), DIMENSION(nzb:nzt+1,nys:nyn,nxl:nxr) :: usvs !: 120 115 121 116 ! … … 123 118 !-- if neccessary 124 119 IF ( topography /= 'flat' ) THEN 125 CALL wall_fluxes( usvs, 1.0 , 0.0, 0.0, 0.0, nzb_u_inner, &120 CALL wall_fluxes( usvs, 1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, nzb_u_inner, & 126 121 nzb_u_outer, wall_u ) 127 122 ENDIF … … 134 129 ! 135 130 !-- Interpolate eddy diffusivities on staggered gridpoints 136 kmyp = 0.25 * &131 kmyp = 0.25 * & 137 132 ( km(k,j,i)+km(k,j+1,i)+km(k,j,i-1)+km(k,j+1,i-1) ) 138 kmym = 0.25 * &133 kmym = 0.25 * & 139 134 ( km(k,j,i)+km(k,j-1,i)+km(k,j,i-1)+km(k,j-1,i-1) ) 140 135 141 tend(k,j,i) = tend(k,j,i) &142 & + 2.0 * ( &143 & km(k,j,i) * ( u(k,j,i+1) - u(k,j,i) ) &144 & - km(k,j,i-1) * ( u(k,j,i) - u(k,j,i-1) ) &145 & ) * ddx2 &146 & + ( kmyp * ( u(k,j+1,i) - u(k,j,i) ) * ddy &147 & + kmyp * ( v(k,j+1,i) - v(k,j+1,i-1) ) * ddx &148 & - kmym * ( u(k,j,i) - u(k,j-1,i) ) * ddy &149 & - kmym * ( v(k,j,i) - v(k,j,i-1) ) * ddx &136 tend(k,j,i) = tend(k,j,i) & 137 & + 2.0 * ( & 138 & km(k,j,i) * ( u(k,j,i+1) - u(k,j,i) ) & 139 & - km(k,j,i-1) * ( u(k,j,i) - u(k,j,i-1) ) & 140 & ) * ddx2 & 141 & + ( kmyp * ( u(k,j+1,i) - u(k,j,i) ) * ddy & 142 & + kmyp * ( v(k,j+1,i) - v(k,j+1,i-1) ) * ddx & 143 & - kmym * ( u(k,j,i) - u(k,j-1,i) ) * ddy & 144 & - kmym * ( v(k,j,i) - v(k,j,i-1) ) * ddx & 150 145 & ) * ddy 151 146 ENDDO … … 156 151 157 152 DO k = nzb_u_inner(j,i)+1, nzb_u_outer(j,i) 158 kmyp = 0.25 * &153 kmyp = 0.25 * & 159 154 ( km(k,j,i)+km(k,j+1,i)+km(k,j,i-1)+km(k,j+1,i-1) ) 160 kmym = 0.25 * &155 kmym = 0.25 * & 161 156 ( km(k,j,i)+km(k,j-1,i)+km(k,j,i-1)+km(k,j-1,i-1) ) 162 157 … … 185 180 ! 186 181 !-- Interpolate eddy diffusivities on staggered gridpoints 187 kmzp = 0.25 * &182 kmzp = 0.25 * & 188 183 ( km(k,j,i)+km(k+1,j,i)+km(k,j,i-1)+km(k+1,j,i-1) ) 189 kmzm = 0.25 * &184 kmzm = 0.25 * & 190 185 ( km(k,j,i)+km(k-1,j,i)+km(k,j,i-1)+km(k-1,j,i-1) ) 191 186 192 tend(k,j,i) = tend(k,j,i) &193 & + ( kmzp * ( ( u(k+1,j,i) - u(k,j,i) ) * ddzu(k+1) &194 & + ( w(k,j,i) - w(k,j,i-1) ) * ddx &195 & ) &196 & - kmzm * ( ( u(k,j,i) - u(k-1,j,i) ) * ddzu(k) &197 & + ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx &198 & ) &187 tend(k,j,i) = tend(k,j,i) & 188 & + ( kmzp * ( ( u(k+1,j,i) - u(k,j,i) ) * ddzu(k+1) & 189 & + ( w(k,j,i) - w(k,j,i-1) ) * ddx & 190 & ) & 191 & - kmzm * ( ( u(k,j,i) - u(k-1,j,i) ) * ddzu(k) & 192 & + ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx & 193 & ) & 199 194 & ) * ddzw(k) 200 195 ENDDO … … 206 201 !-- Difference quotient of the momentum flux is not formed over half 207 202 !-- of the grid spacing (2.0*ddzw(k)) any more, since the comparison 208 !-- with other (LES) model lshowed that the values of the momentum203 !-- with other (LES) models showed that the values of the momentum 209 204 !-- flux becomes too large in this case. 210 205 !-- The term containing w(k-1,..) (see above equation) is removed here … … 214 209 ! 215 210 !-- Interpolate eddy diffusivities on staggered gridpoints 216 kmzp = 0.25 * &211 kmzp = 0.25 * & 217 212 ( km(k,j,i)+km(k+1,j,i)+km(k,j,i-1)+km(k+1,j,i-1) ) 218 kmzm = 0.25 * &213 kmzm = 0.25 * & 219 214 ( km(k,j,i)+km(k-1,j,i)+km(k,j,i-1)+km(k-1,j,i-1) ) 220 215 221 tend(k,j,i) = tend(k,j,i) &222 & + ( kmzp * ( w(k,j,i) - w(k,j,i-1) ) * ddx &223 & ) * ddzw(k) &224 & + ( kmzp * ( u(k+1,j,i) - u(k,j,i) ) * ddzu(k+1) &225 & + usws(j,i) &216 tend(k,j,i) = tend(k,j,i) & 217 & + ( kmzp * ( w(k,j,i) - w(k,j,i-1) ) * ddx & 218 & ) * ddzw(k) & 219 & + ( kmzp * ( u(k+1,j,i) - u(k,j,i) ) * ddzu(k+1) & 220 & + usws(j,i) & 226 221 & ) * ddzw(k) 227 222 ENDIF … … 234 229 ! 235 230 !-- Interpolate eddy diffusivities on staggered gridpoints 236 kmzp = 0.25 * &231 kmzp = 0.25 * & 237 232 ( km(k,j,i)+km(k+1,j,i)+km(k,j,i-1)+km(k+1,j,i-1) ) 238 kmzm = 0.25 * &233 kmzm = 0.25 * & 239 234 ( km(k,j,i)+km(k-1,j,i)+km(k,j,i-1)+km(k-1,j,i-1) ) 240 235 241 tend(k,j,i) = tend(k,j,i) &242 & - ( kmzm * ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx &243 & ) * ddzw(k) &244 & + ( -uswst(j,i) &245 & - kmzm * ( u(k,j,i) - u(k-1,j,i) ) * ddzu(k) &236 tend(k,j,i) = tend(k,j,i) & 237 & - ( kmzm * ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx & 238 & ) * ddzw(k) & 239 & + ( -uswst(j,i) & 240 & - kmzm * ( u(k,j,i) - u(k-1,j,i) ) * ddzu(k) & 246 241 & ) * ddzw(k) 247 242 ENDIF … … 258 253 SUBROUTINE diffusion_u_acc 259 254 260 USE arrays_3d 261 USE control_parameters 262 USE grid_variables 263 USE indices 255 USE arrays_3d, & 256 ONLY: ddzu, ddzw, km, tend, u, usws, uswst, v, w 257 258 USE control_parameters, & 259 ONLY: constant_top_momentumflux, topography, use_surface_fluxes, & 260 use_top_fluxes 261 262 USE grid_variables, & 263 ONLY: ddx, ddx2, ddy, fym, fyp, wall_u 264 265 USE indices, & 266 ONLY: i_left, i_right, j_north, j_south, nxl, nxr, nyn, nys, nzb, & 267 nzb_diff_u, nzb_u_inner, nzb_u_outer, nzt, nzt_diff 268 269 USE kinds 264 270 265 271 IMPLICIT NONE 266 272 267 INTEGER :: i, j, k 268 REAL :: kmym, kmyp, kmzm, kmzp 269 270 REAL, DIMENSION(nzb:nzt+1,nys:nyn,nxl:nxr) :: usvs 273 INTEGER(iwp) :: i !: 274 INTEGER(iwp) :: j !: 275 INTEGER(iwp) :: k !: 276 REAL(wp) :: kmym !: 277 REAL(wp) :: kmyp !: 278 REAL(wp) :: kmzm !: 279 REAL(wp) :: kmzp !: 280 281 REAL(wp), DIMENSION(nzb:nzt+1,nys:nyn,nxl:nxr) :: usvs !: 271 282 !$acc declare create ( usvs ) 272 283 … … 275 286 !-- if neccessary 276 287 IF ( topography /= 'flat' ) THEN 277 CALL wall_fluxes_acc( usvs, 1.0 , 0.0, 0.0, 0.0, nzb_u_inner,&278 nzb_u_ outer, wall_u )279 ENDIF 280 281 !$acc kernels present ( u, v, w, km, tend, usws, uswst ) &282 !$acc present ( ddzu, ddzw, fym, fyp, wall_u ) &288 CALL wall_fluxes_acc( usvs, 1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp, & 289 nzb_u_inner, nzb_u_outer, wall_u ) 290 ENDIF 291 292 !$acc kernels present ( u, v, w, km, tend, usws, uswst ) & 293 !$acc present ( ddzu, ddzw, fym, fyp, wall_u ) & 283 294 !$acc present ( nzb_u_inner, nzb_u_outer, nzb_diff_u ) 284 295 DO i = i_left, i_right … … 290 301 ! 291 302 !-- Interpolate eddy diffusivities on staggered gridpoints 292 kmyp = 0.25 * &303 kmyp = 0.25 * & 293 304 ( km(k,j,i)+km(k,j+1,i)+km(k,j,i-1)+km(k,j+1,i-1) ) 294 kmym = 0.25 * &305 kmym = 0.25 * & 295 306 ( km(k,j,i)+km(k,j-1,i)+km(k,j,i-1)+km(k,j-1,i-1) ) 296 307 … … 311 322 !-- Wall functions at the north and south walls, respectively 312 323 DO k = 1, nzt 313 IF( k > nzb_u_inner(j,i) .AND. k <= nzb_u_outer(j,i) .AND. &324 IF( k > nzb_u_inner(j,i) .AND. k <= nzb_u_outer(j,i) .AND. & 314 325 wall_u(j,i) /= 0.0 ) THEN 315 326 316 kmyp = 0.25 * &327 kmyp = 0.25 * & 317 328 ( km(k,j,i)+km(k,j+1,i)+km(k,j,i-1)+km(k,j+1,i-1) ) 318 kmym = 0.25 * &329 kmym = 0.25 * & 319 330 ( km(k,j,i)+km(k,j-1,i)+km(k,j,i-1)+km(k,j-1,i-1) ) 320 331 … … 344 355 ! 345 356 !-- Interpolate eddy diffusivities on staggered gridpoints 346 kmzp = 0.25 * &357 kmzp = 0.25 * & 347 358 ( km(k,j,i)+km(k+1,j,i)+km(k,j,i-1)+km(k+1,j,i-1) ) 348 kmzm = 0.25 * &359 kmzm = 0.25 * & 349 360 ( km(k,j,i)+km(k-1,j,i)+km(k,j,i-1)+km(k-1,j,i-1) ) 350 361 … … 369 380 !-- Difference quotient of the momentum flux is not formed over half 370 381 !-- of the grid spacing (2.0*ddzw(k)) any more, since the comparison 371 !-- with other (LES) model lshowed that the values of the momentum382 !-- with other (LES) models showed that the values of the momentum 372 383 !-- flux becomes too large in this case. 373 384 !-- The term containing w(k-1,..) (see above equation) is removed here … … 381 392 ! 382 393 !-- Interpolate eddy diffusivities on staggered gridpoints 383 kmzp = 0.25 * &394 kmzp = 0.25 * & 384 395 ( km(k,j,i)+km(k+1,j,i)+km(k,j,i-1)+km(k+1,j,i-1) ) 385 kmzm = 0.25 * &396 kmzm = 0.25 * & 386 397 ( km(k,j,i)+km(k-1,j,i)+km(k,j,i-1)+km(k-1,j,i-1) ) 387 398 388 tend(k,j,i) = tend(k,j,i) &389 & + ( kmzp * ( w(k,j,i) - w(k,j,i-1) ) * ddx &390 & ) * ddzw(k) &391 & + ( kmzp * ( u(k+1,j,i) - u(k,j,i) ) * ddzu(k+1) &392 & + usws(j,i) &399 tend(k,j,i) = tend(k,j,i) & 400 & + ( kmzp * ( w(k,j,i) - w(k,j,i-1) ) * ddx & 401 & ) * ddzw(k) & 402 & + ( kmzp * ( u(k+1,j,i) - u(k,j,i) ) * ddzu(k+1) & 403 & + usws(j,i) & 393 404 & ) * ddzw(k) 394 405 ENDDO … … 409 420 ! 410 421 !-- Interpolate eddy diffusivities on staggered gridpoints 411 kmzp = 0.25 * &422 kmzp = 0.25 * & 412 423 ( km(k,j,i)+km(k+1,j,i)+km(k,j,i-1)+km(k+1,j,i-1) ) 413 kmzm = 0.25 * &424 kmzm = 0.25 * & 414 425 ( km(k,j,i)+km(k-1,j,i)+km(k,j,i-1)+km(k-1,j,i-1) ) 415 426 416 tend(k,j,i) = tend(k,j,i) &417 & - ( kmzm * ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx &418 & ) * ddzw(k) &419 & + ( -uswst(j,i) &420 & - kmzm * ( u(k,j,i) - u(k-1,j,i) ) * ddzu(k) &427 tend(k,j,i) = tend(k,j,i) & 428 & - ( kmzm * ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx & 429 & ) * ddzw(k) & 430 & + ( -uswst(j,i) & 431 & - kmzm * ( u(k,j,i) - u(k-1,j,i) ) * ddzu(k) & 421 432 & ) * ddzw(k) 422 433 ENDDO … … 434 445 SUBROUTINE diffusion_u_ij( i, j ) 435 446 436 USE arrays_3d 437 USE control_parameters 438 USE grid_variables 439 USE indices 447 USE arrays_3d, & 448 ONLY: ddzu, ddzw, km, tend, u, usws, uswst, v, w 449 450 USE control_parameters, & 451 ONLY: constant_top_momentumflux, use_surface_fluxes, use_top_fluxes 452 453 USE grid_variables, & 454 ONLY: ddx, ddx2, ddy, fym, fyp, wall_u 455 456 USE indices, & 457 ONLY: nzb, nzb_diff_u, nzb_u_inner, nzb_u_outer, nzt, nzt_diff 458 459 USE kinds 440 460 441 461 IMPLICIT NONE 442 462 443 INTEGER :: i, j, k 444 REAL :: kmym, kmyp, kmzm, kmzp 445 446 REAL, DIMENSION(nzb:nzt+1) :: usvs 463 INTEGER(iwp) :: i !: 464 INTEGER(iwp) :: j !: 465 INTEGER(iwp) :: k !: 466 REAL(wp) :: kmym !: 467 REAL(wp) :: kmyp !: 468 REAL(wp) :: kmzm !: 469 REAL(wp) :: kmzp !: 470 471 REAL(wp), DIMENSION(nzb:nzt+1) :: usvs !: 447 472 448 473 ! … … 454 479 kmym = 0.25 * ( km(k,j,i)+km(k,j-1,i)+km(k,j,i-1)+km(k,j-1,i-1) ) 455 480 456 tend(k,j,i) = tend(k,j,i) &457 & + 2.0 * ( &458 & km(k,j,i) * ( u(k,j,i+1) - u(k,j,i) ) &459 & - km(k,j,i-1) * ( u(k,j,i) - u(k,j,i-1) ) &460 & ) * ddx2 &461 & + ( kmyp * ( u(k,j+1,i) - u(k,j,i) ) * ddy &462 & + kmyp * ( v(k,j+1,i) - v(k,j+1,i-1) ) * ddx &463 & - kmym * ( u(k,j,i) - u(k,j-1,i) ) * ddy &464 & - kmym * ( v(k,j,i) - v(k,j,i-1) ) * ddx &481 tend(k,j,i) = tend(k,j,i) & 482 & + 2.0 * ( & 483 & km(k,j,i) * ( u(k,j,i+1) - u(k,j,i) ) & 484 & - km(k,j,i-1) * ( u(k,j,i) - u(k,j,i-1) ) & 485 & ) * ddx2 & 486 & + ( kmyp * ( u(k,j+1,i) - u(k,j,i) ) * ddy & 487 & + kmyp * ( v(k,j+1,i) - v(k,j+1,i-1) ) * ddx & 488 & - kmym * ( u(k,j,i) - u(k,j-1,i) ) * ddy & 489 & - kmym * ( v(k,j,i) - v(k,j,i-1) ) * ddx & 465 490 & ) * ddy 466 491 ENDDO … … 472 497 ! 473 498 !-- Calculate the horizontal momentum flux u'v' 474 CALL wall_fluxes( i, j, nzb_u_inner(j,i)+1, nzb_u_outer(j,i), &475 usvs, 1.0 , 0.0, 0.0, 0.0)499 CALL wall_fluxes( i, j, nzb_u_inner(j,i)+1, nzb_u_outer(j,i), & 500 usvs, 1.0_wp, 0.0_wp, 0.0_wp, 0.0_wp ) 476 501 477 502 DO k = nzb_u_inner(j,i)+1, nzb_u_outer(j,i) … … 506 531 kmzm = 0.25 * ( km(k,j,i)+km(k-1,j,i)+km(k,j,i-1)+km(k-1,j,i-1) ) 507 532 508 tend(k,j,i) = tend(k,j,i) &509 & + ( kmzp * ( ( u(k+1,j,i) - u(k,j,i) ) * ddzu(k+1) &510 & + ( w(k,j,i) - w(k,j,i-1) ) * ddx &511 & ) &512 & - kmzm * ( ( u(k,j,i) - u(k-1,j,i) ) * ddzu(k) &513 & + ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx &514 & ) &533 tend(k,j,i) = tend(k,j,i) & 534 & + ( kmzp * ( ( u(k+1,j,i) - u(k,j,i) ) * ddzu(k+1) & 535 & + ( w(k,j,i) - w(k,j,i-1) ) * ddx & 536 & ) & 537 & - kmzm * ( ( u(k,j,i) - u(k-1,j,i) ) * ddzu(k) & 538 & + ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx & 539 & ) & 515 540 & ) * ddzw(k) 516 541 ENDDO … … 522 547 !-- Difference quotient of the momentum flux is not formed over half of 523 548 !-- the grid spacing (2.0*ddzw(k)) any more, since the comparison with 524 !-- other (LES) model lshowed that the values of the momentum flux becomes549 !-- other (LES) models showed that the values of the momentum flux becomes 525 550 !-- too large in this case. 526 551 !-- The term containing w(k-1,..) (see above equation) is removed here … … 533 558 kmzm = 0.25 * ( km(k,j,i)+km(k-1,j,i)+km(k,j,i-1)+km(k-1,j,i-1) ) 534 559 535 tend(k,j,i) = tend(k,j,i) &536 & + ( kmzp * ( w(k,j,i) - w(k,j,i-1) ) * ddx &537 & ) * ddzw(k) &538 & + ( kmzp * ( u(k+1,j,i) - u(k,j,i) ) * ddzu(k+1) &539 & + usws(j,i) &560 tend(k,j,i) = tend(k,j,i) & 561 & + ( kmzp * ( w(k,j,i) - w(k,j,i-1) ) * ddx & 562 & ) * ddzw(k) & 563 & + ( kmzp * ( u(k+1,j,i) - u(k,j,i) ) * ddzu(k+1) & 564 & + usws(j,i) & 540 565 & ) * ddzw(k) 541 566 ENDIF … … 548 573 ! 549 574 !-- Interpolate eddy diffusivities on staggered gridpoints 550 kmzp = 0.25 * &575 kmzp = 0.25 * & 551 576 ( km(k,j,i)+km(k+1,j,i)+km(k,j,i-1)+km(k+1,j,i-1) ) 552 kmzm = 0.25 * &577 kmzm = 0.25 * & 553 578 ( km(k,j,i)+km(k-1,j,i)+km(k,j,i-1)+km(k-1,j,i-1) ) 554 579 555 tend(k,j,i) = tend(k,j,i) &556 & - ( kmzm * ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx &557 & ) * ddzw(k) &558 & + ( -uswst(j,i) &559 & - kmzm * ( u(k,j,i) - u(k-1,j,i) ) * ddzu(k) &580 tend(k,j,i) = tend(k,j,i) & 581 & - ( kmzm * ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx & 582 & ) * ddzw(k) & 583 & + ( -uswst(j,i) & 584 & - kmzm * ( u(k,j,i) - u(k-1,j,i) ) * ddzu(k) & 560 585 & ) * ddzw(k) 561 586 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.