[mesh.groups.*] の table 群を読み込む。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(toml_table), | intent(inout) | :: | table | |||
| type(toml_key), | intent(in) | :: | key | |||
| type(app_config_authoring), | intent(inout) | :: | authoring |
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