26 real(kind=dp) :: t_max
28 real(kind=dp) :: t_output
30 character(len=300) :: prefix
32 logical :: do_coagulation
34 integer :: coag_kernel_type
38 integer :: loss_function_type
40 character(len=PMC_UUID_LEN) :: uuid
48 subroutine run_exact(bin_grid, scenario, env_state, aero_data, &
49 aero_dist_init, run_exact_opt)
64 integer :: i_time, n_time, ncid
71 "t_output", run_exact_opt%t_output)
78 n_time = nint(run_exact_opt%t_max / run_exact_opt%t_output)
80 time =
real(i_time, kind=dp) /
real(n_time, kind=dp) &
83 call
exact_soln(bin_grid, aero_data, run_exact_opt%do_coagulation, &
84 run_exact_opt%coag_kernel_type, run_exact_opt%do_loss, &
85 run_exact_opt%loss_function_type, aero_dist_init, scenario, &
86 env_state, time, aero_binned)
88 aero_binned, gas_data, gas_state, env_state, i_time + 1, &
89 time, run_exact_opt%t_output, run_exact_opt%uuid)
subroutine aero_binned_allocate_size(aero_binned, n_bin, n_spec)
Allocate an aero_binned_t of the given size.
The scenario_t structure and associated subroutines.
The aero_data_t structure and associated subroutines.
Exact solutions for various simulations.
Options controlling the execution of run_exact().
The aero_dist_t structure and associated subroutines.
The env_state_t structure and associated subroutines.
subroutine aero_binned_deallocate(aero_binned)
Free internal memory in an aero_binned_t structure.
subroutine scenario_update_env_state(scenario, env_state, time)
Update time-dependent contents of the environment. scenario_init_env_state() should have been called ...
subroutine exact_soln(bin_grid, aero_data, do_coagulation, coag_kernel_type, do_loss, loss_function_type, aero_dist_init, scenario, env_state, time, aero_binned)
subroutine gas_data_deallocate(gas_data)
Free all storage.
The gas_data_t structure and associated subroutines.
subroutine check_time_multiple(first_name, first_time, second_name, second_time)
Check that the first time interval is close to an integer multiple of the second, and warn if it is n...
A complete aerosol distribution, consisting of several modes.
Current environment state.
The aero_state_t structure and assocated subroutines.
subroutine gas_state_deallocate(gas_state)
Free all storage.
The gas_state_t structure and associated subroutines.
subroutine gas_state_allocate(gas_state)
Allocate storage for gas species.
1D grid, either logarithmic or linear.
Exact solution simulation.
The bin_grid_t structure and associated subroutines.
The aero_binned_t structure and associated subroutines.
subroutine gas_data_allocate(gas_data)
Allocate storage for gas species.
Current state of the gas mixing ratios in the system.
Aerosol material properties and associated data.
subroutine run_exact(bin_grid, scenario, env_state, aero_data, aero_dist_init, run_exact_opt)
Run an exact simulation.
Write data in NetCDF format.
Aerosol number and volume distributions stored per bin.
subroutine output_sectional(prefix, bin_grid, aero_data, aero_binned, gas_data, gas_state, env_state, index, time, del_t, uuid)
Write the current sectional data.