type, public :: particle_source_plan_type private logical :: ready = .false. logical :: mpi_argument_present = .false. logical :: use_collective_reservoir_count = .false. integer(i32) :: nspecies = 0_i32 integer(i32) :: mpi_rank = 0_i32 integer(i32) :: mpi_size = 1_i32 real(dp), allocatable :: effective_density_m3(:) real(dp), allocatable :: effective_particle_flux_m2_s(:) logical, allocatable :: number_flux_override_active(:) real(dp), allocatable :: effective_temperature_k(:) real(dp), allocatable :: effective_drift_velocity(:, :) real(dp), allocatable :: effective_weight(:) real(dp), allocatable :: photo_emit_current_density(:) real(dp), allocatable :: photo_normal_drift_speed(:) logical, allocatable :: kinetic_inflow_active(:) real(dp), allocatable :: kinetic_reservoir_potential_v(:) real(dp), allocatable :: kinetic_access_potential_v(:) integer(i32), allocatable :: kinetic_inflow_face(:) end type particle_source_plan_type