read_energy_input Subroutine

private subroutine read_energy_input(filename, params)

Reads the &output_input namelist block. Reads the &energy_input namelist block.

Reads controls for sensible-enthalpy transport. Cantera thermo, when enabled, preserves transported h and recovers T(h,Y,p0) every energy step; thermo_update_interval is reserved and must remain 1.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: filename
type(case_params_t), intent(inout) :: params

Namelists

Namelist energy_input


Variables

Name Type Default Description
enable_energy logical None
enable_cantera_thermo logical None
enable_species_enthalpy_diffusion logical None
thermo_default_species character(len=name_len) None
thermo_update_interval integer None
initial_T real(kind=rk) None
energy_reference_T real(kind=rk) None
energy_reference_h real(kind=rk) None
energy_cp real(kind=rk) None
energy_lambda real(kind=rk) None

Source Code

   subroutine read_energy_input(filename, params)
      character(len=*), intent(in) :: filename
      type(case_params_t), intent(inout) :: params

      logical :: enable_energy
      logical :: enable_cantera_thermo
      logical :: enable_species_enthalpy_diffusion
      integer :: thermo_update_interval
      character(len=name_len) :: thermo_default_species
      real(rk) :: initial_T
      real(rk) :: energy_reference_T
      real(rk) :: energy_reference_h
      real(rk) :: energy_cp
      real(rk) :: energy_lambda
      integer :: unit_id, ios

      namelist /energy_input/ enable_energy, enable_cantera_thermo, enable_species_enthalpy_diffusion, &
                               thermo_default_species, thermo_update_interval, &
                               initial_T, energy_reference_T, energy_reference_h, &
                               energy_cp, energy_lambda

      enable_energy = params%enable_energy
      enable_cantera_thermo = params%enable_cantera_thermo
      enable_species_enthalpy_diffusion = params%enable_species_enthalpy_diffusion
      thermo_update_interval = params%thermo_update_interval
      thermo_default_species = params%thermo_default_species
      initial_T = params%initial_T
      energy_reference_T = params%energy_reference_T
      energy_reference_h = params%energy_reference_h
      energy_cp = params%energy_cp
      energy_lambda = params%energy_lambda

      call open_namelist_file(filename, unit_id, ios)

      if (ios == 0) then
         read(unit_id, nml=energy_input, iostat=ios)
         close(unit_id)
      end if

      if (ios /= 0 .and. ios /= -1) then
         call fatal_error('input', 'failed reading &energy_input. Check for unknown variables or typos.')
      end if

      if (ios == 0) then
         params%enable_energy = enable_energy
         params%enable_cantera_thermo = enable_cantera_thermo
         params%enable_species_enthalpy_diffusion = enable_species_enthalpy_diffusion
         params%thermo_update_interval = thermo_update_interval
         params%thermo_default_species = trim(thermo_default_species)
         params%initial_T = initial_T
         params%energy_reference_T = energy_reference_T
         params%energy_reference_h = energy_reference_h
         params%energy_cp = energy_cp
         params%energy_lambda = energy_lambda
      end if
   end subroutine read_energy_input