zhao_atlas_main Program

Uses

  • program~~zhao_atlas_main~~UsesGraph program~zhao_atlas_main zhao_atlas_main module~bem_app_config bem_app_config program~zhao_atlas_main->module~bem_app_config module~bem_kinds bem_kinds program~zhao_atlas_main->module~bem_kinds module~bem_matching_plane_zhao_atlas bem_matching_plane_zhao_atlas program~zhao_atlas_main->module~bem_matching_plane_zhao_atlas module~bem_app_config_parser bem_app_config_parser module~bem_app_config->module~bem_app_config_parser module~bem_app_config_runtime bem_app_config_runtime module~bem_app_config->module~bem_app_config_runtime module~bem_app_config_types bem_app_config_types module~bem_app_config->module~bem_app_config_types module~bem_physics_config_types bem_physics_config_types module~bem_app_config->module~bem_physics_config_types module~bem_string_utils bem_string_utils module~bem_app_config->module~bem_string_utils iso_fortran_env iso_fortran_env module~bem_kinds->iso_fortran_env module~bem_matching_plane_zhao_atlas->module~bem_kinds ieee_arithmetic ieee_arithmetic module~bem_matching_plane_zhao_atlas->ieee_arithmetic module~bem_matching_plane_zhao_atlas->module~bem_app_config_types module~bem_filesystem bem_filesystem module~bem_matching_plane_zhao_atlas->module~bem_filesystem module~bem_matching_plane_query_io bem_matching_plane_query_io module~bem_matching_plane_zhao_atlas->module~bem_matching_plane_query_io module~bem_matching_plane_response bem_matching_plane_response module~bem_matching_plane_zhao_atlas->module~bem_matching_plane_response module~bem_matching_plane_response_provider bem_matching_plane_response_provider module~bem_matching_plane_zhao_atlas->module~bem_matching_plane_response_provider module~bem_matching_plane_zhao bem_matching_plane_zhao module~bem_matching_plane_zhao_atlas->module~bem_matching_plane_zhao module~bem_mpi bem_mpi module~bem_matching_plane_zhao_atlas->module~bem_mpi module~bem_matching_plane_zhao_atlas->module~bem_string_utils module~bem_app_config_parser->module~bem_kinds module~bem_app_config_parser->ieee_arithmetic module~bem_app_config_parser->module~bem_app_config_types module~bem_app_config_parser->module~bem_physics_config_types module~bem_app_config_parser->module~bem_string_utils module~bem_app_config_authoring bem_app_config_authoring module~bem_app_config_parser->module~bem_app_config_authoring module~bem_config_toml bem_config_toml module~bem_app_config_parser->module~bem_config_toml module~bem_injection_flux bem_injection_flux module~bem_app_config_parser->module~bem_injection_flux module~bem_injection_geometry bem_injection_geometry module~bem_app_config_parser->module~bem_injection_geometry module~bem_types bem_types module~bem_app_config_parser->module~bem_types tomlf tomlf module~bem_app_config_parser->tomlf module~bem_app_config_mesh_runtime bem_app_config_mesh_runtime module~bem_app_config_runtime->module~bem_app_config_mesh_runtime module~bem_app_config_particle_runtime bem_app_config_particle_runtime module~bem_app_config_runtime->module~bem_app_config_particle_runtime module~bem_app_config_potential_runtime bem_app_config_potential_runtime module~bem_app_config_runtime->module~bem_app_config_potential_runtime module~bem_app_config_types->module~bem_kinds module~bem_app_config_types->module~bem_physics_config_types module~bem_app_config_types->module~bem_types iso_c_binding iso_c_binding module~bem_filesystem->iso_c_binding module~bem_matching_plane_query_io->module~bem_kinds module~bem_matching_plane_query_io->ieee_arithmetic module~bem_matching_plane_query_io->module~bem_string_utils module~bem_matching_plane_response->module~bem_kinds module~bem_matching_plane_response->ieee_arithmetic module~bem_matching_plane_response->module~bem_mpi module~bem_matching_plane_contract bem_matching_plane_contract module~bem_matching_plane_response->module~bem_matching_plane_contract module~bem_matching_plane_response_provider->module~bem_kinds module~bem_matching_plane_response_provider->ieee_arithmetic module~bem_matching_plane_response_provider->module~bem_app_config_types module~bem_matching_plane_response_provider->module~bem_matching_plane_response module~bem_matching_plane_response_provider->module~bem_matching_plane_zhao module~bem_matching_plane_response_provider->module~bem_mpi module~bem_matching_plane_zhao->module~bem_kinds module~bem_matching_plane_zhao->ieee_arithmetic module~bem_matching_plane_zhao->module~bem_string_utils module~bem_constants bem_constants module~bem_matching_plane_zhao->module~bem_constants module~bem_matching_plane_zhao->module~bem_matching_plane_contract module~bem_sheath_model_core bem_sheath_model_core module~bem_matching_plane_zhao->module~bem_sheath_model_core module~bem_mpi->module~bem_kinds module~bem_physics_config_types->module~bem_kinds module~bem_physics_config_types->ieee_arithmetic module~bem_physics_config_types->module~bem_string_utils module~bem_physics_config_types->module~bem_types module~bem_app_config_authoring->module~bem_kinds module~bem_app_config_authoring->module~bem_app_config_types module~bem_app_config_authoring_types bem_app_config_authoring_types module~bem_app_config_authoring->module~bem_app_config_authoring_types module~bem_app_config_mesh_runtime->module~bem_kinds module~bem_app_config_mesh_runtime->ieee_arithmetic module~bem_app_config_mesh_runtime->module~bem_app_config_types module~bem_app_config_mesh_runtime->module~bem_string_utils module~bem_app_config_mesh_runtime->module~bem_types module~bem_importers bem_importers module~bem_app_config_mesh_runtime->module~bem_importers module~bem_mesh bem_mesh module~bem_app_config_mesh_runtime->module~bem_mesh module~bem_panel_surface_sides bem_panel_surface_sides module~bem_app_config_mesh_runtime->module~bem_panel_surface_sides module~bem_templates bem_templates module~bem_app_config_mesh_runtime->module~bem_templates module~bem_app_config_particle_runtime->module~bem_kinds module~bem_app_config_particle_runtime->ieee_arithmetic module~bem_app_config_particle_runtime->iso_fortran_env module~bem_app_config_particle_runtime->module~bem_app_config_types module~bem_app_config_particle_runtime->module~bem_mpi module~bem_app_config_particle_runtime->module~bem_string_utils module~bem_app_config_particle_runtime->module~bem_app_config_potential_runtime module~bem_app_config_particle_runtime->module~bem_constants module~bem_app_config_particle_runtime->module~bem_types module~bem_collision bem_collision module~bem_app_config_particle_runtime->module~bem_collision module~bem_config_helpers bem_config_helpers module~bem_app_config_particle_runtime->module~bem_config_helpers module~bem_electrostatic_snapshot bem_electrostatic_snapshot module~bem_app_config_particle_runtime->module~bem_electrostatic_snapshot module~bem_external_boundary_contract bem_external_boundary_contract module~bem_app_config_particle_runtime->module~bem_external_boundary_contract module~bem_injection bem_injection module~bem_app_config_particle_runtime->module~bem_injection module~bem_app_config_potential_runtime->module~bem_kinds module~bem_app_config_potential_runtime->ieee_arithmetic module~bem_app_config_potential_runtime->iso_fortran_env module~bem_app_config_potential_runtime->module~bem_app_config_types module~bem_app_config_potential_runtime->module~bem_string_utils module~bem_app_config_potential_runtime->module~bem_constants module~bem_app_config_potential_runtime->module~bem_types module~bem_app_config_potential_runtime->module~bem_config_helpers module~bem_app_config_potential_runtime->module~bem_electrostatic_snapshot module~bem_config_toml->module~bem_kinds module~bem_config_toml->ieee_arithmetic module~bem_config_toml->iso_fortran_env module~bem_config_toml->module~bem_app_config_types module~bem_config_toml->module~bem_string_utils module~bem_config_toml->module~bem_types module~bem_config_toml->tomlf module~bem_constants->module~bem_kinds module~bem_injection_flux->module~bem_kinds module~bem_injection_flux->ieee_arithmetic module~bem_injection_flux->module~bem_constants module~bem_injection_flux->module~bem_injection_geometry module~bem_injection_random bem_injection_random module~bem_injection_flux->module~bem_injection_random module~bem_injection_geometry->module~bem_kinds module~bem_injection_geometry->module~bem_string_utils module~bem_matching_plane_contract->module~bem_kinds module~bem_sheath_model_core->module~bem_kinds module~bem_sheath_model_core->ieee_arithmetic module~bem_sheath_model_core->module~bem_constants module~bem_types->module~bem_kinds module~bem_app_config_authoring_types->module~bem_kinds module~bem_app_config_authoring_types->module~bem_app_config_types module~bem_collision->module~bem_kinds module~bem_collision->ieee_arithmetic module~bem_collision->iso_fortran_env module~bem_collision->module~bem_string_utils module~bem_collision->module~bem_types module~bem_config_helpers->module~bem_kinds module~bem_config_helpers->module~bem_app_config_types module~bem_config_helpers->module~bem_string_utils module~bem_config_helpers->module~bem_types module~bem_electrostatic_snapshot->module~bem_kinds module~bem_electrostatic_snapshot->ieee_arithmetic module~bem_electrostatic_snapshot->module~bem_physics_config_types module~bem_electrostatic_snapshot->module~bem_string_utils module~bem_electrostatic_snapshot->module~bem_constants module~bem_electrostatic_snapshot->module~bem_types module~bem_coulomb_fmm_periodic_nonzero_reference bem_coulomb_fmm_periodic_nonzero_reference module~bem_electrostatic_snapshot->module~bem_coulomb_fmm_periodic_nonzero_reference module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum bem_coulomb_fmm_periodic_nonzero_upper_vacuum module~bem_electrostatic_snapshot->module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum module~bem_field_solver bem_field_solver module~bem_electrostatic_snapshot->module~bem_field_solver module~bem_panel_geometry bem_panel_geometry module~bem_electrostatic_snapshot->module~bem_panel_geometry module~bem_panel_kernel bem_panel_kernel module~bem_electrostatic_snapshot->module~bem_panel_kernel module~bem_periodic_zero_mode_eval bem_periodic_zero_mode_eval module~bem_electrostatic_snapshot->module~bem_periodic_zero_mode_eval module~bem_periodic_zero_mode_plan bem_periodic_zero_mode_plan module~bem_electrostatic_snapshot->module~bem_periodic_zero_mode_plan module~bem_external_boundary_contract->module~bem_kinds module~bem_external_boundary_contract->module~bem_string_utils module~bem_importers->module~bem_kinds module~bem_importers->module~bem_types module~bem_importers->module~bem_mesh module~bem_injection->module~bem_injection_flux module~bem_injection->module~bem_injection_geometry module~bem_injection->module~bem_injection_random module~bem_injection_velocity_grid bem_injection_velocity_grid module~bem_injection->module~bem_injection_velocity_grid module~bem_photoelectron_injection bem_photoelectron_injection module~bem_injection->module~bem_photoelectron_injection module~bem_injection_random->module~bem_kinds module~bem_injection_random->module~bem_constants module~bem_injection_random->module~bem_types module~bem_particles bem_particles module~bem_injection_random->module~bem_particles module~bem_mesh->module~bem_kinds module~bem_mesh->ieee_arithmetic module~bem_mesh->module~bem_string_utils module~bem_mesh->module~bem_types module~bem_mesh->module~bem_panel_geometry module~bem_triangle_quadrature bem_triangle_quadrature module~bem_mesh->module~bem_triangle_quadrature module~bem_panel_surface_sides->module~bem_kinds module~bem_panel_surface_sides->module~bem_string_utils module~bem_panel_surface_sides->module~bem_types module~bem_templates->module~bem_kinds module~bem_templates->module~bem_types module~bem_templates->module~bem_mesh module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_kinds module~bem_coulomb_fmm_periodic_nonzero_reference->ieee_arithmetic module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_constants module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_types module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_panel_geometry module~bem_coulomb_fmm_periodic_nonzero_reference->module~bem_triangle_quadrature module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum->module~bem_kinds module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum->ieee_arithmetic module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum->module~bem_constants module~bem_coulomb_fmm_periodic_nonzero_upper_vacuum->module~bem_types module~bem_field_solver->module~bem_kinds module~bem_field_solver->ieee_arithmetic module~bem_field_solver->module~bem_physics_config_types module~bem_field_solver->module~bem_string_utils module~bem_field_solver->module~bem_constants module~bem_field_solver->module~bem_types module~bem_coulomb_fmm_core bem_coulomb_fmm_core module~bem_field_solver->module~bem_coulomb_fmm_core module~bem_injection_velocity_grid->module~bem_kinds module~bem_injection_velocity_grid->ieee_arithmetic module~bem_injection_velocity_grid->module~bem_string_utils module~bem_injection_velocity_grid->module~bem_injection_geometry module~bem_panel_geometry->module~bem_kinds module~bem_panel_geometry->ieee_arithmetic module~bem_panel_kernel->module~bem_kinds module~bem_panel_kernel->module~bem_constants module~bem_panel_kernel->module~bem_panel_geometry module~bem_panel_self_terms bem_panel_self_terms module~bem_panel_kernel->module~bem_panel_self_terms module~bem_particles->module~bem_kinds module~bem_particles->module~bem_types module~bem_periodic_zero_mode_eval->module~bem_kinds module~bem_periodic_zero_mode_eval->module~bem_constants module~bem_periodic_zero_mode_eval->module~bem_periodic_zero_mode_plan module~bem_periodic_zero_mode_plan->module~bem_kinds module~bem_periodic_zero_mode_plan->ieee_arithmetic module~bem_periodic_zero_mode_plan->module~bem_constants module~bem_periodic_zero_mode_plan->module~bem_types module~bem_photoelectron_injection->module~bem_kinds module~bem_photoelectron_injection->iso_fortran_env module~bem_photoelectron_injection->module~bem_string_utils module~bem_photoelectron_injection->module~bem_constants module~bem_photoelectron_injection->module~bem_injection_flux module~bem_photoelectron_injection->module~bem_injection_geometry module~bem_photoelectron_injection->module~bem_types module~bem_photoelectron_injection->module~bem_collision module~bem_photoelectron_injection->module~bem_injection_random module~bem_boundary bem_boundary module~bem_photoelectron_injection->module~bem_boundary module~bem_triangle_quadrature->module~bem_kinds module~bem_triangle_quadrature->module~bem_constants module~bem_triangle_quadrature->module~bem_panel_geometry module~bem_boundary->module~bem_kinds module~bem_boundary->ieee_arithmetic module~bem_boundary->module~bem_types module~bem_coulomb_fmm_core->module~bem_kinds module~bem_coulomb_fmm_types bem_coulomb_fmm_types module~bem_coulomb_fmm_core->module~bem_coulomb_fmm_types module~bem_panel_self_terms->module~bem_kinds module~bem_panel_self_terms->module~bem_panel_geometry module~bem_coulomb_fmm_types->module~bem_kinds module~bem_coulomb_fmm_types->module~bem_panel_geometry module~bem_coulomb_fmm_types->module~bem_periodic_zero_mode_plan

Zhao A/B/C solvability atlasを生成するCLI。


Calls

program~~zhao_atlas_main~~CallsGraph program~zhao_atlas_main zhao_atlas_main proc~default_app_config default_app_config program~zhao_atlas_main->proc~default_app_config proc~generate_matching_plane_zhao_atlas generate_matching_plane_zhao_atlas program~zhao_atlas_main->proc~generate_matching_plane_zhao_atlas proc~load_app_config load_app_config program~zhao_atlas_main->proc~load_app_config proc~print_usage~2 print_usage program~zhao_atlas_main->proc~print_usage~2 proc~normalize_legacy_physics_config normalize_legacy_physics_config proc~default_app_config->proc~normalize_legacy_physics_config none~evaluate_zhao_local matching_plane_response_provider_type%evaluate_zhao_local proc~generate_matching_plane_zhao_atlas->none~evaluate_zhao_local none~initialize~2 matching_plane_response_provider_type%initialize proc~generate_matching_plane_zhao_atlas->none~initialize~2 proc~atomic_rename atomic_rename proc~generate_matching_plane_zhao_atlas->proc~atomic_rename proc~lower_ascii lower_ascii proc~generate_matching_plane_zhao_atlas->proc~lower_ascii proc~read_matching_plane_query_csv read_matching_plane_query_csv proc~generate_matching_plane_zhao_atlas->proc~read_matching_plane_query_csv proc~has_suffix has_suffix proc~load_app_config->proc~has_suffix proc~load_toml_config load_toml_config proc~load_app_config->proc~load_toml_config proc~load_app_config->proc~lower_ascii none~evaluate~2 matching_plane_zhao_model_type%evaluate none~evaluate_zhao_local->none~evaluate~2 destroy destroy proc~load_toml_config->destroy proc~apply_toml_document apply_toml_document proc~load_toml_config->proc~apply_toml_document proc~init_app_config_authoring init_app_config_authoring proc~load_toml_config->proc~init_app_config_authoring proc~resolve_surface_current_model_path resolve_surface_current_model_path proc~load_toml_config->proc~resolve_surface_current_model_path toml_parse toml_parse proc~load_toml_config->toml_parse proc~normalize_legacy_physics_config->proc~lower_ascii proc~derive_field_panel_config derive_field_panel_config proc~normalize_legacy_physics_config->proc~derive_field_panel_config proc~is_decimal_real_token is_decimal_real_token proc~read_matching_plane_query_csv->proc~is_decimal_real_token proc~apply_toml_document->proc~lower_ascii get_keys get_keys proc~apply_toml_document->get_keys get_value get_value proc~apply_toml_document->get_value interface~apply_domain_toml_table apply_domain_toml_table proc~apply_toml_document->interface~apply_domain_toml_table interface~apply_field_boundary_toml_table apply_field_boundary_toml_table proc~apply_toml_document->interface~apply_field_boundary_toml_table interface~apply_mesh_toml_table apply_mesh_toml_table proc~apply_toml_document->interface~apply_mesh_toml_table interface~apply_output_toml_table apply_output_toml_table proc~apply_toml_document->interface~apply_output_toml_table interface~apply_particle_boundary_toml_table apply_particle_boundary_toml_table proc~apply_toml_document->interface~apply_particle_boundary_toml_table interface~apply_particles_toml_table apply_particles_toml_table proc~apply_toml_document->interface~apply_particles_toml_table interface~apply_periodic2_toml_table apply_periodic2_toml_table proc~apply_toml_document->interface~apply_periodic2_toml_table interface~apply_reservoir_toml_table apply_reservoir_toml_table proc~apply_toml_document->interface~apply_reservoir_toml_table interface~apply_sim_toml_table apply_sim_toml_table proc~apply_toml_document->interface~apply_sim_toml_table interface~apply_surface_current_model_toml_table apply_surface_current_model_toml_table proc~apply_toml_document->interface~apply_surface_current_model_toml_table proc~require_toml_success require_toml_success proc~apply_toml_document->proc~require_toml_success proc~derive_field_panel_config->proc~lower_ascii proc~stop_config_error stop_config_error proc~require_toml_success->proc~stop_config_error

Variables

Type Attributes Name Initial
type(app_config) :: cfg
character(len=1024) :: config_path
character(len=1024) :: query_path
character(len=1024) :: output_path
character(len=512) :: message
integer(kind=i32) :: status

Subroutines

subroutine print_usage()

Arguments

None

Source Code

program zhao_atlas_main
  use bem_kinds, only: i32
  use bem_app_config, only: app_config, default_app_config, load_app_config
  use bem_matching_plane_zhao_atlas, only: generate_matching_plane_zhao_atlas, &
                                           matching_plane_atlas_ok
  implicit none

  type(app_config) :: cfg
  character(len=1024) :: config_path, query_path, output_path
  character(len=512) :: message
  integer(i32) :: status

  if (command_argument_count() == 1) then
    call get_command_argument(1, config_path)
    if (trim(config_path) == '--help' .or. trim(config_path) == '-h') then
      call print_usage()
      stop
    end if
  end if
  if (command_argument_count() /= 3) then
    call print_usage()
    error stop 'beach-zhao-atlas requires exactly three positional arguments.'
  end if

  call get_command_argument(1, config_path)
  call get_command_argument(2, query_path)
  call get_command_argument(3, output_path)
  call default_app_config(cfg)
  call load_app_config(trim(config_path), cfg)
  call generate_matching_plane_zhao_atlas( &
    cfg, trim(query_path), trim(output_path), status, message &
    )
  if (status /= matching_plane_atlas_ok) error stop trim(message)
  print '(a,a)', 'matching-plane Zhao atlas written to ', trim(output_path)

contains

  subroutine print_usage()
    print '(a)', 'usage: beach-zhao-atlas <beach.toml> <query-grid.csv> <atlas.csv>'
  end subroutine print_usage

end program zhao_atlas_main