Reads the &boundary_input namelist block.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | filename | |||
| type(case_params_t), | intent(inout) | :: | params |
| Name | Type | Default | Description |
|---|---|---|---|
| n_patches | integer | None | |
| patch_name | character(len=name_len) | None | |
| patch_type | character(len=name_len) | None | |
| patch_velocity_type | character(len=name_len) | None | |
| patch_pressure_type | character(len=name_len) | None | |
| patch_temperature_type | character(len=name_len) | None | |
| patch_species_type | character(len=name_len) | None | |
| patch_u | real(kind=rk) | None | |
| patch_v | real(kind=rk) | None | |
| patch_w | real(kind=rk) | None | |
| patch_p | real(kind=rk) | None | |
| patch_dpdn | real(kind=rk) | None | |
| patch_T | real(kind=rk) | None | |
| patch_Y | real(kind=rk) | zero |
subroutine read_boundary_input(filename, params) character(len=*), intent(in) :: filename type(case_params_t), intent(inout) :: params integer :: n_patches character(len=name_len) :: patch_name(max_patches) character(len=name_len) :: patch_type(max_patches) character(len=name_len) :: patch_velocity_type(max_patches) character(len=name_len) :: patch_pressure_type(max_patches) character(len=name_len) :: patch_temperature_type(max_patches) character(len=name_len) :: patch_species_type(max_patches) real(rk) :: patch_u(max_patches) real(rk) :: patch_v(max_patches) real(rk) :: patch_w(max_patches) real(rk) :: patch_p(max_patches) real(rk) :: patch_dpdn(max_patches) real(rk) :: patch_T(max_patches) real(rk), save :: patch_Y(max_species, max_patches) = zero integer :: unit_id, ios, i namelist /boundary_input/ n_patches, patch_name, patch_type, & patch_velocity_type, patch_pressure_type, & patch_temperature_type, patch_species_type, & patch_u, patch_v, patch_w, patch_p, patch_dpdn, patch_T, patch_Y n_patches = params%n_patches patch_name = params%patch_name patch_type = params%patch_type patch_velocity_type = params%patch_velocity_type patch_pressure_type = params%patch_pressure_type patch_temperature_type = params%patch_temperature_type patch_species_type = params%patch_species_type patch_u = params%patch_u patch_v = params%patch_v patch_w = params%patch_w patch_p = params%patch_p patch_dpdn = params%patch_dpdn patch_T = params%patch_T patch_Y = params%patch_Y call open_namelist_file(filename, unit_id, ios) if (ios == 0) then read(unit_id, nml=boundary_input, iostat=ios) close(unit_id) end if if (ios > 0) call fatal_error('input', 'failed reading &boundary_input') params%n_patches = n_patches params%patch_name = patch_name params%patch_type = patch_type params%patch_velocity_type = patch_velocity_type params%patch_pressure_type = patch_pressure_type params%patch_temperature_type = patch_temperature_type params%patch_species_type = patch_species_type do i = 1, max_patches params%patch_type(i) = trim(lowercase(params%patch_type(i))) params%patch_velocity_type(i) = trim(lowercase(params%patch_velocity_type(i))) params%patch_pressure_type(i) = trim(lowercase(params%patch_pressure_type(i))) params%patch_temperature_type(i) = trim(lowercase(params%patch_temperature_type(i))) params%patch_species_type(i) = trim(lowercase(params%patch_species_type(i))) end do params%patch_u = patch_u params%patch_v = patch_v params%patch_w = patch_w params%patch_p = patch_p params%patch_dpdn = patch_dpdn params%patch_T = patch_T params%patch_Y = patch_Y end subroutine read_boundary_input