設定されたmodelをdispatchし、固定電流closure用のtarget配列を返す。 zhao_stationary で outer を渡すと、後の更新に使う外部解を返す。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(app_config), | intent(in) | :: | app | |||
| type(surface_current_model_result_type), | intent(out) | :: | result | |||
| type(irradiation_cell_contract_type), | intent(in), | optional | :: | cell | ||
| type(sheath_matching_iteration), | intent(out), | optional | :: | outer |
subroutine evaluate_surface_current_model(app, result, cell, outer) type(app_config), intent(in) :: app type(surface_current_model_result_type), intent(out) :: result type(irradiation_cell_contract_type), intent(in), optional :: cell type(sheath_matching_iteration), intent(out), optional :: outer type(sheath_matching_iteration) :: local_outer type(irradiation_cell_contract_type) :: active_cell integer(i32) :: status character(len=256) :: message if (present(cell)) then active_cell = cell else call resolve_irradiation_cell_contract(app, active_cell, status, message) if (status /= irradiation_cell_ok) error stop trim(message) end if call allocate_closure_channels(app, result) result%model = trim(lower_ascii(app%surface_current%model)) select case (trim(result%model)) case ('none') return case ('zhao_stationary') call evaluate_zhao_stationary_current(app, result, active_cell, local_outer) if (present(outer)) outer = local_outer case default error stop 'Unknown surface current model dispatch.' end select end subroutine evaluate_surface_current_model