read_mesh_groups_table Subroutine

public subroutine read_mesh_groups_table(table, key, authoring)

[mesh.groups.*] の table 群を読み込む。

Arguments

Type IntentOptional Attributes Name
type(toml_table), intent(inout) :: table
type(toml_key), intent(in) :: key
type(app_config_authoring), intent(inout) :: authoring

Calls

proc~~read_mesh_groups_table~~CallsGraph proc~read_mesh_groups_table read_mesh_groups_table get_keys get_keys proc~read_mesh_groups_table->get_keys get_value get_value proc~read_mesh_groups_table->get_value proc~apply_mesh_group_toml_table apply_mesh_group_toml_table proc~read_mesh_groups_table->proc~apply_mesh_group_toml_table proc~ensure_authoring_group_capacity ensure_authoring_group_capacity proc~read_mesh_groups_table->proc~ensure_authoring_group_capacity proc~require_toml_success require_toml_success proc~read_mesh_groups_table->proc~require_toml_success proc~apply_mesh_group_toml_table->get_keys proc~get_toml_real get_toml_real proc~apply_mesh_group_toml_table->proc~get_toml_real proc~get_toml_real3 get_toml_real3 proc~apply_mesh_group_toml_table->proc~get_toml_real3 proc~get_toml_string get_toml_string proc~apply_mesh_group_toml_table->proc~get_toml_string proc~lower_ascii lower_ascii proc~apply_mesh_group_toml_table->proc~lower_ascii proc~get_toml_real->get_value proc~get_toml_real->proc~require_toml_success proc~get_toml_real3->get_value proc~get_toml_real3->proc~require_toml_success toml_len toml_len proc~get_toml_real3->toml_len proc~get_toml_string->get_value proc~get_toml_string->proc~require_toml_success

Called by

proc~~read_mesh_groups_table~~CalledByGraph proc~read_mesh_groups_table read_mesh_groups_table proc~apply_mesh_toml_table apply_mesh_toml_table proc~apply_mesh_toml_table->proc~read_mesh_groups_table proc~apply_toml_document apply_toml_document proc~apply_toml_document->proc~apply_mesh_toml_table proc~load_toml_config load_toml_config proc~load_toml_config->proc~apply_toml_document proc~load_app_config load_app_config proc~load_app_config->proc~load_toml_config proc~load_or_init_run_state load_or_init_run_state proc~load_or_init_run_state->proc~load_app_config program~main main program~main->proc~load_or_init_run_state

Source Code

  subroutine read_mesh_groups_table(table, key, authoring)
    type(toml_table), intent(inout) :: table
    type(toml_key), intent(in) :: key
    type(app_config_authoring), intent(inout) :: authoring
    type(toml_table), pointer :: groups_table, group_table
    type(toml_key), allocatable :: group_keys(:)
    integer :: igroup, stat

    nullify (groups_table)
    call get_value(table, key, groups_table, stat=stat)
    call require_toml_success(stat, 'mesh.groups')
    if (.not. associated(groups_table)) error stop 'mesh.groups must be a table.'

    call groups_table%get_keys(group_keys)
    call ensure_authoring_group_capacity(authoring, size(group_keys))
    authoring%n_groups = int(size(group_keys), i32)
    if (size(group_keys) > 0) authoring%groups(1:size(group_keys)) = mesh_group_authoring_spec()
    do igroup = 1, size(group_keys)
      nullify (group_table)
      call get_value(groups_table, group_keys(igroup), group_table, stat=stat)
      call require_toml_success(stat, 'mesh.groups entry')
      if (.not. associated(group_table)) error stop 'mesh.groups entries must be tables.'
      authoring%groups(igroup)%name = trim(group_keys(igroup)%key)
      call apply_mesh_group_toml_table(authoring%groups(igroup), group_table)
    end do
  end subroutine read_mesh_groups_table