D.1 Trace Class Code Listing

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
    use PGSLib_Module

  ! Start up with everything untyped and private.

  implicit none

  ! 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.

      type(PGSLib_GS_Trace), pointer :: Trace 

  end type Trace_type


The Trace Class contains the following routines which are listed in separate sections:

* Initialize_Trace
* Finalize_Trace
* Valid_State_Trace
* Initialized_Trace

end module Caesar_Trace_Class


Michael L. Hall