handle_early_cli Subroutine

subroutine handle_early_cli()

MPI 初期化や計算状態の構築前に完結する CLI option を処理する。

Arguments

None

Calls

proc~~handle_early_cli~~CallsGraph proc~handle_early_cli handle_early_cli proc~default_app_config default_app_config proc~handle_early_cli->proc~default_app_config proc~load_app_config load_app_config proc~handle_early_cli->proc~load_app_config proc~normalize_legacy_physics_config normalize_legacy_physics_config proc~default_app_config->proc~normalize_legacy_physics_config 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~lower_ascii lower_ascii proc~load_app_config->proc~lower_ascii 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~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

Called by

proc~~handle_early_cli~~CalledByGraph proc~handle_early_cli handle_early_cli program~main main program~main->proc~handle_early_cli

Source Code

  subroutine handle_early_cli()
    character(len=256) :: arg
    character(len=:), allocatable :: config_path
    integer :: path_length

    if (command_argument_count() < 1) return
    call get_command_argument(1, arg)
    select case (trim(arg))
    case ('--version', '-V')
      print '(a)', trim(beach_version)
      stop
    case ('--build-info')
      print '(a)', beach_build_info
      stop
    case ('--check-config')
      if (command_argument_count() /= 2) error stop 'usage: beach --check-config beach.toml'
      call get_command_argument(2, length=path_length)
      allocate (character(len=path_length) :: config_path)
      call get_command_argument(2, config_path)
      call default_app_config(app)
      call load_app_config(config_path, app)
      print '(a,a)', 'config=', config_path
      print '(a)', 'checks=toml,semantic'
      print '(a)', 'status=ok'
      stop
    case ('--help', '-h')
      print '(a)', 'usage: beach [beach.toml]'
      print '(a)', '       beach --check-config beach.toml'
      print '(a)', '       beach --version'
      print '(a)', '       beach --build-info'
      stop
    end select
  end subroutine handle_early_cli