Ignore:
Timestamp:
Apr 16, 2009 12:07:26 PM (15 years ago)
Author:
raasch
Message:

changes for coupling with independent precursor runs; z_i calculation with Sullivan criterion

File:
1 edited

Legend:

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

    r274 r291  
    44! Current revisions:
    55! -----------------
     6! Temperature gradient criterion for estimating the boundary layer height
     7! replaced by the gradient criterion of Sullivan et al. (1998).
    68! Output of messages replaced by message handling routine.
    79!
     
    8385    INTEGER ::  i, j, k, omp_get_thread_num, sr, tn
    8486    LOGICAL ::  first
    85     REAL    ::  height, pts, sums_l_eper, sums_l_etot, ust, ust2, u2, vst, &
    86                 vst2, v2, w2, z_i(2)
     87    REAL    ::  dptdz_threshold, height, pts, sums_l_eper, sums_l_etot, ust, &
     88                ust2, u2, vst, vst2, v2, w2, z_i(2)
     89    REAL    ::  dptdz(nzb+1:nzt+1)
    8790    REAL    ::  sums_ll(nzb:nzt+1,2)
    8891
     
    949952
    950953!
    951 !--    Second scheme: Starting from the top/bottom model boundary, look for
    952 !--    the first characteristic kink in the temperature profile, where the
    953 !--    originally stable stratification notably weakens.
     954!--    Second scheme: Gradient scheme from Sullivan et al. (1998), modified
     955!--    by Uhlenbrock(2006). The boundary layer height is the height with the
     956!--    maximal local temperature gradient: starting from the second (the last
     957!--    but one) vertical gridpoint, the local gradient must be at least
     958!--    0.2K/100m and greater than the next four gradients.
     959!--    WARNING: The threshold value of 0.2K/100m must be adjusted for the
     960!--             ocean case!
    954961       z_i(2) = 0.0
     962       DO  k = nzb+1, nzt+1
     963          dptdz(k) = ( hom(k,1,4,sr) - hom(k-1,1,4,sr) ) * ddzu(k)
     964       ENDDO
     965       dptdz_threshold = 0.2 / 100.0
     966
    955967       IF ( ocean )  THEN
    956           DO  k = nzb+1, nzt-1
    957              IF ( ( hom(k,1,4,sr) - hom(k-1,1,4,sr) ) > &
    958                   2.0 * ( hom(k+1,1,4,sr) - hom(k,1,4,sr) ) )  THEN
    959                 z_i(2) = zu(k)
     968          DO  k = nzt+1, nzb+5, -1
     969             IF ( dptdz(k) > dptdz_threshold  .AND.                           &
     970                  dptdz(k) > dptdz(k-1)  .AND.  dptdz(k) > dptdz(k-2)  .AND.  &
     971                  dptdz(k) > dptdz(k-3)  .AND.  dptdz(k) > dptdz(k-4) )  THEN
     972                z_i(2) = zw(k-1)
    960973                EXIT
    961974             ENDIF
    962975          ENDDO
    963976       ELSE
    964           DO  k = nzt-1, nzb+1, -1
    965              IF ( ( hom(k+1,1,4,sr) - hom(k,1,4,sr) ) > &
    966                   2.0 * ( hom(k,1,4,sr) - hom(k-1,1,4,sr) ) )  THEN
    967                 z_i(2) = zu(k)
     977          DO  k = nzb+1, nzt-3
     978             IF ( dptdz(k) > dptdz_threshold  .AND.                           &
     979                  dptdz(k) > dptdz(k+1)  .AND.  dptdz(k) > dptdz(k+2)  .AND.  &
     980                  dptdz(k) > dptdz(k+3)  .AND.  dptdz(k) > dptdz(k+4) )  THEN
     981                z_i(2) = zw(k-1)
    968982                EXIT
    969983             ENDIF
Note: See TracChangeset for help on using the changeset viewer.