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