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 integer(i32), allocatable :: source_kind(:) 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(:) !> 流入写像の貯留部密度。0なら species 設定の密度を使う。 real(dp), allocatable :: kinetic_reservoir_density_m3(:) integer(i32), allocatable :: kinetic_inflow_face(:) end type particle_source_plan_type