Minimal#
- class abcmodel.land.minimal.MinimalLandSurfaceState(alpha, surf_temp, rs, wg=<factory>, wl=<factory>, esat=<factory>, qsat=<factory>, dqsatdT=<factory>, e=<factory>, qsatsurf=<factory>, wtheta=<factory>, wq=<factory>, wCO2=<factory>)[source]#
Bases:
AbstractLandStateMinimal land surface model state.
- alpha: Array#
surface albedo [-], range 0 to 1.
- surf_temp: Array#
Surface temperature [K].
- rs: Array#
Surface resistance [s m-1].
- wg: Array#
No moisture content in the root zone [m3 m-3].
- wl: Array#
No water content in the canopy [m].
- esat: Array#
Saturation vapor pressure [Pa].
- qsat: Array#
Saturation specific humidity [kg/kg].
- dqsatdT: Array#
Derivative of saturation specific humidity with respect to temperature [kg/kg/K].
- e: Array#
Vapor pressure [Pa].
- qsatsurf: Array#
Saturation specific humidity at surface temperature [kg/kg].
- wtheta: Array#
Kinematic heat flux [K m/s].
- wq: Array#
Kinematic moisture flux [kg/kg m/s].
- wCO2: Array#
Kinematic CO2 flux [kg/kg m/s] or [mol m-2 s-1].
- class abcmodel.land.minimal.MinimalLandSurfaceModel(*args: Any, **kwargs: Any)[source]#
Bases:
AbstractLandModelMinimal land surface model with fixed surface properties.
- init_state(alpha=0.25, surf_temp=290.0, rs=1000000.0, wg=0.0, wl=0.0, wtheta=0.0)[source]#
Initialize the model state.
- Parameters:
alpha (
float) – surface albedo [-], range 0 to 1. Default is 0.25.surf_temp (
float) – Surface temperature [K]. Default is 290.0.rs (
float) – Surface resistance [s m-1]. Default is 1.0e6.wg (
float) – Volumetric soil moisture [m3 m-3]. Default is 0.0.wl (
float) – Canopy water content [m]. Default is 0.0.wtheta (
float) – Kinematic heat flux [K m/s]. Default is 0.0.
- Returns:
The initial land state.
- run(state)[source]#
Run the model.
- Parameters:
state (
AbstractCoupledState) – CoupledState.- Returns:
The updated land state object.
- compute_dqsatdT(esat, theta, surf_pressure)[source]#
Compute the derivative of saturation vapor pressure with respect to temperature
dqsatdT.Notes
Using
compute_esat(), the derivative of the saturated vapor pressure \(e_\text{sat}\) with respect to temperature \(T\) is given by\[\frac{\text{d}e_\text{sat}}{\text{d} T} = e_\text{sat}\frac{17.2694(T-237.16)}{(T-35.86)^2},\]which combined with
compute_qsat()can be used to get\[\frac{\text{d}q_{\text{sat}}}{\text{d} T} \approx \epsilon \frac{\frac{\text{d}e_\text{sat}}{\text{d} T}}{p}.\]
- compute_e(q, surf_pressure)[source]#
Compute the vapor pressure
e.Notes
This function uses the same formula used in
compute_esat(), but now factoring the vapor pressure \(e\) as a function of specific humidity \(q\) and surface pressure \(p\), which give us\[e = q \cdot p / 0.622.\]
- integrate(state, dt)[source]#
Integrate the model forward in time.
- Parameters:
state (
MinimalLandSurfaceState) – the state object carrying all variables.dt (
float) – the time step.
- Returns:
The updated state object.