外部 closure の number-flux override の有効フラグを検査して plan へ写す(flux 値は種の解決時に使う)。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(particle_source_plan_type), | intent(inout) | :: | plan | |||
| integer(kind=i32), | intent(in) | :: | nspecies | |||
| logical, | intent(in), | optional | :: | number_flux_override_active(:) | ||
| real(kind=dp), | intent(in), | optional | :: | number_flux_override_m2_s(:) |
subroutine apply_number_flux_override_arguments(plan, nspecies, number_flux_override_active, number_flux_override_m2_s) type(particle_source_plan_type), intent(inout) :: plan integer(i32), intent(in) :: nspecies logical, intent(in), optional :: number_flux_override_active(:) real(dp), intent(in), optional :: number_flux_override_m2_s(:) if (present(number_flux_override_active) .or. present(number_flux_override_m2_s)) then if (.not. present(number_flux_override_active) .or. .not. present(number_flux_override_m2_s)) then error stop 'particle source number-flux override requires active and flux arrays together.' end if if (size(number_flux_override_active) /= nspecies .or. & size(number_flux_override_m2_s) /= nspecies) then error stop 'particle source number-flux override species count mismatch.' end if if (any(number_flux_override_active .and. & (.not. ieee_is_finite(number_flux_override_m2_s) .or. number_flux_override_m2_s < 0.0_dp))) then error stop 'active particle source number-flux overrides must be finite and nonnegative.' end if plan%number_flux_override_active = number_flux_override_active end if end subroutine apply_number_flux_override_arguments