# Models¶

As indicated in the Introduction, climlab can implement different types of models out of the box. Here, we focus on Energy Balance Models which are refered to as EBMs.

## Energy Balance Model¶

Currently, there are three “standard” Energy Balance Models implemented in the climlab code.
These are `EBM`

, `EBM_seasonal`

and `EBM_annual`

, which are explained below.

Let’s first give an overview about different (sub)processes that are implemented:

### EBM Subprocesses¶

#### Insolation¶

`FixedInsolation`

defines a constant solar value for all spatial points of the domain:

\[S(\varphi) = S_{\textrm{input}}\]

`P2Insolation`

characterizes a parabolic solar distribution over the domain’s latitude on the basis of the second order Legendre Polynomial \(P_2\):

\[S(\varphi) = \frac{S_0}{4} \Big[1+ s_2 P_2 \big(\sin (\varphi) \big) \Big]\]Variable \(\varphi\) represents the latitude.

`DailyInsolation`

computes the daily solar insolation for each latitude of the domain on the basis of orbital parameters and astronomical formulas.

`AnnualMeanInsolation`

computes a latitudewise yearly mean for solar insolation on the basis of orbital parameters and astronomical formulas.

#### Albedo¶

`ConstantAlbedo`

defines constant albedo values at all spatial points of the domain:

\[\alpha(\varphi) = a_0\]

`P2Albedo`

initializes parabolic distributed albedo values across the domain on basis of the second order Legendre Polynomial \(P_2\):

\[\alpha(\varphi) = a_0 + a_2 P_2 \big(\sin (\varphi) \big)\]

`Iceline`

determines which part of the domain is covered with ice according to a given freezing temperature.

`StepFunctionAlbedo`

implements an albedo step function in dependence of the surface temperature by using instances of the above described albedo classes as subprocesses.

#### Outgoing Longwave Radiation¶

`AplusBT`

calculates the Outgoing Longwave Radiation (\(\text{OLR}\)) in form of a linear dependence of surface temperature \(T\):

\[\text{OLR} = A+B \cdot T\]

`AplusBT_CO2`

calculates \(\text{OLR}\) in the same way as

`AplusBT`

but uses parameters \(A\) and \(B\) dependent of the atmospheric \(\text{CO}_2\) concentration \(c\).\[\text{OLR} = A(c)+B(c) \cdot T\]

`Boltzmann`

calculates \(\text{OLR}\) according to the Stefan-Boltzmann law for a grey body:

\[\text{OLR} = \sigma \varepsilon T^4\]

#### Energy Transport¶

These classes calculate the transport of energy \(H(\varphi)\) across the latitude \(\varphi\) in an energy budget noted as:

`MeridionalDiffusion`

calculates the energy transport in a diffusion like process along the temperature gradient:

\[H(\varphi) = \frac{D}{\cos \varphi}\frac{\partial}{\partial \varphi} \left( \cos\varphi \frac{\partial T(\varphi)}{\partial \varphi} \right)\]

`BudykoTransport`

calculates the energy transport for each latitude \(\varphi\) depending on the global mean temperature \(\bar{T}\):

\[H(\varphi) = - b [T(\varphi) - \bar{T}]\]

### EBM templates¶

The preconfigured Energy Balance Models EBM, EBM_seasonal and EBM_annual use the described suprocesses above:

#### EBM¶

The `EBM`

class sets up a typical Energy Balance Model with following subprocesses:

Outgoing Longwave Radiation (OLR) parametrization via

`AplusBT`

solar insolation paramterization via

`P2Insolation`

albedo parametrization in dependence of temperature via

`StepFunctionAlbedo`

energy diffusion via

`MeridionalDiffusion`

#### EBM_seasonal¶

The `EBM_seasonal`

class implements Energy Balance Models with realistic daily insolation.
It uses following subprocesses:

Outgoing Longwave Radiation (OLR) parametrization via

`AplusBT`

solar insolation paramterization via

`DailyInsolation`

albedo parametrization in dependence of temperature via

`StepFunctionAlbedo`

energy diffusion via

`MeridionalDiffusion`

#### EBM_annual¶

The `EBM_annual`

class that implements Energy Balance Models with annual mean insolation.
It uses following subprocesses:

Outgoing Longwave Radiation (OLR) parametrization via

`AplusBT`

solar insolation paramterization via

`AnnualMeanInsolation`

albedo parametrization in dependence of temperature via

`StepFunctionAlbedo`

energy diffusion via

`MeridionalDiffusion`