Changeset 291 for palm/trunk/SOURCE/flow_statistics.f90
 Timestamp:
 Apr 16, 2009 12:07:26 PM (13 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

palm/trunk/SOURCE/flow_statistics.f90
r274 r291 4 4 ! Current revisions: 5 5 !  6 ! Temperature gradient criterion for estimating the boundary layer height 7 ! replaced by the gradient criterion of Sullivan et al. (1998). 6 8 ! Output of messages replaced by message handling routine. 7 9 ! … … 83 85 INTEGER :: i, j, k, omp_get_thread_num, sr, tn 84 86 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) 87 90 REAL :: sums_ll(nzb:nzt+1,2) 88 91 … … 949 952 950 953 ! 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! 954 961 z_i(2) = 0.0 962 DO k = nzb+1, nzt+1 963 dptdz(k) = ( hom(k,1,4,sr)  hom(k1,1,4,sr) ) * ddzu(k) 964 ENDDO 965 dptdz_threshold = 0.2 / 100.0 966 955 967 IF ( ocean ) THEN 956 DO k = nzb+1, nzt1 957 IF ( ( hom(k,1,4,sr)  hom(k1,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(k1) .AND. dptdz(k) > dptdz(k2) .AND. & 971 dptdz(k) > dptdz(k3) .AND. dptdz(k) > dptdz(k4) ) THEN 972 z_i(2) = zw(k1) 960 973 EXIT 961 974 ENDIF 962 975 ENDDO 963 976 ELSE 964 DO k = nzt1, 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(k1,1,4,sr) ) ) THEN 967 z_i(2) = zu(k) 977 DO k = nzb+1, nzt3 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(k1) 968 982 EXIT 969 983 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.