11 #include "sll_assert.h" 
   12 #include "sll_memory.h" 
   13 #include "sll_working_precision.h" 
   30      sll_real64, 
allocatable :: diag(:) 
 
   51     sll_real64, 
allocatable :: scratch1(:), scratch2(:)
 
   53     allocate( self%diag(1:linop%n_rows) )
 
   54     allocate( scratch1(1:linop%n_rows) )
 
   55     allocate( scratch2(1:linop%n_rows) )
 
   57     do i = 1, linop%n_rows
 
   60        call linop%dot( scratch1, scratch2 )
 
   61        self%diag(i) = scratch2(i)
 
   68     sll_real64, 
intent(in   ) :: rhs(:) 
 
   69     sll_real64, 
intent(  out) :: unknown(:) 
 
   71     unknown = rhs/self%diag
 
   77     logical, 
intent( in ) :: verbose
 
   79     self%verbose = verbose
 
   89     character(len=*), 
intent( in ) :: filename
 
module for abstract linear operator
 
module for abstract linear solver
 
Module interface to solve Maxwell's equations.
 
subroutine print_info(self)
 
subroutine free_3d_trafo(self)
 
subroutine set_verbose(self, verbose)
 
subroutine create_3d_trafo(self, linop)
 
subroutine read_from_file(self, filename)
 
subroutine solve_3d_trafo(self, rhs, unknown)
 
class for abstract linear operator
 
class for abstract linear solver