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
  private

  ! 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])

  forloop([Dim],[0],[7],[
    pushdef([VeryClose_Real_Dim], expand(VeryClose_Real_Dim))
    interface OPERATOR (.VeryClose.)
      module procedure VeryClose_Real_Dim
    end interface
    popdef([VeryClose_Real_Dim])
  ])

contains

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



Subsections

Michael L. Hall