diff --git a/diag/pbldia_new_sfx.f90 b/diag/pbldia_new_sfx.f90 index 4a645f13f1b8d1848fde66e36f6b1653600eddc9..684d89dc8ac78008865a0a0d0f2bcda5523968a9 100755 --- a/diag/pbldia_new_sfx.f90 +++ b/diag/pbldia_new_sfx.f90 @@ -53,6 +53,7 @@ use sfx_sheba, only: & TSTAR = AR2(9) * ARDIN(2) QSTAR = AR2(9) * ARDIN(3) + if(zeta.ne.0)then if(zeta.gt.zetalim) zeta=zetalim L = HIN/zeta @@ -60,10 +61,17 @@ use sfx_sheba, only: & call get_psi_sheba(psi_m_hs,psi_h_hs,HIN/L) call get_psi_sheba(psi_m,psi_h,HWIND/L) UFWIND = ALOG(hwind/HIN) - (psi_m - psi_m_hs) - WIND = (USTAR/kappa) * UFWIND call get_psi_sheba(psi_m,psi_h,HTEMP/L) - UFTEMP = ALOG(HTEMP/HIN) - (psi_h - psi_h_hs) + UFTEMP = ALOG(HTEMP/HIN) - (psi_h - psi_h_hs) + + else + + UFWIND = ALOG(HWIND/HIN) + UFTEMP = ALOG(HTEMP/HIN) + + endif + WIND = (USTAR/kappa) * UFWIND DTETA = (TSTAR/kappa) * UFTEMP DQ = (QSTAR/kappa) * UFTEMP @@ -96,16 +104,25 @@ use sfx_most, only: & TSTAR = AR2(9) * ARDIN(2) QSTAR = AR2(9) * ARDIN(3) + if(zeta.ne.0)then + if(zeta.gt.zetalim) zeta=zetalim L = HIN/zeta call get_psi_most(psi_m_hs,psi_h_hs,HIN/L) call get_psi_most(psi_m,psi_h,HWIND/L) UFWIND = ALOG(hwind/HIN) - (psi_m - psi_m_hs) - WIND = (USTAR/kappa) * UFWIND call get_psi_most(psi_m,psi_h,HTEMP/L) UFTEMP = ALOG(HTEMP/HIN) - (psi_h - psi_h_hs) + else + + UFWIND = ALOG(HWIND/HIN) + UFTEMP = ALOG(HTEMP/HIN) + + endif + + WIND = (USTAR/kappa) * UFWIND DTETA = (TSTAR/kappa) * UFTEMP DQ = (QSTAR/kappa) * UFTEMP @@ -134,16 +151,24 @@ subroutine pbldia_new_esm(AR2,ARDIN,ARDOUT) TSTAR = AR2(9) * ARDIN(2) QSTAR = AR2(9) * ARDIN(3) + if(zeta.ne.0)then + if(zeta.gt.zetalim) zeta=zetalim L = HIN/zeta - call get_psi_esm1(psi_m,psi_h,HIN,HWIND,L) UFWIND = psi_m - WIND = (USTAR/kappa) * UFWIND call get_psi_esm1(psi_m,psi_h,HIN,HTEMP,L) - UFTEMP = psi_h + UFTEMP = psi_h + + else + + UFWIND = ALOG(HWIND/HIN) + UFTEMP = ALOG(HTEMP/HIN) + + endif + WIND = (USTAR/kappa) * UFWIND DTETA = (TSTAR/kappa) * UFTEMP DQ = (QSTAR/kappa) * UFTEMP