diff --git a/VERSION b/VERSION index 9ad4d4f29..4f43a44be 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -7.14 +7.14.2 diff --git a/model/src/w3src4md.F90 b/model/src/w3src4md.F90 index bfbb85e66..d3f2cd429 100644 --- a/model/src/w3src4md.F90 +++ b/model/src/w3src4md.F90 @@ -551,6 +551,13 @@ SUBROUTINE W3SIN4 (A, CG, K, U, USTAR, DRAT, AS, USDIR, Z0, CD, & REAL :: COSU, SINU, TAUX, TAUY, USDIRP, USTP REAL :: TAUPX, TAUPY, UST2, TAUW, TAUWB REAL , PARAMETER :: EPS1 = 0.00001, EPS2 = 0.000001 + + REAL :: BBETA_EFF !PBS: The effective "betamax" after we apply a linear approximation. + ! Part of SOFAR enhancements to be able to better calibrate betamax + ! Estimated as BBETA_EFF= BETAMAX_INTERCEPT + BETAMAX_SLOPE * U + REAL , PARAMETER :: BETAMAX_INTERCEPT=1.134 ! Intercept of the linear betamax relation + REAL , PARAMETER :: BETAMAX_SLOPE=0.0157 ! Slope of the linear betamax relation + #if defined(W3_T) || defined(W3_STAB3) REAL :: Usigma !standard deviation of U due to gustiness REAL :: USTARsigma !standard deviation of USTAR due to gustiness @@ -602,9 +609,12 @@ SUBROUTINE W3SIN4 (A, CG, K, U, USTAR, DRAT, AS, USDIR, Z0, CD, & STRESSSTABN =0. ! ! Coupling coefficient times density ratio DRAT - ! - CONST1=BBETA/KAPPA**2 ! needed for the tail - CONST0=CONST1*DRAT ! needed for the resolved spectrum + ! PBS: Instead of a constant betamax we use a betamax linearly dependent on wind speed to allow for more flexibility + ! in calibration. (SOFAR SPECIFIC) + BBETA_EFF = MAX( MIN( BETAMAX_INTERCEPT + BETAMAX_SLOPE * U, 1.5 ), 1.25) + + CONST1=BBETA_EFF/KAPPA**2 ! needed for the tail + CONST0=CONST1*DRAT ! needed for the resolved spectrum ! ! 1.a estimation of surface roughness parameters ! @@ -957,6 +967,10 @@ SUBROUTINE W3SIN4 (A, CG, K, U, USTAR, DRAT, AS, USDIR, Z0, CD, & TAU1 =(TAUHFT(IND,J)*DELI2+TAUHFT(IND+1,J)*DELI1 )*DELJ2 & +(TAUHFT(IND,J+1)*DELI2+TAUHFT(IND+1,J+1)*DELI1)*DELJ1 END IF + + ! PBS - SOFAR: Because we recompute betamax based on windspeed we have to reschale the tabulated tail + ! contributions with the new betamax value + TAU1 = TAU1 * (BBETA_EFF / BBETA) ! TAUHF = LEVTAIL0*UST**2*TAU1 END IF ! End of test on use of table