library.F90 Source File


This file depends on

sourcefile~~library.f90~~EfferentGraph sourcefile~library.f90 library.F90 sourcefile~slice.f90 slice.F90 sourcefile~library.f90->sourcefile~slice.f90 sourcefile~base.f90 base.F90 sourcefile~library.f90->sourcefile~base.f90 sourcefile~time_average.f90 time_average.F90 sourcefile~library.f90->sourcefile~time_average.f90 sourcefile~interp.f90 interp.F90 sourcefile~library.f90->sourcefile~interp.f90 sourcefile~output_manager_core.f90 output_manager_core.F90 sourcefile~library.f90->sourcefile~output_manager_core.f90 sourcefile~field_manager.f90 field_manager.F90 sourcefile~library.f90->sourcefile~field_manager.f90 sourcefile~slice.f90->sourcefile~base.f90 sourcefile~slice.f90->sourcefile~output_manager_core.f90 sourcefile~slice.f90->sourcefile~field_manager.f90 sourcefile~base.f90->sourcefile~output_manager_core.f90 sourcefile~base.f90->sourcefile~field_manager.f90 sourcefile~time_average.f90->sourcefile~base.f90 sourcefile~time_average.f90->sourcefile~output_manager_core.f90 sourcefile~time_average.f90->sourcefile~field_manager.f90 sourcefile~interp.f90->sourcefile~base.f90 sourcefile~interp.f90->sourcefile~output_manager_core.f90 sourcefile~interp.f90->sourcefile~field_manager.f90 sourcefile~output_manager_core.f90->sourcefile~field_manager.f90

Files dependent on this one

sourcefile~~library.f90~~AfferentGraph sourcefile~library.f90 library.F90 sourcefile~output_manager.f90 output_manager.F90 sourcefile~output_manager.f90->sourcefile~library.f90

Contents

Source Code


Source Code

module output_operators_library

   use field_manager
   use yaml_settings
   use output_manager_core

   use output_operators_base
   use output_operators_interp
   use output_operators_time_average
   use output_operators_slice

   implicit none

   private

   public apply_operator

contains

   subroutine apply_operator(final_operator, settings, field_manager)
      class (type_base_operator),     pointer  :: final_operator
      class (type_settings),     intent(inout) :: settings
      type (type_field_manager), intent(inout) :: field_manager

      integer                             :: operator_type
      class (type_base_operator), pointer :: op

      operator_type = settings%get_integer('type', 'operator type', options=(/type_option(1, 'interp')/))
      select case (operator_type)
      case (1)
         allocate(type_interp_operator::op)
      end select
      call op%configure(settings, field_manager)
      op%previous => final_operator
      final_operator => op
   end subroutine

end module