G.3 Solver Class Code Listing

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:

* Initialize_Solver
* Finalize_Solver
* Valid_State_Solver
* Initialized_Solver
* Convert_ELL_to_LAMG
* Output_Solver
* Set_Solver_Variable
* Solve

end module Caesar_Solver_Class



Subsections
Michael L. Hall