pmc_condensation Namespace Reference

Water condensation onto aerosol particles. More...

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.

Detailed Description

Water condensation onto aerosol particles.


Function Documentation

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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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).

Parameters:
dt Timestep to use.
env_state Environment state.
aero_data Aerosol data.
aero_particle Particle.

Generated on 29 Mar 2010 for PartMC by  doxygen 1.6.1