case_factory.f90 Source File


This file depends on

sourcefile~~case_factory.f90~~EfferentGraph sourcefile~case_factory.f90 case_factory.f90 sourcefile~abl.f90~2 abl.f90 sourcefile~case_factory.f90->sourcefile~abl.f90~2 sourcefile~allocator.f90~3 allocator.f90 sourcefile~case_factory.f90->sourcefile~allocator.f90~3 sourcefile~backend.f90~4 backend.f90 sourcefile~case_factory.f90->sourcefile~backend.f90~4 sourcefile~base_case.f90 base_case.f90 sourcefile~case_factory.f90->sourcefile~base_case.f90 sourcefile~channel.f90 channel.f90 sourcefile~case_factory.f90->sourcefile~channel.f90 sourcefile~cylinder.f90 cylinder.f90 sourcefile~case_factory.f90->sourcefile~cylinder.f90 sourcefile~generic.f90 generic.f90 sourcefile~case_factory.f90->sourcefile~generic.f90 sourcefile~logger.f90 logger.f90 sourcefile~case_factory.f90->sourcefile~logger.f90 sourcefile~mesh.f90 mesh.f90 sourcefile~case_factory.f90->sourcefile~mesh.f90 sourcefile~tgv.f90 tgv.f90 sourcefile~case_factory.f90->sourcefile~tgv.f90 sourcefile~wind_turbine.f90 wind_turbine.f90 sourcefile~case_factory.f90->sourcefile~wind_turbine.f90 sourcefile~abl.f90~2->sourcefile~allocator.f90~3 sourcefile~abl.f90~2->sourcefile~backend.f90~4 sourcefile~abl.f90~2->sourcefile~base_case.f90 sourcefile~abl.f90~2->sourcefile~logger.f90 sourcefile~abl.f90~2->sourcefile~mesh.f90 sourcefile~abl.f90 abl.f90 sourcefile~abl.f90~2->sourcefile~abl.f90 sourcefile~common.f90~4 common.f90 sourcefile~abl.f90~2->sourcefile~common.f90~4 sourcefile~config.f90 config.f90 sourcefile~abl.f90~2->sourcefile~config.f90 sourcefile~diagnostics.f90 diagnostics.f90 sourcefile~abl.f90~2->sourcefile~diagnostics.f90 sourcefile~field.f90 field.f90 sourcefile~abl.f90~2->sourcefile~field.f90 sourcefile~inflow_planes.f90 inflow_planes.f90 sourcefile~abl.f90~2->sourcefile~inflow_planes.f90 sourcefile~turbine_model.f90 turbine_model.f90 sourcefile~abl.f90~2->sourcefile~turbine_model.f90 sourcefile~turbine_setup.f90 turbine_setup.f90 sourcefile~abl.f90~2->sourcefile~turbine_setup.f90 sourcefile~allocator.f90~3->sourcefile~common.f90~4 sourcefile~allocator.f90~3->sourcefile~field.f90 sourcefile~backend.f90~4->sourcefile~allocator.f90~3 sourcefile~backend.f90~4->sourcefile~logger.f90 sourcefile~backend.f90~4->sourcefile~mesh.f90 sourcefile~backend.f90~4->sourcefile~common.f90~4 sourcefile~backend.f90~4->sourcefile~field.f90 sourcefile~poisson_fft.f90~2 poisson_fft.f90 sourcefile~backend.f90~4->sourcefile~poisson_fft.f90~2 sourcefile~tdsops.f90 tdsops.f90 sourcefile~backend.f90~4->sourcefile~tdsops.f90 sourcefile~base_case.f90->sourcefile~allocator.f90~3 sourcefile~base_case.f90->sourcefile~backend.f90~4 sourcefile~base_case.f90->sourcefile~logger.f90 sourcefile~base_case.f90->sourcefile~mesh.f90 sourcefile~base_case.f90->sourcefile~common.f90~4 sourcefile~base_case.f90->sourcefile~config.f90 sourcefile~base_case.f90->sourcefile~field.f90 sourcefile~io_manager.f90 io_manager.f90 sourcefile~base_case.f90->sourcefile~io_manager.f90 sourcefile~monitoring.f90 monitoring.f90 sourcefile~base_case.f90->sourcefile~monitoring.f90 sourcefile~postprocess.f90 postprocess.f90 sourcefile~base_case.f90->sourcefile~postprocess.f90 sourcefile~solver.f90 solver.f90 sourcefile~base_case.f90->sourcefile~solver.f90 sourcefile~channel.f90->sourcefile~allocator.f90~3 sourcefile~channel.f90->sourcefile~backend.f90~4 sourcefile~channel.f90->sourcefile~base_case.f90 sourcefile~channel.f90->sourcefile~logger.f90 sourcefile~channel.f90->sourcefile~mesh.f90 sourcefile~channel.f90->sourcefile~common.f90~4 sourcefile~channel.f90->sourcefile~config.f90 sourcefile~channel.f90->sourcefile~field.f90 sourcefile~channel.f90->sourcefile~solver.f90 sourcefile~cylinder.f90->sourcefile~allocator.f90~3 sourcefile~cylinder.f90->sourcefile~backend.f90~4 sourcefile~cylinder.f90->sourcefile~base_case.f90 sourcefile~cylinder.f90->sourcefile~logger.f90 sourcefile~cylinder.f90->sourcefile~mesh.f90 sourcefile~cylinder.f90->sourcefile~common.f90~4 sourcefile~cylinder.f90->sourcefile~config.f90 sourcefile~cylinder.f90->sourcefile~field.f90 sourcefile~cylinder.f90->sourcefile~solver.f90 sourcefile~generic.f90->sourcefile~allocator.f90~3 sourcefile~generic.f90->sourcefile~backend.f90~4 sourcefile~generic.f90->sourcefile~base_case.f90 sourcefile~generic.f90->sourcefile~logger.f90 sourcefile~generic.f90->sourcefile~mesh.f90 sourcefile~generic.f90->sourcefile~common.f90~4 sourcefile~generic.f90->sourcefile~field.f90 sourcefile~generic.f90->sourcefile~solver.f90 sourcefile~mesh.f90->sourcefile~logger.f90 sourcefile~mesh.f90->sourcefile~common.f90~4 sourcefile~decomp_2decompfft.f90 decomp_2decompfft.f90 sourcefile~mesh.f90->sourcefile~decomp_2decompfft.f90 sourcefile~mesh.f90->sourcefile~field.f90 sourcefile~mesh_content.f90 mesh_content.f90 sourcefile~mesh.f90->sourcefile~mesh_content.f90 sourcefile~tgv.f90->sourcefile~allocator.f90~3 sourcefile~tgv.f90->sourcefile~backend.f90~4 sourcefile~tgv.f90->sourcefile~base_case.f90 sourcefile~tgv.f90->sourcefile~logger.f90 sourcefile~tgv.f90->sourcefile~mesh.f90 sourcefile~tgv.f90->sourcefile~common.f90~4 sourcefile~tgv.f90->sourcefile~field.f90 sourcefile~tgv.f90->sourcefile~solver.f90 sourcefile~wind_turbine.f90->sourcefile~allocator.f90~3 sourcefile~wind_turbine.f90->sourcefile~backend.f90~4 sourcefile~wind_turbine.f90->sourcefile~base_case.f90 sourcefile~wind_turbine.f90->sourcefile~logger.f90 sourcefile~wind_turbine.f90->sourcefile~mesh.f90 sourcefile~wind_turbine.f90->sourcefile~common.f90~4 sourcefile~wind_turbine.f90->sourcefile~config.f90 sourcefile~wind_turbine.f90->sourcefile~field.f90 sourcefile~wind_turbine.f90->sourcefile~solver.f90 sourcefile~wind_turbine.f90->sourcefile~turbine_model.f90 sourcefile~wind_turbine.f90->sourcefile~turbine_setup.f90 sourcefile~abl.f90->sourcefile~allocator.f90~3 sourcefile~abl.f90->sourcefile~backend.f90~4 sourcefile~abl.f90->sourcefile~logger.f90 sourcefile~abl.f90->sourcefile~mesh.f90 sourcefile~abl.f90->sourcefile~common.f90~4 sourcefile~abl.f90->sourcefile~config.f90 sourcefile~abl.f90->sourcefile~field.f90 sourcefile~les.f90 les.f90 sourcefile~abl.f90->sourcefile~les.f90 sourcefile~common.f90~4->sourcefile~logger.f90 sourcefile~config.f90->sourcefile~logger.f90 sourcefile~config.f90->sourcefile~common.f90~4 sourcefile~decomp_2decompfft.f90->sourcefile~logger.f90 sourcefile~decomp_2decompfft.f90->sourcefile~mesh_content.f90 sourcefile~diagnostics.f90->sourcefile~backend.f90~4 sourcefile~diagnostics.f90->sourcefile~logger.f90 sourcefile~diagnostics.f90->sourcefile~mesh.f90 sourcefile~diagnostics.f90->sourcefile~common.f90~4 sourcefile~diagnostics.f90->sourcefile~config.f90 sourcefile~diagnostics.f90->sourcefile~field.f90 sourcefile~diagnostics.f90->sourcefile~les.f90 sourcefile~field.f90->sourcefile~common.f90~4 sourcefile~inflow_planes.f90->sourcefile~backend.f90~4 sourcefile~inflow_planes.f90->sourcefile~logger.f90 sourcefile~inflow_planes.f90->sourcefile~mesh.f90 sourcefile~inflow_planes.f90->sourcefile~common.f90~4 sourcefile~inflow_planes.f90->sourcefile~config.f90 sourcefile~inflow_planes.f90->sourcefile~field.f90 sourcefile~io_session.f90 io_session.f90 sourcefile~inflow_planes.f90->sourcefile~io_session.f90 sourcefile~io_manager.f90->sourcefile~solver.f90 sourcefile~checkpoint_manager.f90 checkpoint_manager.f90 sourcefile~io_manager.f90->sourcefile~checkpoint_manager.f90 sourcefile~checkpoint_state.f90 checkpoint_state.f90 sourcefile~io_manager.f90->sourcefile~checkpoint_state.f90 sourcefile~snapshot_manager.f90 snapshot_manager.f90 sourcefile~io_manager.f90->sourcefile~snapshot_manager.f90 sourcefile~stats.f90 stats.f90 sourcefile~io_manager.f90->sourcefile~stats.f90 sourcefile~mesh_content.f90->sourcefile~logger.f90 sourcefile~mesh_content.f90->sourcefile~common.f90~4 sourcefile~monitoring.f90->sourcefile~logger.f90 sourcefile~monitoring.f90->sourcefile~common.f90~4 sourcefile~monitoring.f90->sourcefile~field.f90 sourcefile~monitoring.f90->sourcefile~solver.f90 sourcefile~scalar_series.f90 scalar_series.f90 sourcefile~monitoring.f90->sourcefile~scalar_series.f90 sourcefile~poisson_fft.f90~2->sourcefile~logger.f90 sourcefile~poisson_fft.f90~2->sourcefile~mesh.f90 sourcefile~poisson_fft.f90~2->sourcefile~common.f90~4 sourcefile~poisson_fft.f90~2->sourcefile~field.f90 sourcefile~poisson_fft.f90~2->sourcefile~tdsops.f90 sourcefile~postprocess.f90->sourcefile~logger.f90 sourcefile~postprocess.f90->sourcefile~common.f90~4 sourcefile~postprocess.f90->sourcefile~field.f90 sourcefile~postprocess.f90->sourcefile~solver.f90 sourcefile~solver.f90->sourcefile~allocator.f90~3 sourcefile~solver.f90->sourcefile~backend.f90~4 sourcefile~solver.f90->sourcefile~logger.f90 sourcefile~solver.f90->sourcefile~mesh.f90 sourcefile~solver.f90->sourcefile~common.f90~4 sourcefile~solver.f90->sourcefile~config.f90 sourcefile~solver.f90->sourcefile~field.f90 sourcefile~solver.f90->sourcefile~tdsops.f90 sourcefile~ibm.f90 ibm.f90 sourcefile~solver.f90->sourcefile~ibm.f90 sourcefile~solver.f90->sourcefile~les.f90 sourcefile~tdsops_setup.f90 tdsops_setup.f90 sourcefile~solver.f90->sourcefile~tdsops_setup.f90 sourcefile~time_integrator.f90 time_integrator.f90 sourcefile~solver.f90->sourcefile~time_integrator.f90 sourcefile~vector_calculus.f90 vector_calculus.f90 sourcefile~solver.f90->sourcefile~vector_calculus.f90 sourcefile~tdsops.f90->sourcefile~logger.f90 sourcefile~tdsops.f90->sourcefile~common.f90~4 sourcefile~turbine_model.f90->sourcefile~allocator.f90~3 sourcefile~turbine_model.f90->sourcefile~backend.f90~4 sourcefile~turbine_model.f90->sourcefile~mesh.f90 sourcefile~turbine_model.f90->sourcefile~common.f90~4 sourcefile~turbine_model.f90->sourcefile~field.f90 sourcefile~turbine_model.f90->sourcefile~checkpoint_state.f90 sourcefile~turbine_setup.f90->sourcefile~logger.f90 sourcefile~turbine_setup.f90->sourcefile~config.f90 sourcefile~turbine_setup.f90->sourcefile~io_manager.f90 sourcefile~turbine_setup.f90->sourcefile~solver.f90 sourcefile~turbine_setup.f90->sourcefile~turbine_model.f90 sourcefile~adm.f90 adm.f90 sourcefile~turbine_setup.f90->sourcefile~adm.f90 sourcefile~alm.f90 alm.f90 sourcefile~turbine_setup.f90->sourcefile~alm.f90 sourcefile~turbine_dummy.f90 turbine_dummy.f90 sourcefile~turbine_setup.f90->sourcefile~turbine_dummy.f90 sourcefile~adm.f90->sourcefile~allocator.f90~3 sourcefile~adm.f90->sourcefile~backend.f90~4 sourcefile~adm.f90->sourcefile~logger.f90 sourcefile~adm.f90->sourcefile~mesh.f90 sourcefile~adm.f90->sourcefile~common.f90~4 sourcefile~adm.f90->sourcefile~field.f90 sourcefile~adm.f90->sourcefile~turbine_model.f90 sourcefile~adm.f90->sourcefile~io_session.f90 sourcefile~adm.f90->sourcefile~scalar_series.f90 sourcefile~alm.f90->sourcefile~allocator.f90~3 sourcefile~alm.f90->sourcefile~backend.f90~4 sourcefile~alm.f90->sourcefile~logger.f90 sourcefile~alm.f90->sourcefile~mesh.f90 sourcefile~alm.f90->sourcefile~common.f90~4 sourcefile~alm.f90->sourcefile~field.f90 sourcefile~alm.f90->sourcefile~turbine_model.f90 sourcefile~alm.f90->sourcefile~io_session.f90 sourcefile~alm.f90->sourcefile~scalar_series.f90 sourcefile~alm_controller.f90 alm_controller.f90 sourcefile~alm.f90->sourcefile~alm_controller.f90 sourcefile~alm_element.f90 alm_element.f90 sourcefile~alm.f90->sourcefile~alm_element.f90 sourcefile~alm_output.f90 alm_output.f90 sourcefile~alm.f90->sourcefile~alm_output.f90 sourcefile~alm_turbine.f90 alm_turbine.f90 sourcefile~alm.f90->sourcefile~alm_turbine.f90 sourcefile~checkpoint_manager.f90->sourcefile~logger.f90 sourcefile~checkpoint_manager.f90->sourcefile~common.f90~4 sourcefile~checkpoint_manager.f90->sourcefile~config.f90 sourcefile~checkpoint_manager.f90->sourcefile~field.f90 sourcefile~checkpoint_manager.f90->sourcefile~solver.f90 sourcefile~checkpoint_manager.f90->sourcefile~checkpoint_state.f90 sourcefile~checkpoint_manager.f90->sourcefile~io_session.f90 sourcefile~checkpoint_manager.f90->sourcefile~stats.f90 sourcefile~io.f90 io.f90 sourcefile~checkpoint_manager.f90->sourcefile~io.f90 sourcefile~io_field_utils.f90 io_field_utils.f90 sourcefile~checkpoint_manager.f90->sourcefile~io_field_utils.f90 sourcefile~checkpoint_state.f90->sourcefile~io_session.f90 sourcefile~ibm.f90->sourcefile~allocator.f90~3 sourcefile~ibm.f90->sourcefile~backend.f90~4 sourcefile~ibm.f90->sourcefile~logger.f90 sourcefile~ibm.f90->sourcefile~mesh.f90 sourcefile~ibm.f90->sourcefile~common.f90~4 sourcefile~ibm.f90->sourcefile~field.f90 sourcefile~ibm.f90->sourcefile~io_session.f90 sourcefile~io_session.f90->sourcefile~backend.f90~4 sourcefile~io_session.f90->sourcefile~logger.f90 sourcefile~io_session.f90->sourcefile~common.f90~4 sourcefile~io_session.f90->sourcefile~field.f90 sourcefile~io_session.f90->sourcefile~io.f90 sourcefile~io_base.f90 io_base.f90 sourcefile~io_session.f90->sourcefile~io_base.f90 sourcefile~les.f90->sourcefile~backend.f90~4 sourcefile~les.f90->sourcefile~logger.f90 sourcefile~les.f90->sourcefile~mesh.f90 sourcefile~les.f90->sourcefile~common.f90~4 sourcefile~les.f90->sourcefile~config.f90 sourcefile~les.f90->sourcefile~field.f90 sourcefile~les.f90->sourcefile~tdsops.f90 sourcefile~scalar_series.f90->sourcefile~logger.f90 sourcefile~scalar_series.f90->sourcefile~common.f90~4 sourcefile~snapshot_manager.f90->sourcefile~logger.f90 sourcefile~snapshot_manager.f90->sourcefile~common.f90~4 sourcefile~snapshot_manager.f90->sourcefile~config.f90 sourcefile~snapshot_manager.f90->sourcefile~field.f90 sourcefile~snapshot_manager.f90->sourcefile~solver.f90 sourcefile~snapshot_manager.f90->sourcefile~io_session.f90 sourcefile~snapshot_manager.f90->sourcefile~io.f90 sourcefile~snapshot_manager.f90->sourcefile~io_base.f90 sourcefile~snapshot_manager.f90->sourcefile~io_field_utils.f90 sourcefile~stats.f90->sourcefile~logger.f90 sourcefile~stats.f90->sourcefile~common.f90~4 sourcefile~stats.f90->sourcefile~config.f90 sourcefile~stats.f90->sourcefile~field.f90 sourcefile~stats.f90->sourcefile~solver.f90 sourcefile~stats.f90->sourcefile~io_session.f90 sourcefile~tdsops_setup.f90->sourcefile~backend.f90~4 sourcefile~tdsops_setup.f90->sourcefile~logger.f90 sourcefile~tdsops_setup.f90->sourcefile~mesh.f90 sourcefile~tdsops_setup.f90->sourcefile~common.f90~4 sourcefile~tdsops_setup.f90->sourcefile~tdsops.f90 sourcefile~time_integrator.f90->sourcefile~allocator.f90~3 sourcefile~time_integrator.f90->sourcefile~backend.f90~4 sourcefile~time_integrator.f90->sourcefile~logger.f90 sourcefile~time_integrator.f90->sourcefile~common.f90~4 sourcefile~time_integrator.f90->sourcefile~field.f90 sourcefile~turbine_dummy.f90->sourcefile~allocator.f90~3 sourcefile~turbine_dummy.f90->sourcefile~backend.f90~4 sourcefile~turbine_dummy.f90->sourcefile~mesh.f90 sourcefile~turbine_dummy.f90->sourcefile~common.f90~4 sourcefile~turbine_dummy.f90->sourcefile~field.f90 sourcefile~turbine_dummy.f90->sourcefile~turbine_model.f90 sourcefile~turbine_dummy.f90->sourcefile~io_session.f90 sourcefile~vector_calculus.f90->sourcefile~allocator.f90~3 sourcefile~vector_calculus.f90->sourcefile~backend.f90~4 sourcefile~vector_calculus.f90->sourcefile~logger.f90 sourcefile~vector_calculus.f90->sourcefile~common.f90~4 sourcefile~vector_calculus.f90->sourcefile~field.f90 sourcefile~vector_calculus.f90->sourcefile~tdsops.f90 sourcefile~alm_controller.f90->sourcefile~logger.f90 sourcefile~alm_controller.f90->sourcefile~common.f90~4 sourcefile~alm_element.f90->sourcefile~logger.f90 sourcefile~alm_element.f90->sourcefile~common.f90~4 sourcefile~alm_airfoil.f90 alm_airfoil.f90 sourcefile~alm_element.f90->sourcefile~alm_airfoil.f90 sourcefile~alm_output.f90->sourcefile~logger.f90 sourcefile~alm_output.f90->sourcefile~common.f90~4 sourcefile~alm_output.f90->sourcefile~alm_element.f90 sourcefile~alm_turbine.f90->sourcefile~logger.f90 sourcefile~alm_turbine.f90->sourcefile~common.f90~4 sourcefile~alm_turbine.f90->sourcefile~alm_controller.f90 sourcefile~alm_turbine.f90->sourcefile~alm_element.f90 sourcefile~alm_turbine.f90->sourcefile~alm_airfoil.f90 sourcefile~io.f90->sourcefile~backend.f90~4 sourcefile~io.f90->sourcefile~logger.f90 sourcefile~io.f90->sourcefile~common.f90~4 sourcefile~io.f90->sourcefile~field.f90 sourcefile~io.f90->sourcefile~io_base.f90 sourcefile~io_base.f90->sourcefile~backend.f90~4 sourcefile~io_base.f90->sourcefile~common.f90~4 sourcefile~io_base.f90->sourcefile~field.f90 sourcefile~io_field_utils.f90->sourcefile~logger.f90 sourcefile~io_field_utils.f90->sourcefile~common.f90~4 sourcefile~io_field_utils.f90->sourcefile~field.f90 sourcefile~io_field_utils.f90->sourcefile~solver.f90 sourcefile~io_field_utils.f90->sourcefile~io_base.f90 sourcefile~nvtx.f90 nvtx.f90 sourcefile~io_field_utils.f90->sourcefile~nvtx.f90 sourcefile~alm_airfoil.f90->sourcefile~logger.f90 sourcefile~alm_airfoil.f90->sourcefile~common.f90~4

Files dependent on this one

sourcefile~~case_factory.f90~~AfferentGraph sourcefile~case_factory.f90 case_factory.f90 sourcefile~build.f90 build.f90 sourcefile~build.f90->sourcefile~case_factory.f90 sourcefile~xcompact.f90 xcompact.f90 sourcefile~xcompact.f90->sourcefile~case_factory.f90 sourcefile~memcheck.f90 memcheck.f90 sourcefile~memcheck.f90->sourcefile~build.f90

Source Code

module m_case_factory
  !! Flow case dispatch shared by xcompact and x3d2-memcheck.
  use m_allocator, only: allocator_t
  use m_base_backend, only: base_backend_t
  use m_base_case, only: base_case_t
  use m_logger, only: abort_run
  use m_mesh, only: mesh_t
  use m_case_abl, only: case_abl_t
  use m_case_channel, only: case_channel_t
  use m_case_cylinder, only: case_cylinder_t
  use m_case_generic, only: case_generic_t
  use m_case_tgv, only: case_tgv_t
  use m_case_wind_turbine, only: case_wind_turbine_t

  implicit none

  private
  public :: allocate_flow_case, is_supported_flow_case

contains

  subroutine allocate_flow_case(name, backend, mesh, host_allocator, flow_case)
    !! Build the flow case with the given name.
    character(len=*), intent(in) :: name
    class(base_backend_t), pointer, intent(in) :: backend
    type(mesh_t), target, intent(inout) :: mesh
    type(allocator_t), target, intent(inout) :: host_allocator
    class(base_case_t), allocatable, intent(out) :: flow_case

    select case (trim(name))
    case ('abl')
      allocate (case_abl_t :: flow_case)
      flow_case = case_abl_t(backend, mesh, host_allocator)
    case ('channel')
      allocate (case_channel_t :: flow_case)
      flow_case = case_channel_t(backend, mesh, host_allocator)
    case ('cylinder')
      allocate (case_cylinder_t :: flow_case)
      flow_case = case_cylinder_t(backend, mesh, host_allocator)
    case ('generic')
      allocate (case_generic_t :: flow_case)
      flow_case = case_generic_t(backend, mesh, host_allocator)
    case ('tgv')
      allocate (case_tgv_t :: flow_case)
      flow_case = case_tgv_t(backend, mesh, host_allocator)
    case ('wind_turbine')
      allocate (case_wind_turbine_t :: flow_case)
      flow_case = case_wind_turbine_t(backend, mesh, host_allocator)
    case default
      call abort_run('Undefined flow_case: '//trim(name), collective=.true.)
    end select
  end subroutine allocate_flow_case

  pure logical function is_supported_flow_case(name)
    !! True when allocate_flow_case has a branch for the name.
    character(len=*), intent(in) :: name

    select case (trim(name))
    case ('abl', 'channel', 'cylinder', 'generic', 'tgv', 'wind_turbine')
      is_supported_flow_case = .true.
    case default
      is_supported_flow_case = .false.
    end select
  end function is_supported_flow_case

end module m_case_factory