The main documentation of the Trace 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: 11/08/99
! CVS Info: $Id: trace.F90,v 2.8 2005/03/02 01:48:19 hall Exp $
module Caesar_Trace_Class
! Global use associations.
use Caesar_Intrinsics_Module
ifdef([USE_PGSLIB],[
use PGSLib_Module
])
! Start up with everything untyped and private.
implicit none
private
! Public procedures.
public :: Initialize, Finalize, Valid_State, Initialized
interface Initialize
module procedure Initialize_Trace_1
module procedure Initialize_Trace_2
end interface
interface Finalize
module procedure Finalize_Trace
end interface
interface Valid_State
module procedure Valid_State_Trace
end interface
interface Initialized
module procedure Initialized_Trace
end interface
! Public type definitions.
public :: Trace_type
type Trace_type
! Initialization flag.
type(logical,1) :: Initialized
! The number of dimensions that the index has.
type(integer) :: Dimensionality
! The index values, which may be modified by the communications package.
type(integer,1) :: Index1 ! Indirect reference indices (1-D).
type(integer,2) :: Index2 ! Indirect reference indices (2-D).
! Masks for zero index values.
type(logical,1) :: Mask1 ! Mask (1-D).
type(logical,2) :: Mask2 ! Mask (2-D).
! Gather-Scatter Setup information for PGSLib.
ifdef([USE_PGSLIB],[
type(PGSLib_GS_Trace), pointer :: Trace
])
end type Trace_type
contains
The Trace Class contains the following routines which are listed in separate sections:
end module Caesar_Trace_Class