Changeset 291 for palm/trunk/SOURCE/flow_statistics.f90
- Timestamp:
- Apr 16, 2009 12:07:26 PM (15 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(k-1,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, 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) 960 973 EXIT 961 974 ENDIF 962 975 ENDDO 963 976 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) 968 982 EXIT 969 983 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.