Skip to content

Commit 70855a7

Browse files
authored
Correction of stability functions for the tke-epsilon-tpe PBL scheme (#2120)
TYPE: bug fix KEYWORDS: tke-epsilon-tpe, PBL, stability functions SOURCE: Andrea Zonato, Royal Netherlands Meteorological Institute (KNMI) DESCRIPTION OF CHANGES: Problem: The stability functions at the surface (phim,phieps) for calculating the boundary values of tke and its dissipation rate in the tke-epsilon-tpe PBL scheme [Zonato et al., 2022](https://doi.org/10.1175/MWR-D-21-0299.1) does not include the correction by z0. Solution: Pass the correct stability functions, calculated in module_sf_sfclayrev.F LIST OF MODIFIED FILES: phys/module_bl_keps.F phys/module_pbl_driver.F TESTS CONDUCTED: The Jenkins tests are all passing. RELEASE NOTE: The similarity stability functions phim and phieps, necessary for calculating the surface values of tke and dissipation rate in the tke-epsilon-tpe PBL scheme [Zonato et al., 2022](https://doi.org/10.1175/MWR-D-21-0299.1) have been updated considering the correction term accounting for the roughness length z0. No relevant differences are found in temperature, wind speed, and humidity. Regarding turbulence variables, the stable case has just negligible differences, while the unstable case shows higher values of TKE and dissipation rate and lower values of temperature variance.
1 parent 3834765 commit 70855a7

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

phys/module_bl_keps.F

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1073,16 +1073,16 @@ subroutine surface_bl_pra_ri(kms,kme,kts,kte,dz,z,rho,g,cp,z0,sflux,raten,pi1d,p
10731073
zz=(zl1+z0)/zl1
10741074
zol1 = max(b_ric*psim*psim/psih,rimin)
10751075
if(sfcflg)then
1076-
zol1 = min(zol1,-zfmin)
1076+
zol1 = zz*min(zol1,-zfmin)
10771077
else
1078-
zol1 = max(zol1,zfmin)
1078+
zol1 = zz*max(zol1,zfmin)
10791079
endif
10801080
hol1 = zol1*pblh/zl1*sfcfrac
10811081

10821082
if(sfcflg)then
1083-
phim = (1.-aphi16*zol1*zz)**(-1./4.)
1084-
phih = (1.-aphi16*zol1*zz)**(-1./2.)
1085-
phieps=1.-zol1*zz
1083+
phim = (1.-aphi16*zol1)**(-1./4.)
1084+
phih = (1.-aphi16*zol1)**(-1./2.)
1085+
phieps=1.-zol1
10861086
phim_sl = (1.-aphi16*hol1)**(-1./4.)
10871087
phih_sl = (1.-aphi16*hol1)**(-1./2.)
10881088
bfx0 = max(sflux,0.)
@@ -1093,9 +1093,9 @@ subroutine surface_bl_pra_ri(kms,kme,kts,kte,dz,z,rho,g,cp,z0,sflux,raten,pi1d,p
10931093
else
10941094
phim_sl = (1.+aphi5*hol1)
10951095
phih_sl= phim_sl
1096-
phim=(1.+aphi5*zol1*zz)
1097-
phieps=(1+2.5*(zol1*zz)**0.6)**(3./2.)
1098-
phih= phim_sl
1096+
phim=(1.+aphi5*zol1)
1097+
phieps=(1+2.5*(zol1)**0.6)**(3./2.)
1098+
phih= phim
10991099
wstar3=0.
11001100
wstar3_2=0.
11011101
endif

phys/module_pbl_driver.F

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1895,7 +1895,7 @@ SUBROUTINE pbl_driver( &
18951895
,B_E_BEP=b_e_bep &
18961896
,SF_BEP=sf_bep,VL_BEP=vl_bep &
18971897
,BR=br,ZNT=znt &
1898-
,PSIM=psim,PSIH=psih &
1898+
,PSIM=fm,PSIH=fhh &
18991899
,IDS=ids,IDE=ide,JDS=jds,JDE=jde,KDS=kds,KDE=kde &
19001900
,IMS=ims,IME=ime,JMS=jms,JME=jme,KMS=kms,KME=kme &
19011901
,ITS=its,ITE=ite,JTS=jts,JTE=jte,KTS=kts,KTE=kte )

0 commit comments

Comments
 (0)