sources_planetcooling_mod Module Reference

gray cooling of planetary atmospheres More...

Data Types

type  sources_planetcooling
 

Functions/Subroutines

subroutine initsources (this, Mesh, Physics, Fluxes, config, IO)
 Constructor of the cooling module for a planetary atmosphere. More...
 
subroutine infosources (this, Mesh)
 
subroutine updatecooling (this, Mesh, Physics, time, pvar)
 Updates the cooling function of the planetary atmosphere. More...
 
subroutine setoutput (this, Mesh, config, IO)
 Sets the output parameters. More...
 
subroutine finalize (this)
 Destructor. More...
 

Variables

character(len=32), parameter source_name = "cooling of planetary atmosphere"
 

Detailed Description

gray cooling of planetary atmospheres

Author
Jannes Klee
Tobias Illenseer

Program and data initialization for gray cooling of geometrically thin planetary atmospheres. The cooling term is implemented as a sink in the energy equation and accounts for outgoing longwave radiation (OLR). For more details see updateplanetcooling .

References:

  • [40] R. T. Pierrehumbert, Principles of Planetary Climate, Cambridge University Press (2010)

Function/Subroutine Documentation

◆ finalize()

subroutine sources_planetcooling_mod::finalize ( type(sources_planetcooling), intent(inout)  this)
private

Destructor.

Definition at line 311 of file sources_planetcooling.f90.

◆ infosources()

subroutine sources_planetcooling_mod::infosources ( class(sources_planetcooling), intent(in)  this,
class(mesh_base), intent(in)  Mesh 
)

Definition at line 177 of file sources_planetcooling.f90.

◆ initsources()

subroutine sources_planetcooling_mod::initsources ( class(sources_planetcooling), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
class(physics_base), intent(in)  Physics,
class(fluxes_base), intent(in)  Fluxes,
type(dict_typ), pointer  config,
type(dict_typ), pointer  IO 
)

Constructor of the cooling module for a planetary atmosphere.

Definition at line 96 of file sources_planetcooling.f90.

◆ setoutput()

subroutine sources_planetcooling_mod::setoutput ( class(sources_planetcooling), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
type(dict_typ), pointer  config,
type(dict_typ), pointer  IO 
)

Sets the output parameters.

Output:

  1. cooling term: \( Q_{\mathrm{cool}} \)
  2. surface temperature: \( T_{\mathrm{s}} \)
  3. surface pressure: \( P_{\mathrm{s}} \)
  4. surface density: \( \varrho_{\mathrm{s}} \)
Todo:
allocate output arrays P_s and RHO_s only if requested

Definition at line 266 of file sources_planetcooling.f90.

◆ updatecooling()

subroutine sources_planetcooling_mod::updatecooling ( class(sources_planetcooling), intent(inout)  this,
class(mesh_base), intent(in)  Mesh,
class(physics_euler), intent(in)  Physics,
real, intent(in)  time,
class(statevector_euler), intent(in)  pvar 
)
private

Updates the cooling function of the planetary atmosphere.

The cooling term is in its essence a modified Stefan-Boltzman law, but it includes many assumptions about the considered atmosphere (see [40] 199 pp.):

  • all heating/cooling processes are within the troposphere
  • the atmosphere is plane-parallel
  • the vertical stratification is dry-adiabatic
  • all the greenhouse gases are integrated and assumed to be in infrared
  • a not to small optical depth \( \tau_{\infty} \) ( \( \geq 5 \)) (in infrared)

This two-stream approximation leads to the outgoing-longwave radiation (OLR)

\[ I_{+,\infty} = \sigma T_{\mathrm{s}}^4 \tau_{\infty}^{4\frac{\gamma - 1}{\gamma}} \Gamma \left( 1 + \frac{4(\gamma -1)}{\gamma} \right), \]

with \( T_{\mathrm{s}} \) the surface temperature and \( \Gamma \) the Gamma function

Definition at line 217 of file sources_planetcooling.f90.

Here is the call graph for this function:

Variable Documentation

◆ source_name

character(len=32), parameter sources_planetcooling_mod::source_name = "cooling of planetary atmosphere"
private

Definition at line 67 of file sources_planetcooling.f90.