batch 間の signed charge stock と移送 flux から電荷収支を集計する。
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=i32), | public | :: | nspecies | = | 0_i32 | ||
| integer(kind=i32), | public | :: | batch_count | = | 0_i32 | ||
| real(kind=dp), | public | :: | surface_charge_before | = | 0.0_dp | ||
| real(kind=dp), | public | :: | surface_charge_after | = | 0.0_dp | ||
| real(kind=dp), | public | :: | local_flight_charge_before | = | 0.0_dp | ||
| real(kind=dp), | public | :: | local_flight_charge_after | = | 0.0_dp | ||
| real(kind=dp), | public | :: | unresolved_stock_before | = | 0.0_dp | ||
| real(kind=dp), | public | :: | unresolved_stock_after | = | 0.0_dp | ||
| real(kind=dp), | public, | allocatable | :: | injected_from_remote(:) | |||
| real(kind=dp), | public, | allocatable | :: | emitted_from_surface(:) | |||
| real(kind=dp), | public, | allocatable | :: | absorbed_on_surface(:) | |||
| real(kind=dp), | public, | allocatable | :: | escaped_to_infinity(:) | |||
| real(kind=dp), | public, | allocatable | :: | discarded_unresolved(:) | |||
| real(kind=dp), | public, | allocatable | :: | neutral_return_correction(:) | |||
| real(kind=dp), | public, | allocatable | :: | neutral_return_weight_scale(:) | |||
| real(kind=dp), | public, | allocatable | :: | neutral_return_unresolved_fraction(:) | |||
| real(kind=dp), | public, | allocatable | :: | fixed_absorbed_target_charge(:) | |||
| real(kind=dp), | public, | allocatable | :: | fixed_absorbed_weight_scale(:) | |||
| real(kind=dp), | public, | allocatable | :: | fixed_emission_target_charge(:) | |||
| real(kind=dp), | public, | allocatable | :: | fixed_emission_weight_scale(:) | |||
| real(kind=dp), | public, | allocatable | :: | fixed_escape_target_charge(:) | |||
| real(kind=dp), | public, | allocatable | :: | fixed_escape_correction(:) | |||
| real(kind=dp), | public, | allocatable | :: | fixed_current_correction(:) | |||
| integer(kind=i64), | public, | allocatable | :: | injected_count(:) | |||
| integer(kind=i64), | public, | allocatable | :: | emitted_count(:) | |||
| integer(kind=i64), | public, | allocatable | :: | absorbed_count(:) | |||
| integer(kind=i64), | public, | allocatable | :: | escaped_count(:) | |||
| integer(kind=i64), | public, | allocatable | :: | discarded_unresolved_count(:) |
| procedure, public :: init => init_charge_ledger | |
| procedure, public :: reset => reset_charge_ledger | |
| procedure, public :: residual => charge_ledger_residual | |
| procedure, public :: discarded_unresolved_abs | |
| procedure, public :: has_unresolved_discard |
scale後のNeumaier和により、中間overflowを避けてsigned charge総和を返す。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | values(:) | |||
| character(len=*), | intent(in) | :: | context |
連続する batch ledger を、初期 stock と最終 stock を保って累積する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(charge_ledger_type), | intent(inout) | :: | cumulative | |||
| type(charge_ledger_type), | intent(in) | :: | batch |
有限なcharge incrementをoverflowさせずscalar accumulatorへ加える。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(inout) | :: | accumulator | |||
| real(kind=dp), | intent(in) | :: | increment | |||
| character(len=*), | intent(in) | :: | context |