module_singular_observer.f90 Source File


This file depends on

sourcefile~~module_singular_observer.f90~~EfferentGraph sourcefile~module_singular_observer.f90 module_singular_observer.f90 sourcefile~module_effective_source.f90 module_effective_source.f90 sourcefile~module_singular_observer.f90->sourcefile~module_effective_source.f90 sourcefile~module_observers.f90 module_observers.f90 sourcefile~module_singular_observer.f90->sourcefile~module_observers.f90 sourcefile~module_kinds.f90 module_kinds.f90 sourcefile~module_effective_source.f90->sourcefile~module_kinds.f90 sourcefile~module_world_tube.f90 module_world_tube.f90 sourcefile~module_effective_source.f90->sourcefile~module_world_tube.f90 sourcefile~module_grid_function.f90 module_grid_function.f90 sourcefile~module_effective_source.f90->sourcefile~module_grid_function.f90 sourcefile~module_observers.f90->sourcefile~module_kinds.f90 sourcefile~module_observers.f90->sourcefile~module_grid_function.f90 sourcefile~module_world_tube.f90->sourcefile~module_kinds.f90 sourcefile~module_world_tube.f90->sourcefile~module_grid_function.f90 sourcefile~module_grid_function.f90->sourcefile~module_kinds.f90 sourcefile~module_element.f90 module_element.f90 sourcefile~module_grid_function.f90->sourcefile~module_element.f90 sourcefile~module_element.f90->sourcefile~module_kinds.f90

Files dependent on this one

sourcefile~~module_singular_observer.f90~~AfferentGraph sourcefile~module_singular_observer.f90 module_singular_observer.f90 sourcefile~submodule_singular_observer_implementation.f90 submodule_singular_observer_implementation.f90 sourcefile~submodule_singular_observer_implementation.f90->sourcefile~module_singular_observer.f90 sourcefile~test.f90 test.f90 sourcefile~test.f90->sourcefile~module_singular_observer.f90

Contents


Source Code

module singular_observer

  use observers
  use effective_source, only: eff_source

  implicit none

  type, extends(observer) :: sing_observer
    integer(ip) :: nl
    real(wp), dimension(:,:), allocatable :: psi
    real(wp), dimension(:,:,:), allocatable :: dpsidt, dpsidr
    class(eff_source), pointer :: p
  contains
    procedure :: init => sobs_init
    procedure :: extract => sobs_extract
    procedure :: output => sobs_output
    final :: close_sing_observer
  end type sing_observer

  interface
    module subroutine sobs_init ( this, rad, coord, object )
      class(sing_observer), intent(inout) :: this
      real(wp), dimension(:), intent(in) :: rad
      type(rgf), intent(in) :: coord
      class(*), target, intent(in) :: object
    end subroutine sobs_init

    module subroutine sobs_extract ( this )
      class(sing_observer), intent(inout) :: this
    end subroutine sobs_extract

    module subroutine sobs_output ( this )
      class(sing_observer), intent(inout) :: this
    end subroutine sobs_output

    module subroutine close_sing_observer ( this )
      type(sing_observer) :: this 
    end subroutine close_sing_observer

  end interface
end module singular_observer