The camp_solver_data_t structure and associated subroutines.
More...
|
type(camp_solver_data_t) function, pointer | constructor () |
| Constructor for camp_solver_data_t.
|
|
subroutine | initialize (this, var_type, abs_tol, mechanisms, aero_phases, aero_reps, sub_models, rxn_phase, n_cells) |
| Initialize the solver.
|
|
subroutine | update_sub_model_data (this, update_data) |
| Update sub-model data.
|
|
subroutine | update_rxn_data (this, update_data) |
| Update reaction data.
|
|
subroutine | update_aero_rep_data (this, update_data) |
| Update aerosol representation data based on data passed from the host model related to aerosol properties.
|
|
subroutine | solve (this, camp_state, t_initial, t_final, solver_stats) |
| Solve the mechanism(s) for a specified timestep.
|
|
subroutine | reset_timers (this) |
| Reset the solver function timers.
|
|
subroutine | get_solver_stats (this, solver_stats) |
| Get solver statistics.
|
|
logical function | is_solver_available (this) |
| Check whether a solver is available for the integration.
|
|
subroutine | do_print (this) |
| Print the solver data.
|
|
elemental subroutine | finalize (this) |
| Finalize the solver data.
|
|
The camp_solver_data_t structure and associated subroutines.
◆ constructor()
◆ do_print()
◆ finalize()
elemental subroutine camp_camp_solver_data::finalize |
( |
type(camp_solver_data_t), intent(inout) |
this | ) |
|
|
private |
◆ get_solver_stats()
Get solver statistics.
- Parameters
-
[in,out] | this | Solver data |
[in,out] | solver_stats | Solver statistics |
Definition at line 936 of file camp_solver_data.F90.
◆ initialize()
subroutine camp_camp_solver_data::initialize |
( |
class(camp_solver_data_t), intent(inout) |
this, |
|
|
integer(kind=i_kind), dimension(:), intent(in), allocatable |
var_type, |
|
|
real(kind=dp), dimension(:), intent(in), allocatable |
abs_tol, |
|
|
type(mechanism_data_ptr), dimension(:), intent(in), pointer |
mechanisms, |
|
|
type(aero_phase_data_ptr), dimension(:), intent(in), pointer |
aero_phases, |
|
|
type(aero_rep_data_ptr), dimension(:), intent(in), pointer |
aero_reps, |
|
|
type(sub_model_data_ptr), dimension(:), intent(in), pointer |
sub_models, |
|
|
integer(kind=i_kind), intent(in) |
rxn_phase, |
|
|
integer(kind=i_kind), optional |
n_cells |
|
) |
| |
|
private |
Initialize the solver.
- Parameters
-
[in,out] | this | Solver data |
[in] | var_type | Variable type for each species in the state array. This array must be of the same length as the state array. |
[in] | abs_tol | Absolute tolerance for each species in the state array. This array must be of the same length as the state array. Values for CONST and PSSA species will be ignored by the solver. |
[in] | mechanisms | Mechanisms to include in solver |
[in] | aero_phases | Aerosol phases to include |
[in] | aero_reps | Aerosol representations to include |
[in] | sub_models | Sub models to include |
[in] | rxn_phase | Reactions phase to solve – gas, aerosol, or both (default) Use parameters in camp_rxn_data to specify phase: GAS_RXN, AERO_RXN, GAS_AERO_RXN |
| n_cells | Number of cells to compute |
Definition at line 430 of file camp_solver_data.F90.
◆ is_solver_available()
logical function camp_camp_solver_data::is_solver_available |
( |
class(camp_solver_data_t), intent(in) |
this | ) |
|
|
private |
Check whether a solver is available for the integration.
- Parameters
-
Definition at line 968 of file camp_solver_data.F90.
◆ reset_timers()
subroutine camp_camp_solver_data::reset_timers |
( |
class(camp_solver_data_t), intent(inout) |
this | ) |
|
|
private |
◆ solve()
subroutine camp_camp_solver_data::solve |
( |
class(camp_solver_data_t), intent(inout) |
this, |
|
|
type(camp_state_t), intent(inout), target |
camp_state, |
|
|
real(kind=dp), intent(in) |
t_initial, |
|
|
real(kind=dp), intent(in) |
t_final, |
|
|
type(solver_stats_t), intent(inout), optional, target |
solver_stats |
|
) |
| |
|
private |
Solve the mechanism(s) for a specified timestep.
- Parameters
-
[in,out] | this | Solver data |
[in,out] | camp_state | Model state |
[in] | t_initial | Start time (s) |
[in] | t_final | End time (s) |
[in,out] | solver_stats | Solver statistics |
Definition at line 853 of file camp_solver_data.F90.
◆ update_aero_rep_data()
Update aerosol representation data based on data passed from the host model related to aerosol properties.
- Parameters
-
[in,out] | this | Solver data |
[in] | update_data | Update data |
Definition at line 833 of file camp_solver_data.F90.
◆ update_rxn_data()
Update reaction data.
- Parameters
-
[in,out] | this | Solver data |
[in] | update_data | Update data |
Definition at line 812 of file camp_solver_data.F90.
◆ update_sub_model_data()
Update sub-model data.
- Parameters
-
[in,out] | this | Solver data |
[in] | update_data | Update data |
Definition at line 792 of file camp_solver_data.F90.
◆ camp_solver_default_max_conv_fails
integer(kind=i_kind), parameter camp_camp_solver_data::camp_solver_default_max_conv_fails = 1000 |
|
private |
Default maximum number of integration convergence failures.
Definition at line 37 of file camp_solver_data.F90.
◆ camp_solver_default_max_steps
integer(kind=i_kind), parameter camp_camp_solver_data::camp_solver_default_max_steps = 10000 |
|
private |
◆ camp_solver_default_rel_tol
real(kind=dp), parameter camp_camp_solver_data::camp_solver_default_rel_tol = 1.0D-8 |
|
private |
◆ camp_solver_success
integer, parameter camp_camp_solver_data::camp_solver_success = 0 |
|
private |