Reads the &species_input namelist block.
Implements strict error checking to catch typos in chemical species names or advection settings.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | filename | |||
| type(case_params_t), | intent(inout) | :: | params |
| Name | Type | Default | Description |
|---|---|---|---|
| enable_species | logical | None | |
| enable_reactions | logical | None | |
| enable_cantera | logical | None | |
| nspecies | integer | None | |
| species_name | character(len=name_len) | "" | |
| species_diffusivity | real(kind=rk) | zero | |
| initial_Y | real(kind=rk) | zero |
subroutine read_species_input(filename, params) character(len=*), intent(in) :: filename type(case_params_t), intent(inout) :: params logical :: enable_species, enable_reactions, enable_cantera integer :: nspecies character(len=name_len), save :: species_name(max_species) = "" real(rk), save :: species_diffusivity(max_species) = zero real(rk), save :: initial_Y(max_species) = zero integer :: unit_id, ios namelist /species_input/ enable_species, enable_reactions, enable_cantera, & nspecies, species_name, species_diffusivity, initial_Y enable_species = params%enable_species enable_reactions = params%enable_reactions enable_cantera = params%enable_cantera_species nspecies = params%nspecies species_name = params%species_name species_diffusivity = params%species_diffusivity initial_Y = params%initial_Y call open_namelist_file(filename, unit_id, ios) if (ios == 0) then read(unit_id, nml=species_input, iostat=ios) close(unit_id) end if if (ios /= 0 .and. ios /= -1) then call fatal_error('input', 'failed reading &species_input. Check for unknown variables or typos.') end if if (ios == 0) then params%enable_species = enable_species params%enable_reactions = enable_reactions params%enable_cantera_species = enable_cantera params%nspecies = nspecies params%species_name = species_name params%species_diffusivity = species_diffusivity params%initial_Y = initial_Y ! Save original namelist values params%namelist_nspecies = nspecies params%namelist_species_name = species_name end if end subroutine read_species_input