The main documentation of the Solver Class contains additional explanation of this code listing.
! ! Author: Michael L. Hall ! P.O. Box 1663, MS-D413, LANL ! Los Alamos, NM 87545 ! ph: 505-665-4312 ! email: Hall@LANL.gov ! ! Created on: 03/08/04 ! CVS Info: $Id: solver.F90,v 1.11 2008/09/23 00:23:59 hall Exp $ module Caesar_Solver_Class ! Global use associations. use Caesar_Data_Structures_Module use Caesar_Mathematic_Vector_Class use Caesar_ELL_Matrix_Class ! Start up with everything untyped and private. implicit none private ! Public procedures. public :: Initialize, Finalize, Valid_State, Initialized public :: Set, Solve ifdef([USE_LAMG],[ public :: Convert ]) interface Initialize module procedure Initialize_Solver end interface interface Finalize module procedure Finalize_Solver end interface interface Valid_State module procedure Valid_State_Solver end interface interface Initialized module procedure Initialized_Solver end interface ifdef([USE_LAMG],[ interface Convert module procedure Convert_ELL_to_LAMG end interface ]) interface Set module procedure Set_Solver_Variable end interface interface Solve module procedure Solve end interface ! Public type definitions. public :: Solver_type type Solver_type ! Initialization flag. type(integer) :: Initialized ! Package name. type(character,name_length) :: Package ! Non-Package-Dependent info. type(character,name_length) :: Stopping_Test ! Test used to signify ! convergence. type(real) :: Epsilon ! Error tolerance. type(integer) :: Maximum_Iterations ! Maximum iteration count ! allowed. ! LAMG package information. type(integer) :: LAMG_levout ! Package output: 0=silent, 4=verbose. end type Solver_type contains
The Solver Class contains the following routines which are listed in separate sections:
end module Caesar_Solver_Class