heat_capacity¶

Routines for calculating heat capacities for grid boxes.

climlab.utils.heat_capacity.atmosphere(dp)[source]

Returns heat capacity of a unit area of atmosphere, in units J /m**2 / K.

$C_a = \frac{c_p \cdot dp \cdot f_{\textrm{mb-to-Pa}}}{g}$

where

variable

value

unit

description

$$C_a$$

output

$$\textrm{J} / \textrm{m}^2 / \textrm{K}$$

heat capacity for atmospheric cell

$$c_p$$

$$1004.$$

$$\textrm{J} / \textrm{kg} / \textrm{K}$$

specific heat at constant pressure for dry air

$$dp$$

input

$$\textrm{mb}$$

pressure for atmospheric cell

$$f_{\textrm{mb-to-Pa}}$$

$$100$$

$$\textrm{Pa} / \textrm{mb}$$

conversion factor from mb to Pa

$$g$$

$$9.8$$

$$\textrm{m} / \textrm{s}^2$$

gravitational acceleration

Function-call argument

Parameters

dp (array) – pressure intervals (unit: mb)

Returns

the heat capacity for atmosphere cells correspoding to pressure input (unit: J /m**2 / K)

Return type

array

Example

Calculate atmospheric heat capacity for pressure intervals of 1, 10, 100 mb:

>>> from climlab.utils import heat_capacity

>>> pressure_interval = array([1,10,100]) # in mb
>>> heat_capacity.atmosphere(pressure_interval) # in J /m**2 / K
array([   10244.89795918,   102448.97959184,  1024489.79591837])

climlab.utils.heat_capacity.ocean(dz)[source]

Returns heat capacity of a unit area of water, in units J /m**2 / K.

$C_o = \rho_w \cdot c_w \cdot dz$

where

variable

value

unit

description

$$C_o$$

output

$$\textrm{J} / \textrm{m}^2 / \textrm{K}$$

heat capacity for oceanic cell

$$c_w$$

$$4181.3$$

$$\textrm{J} / \textrm{kg} / \textrm{K}$$

specific heat of liquid water

$$dz$$

input

$$\textrm{m}$$

water depth of oceanic cell

$$\rho_w$$

$$1000.$$

$$\textrm{kg} / \textrm{m}^3$$

density of water

Function-call argument

Parameters

dz (array) – water depth of ocean cells (unit: m)

Returns

the heat capacity for ocean cells correspoding to depth input (unit: J /m**2 / K)

Return type

array

Example

Calculate atmospheric heat capacity for pressure intervals of 1, 10, 100 m:

>>> from climlab.utils import heat_capacity

>>> pressure_interval = array([1,10,100]) # in m
>>> heat_capacity.ocean(pressure_interval) # in J /m**2 / K
array([  4.18130000e+06,   4.18130000e+07,   4.18130000e+08])

climlab.utils.heat_capacity.slab_ocean(water_depth)[source]

Returns heat capacity of a unit area slab of water, in units of J / m**2 / K.

Takes input argument water_depth and calls ocean()

Function-call argument

Parameters

float – water depth of slab ocean (unit: m)

Returns

the heat capacity for slab ocean cell (unit: J / m**2 / K)

Return type

float