mod_radiative_cooling Module

Module containing radiative cooling-related routines. This module is responsible for initialising the radiative cooling variables and a correct handling of the cooling curves. If an interpolated cooling curve is selected this module calls the interpolation module to create one.



Contents


Variables

TypeVisibilityAttributesNameInitial
type(settings_t), private, pointer:: settings=> null()
type(background_t), private, pointer:: background=> null()

Derived Types

type, public :: cooling_t

Components

TypeVisibilityAttributesNameInitial
procedure(realdp), public, pointer, nopass:: lambdaT
procedure(realdp), public, pointer, nopass:: dlambdadT
logical, private :: is_initialised

Type-Bound Procedures

procedure, public :: initialise
procedure, public :: delete

Functions

public function new_cooling(settings_tgt, background_tgt) result(cooling)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in), target:: settings_tgt
type(background_t), intent(in), target:: background_tgt

Return Value type(cooling_t)

private function get_lambdaT(x)

Arguments

TypeIntentOptionalAttributesName
real(kind=dp), intent(in) :: x

Return Value real(kind=dp)

private function get_dlambdadT(x)

Arguments

TypeIntentOptionalAttributesName
real(kind=dp), intent(in) :: x

Return Value real(kind=dp)


Subroutines

private subroutine initialise(this)

Arguments

TypeIntentOptionalAttributesName
class(cooling_t), intent(inout) :: this

private subroutine delete(this)

Arguments

TypeIntentOptionalAttributesName
class(cooling_t), intent(inout) :: this