The main documentation of the Monomial 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: 01/31/05
! CVS Info: $Id: monomial.F90,v 1.25 2009/09/07 23:27:25 hall Exp $
module Caesar_Monomial_Class
! Global use associations.
use Caesar_Linear_Algebra_Module
use Caesar_Multi_Mesh_Class
! Start up with everything untyped and private.
implicit none
private
! Public procedures.
public :: Initialize, Finalize, Valid_State, Initialized
public :: Add_to_Matrix_Equation, Locus, Name, Output
interface Initialize
module procedure Initialize_Monomial
end interface
interface Finalize
module procedure Finalize_Monomial
end interface
interface Valid_State
module procedure Valid_State_Monomial
end interface
interface Initialized
module procedure Initialized_Monomial
end interface
interface Add_to_Matrix_Equation
module procedure Add_to_Matrix_Equation_Monomial
end interface
interface Locus
module procedure Get_Locus_Monomial
end interface
interface Name
module procedure Get_Name_Monomial
end interface
interface Output
module procedure Output_Monomial
end interface
! Public type definitions.
public :: Monomial_type
type Monomial_type
! Initialization flag.
type(integer) :: Initialized
! The name for this variable.
type(character,name_length) :: Name
! The coefficient of the monomial.
type(real,1) :: Coefficient
! The degree of the monomial.
type(real) :: Exponent
! The independent variable at the linearization value (previous iterate).
type(real,1) :: Phi_k
! The independent variable at the past time step, only used for time
! derivative monomials.
type(real,1) :: Phi_n
! Logical value which is true for time derivative monomials.
type(logical) :: Derivative
! The time step size, only used for time derivative monomials.
type(real) :: Delta_t
! Mesh that this monomial is defined on.
type(Multi_Mesh_type), pointer :: Mesh
! Evaluation locus. (to be used in a future version -- for now,
! assumed to be "Cells".)
type(character,name_length) :: Locus
! Locus Base_Structure.
type(Base_Structure_type), pointer :: Structure
! Variable number, equation number and total number of equations for
! this monomial.
type(integer) :: Variable, Equation, NEquations
end type Monomial_type
contains
The Monomial Class contains the following routines which are listed in separate sections:
end module Caesar_Monomial_Class