Reads the optional &ignition_input namelist block.
The ignition kernel is an initialization aid, not a time-dependent source. It overwrites temperature and optionally composition inside a spherical region before the first timestep, then the caller refreshes thermodynamics.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | filename | |||
| type(case_params_t), | intent(inout) | :: | params |
| Name | Type | Default | Description |
|---|---|---|---|
| enable_ignition_kernel | logical | None | |
| ignition_kernel_shape | character(len=name_len) | None | |
| ignition_kernel_center | real(kind=rk) | None | |
| ignition_kernel_radius | real(kind=rk) | None | |
| ignition_kernel_T | real(kind=rk) | None | |
| ignition_kernel_composition | character(len=1024) | None | |
| ignition_kernel_blend | character(len=name_len) | None |
subroutine read_ignition_input(filename, params) character(len=*), intent(in) :: filename type(case_params_t), intent(inout) :: params logical :: enable_ignition_kernel character(len=name_len) :: ignition_kernel_shape real(rk) :: ignition_kernel_center(3) real(rk) :: ignition_kernel_radius real(rk) :: ignition_kernel_T character(len=1024) :: ignition_kernel_composition character(len=name_len) :: ignition_kernel_blend integer :: unit_id, ios namelist /ignition_input/ enable_ignition_kernel, ignition_kernel_shape, & ignition_kernel_center, ignition_kernel_radius, & ignition_kernel_T, ignition_kernel_composition, & ignition_kernel_blend enable_ignition_kernel = params%enable_ignition_kernel ignition_kernel_shape = params%ignition_kernel_shape ignition_kernel_center = params%ignition_kernel_center ignition_kernel_radius = params%ignition_kernel_radius ignition_kernel_T = params%ignition_kernel_T ignition_kernel_composition = params%ignition_kernel_composition ignition_kernel_blend = params%ignition_kernel_blend call open_namelist_file(filename, unit_id, ios) if (ios == 0) then read(unit_id, nml=ignition_input, iostat=ios) close(unit_id) end if if (ios /= 0 .and. ios /= -1) then call fatal_error('input', 'failed reading &ignition_input. Check for unknown variables or typos.') end if if (ios == 0) then params%enable_ignition_kernel = enable_ignition_kernel params%ignition_kernel_shape = trim(lowercase(ignition_kernel_shape)) params%ignition_kernel_center = ignition_kernel_center params%ignition_kernel_radius = ignition_kernel_radius params%ignition_kernel_T = ignition_kernel_T params%ignition_kernel_composition = trim(ignition_kernel_composition) params%ignition_kernel_blend = trim(lowercase(ignition_kernel_blend)) end if end subroutine read_ignition_input