normalize_legacy_physics_config Subroutine

public subroutine normalize_legacy_physics_config(sim, field, periodic2, panel)

現行 sim_config を型付き場設定へ写像する。

Arguments

Type IntentOptional Attributes Name
type(sim_config), intent(in) :: sim
type(field_physics_config), intent(out) :: field
type(periodic2_physics_config), intent(out) :: periodic2
type(panel_kernel_config), intent(out) :: panel

Calls

proc~~normalize_legacy_physics_config~~CallsGraph proc~normalize_legacy_physics_config normalize_legacy_physics_config proc~derive_field_panel_config derive_field_panel_config proc~normalize_legacy_physics_config->proc~derive_field_panel_config proc~lower_ascii lower_ascii proc~normalize_legacy_physics_config->proc~lower_ascii proc~derive_field_panel_config->proc~lower_ascii

Called by

proc~~normalize_legacy_physics_config~~CalledByGraph proc~normalize_legacy_physics_config normalize_legacy_physics_config proc~default_app_config default_app_config proc~default_app_config->proc~normalize_legacy_physics_config proc~handle_early_cli handle_early_cli proc~handle_early_cli->proc~default_app_config proc~load_or_init_run_state load_or_init_run_state proc~load_or_init_run_state->proc~default_app_config program~zhao_atlas_main zhao_atlas_main program~zhao_atlas_main->proc~default_app_config program~zhao_response_main zhao_response_main program~zhao_response_main->proc~default_app_config program~main main program~main->proc~handle_early_cli program~main->proc~load_or_init_run_state

Source Code

  subroutine normalize_legacy_physics_config(sim, field, periodic2, panel)
    type(sim_config), intent(in) :: sim
    type(field_physics_config), intent(out) :: field
    type(periodic2_physics_config), intent(out) :: periodic2
    type(panel_kernel_config), intent(out) :: panel
    character(len=32) :: bc_mode, far_mode

    call derive_field_panel_config(sim, field, panel)
    periodic2 = periodic2_physics_config()

    bc_mode = lower_ascii(trim(sim%field_bc_mode))
    if (trim(bc_mode) /= 'periodic2') return

    far_mode = lower_ascii(trim(sim%field_periodic_far_correction))
    select case (trim(far_mode))
    case ('none', 'auto')
      periodic2%nonzero_mode_backend = 'legacy_finite_images'
      periodic2%zero_mode_policy = 'legacy_not_decomposed'
      periodic2%lower_boundary_model = 'legacy_implicit'
    case ('cached_kneq0')
      periodic2%nonzero_mode_backend = 'cached_kneq0'
      periodic2%zero_mode_policy = 'exclude_k0'
      periodic2%lower_boundary_model = 'e_bottom_zero'
    case default
      periodic2%nonzero_mode_backend = 'invalid'
      periodic2%zero_mode_policy = 'invalid'
      periodic2%lower_boundary_model = 'invalid'
    end select
  end subroutine normalize_legacy_physics_config