diff --git a/srcF/sfx_esm.f90 b/srcF/sfx_esm.f90 index d1fef613768343630eebc0cd894d684ed8af6617..8910c976bd7d61714c70492a4567670b88dafd49 100644 --- a/srcF/sfx_esm.f90 +++ b/srcF/sfx_esm.f90 @@ -212,8 +212,9 @@ contains else if (Rib > -0.001) then ! --- nearly neutral [-0.001, 0] block - call get_psi_neutral(psi_m, psi_h, zeta, h0_m, h0_t, B) + call get_psi_neutral(psi_m, psi_h, h0_m, h0_t, B) + zeta = 0.0 phi_m = 1.0 phi_h = 1.0 / Pr_t_0_inv else @@ -268,19 +269,18 @@ contains ! universal functions ! -------------------------------------------------------------------------------- - subroutine get_psi_neutral(psi_m, psi_h, zeta, h0_m, h0_t, B) + subroutine get_psi_neutral(psi_m, psi_h, h0_m, h0_t, B) !> @brief universal functions (momentum) & (heat): neutral case ! ---------------------------------------------------------------------------- real, intent(out) :: psi_m, psi_h !> universal functions - real, intent(out) :: zeta !> = z/L real, intent(in) :: h0_m, h0_t !> = z/z0_m, z/z0_h real, intent(in) :: B !> = log(z0_m / z0_h) ! ---------------------------------------------------------------------------- - zeta = 0.0 psi_m = log(h0_m) psi_h = log(h0_t) / Pr_t_0_inv + !*: this looks redundant z0_t = z0_m in case |B| ~ 0 if (abs(B) < 1.0e-10) psi_h = psi_m / Pr_t_0_inv end subroutine diff --git a/srcF/sfx_log.f90 b/srcF/sfx_log.f90 index 02e93b02389bb8b546f2f0da1b977b70dbcd35d1..39f867484af0ea6c6f23ac9b4d3a6aaafaa8cdb1 100644 --- a/srcF/sfx_log.f90 +++ b/srcF/sfx_log.f90 @@ -99,7 +99,6 @@ contains real u_dyn0 !> dynamic velocity in neutral conditions [m/s] real Re !> roughness Reynolds number = u_dyn0 * z0_m / nu [n/d] - real zeta !> = z/L [n/d] real Rib !> bulk Richardson number real psi_m, psi_h !> universal functions (momentum) & (heat) [n/d] @@ -172,7 +171,7 @@ contains ! --- get the fluxes ! ---------------------------------------------------------------------------- - call get_psi_neutral(psi_m, psi_h, zeta, h0_m, h0_t, B) + call get_psi_neutral(psi_m, psi_h, h0_m, h0_t, B) ! ---------------------------------------------------------------------------- phi_m = 1.0 @@ -187,7 +186,7 @@ contains Pr_t_inv = phi_m / phi_h ! --- setting output - sfx = sfxDataType(zeta = zeta, Rib = Rib, & + sfx = sfxDataType(zeta = 0.0, Rib = Rib, & Re = Re, B = B, z0_m = z0_m, z0_t = z0_t, & Rib_conv_lim = 0.0, & Cm = Cm, Ct = Ct, Km = Km, Pr_t_inv = Pr_t_inv) @@ -197,19 +196,18 @@ contains ! universal functions ! -------------------------------------------------------------------------------- - subroutine get_psi_neutral(psi_m, psi_h, zeta, h0_m, h0_t, B) + subroutine get_psi_neutral(psi_m, psi_h, h0_m, h0_t, B) !> @brief universal functions (momentum) & (heat): neutral case ! ---------------------------------------------------------------------------- real, intent(out) :: psi_m, psi_h !> universal functions - real, intent(out) :: zeta !> = z/L real, intent(in) :: h0_m, h0_t !> = z/z0_m, z/z0_h real, intent(in) :: B !> = log(z0_m / z0_h) ! ---------------------------------------------------------------------------- - zeta = 0.0 psi_m = log(h0_m) psi_h = log(h0_t) / Pr_t_0_inv + !*: this looks redundant z0_t = z0_m in case |B| ~ 0 if (abs(B) < 1.0e-10) psi_h = psi_m / Pr_t_0_inv end subroutine