[mesh] TOML テーブルをメッシュ入力設定へ適用する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(app_config), | intent(inout) | :: | cfg | |||
| type(toml_table), | intent(inout) | :: | table | |||
| type(app_config_authoring), | intent(inout) | :: | authoring |
subroutine apply_mesh_toml_table(cfg, table, authoring) type(app_config), intent(inout) :: cfg type(toml_table), intent(inout) :: table type(app_config_authoring), intent(inout) :: authoring type(toml_key), allocatable :: keys(:) integer :: ikey character(len=:), allocatable :: k call table%get_keys(keys) do ikey = 1, size(keys) k = lower_ascii(trim(keys(ikey)%key)) select case (trim(k)) case ('mode') call get_toml_string(table, keys(ikey), cfg%mesh_mode, 'mesh.mode') case ('obj_path') call get_toml_string(table, keys(ikey), cfg%obj_path, 'mesh.obj_path') case ('surface_model') call get_toml_string(table, keys(ikey), cfg%mesh_surface_model, 'mesh.surface_model') cfg%mesh_surface_model = lower_ascii(trim(cfg%mesh_surface_model)) case ('epsilon_r') call get_toml_real(table, keys(ikey), cfg%mesh_epsilon_r, 'mesh.epsilon_r') case ('obj_scale') call get_toml_real(table, keys(ikey), cfg%obj_scale, 'mesh.obj_scale') case ('obj_rotation') call get_toml_real3(table, keys(ikey), cfg%obj_rotation, 'mesh.obj_rotation') case ('obj_offset') call get_toml_real3(table, keys(ikey), cfg%obj_offset, 'mesh.obj_offset') case ('templates') call read_template_array(cfg, table, keys(ikey), authoring) case ('groups') call read_mesh_groups_table(table, keys(ikey), authoring) case default error stop 'Unknown key in [mesh]: '//trim(keys(ikey)%key) end select end do end subroutine apply_mesh_toml_table