B.2 Real Class Code Listing

The main documentation of the Real 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: 12/04/98
! CVS Info:   $Id: real.F90,v 8.14 2008/09/29 21:48:37 hall Exp $

module Caesar_Real_Class

  ! Global use associations.

  use Caesar_Status_Class
  use Caesar_Logical_Class

  ! Start up with everything untyped and private.

  implicit none

  ! Public procedures.

  public :: Initialize, Finalize, Valid_State, Valid_State_NP
  public :: Operator(.VeryClose.)
  public :: MaxVal, MinVal, SUM, VeryClose

  REPLICATE_INTERFACE([Initialize], [Initialize_Real])

  REPLICATE_INTERFACE([Finalize], [Finalize_Real])

  REPLICATE_INTERFACE([Valid_State], [Valid_State_Real_P])
  REPLICATE_INTERFACE([Valid_State_NP], [Valid_State_Real_NP])

  interface MaxVal
    module procedure MaxVal_Real_Scalar
  end interface

  interface MinVal
    module procedure MinVal_Real_Scalar
  end interface

  interface SUM
    module procedure SUM_Real_Scalar
  end interface

  REPLICATE_INTERFACE([VeryClose], [VeryClose_Real])

    pushdef([VeryClose_Real_Dim], expand(VeryClose_Real_Dim))
    interface OPERATOR (.VeryClose.)
      module procedure VeryClose_Real_Dim
    end interface


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

* Initialize_Real
* Finalize_Real
* Valid_State_Real
* MaxVal_Real_Scalar
* MinVal_Real_Scalar
* SUM_Real_Scalar
* VeryClose_Real

end module Caesar_Real_Class


Michael L. Hall