heating of a planet by a star More...
Data Types | |
type | sources_planetheating |
Functions/Subroutines | |
subroutine | initsources (this, Mesh, Physics, Fluxes, config, IO) |
Constructor of the heating module for a planetary atmosphere. More... | |
subroutine | setoutput (this, Mesh, config, IO) |
subroutine | infosources (this, Mesh) |
subroutine | updateplanetheating (this, Mesh, Physics, time, pvar) |
Updates the heating for a given time. More... | |
subroutine | finalize (this) |
Destructor. More... | |
Variables | |
character(len=32), parameter | source_name = "heating of planetary atmosphere" |
real, parameter | au = 1.49597870691E+11 |
Detailed Description
heating of a planet by a star
- Warning
- use SI units
Program and data initialization for the heating of a planet with a shallow atmosphere by a star.
Includes:
- different intensities (distance + luminosity of star)
- years and seasons (inclination of ecliptic)
- days
Assumes:
- optically thin atmosphere for infalling radiation directly at the surface
- parallel infall of radiation (star not too close)
See subroutine updateplanetheating for detailed prescription.
References: [40]
Function/Subroutine Documentation
◆ finalize()
subroutine sources_planetheating_mod::finalize | ( | type(sources_planetheating), intent(inout) | this | ) |
Destructor.
Definition at line 345 of file sources_planetheating.f90.
◆ infosources()
|
private |
Definition at line 221 of file sources_planetheating.f90.
◆ initsources()
subroutine sources_planetheating_mod::initsources | ( | class(sources_planetheating), 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 heating module for a planetary atmosphere.
Definition at line 113 of file sources_planetheating.f90.
◆ setoutput()
subroutine sources_planetheating_mod::setoutput | ( | class(sources_planetheating), intent(inout) | this, |
class(mesh_base), intent(in) | Mesh, | ||
type(dict_typ), pointer | config, | ||
type(dict_typ), pointer | IO | ||
) |
Definition at line 204 of file sources_planetheating.f90.
◆ updateplanetheating()
subroutine sources_planetheating_mod::updateplanetheating | ( | class(sources_planetheating), 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 | ||
) |
Updates the heating for a given time.

Heating is done via
\[ Q_{\mathrm{star}} = \left(1-A\right) Q_{\mathrm{star,AU}} \left( \frac{1 \mathsf{AU}}{r}\right)^2 \sin{\theta'}\cos{\varphi'}, \]
where \( A \) is the Bond albedo, \( Q_{\mathrm{star,AU}} \) is the radiant flux density at \( 1\,\)AU distance from the central star, and \( r\) is the current distance between planet and star. The angles \( \theta' \) and \( \varphi' \) are transformed angles that correspond to the view factor.
In order to derive the new angles you need to use spherical trigonometry. It yields:
\[ \theta' = \arccos{(\cos{\theta}\cos{\theta_0(t)})+\sin{\theta} \sin{\theta_0(t)}\cos{(\varphi-\varphi_0(t))}} \\ \varphi' = \arctan{\left( \frac{\sin \theta \sin{(\varphi - \varphi_0(t))}}{\cos{\theta}\sin{\theta_0(t)}- \sin{\theta}\cos{\theta_0(t)}\cos{(\varphi - \varphi_0(t))}} \right)}. \]
where \( \theta_0 \) is the angle where the sun beam falls vertically onto the planet. The value vor \( \varphi_0 \) just changes were the day begins and can be safely set to zero.
In order to simulate seasons \( \theta_0(t) = \theta_0(0) \cos{2\pi\frac{t}{t_a}} \), with \( t_a \) the time of a year is applied. For days \( \varphi(t) = \varphi_0(0) + 2 \pi f t \) is calculated. Here f is the frequency [ \( s^{-1} \)].
- Todo:
- It seems that the result does not depend on the current position angle, i.e. the true anomaly. However, this should in general be the case.
Definition at line 289 of file sources_planetheating.f90.

Variable Documentation
◆ au
|
private |
Definition at line 84 of file sources_planetheating.f90.
◆ source_name
|
private |
Definition at line 83 of file sources_planetheating.f90.