Classes | |
interface | cond_newt__interface |
Functions | |
subroutine | condense_particles (bin_grid, aero_binned, env_state, aero_data, aero_state, del_t) |
Do condensation to all the particles for a given time interval, including updating the environment to account for the lost vapor. | |
subroutine | condense_particle (del_t, env_state, aero_data, aero_particle) |
Integrate the condensation growth or decay ODE for total time del_t for a single particle. | |
subroutine | condense_step_euler (max_dt, dt, done, env_state, aero_data, aero_particle) |
Does one timestep (determined by this subroutine) of the condensation ODE. | |
subroutine | condense_step_rk_fixed (max_dt, dt, done, env_state, aero_data, aero_particle) |
Does one timestep (determined by this subroutine) of the condensation ODE. | |
subroutine | condense_step_rk (dt, env_state, aero_data, aero_particle) |
Does one fixed timestep of Runge-Kutta-4. | |
subroutine | find_condense_timestep_constant (dt, env_state, aero_data, aero_particle) |
Just returns a constant timestep. | |
subroutine | find_condense_timestep_variable (dt, env_state, aero_data, aero_particle) |
Computes a timestep proportional to V / (dV/dt). | |
subroutine | cond_growth_rate (dvdt, env_state, aero_data, aero_particle) |
Find the water volume growth rate due to condensation. | |
subroutine | cond_newt (x, env_state, aero_data, func, x_tol, f_tol, iter_max, aero_particle) |
Scalar Newton's method for solving the implicit condensation functions. | |
subroutine | cond_growth_rate_func (env_state, aero_data, init, dmdt, f, df, aero_particle) |
Return the error function value and its derivative for the implicit growth rate function. | |
subroutine | equilibriate_particle (env_state, aero_data, aero_particle) |
Add water to the particle until it is in equilibrium. | |
subroutine | equilibriate_func (env_state, aero_data, init, dw, f, df, aero_particle) |
Return the error function value and its derivative for the implicit function that determines the equilibrium state of a particle. | |
subroutine | aero_state_equilibriate (bin_grid, env_state, aero_data, aero_state) |
Call equilibriate_particle() on each particle in the aerosol. |
subroutine pmc_condensation::aero_state_equilibriate | ( | type(bin_grid_t),intent(in) | bin_grid, | |
type(env_state_t),intent(inout) | env_state, | |||
type(aero_data_t),intent(in) | aero_data, | |||
type(aero_state_t),intent(inout) | aero_state | |||
) |
Call equilibriate_particle() on each particle in the aerosol.
bin_grid | Bin grid. |
env_state | Environment state. |
aero_data | Aerosol data. |
aero_state | Aerosol state. |
subroutine pmc_condensation::cond_growth_rate | ( | real*8,intent(out) | dvdt, | |
type(env_state_t),intent(in) | env_state, | |||
type(aero_data_t),intent(in) | aero_data, | |||
type(aero_particle_t),intent(in) | aero_particle | |||
) |
Find the water volume growth rate due to condensation.
dvdt | Dv/dt (m^3 s^{-1}). |
env_state | Environment state. |
aero_data | Aerosol data. |
aero_particle | Particle. |
subroutine pmc_condensation::cond_growth_rate_func | ( | type(env_state_t),intent(in) | env_state, | |
type(aero_data_t),intent(in) | aero_data, | |||
logical,intent(in) | init, | |||
real*8,intent(in) | dmdt, | |||
real*8,intent(out) | f, | |||
real*8,intent(out) | df, | |||
type(aero_particle_t),intent(in) | aero_particle | |||
) |
Return the error function value and its derivative for the implicit growth rate function.
env_state | Environment state. |
aero_data | Aerosol data. |
init | True if first Newton loop. |
dmdt | Mass growth rate dm/dt (kg s^{-1}). |
f | Error. |
df | Derivative of error with respect to x. |
aero_particle | Particle. |
subroutine pmc_condensation::cond_newt | ( | real*8,intent(inout) | x, | |
type(env_state_t),intent(in) | env_state, | |||
type(aero_data_t),intent(in) | aero_data, | |||
pmc_condensation::cond_newt__interface | func, | |||
real*8,intent(in) | x_tol, | |||
real*8,intent(in) | f_tol, | |||
integer,intent(in) | iter_max, | |||
type(aero_particle_t),intent(in) | aero_particle | |||
) |
Scalar Newton's method for solving the implicit condensation functions.
x | Variable (set to init value on call). |
env_state | Environment state. |
aero_data | Aerosol data. |
x_tol | X convergence tolerance. |
f_tol | F convergence tolerance. |
iter_max | Maximum number of iterations. |
aero_particle | Particle. |
subroutine pmc_condensation::condense_particle | ( | real*8,intent(in) | del_t, | |
type(env_state_t),intent(in) | env_state, | |||
type(aero_data_t),intent(in) | aero_data, | |||
type(aero_particle_t),intent(inout) | aero_particle | |||
) |
Integrate the condensation growth or decay ODE for total time del_t for a single particle.
del_t | Total time to integrate. |
env_state | Environment state. |
aero_data | Aerosol data. |
aero_particle | Particle. |
subroutine pmc_condensation::condense_particles | ( | type(bin_grid_t),intent(in) | bin_grid, | |
type(aero_binned_t),intent(inout) | aero_binned, | |||
type(env_state_t),intent(inout) | env_state, | |||
type(aero_data_t),intent(in) | aero_data, | |||
type(aero_state_t),intent(inout) | aero_state, | |||
real*8,intent(in) | del_t | |||
) |
Do condensation to all the particles for a given time interval, including updating the environment to account for the lost vapor.
bin_grid | Bin grid. |
aero_binned | Binned distributions. |
env_state | Environment state. |
aero_data | Aerosol data. |
aero_state | Aerosol state. |
del_t | Total time to integrate. |
subroutine pmc_condensation::condense_step_euler | ( | real*8,intent(in) | max_dt, | |
real*8,intent(out) | dt, | |||
logical,intent(out) | done, | |||
type(env_state_t),intent(in) | env_state, | |||
type(aero_data_t),intent(in) | aero_data, | |||
type(aero_particle_t),intent(inout) | aero_particle | |||
) |
Does one timestep (determined by this subroutine) of the condensation ODE.
The timestep will not exceed max_dt, but might be less. If we in fact step all the way to max_dt then done will be true. This uses the explicit (forward) Euler integrator.
max_dt | Maximum timestep to integrate. |
dt | Actual timestep used. |
done | Did we reach the maximum timestep?. |
env_state | Environment state. |
aero_data | Aerosol data. |
aero_particle | Particle. |
subroutine pmc_condensation::condense_step_rk | ( | real*8,intent(out) | dt, | |
type(env_state_t),intent(in) | env_state, | |||
type(aero_data_t),intent(in) | aero_data, | |||
type(aero_particle_t),intent(inout) | aero_particle | |||
) |
Does one fixed timestep of Runge-Kutta-4.
dt | Timestep. |
env_state | Environment state. |
aero_data | Aerosol data. |
aero_particle | Particle. |
subroutine pmc_condensation::condense_step_rk_fixed | ( | real*8,intent(in) | max_dt, | |
real*8,intent(out) | dt, | |||
logical,intent(out) | done, | |||
type(env_state_t),intent(in) | env_state, | |||
type(aero_data_t),intent(in) | aero_data, | |||
type(aero_particle_t),intent(inout) | aero_particle | |||
) |
Does one timestep (determined by this subroutine) of the condensation ODE.
The timestep will not exceed max_dt, but might be less. If we in fact step all the way to max_dt then done will be true. This uses the explicit 4th-order Runge-Kutta integrator.
max_dt | Maximum timestep to integrate. |
dt | Actual timestep used. |
done | Did we reach the maximum timestep?. |
env_state | Environment state. |
aero_data | Aerosol data. |
aero_particle | Particle. |
subroutine pmc_condensation::equilibriate_func | ( | type(env_state_t),intent(in) | env_state, | |
type(aero_data_t),intent(in) | aero_data, | |||
logical,intent(in) | init, | |||
real*8,intent(in) | dw, | |||
real*8,intent(out) | f, | |||
real*8,intent(out) | df, | |||
type(aero_particle_t),intent(inout) | aero_particle | |||
) |
Return the error function value and its derivative for the implicit function that determines the equilibrium state of a particle.
env_state | Environment state. |
aero_data | Aerosol data. |
init | True if first Newton loop. |
dw | Wet diameter (m). |
f | Function value. |
df | Function derivative df/dx. |
aero_particle | Particle. |
subroutine pmc_condensation::equilibriate_particle | ( | type(env_state_t),intent(in) | env_state, | |
type(aero_data_t),intent(in) | aero_data, | |||
type(aero_particle_t),intent(inout) | aero_particle | |||
) |
Add water to the particle until it is in equilibrium.
env_state | Environment state. |
aero_data | Aerosol data. |
aero_particle | Particle. |
subroutine pmc_condensation::find_condense_timestep_constant | ( | real*8,intent(out) | dt, | |
type(env_state_t),intent(in) | env_state, | |||
type(aero_data_t),intent(in) | aero_data, | |||
type(aero_particle_t),intent(in) | aero_particle | |||
) |
Just returns a constant timestep.
dt | Timestep to use. |
env_state | Environment state. |
aero_data | Aerosol data. |
aero_particle | Particle. |
subroutine pmc_condensation::find_condense_timestep_variable | ( | real*8,intent(out) | dt, | |
type(env_state_t),intent(in) | env_state, | |||
type(aero_data_t),intent(in) | aero_data, | |||
type(aero_particle_t),intent(in) | aero_particle | |||
) |
Computes a timestep proportional to V / (dV/dt).
dt | Timestep to use. |
env_state | Environment state. |
aero_data | Aerosol data. |
aero_particle | Particle. |