Surface Fluxes
Surface Fluxes
ClimateMachine.SurfaceFluxes
— ModuleSurfaceFluxes
Surface flux functions, e.g., for buoyancy flux, friction velocity, and exchange coefficients.
Sub-modules
- module Byun1990
- module Nishizawa2018
Interface
compute_buoyancy_flux
computes the buoyancy flux- In addition, each sub-module has the following functions:
monin_obukhov_len
computes the Monin-Obukhov lengthcompute_friction_velocity
computes the friction velocitycompute_exchange_coefficients
computes 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
shf
sensible heat fluxlhf
latent heat fluxT_b
surface boundary temperatureq
phase partition (seePhasePartition
)α_0
specific 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_D
momentum exchange coefficient (Eq. 36)C_H
thermodynamic exchange coefficient (Eq. 37)L_mo
Monin-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_D
momentum exchange coefficientK_H
thermodynamic exchange coefficientL_mo
Monin-Obukhov length
TODO: Pr
should come from CLIMAParameters