Surface Fluxes
Surface Fluxes
ClimateMachine.SurfaceFluxes — ModuleSurfaceFluxesSurface flux functions, e.g., for buoyancy flux, friction velocity, and exchange coefficients.
Sub-modules
- module Byun1990
 - module Nishizawa2018
 
Interface
compute_buoyancy_fluxcomputes the buoyancy flux- In addition, each sub-module has the following functions:
monin_obukhov_lencomputes the Monin-Obukhov lengthcompute_friction_velocitycomputes the friction velocitycompute_exchange_coefficientscomputes the exchange coefficients
 
References
@article{nishizawa2018surface, title={A Surface Flux Scheme Based on the Monin-Obukhov Similarity for Finite Volume Models}, author={Nishizawa, S and Kitamura, Y}, journal={Journal of Advances in Modeling Earth Systems}, volume={10}, number={12}, pages={3159–3175}, year={2018}, publisher={Wiley Online Library} }
@article{byun1990analytical, title={On the analytical solutions of flux-profile relationships for the atmospheric surface layer}, author={Byun, Daewon W}, journal={Journal of Applied Meteorology}, volume={29}, number={7}, pages={652–657}, year={1990} }
Methods
ClimateMachine.SurfaceFluxes.compute_buoyancy_flux — Functioncompute_buoyancy_flux(param_set, shf, lhf, T_b, q, α_0)Computes buoyancy flux given
shfsensible heat fluxlhflatent heat fluxT_bsurface boundary temperatureqphase partition (seePhasePartition)α_0specific volume
ClimateMachine.SurfaceFluxes.Byun1990.monin_obukhov_len — Functionmonin_obukhov_len(param_set, u, flux)Computes the Monin-Obukhov length (Eq. 3)
ClimateMachine.SurfaceFluxes.Byun1990.compute_friction_velocity — Functioncompute_friction_velocity(param_set, flux, z_0, z_1, β_m, γ_m, tol_abs, iter_max)Computes roots of friction velocity equation (Eq. 10)
u_ave = u_* ( ln(z/z_0) - ψ_m(z/L, z_0/L) ) /κ
ClimateMachine.SurfaceFluxes.Byun1990.compute_exchange_coefficients — Functioncompute_exchange_coefficients(param_set, Ri, z_b, z_0, γ_m, γ_h, β_m, β_h, Pr_0)Computes exchange transfer coefficients:
C_Dmomentum exchange coefficient (Eq. 36)C_Hthermodynamic exchange coefficient (Eq. 37)L_moMonin-Obukhov length (re-arranged Eq. 3)
TODO: Pr_0 should come from CLIMAParameters
ClimateMachine.SurfaceFluxes.Nishizawa2018.monin_obukhov_len — Functionmonin_obukhov_len(param_set, u, θ, flux)Computes Monin-Obukhov length. Eq. 3
ClimateMachine.SurfaceFluxes.Nishizawa2018.compute_friction_velocity — Functioncompute_friction_velocity(param_set, u_ave, θ, flux, Δz, z_0, a, Ψ_m_tol, tol_abs, iter_max)Computes friction velocity, in Eq. 12 in, by solving the non-linear equation:
u_ave = ustar/κ * ( ln(Δz/z_0) - Ψ_m(Δz/L) + z_0/Δz * Ψ_m(z_0/L) + R_z0 [ψ_m(z_0/L) - 1] )
where L is a non-linear function of ustar (see monin_obukhov_len).
ClimateMachine.SurfaceFluxes.Nishizawa2018.compute_exchange_coefficients — Functioncompute_exchange_coefficients(param_set, z, F_m, F_h, a, u_star, θ, flux, Pr)Computes exchange transfer coefficients:
K_Dmomentum exchange coefficientK_Hthermodynamic exchange coefficientL_moMonin-Obukhov length
TODO: Pr should come from CLIMAParameters