Stellar populations
Populations
Description
This module contains the type for storing IMFs, and the properties of the stellar populations
Quick access
- Types
- Variables
- Routines
compute_ionizing_mass_rate()
,create_pop()
,get_index_of_mass_cutoff()
,init_stellar_populations()
,massprobabilityimf()
,output_pop()
,set_yields()
Needed modules
utility
: General purpose utility functionsimfs
: This module contains intial mass functionsmetals
: main module for handling metals
Types
- type populations/population
- Type fields
% f_esc [real] :: ionizing photon escape fraction
% ion_m_rate (*) [real,allocatable] :: mass heating rate (M_sun/s) due to ionizing radiation
% mass (*) [real,allocatable] :: stellar mass in the bin
% n_bins [integer] :: number of bins
% n_cutoff [integer] :: Index in IMF array at which “massive” stars begin
% n_ion [real] :: Number of ionizing photons per stellar baryon
% p (*) [real,allocatable] :: relative likelihood to form star in the bin
% pop [integer] :: what stellar population is this?
% q (*) [real,allocatable] :: ionizing photon emission rate
% sn_energy (*) [real,allocatable] :: Energy of a SN in this bin (erg)
% sn_momentum (*) [real,allocatable] :: mass blown out SN (Msun cm/s)
% tlife (*) [real,allocatable] :: lifetime
% yields (,) [real,allocatable] :: mass blown out SN (Msun cm/s)
Variables
- populations/popii [population,protected]
- populations/popiii [population,protected]
Subroutines and functions
- function populations/create_pop(n, pop)
- Parameters
n [integer,in]
pop [integer,in]
- Return
this [population]
- Call to
massprobabilityimf()
,get_index_of_mass_cutoff()
,q_popii()
,lifetime_popii()
,e_sn_popii()
,momentum_sn()
,q_popiii()
,lifetime_popiii()
,e_sn_popiii()
- function populations/get_index_of_mass_cutoff(nstarmassbin, mstarpop)
This function determins the index where the desired mass is at in the mass bins.
- Options
nstarmassbin [integer,in,optional/default=len(mstarpop)]
- Parameters
mstarpop (nstarmassbin) [real,in]
- Return
n_cutoff [integer]
- Called from
- subroutine populations/massprobabilityimf(p_starmassbin, mstarpop, pop, n_starmassbin)
This routine determins the mass probability of a mass bin. We determine the total stellar mass form in one step first and then draw individual stars from the IMF.
- Parameters
p_starmassbin (n_starmassbin) [real,out]
mstarpop (n_starmassbin) [real,out]
pop [integer,in] :: PopII (2) or PopIII (3)?
n_starmassbin [integer,in]
- Called from
- Call to
- subroutine populations/compute_ionizing_mass_rate(this)
Gas mass heating/ionizing rate from massive stars throughout their lifetimes. Gas density dependent.
- Parameters
this [real]
- subroutine populations/set_yields(this[, yields])
- Parameters
this [real]
yields (,) [real,in,allocatable]
Initial mass functions
Description
This module contains intial mass functions
Quick access
- Types
- Routines
kroupa_cumulative_mass_df()
,kroupa_cumulative_pdf()
,kroupa_m_func()
,kroupa_p_func()
,kroupa_pdf()
,m_func_dummy()
,p_func_dummy()
,power_law_mass_func()
,power_law_p_func()
Needed modules
Types
- type imfs/initial_mass_function
This type acts as a framework to implement additional IMFs. It cannot directly be used Rather, the idea is to create new types and inherit the basic structure from this one Note: This should be implemented as abstract type, but f2py.crackfortrant does not support these yet, which would break the documentation with sphinxfortran
- type imfs/unknown_type
- Type fields
% m_max [real]
% m_min [real]
% slope [real]
- type imfs/unknown_type
- Type fields
% m_max [real]
% m_min [real]
% m_turn1 [real,optional/default=0.08]
% m_turn2 [real,optional/default=0.5]
% slope1 [real,optional/default=-0.3]
% slope2 [real,optional/default=-1.3]
% slope3 [real,optional/default=-2.3]
Subroutines and functions
- function imfs/m_func_dummy(this, m1, m2)
- Parameters
this [real]
m1 [real,in]
m2 [real,in]
- Return
res [real]
- function imfs/p_func_dummy(this, m1, m2)
- Parameters
this [real]
m1 [real,in]
m2 [real,in]
- Return
res [real]
- function imfs/power_law_mass_func(this, m1, m2)
- Parameters
this [real]
m1 [real,in]
m2 [real,in]
- Return
res [real]
- function imfs/power_law_p_func(this, m1, m2)
- Parameters
this [real]
m1 [real,in]
m2 [real,in]
- Return
res [real]
- function imfs/kroupa_p_func(this, m1, m2)
- Parameters
this [real]
m1 [real,in]
m2 [real,in]
- Return
res [real]
- Call to
- function imfs/kroupa_m_func(this, m1, m2)
- Parameters
this [real]
m1 [real,in]
m2 [real,in]
- Return
res [real]
- Call to
assert()
,kroupa_cumulative_mass_df()
,kroupa_cumulative_pdf()
- function imfs/kroupa_cumulative_mass_df(this, m)
- Parameters
this [real]
m [real,in]
- Return
res [real]
- Called from
- function imfs/kroupa_pdf(this, m)
- Parameters
this [real]
m [real,in]
- Return
res [real]
- function imfs/kroupa_cumulative_pdf(this, m)
- Parameters
this [real]
m [real,in]
- Return
res [real]
- Called from
Stellar Properties
Quick access
- Routines
e_sn_popii()
,e_sn_popiii()
,lifetime_popii()
,lifetime_popiii()
,momentum_sn()
,q_popii()
,q_popiii()
Needed modules
Subroutines and functions
- function stellar_props/q_popiii(m)
- Parameters
m [real,in]
- Return
q [real]
- Called from
- function stellar_props/lifetime_popiii(m)
- Parameters
m [real,in]
- Return
lt [real]
- Called from
- function stellar_props/q_popii(m)
- Parameters
m [real,in]
- Return
q [real]
- Called from
- function stellar_props/lifetime_popii(m)
- Parameters
m [real,in]
- Return
lt [real]
- Called from
- function stellar_props/e_sn_popii(m)
- Parameters
m [real,in]
- Return
e_sn [real]
- Called from
- function stellar_props/e_sn_popiii(m)
- Parameters
m [real,in]
- Return
e_sn [real]
- Called from
- function stellar_props/momentum_sn(e_sn)
- Parameters
e_sn [real,in]
- Return
p_sn [real]
- Called from