Changeset 37 for palm/trunk


Ignore:
Timestamp:
Mar 1, 2007 8:33:54 AM (15 years ago)
Author:
raasch
Message:

new version number 3.1c, prandtl layer switch used in production_e

Location:
palm/trunk/SOURCE
Files:
2 edited

Legend:

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

    r19 r37  
    199199    CHARACTER (LEN=8)   ::  run_date, run_time
    200200    CHARACTER (LEN=9)   ::  simulated_time_chr
    201     CHARACTER (LEN=12)  ::  version = 'PALM   3.1b'
     201    CHARACTER (LEN=12)  ::  version = 'PALM   3.1c'
    202202    CHARACTER (LEN=16)  ::  momentum_advec = 'pw-scheme', &
    203203                            psolver = 'poisfft', &
  • palm/trunk/SOURCE/production_e.f90

    r19 r37  
    55! -----------------
    66! Calculation extended for gridpoint nzt, extended for given temperature /
    7 ! humidity fluxes at the top
     7! humidity fluxes at the top, wall-part is now executed in case that a
     8! Prandtl-layer is switched on (instead of surfaces fluxes switched on)
    89!
    910! Former revisions:
     
    2223! ------------
    2324! Production terms (shear + buoyancy) of the TKE
     25! WARNING: the case with prandtl_layer = F and use_surface_fluxes = T is
     26!          not considered well!
    2427!------------------------------------------------------------------------------!
    2528
     
    99102          ENDDO
    100103
    101           IF ( use_surface_fluxes )  THEN
     104          IF ( prandtl_layer )  THEN
    102105
    103106!
     
    320323             ENDDO
    321324
     325          ELSEIF ( use_surface_fluxes )  THEN
     326
     327             DO  j = nys, nyn
     328
     329                k = nzb_diff_s_outer(j,i)-1
     330
     331                dudx  =        ( u(k,j,i+1) - u(k,j,i)     ) * ddx
     332                dudy  = 0.25 * ( u(k,j+1,i) + u(k,j+1,i+1) - &
     333                                 u(k,j-1,i) - u(k,j-1,i+1) ) * ddy
     334                dudz  = 0.5  * ( u(k+1,j,i) + u(k+1,j,i+1) - &
     335                                 u(k-1,j,i) - u(k-1,j,i+1) ) * dd2zu(k)
     336
     337                dvdx  = 0.25 * ( v(k,j,i+1) + v(k,j+1,i+1) - &
     338                                 v(k,j,i-1) - v(k,j+1,i-1) ) * ddx
     339                dvdy  =        ( v(k,j+1,i) - v(k,j,i)     ) * ddy
     340                dvdz  = 0.5  * ( v(k+1,j,i) + v(k+1,j+1,i) - &
     341                                 v(k-1,j,i) - v(k-1,j+1,i) ) * dd2zu(k)
     342
     343                dwdx  = 0.25 * ( w(k,j,i+1) + w(k-1,j,i+1) - &
     344                                 w(k,j,i-1) - w(k-1,j,i-1) ) * ddx
     345                dwdy  = 0.25 * ( w(k,j+1,i) + w(k-1,j+1,i) - &
     346                                 w(k,j-1,i) - w(k-1,j-1,i) ) * ddy
     347                dwdz  =        ( w(k,j,i)   - w(k-1,j,i)   ) * ddzw(k)
     348
     349                def = 2.0 * ( dudx**2 + dvdy**2 + dwdz**2 ) +           &
     350                      dudy**2 + dvdx**2 + dwdx**2 + dwdy**2 + dudz**2 + &
     351                      dvdz**2 + 2.0 * ( dvdx*dudy + dwdx*dudz + dwdy*dvdz )
     352
     353                IF ( def < 0.0 )  def = 0.0
     354
     355                tend(k,j,i) = tend(k,j,i) + km(k,j,i) * def
     356
     357             ENDDO
     358
    322359          ENDIF
    323360
     
    498535       ENDDO
    499536
    500        IF ( use_surface_fluxes )  THEN
     537       IF ( prandtl_layer )  THEN
    501538
    502539          IF ( ( wall_e_x(j,i) /= 0.0 ) .OR. ( wall_e_y(j,i) /= 0.0 ) )  THEN
     
    689726          ENDIF
    690727
     728       ELSEIF ( use_surface_fluxes )  THEN
     729
     730          k = nzb_diff_s_outer(j,i)-1
     731
     732          dudx  =        ( u(k,j,i+1) - u(k,j,i)     ) * ddx
     733          dudy  = 0.25 * ( u(k,j+1,i) + u(k,j+1,i+1) - &
     734                           u(k,j-1,i) - u(k,j-1,i+1) ) * ddy
     735          dudz  = 0.5  * ( u(k+1,j,i) + u(k+1,j,i+1) - &
     736                           u(k-1,j,i) - u(k-1,j,i+1) ) * dd2zu(k)
     737
     738          dvdx  = 0.25 * ( v(k,j,i+1) + v(k,j+1,i+1) - &
     739                           v(k,j,i-1) - v(k,j+1,i-1) ) * ddx
     740          dvdy  =        ( v(k,j+1,i) - v(k,j,i)     ) * ddy
     741          dvdz  = 0.5  * ( v(k+1,j,i) + v(k+1,j+1,i) - &
     742                           v(k-1,j,i) - v(k-1,j+1,i) ) * dd2zu(k)
     743
     744          dwdx  = 0.25 * ( w(k,j,i+1) + w(k-1,j,i+1) - &
     745                           w(k,j,i-1) - w(k-1,j,i-1) ) * ddx
     746          dwdy  = 0.25 * ( w(k,j+1,i) + w(k-1,j+1,i) - &
     747                           w(k,j-1,i) - w(k-1,j-1,i) ) * ddy
     748          dwdz  =        ( w(k,j,i)   - w(k-1,j,i)   ) * ddzw(k)
     749
     750          def = 2.0 * ( dudx**2 + dvdy**2 + dwdz**2 ) +           &
     751                dudy**2 + dvdx**2 + dwdx**2 + dwdy**2 + dudz**2 + &
     752                dvdz**2 + 2.0 * ( dvdx*dudy + dwdx*dudz + dwdy*dvdz )
     753
     754          IF ( def < 0.0 )  def = 0.0
     755
     756          tend(k,j,i) = tend(k,j,i) + km(k,j,i) * def
     757
    691758       ENDIF
    692759
     
    807874       INTEGER ::  i, j, ku, kv
    808875
    809        IF ( use_surface_fluxes )  THEN
     876       IF ( prandtl_layer )  THEN
    810877
    811878          IF ( first_call )  THEN
Note: See TracChangeset for help on using the changeset viewer.