Changeset 55


Ignore:
Timestamp:
Mar 8, 2007 4:12:41 AM (15 years ago)
Author:
raasch
Message:

small bugs removed

Location:
palm/trunk/SOURCE
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/production_e.f90

    r53 r55  
    111111
    112112!
    113 !--          Position neben Gebaeudewand
    114 !--          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'
    116116             DO  j = nys, nyn
    117117
     
    167167
    168168!
    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'
    173174
    174175                   DO  k = nzb_diff_s_inner(j,i), nzb_diff_s_outer(j,i)-2
     
    217218
    218219!
    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))
    221222             DO  j = nys, nyn
    222223
     
    257258
    258259!
    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'
    261263             DO  j = nys, nyn
    262264
     
    513515
    514516          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'
    519522             k = nzb_diff_s_inner(j,i)-1
    520523
     
    564567
    565568!
    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'
    570574             DO  k = nzb_diff_s_inner(j,i), nzb_diff_s_outer(j,i)-2
    571575
     
    609613
    610614!
    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))
    613617             k = nzb_diff_s_outer(j,i)-1
    614618
     
    642646
    643647!
    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'
    646651             k = nzb_diff_s_inner(j,i)-1
    647652
  • palm/trunk/SOURCE/wall_fluxes.f90

    r54 r55  
    190190
    191191    INTEGER ::  i, j, k, kk, nzb_w, nzt_w, wall_index
    192     REAL    ::  a, b, c1, c2, h1, h2, zp
     192    REAL    ::  a, b, c1, c2, h1, h2, vel_zp, zp
    193193
    194194    REAL ::  rifs
     
    224224!
    225225!--    (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
    226231       IF ( rifs >= 0.0 )  THEN
    227232
    228233!
    229234!--       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 )
    235237       ELSE
    236238
     
    245247!--       argument of the logarithm.
    246248          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 /                                 &
    249250                            ( LOG( zp / z0(j,i) ) +                          &
    250251                              5.0 * rifs * ( zp - z0(j,i) ) / zp             &
    251252                            )
    252253          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 /                                   &
    255255                            ( LOG( (1.0+h2) / (1.0-h2) * (1.0-h1) / (1.0+h1) ) &
    256256                              + 2.0 * ( ATAN( h2 ) - ATAN( h1 ) )              &
Note: See TracChangeset for help on using the changeset viewer.