Changeset 55 for palm/trunk/SOURCE
- Timestamp:
- Mar 8, 2007 4:12:41 AM (18 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/production_e.f90
r53 r55 111 111 112 112 ! 113 !-- Position neben Gebaeudewand114 !-- 2 - Wird immer ausgefuehrt. 'Boden und Wand:115 !-- u_0,v_0 und Wall functions'113 !-- Position beneath wall 114 !-- (2) - Will allways be executed. 115 !-- 'bottom and wall: use u_0,v_0 and wall functions' 116 116 DO j = nys, nyn 117 117 … … 167 167 168 168 ! 169 !-- 3 - Wird nur ausgefuehrt, wenn mindestens ein Niveau 170 !-- zwischen 2 und 4 liegt, d.h. ab einer Gebaeudemindest- 171 !-- hoehe von 2 dz. Die Wall fluxes sind in diesem Fall 172 !-- schon unter (2) berechnet worden. 'Nur Wand: Wall functions' 169 !-- (3) - will be executed only, if there is at least one level 170 !-- between (2) and (4), i.e. the topography must have a 171 !-- minimum height of 2 dz. Wall fluxes for this case have 172 !-- already been calculated for (2). 173 !-- 'wall only: use wall functions' 173 174 174 175 DO k = nzb_diff_s_inner(j,i), nzb_diff_s_outer(j,i)-2 … … 217 218 218 219 ! 219 !-- 4 - Wird immer ausgefuehrt.220 !-- ' Sonderfall: Freie Atmosphaere' (wie bei 0)220 !-- (4) - will allways be executed. 221 !-- 'special case: free atmosphere' (as for case (0)) 221 222 DO j = nys, nyn 222 223 … … 257 258 258 259 ! 259 !-- Position ohne angrenzende Gebaeudewand 260 !-- 1 - Wird immer ausgefuehrt. 'Nur Boden: u_0,v_0' 260 !-- Position without adjacent wall 261 !-- (1) - will allways be executed. 262 !-- 'bottom only: use u_0,v_0' 261 263 DO j = nys, nyn 262 264 … … 513 515 514 516 IF ( ( wall_e_x(j,i) /= 0.0 ) .OR. ( wall_e_y(j,i) /= 0.0 ) ) THEN 515 ! 516 !-- Position neben Gebaeudewand 517 !-- 2 - Wird immer ausgefuehrt. 'Boden und Wand: 518 !-- u_0,v_0 und Wall functions' 517 518 ! 519 !-- Position beneath wall 520 !-- (2) - Will allways be executed. 521 !-- 'bottom and wall: use u_0,v_0 and wall functions' 519 522 k = nzb_diff_s_inner(j,i)-1 520 523 … … 564 567 565 568 ! 566 !-- 3 - Wird nur ausgefuehrt, wenn mindestens ein Niveau 567 !-- zwischen 2 und 4 liegt, d.h. ab einer Gebaeudemindest- 568 !-- hoehe von 2 dz. Di Wall fluxes sind in diesem Fall bereits vorab 569 !-- unter (2) berechnet worden. 'Nur Wand: Wall functions' 569 !-- (3) - will be executed only, if there is at least one level 570 !-- between (2) and (4), i.e. the topography must have a 571 !-- minimum height of 2 dz. Wall fluxes for this case have 572 !-- already been calculated for (2). 573 !-- 'wall only: use wall functions' 570 574 DO k = nzb_diff_s_inner(j,i), nzb_diff_s_outer(j,i)-2 571 575 … … 609 613 610 614 ! 611 !-- 4 - Wird immer ausgefuehrt.612 !-- ' Sonderfall: Freie Atmosphaere' (wie bei 0)615 !-- (4) - will allways be executed. 616 !-- 'special case: free atmosphere' (as for case (0)) 613 617 k = nzb_diff_s_outer(j,i)-1 614 618 … … 642 646 643 647 ! 644 !-- Position ohne angrenzende Gebaeudewand 645 !-- 1 - Wird immer ausgefuehrt. 'Nur Boden: u_0,v_0' 648 !-- Position without adjacent wall 649 !-- (1) - will allways be executed. 650 !-- 'bottom only: use u_0,v_0' 646 651 k = nzb_diff_s_inner(j,i)-1 647 652 -
palm/trunk/SOURCE/wall_fluxes.f90
r54 r55 190 190 191 191 INTEGER :: i, j, k, kk, nzb_w, nzt_w, wall_index 192 REAL :: a, b, c1, c2, h1, h2, zp192 REAL :: a, b, c1, c2, h1, h2, vel_zp, zp 193 193 194 194 REAL :: rifs … … 224 224 ! 225 225 !-- (5) Compute wall_flux (u'v', v'u', w'v', or w'u') 226 vel_zp = 0.5 * ( a * ( u(k,j,i) + u(k,j,i+1) ) + & 227 b * ( v(k,j,i) + v(k,j+1,i) ) + & 228 (c1+c2) * ( w(k,j,i) + w(k-1,j,i) ) & 229 ) 230 226 231 IF ( rifs >= 0.0 ) THEN 227 232 228 233 ! 229 234 !-- Stable stratification (and neutral) 230 wall_flux(k) = kappa * & 231 ( a*u(k,j,i) + b*v(k,j,i) + (c1+c2)*w(k,j,i) ) / & 232 ( LOG( zp / z0(j,i) ) + & 233 5.0 * rifs * ( zp - z0(j,i) ) / zp & 234 ) 235 wall_flux(k) = kappa * vel_zp / & 236 ( LOG( zp/z0(j,i) ) + 5.0*rifs * ( zp-z0(j,i) ) / zp ) 235 237 ELSE 236 238 … … 245 247 !-- argument of the logarithm. 246 248 IF ( h1 == 1.0 .OR. h2 == 1.0 ) THEN 247 wall_flux(k) = kappa * & 248 ( a*u(k,j,i) + b*v(k,j,i) + (c1+c2)*w(k,j,i) ) / & 249 wall_flux(k) = kappa * vel_zp / & 249 250 ( LOG( zp / z0(j,i) ) + & 250 251 5.0 * rifs * ( zp - z0(j,i) ) / zp & 251 252 ) 252 253 ELSE 253 wall_flux(k) = kappa * & 254 ( a*u(k,j,i) + b*v(k,j,i) + (c1+c2)*w(k,j,i) ) / & 254 wall_flux(k) = kappa * vel_zp / & 255 255 ( LOG( (1.0+h2) / (1.0-h2) * (1.0-h1) / (1.0+h1) ) & 256 256 + 2.0 * ( ATAN( h2 ) - ATAN( h1 ) ) &
Note: See TracChangeset
for help on using the changeset viewer.