The main documentation of the Logical 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: 1/11/99 ! CVS Info: $Id: logical.F90,v 7.8 2006/10/12 18:30:29 hall Exp $ module Caesar_Logical_Class ! Global use associations. use Caesar_Status_Class ! Start up with everything untyped and private. implicit none private ! Public procedures. public :: Initialize, Finalize, Valid_State, Valid_State_NP public :: ALL, ANY, COUNT, Operator(.InInterval.), Operator(.InSet.), & Operator(.NotInInterval.), Operator(.NotInSet.) REPLICATE_INTERFACE([Initialize], [Initialize_Logical]) REPLICATE_INTERFACE([Finalize], [Finalize_Logical]) REPLICATE_INTERFACE([Valid_State], [Valid_State_Logical_P]) REPLICATE_INTERFACE([Valid_State_NP], [Valid_State_Logical_NP]) interface ALL module procedure ALL_Scalar end interface interface ANY module procedure ANY_Scalar end interface interface COUNT module procedure COUNT_Scalar end interface define([OPERATOR_INTERFACE],[ pushdef([PROCEDURE], [$1]) pushdef([TYPE], [$2]) pushdef([DIM], [$3]) pushdef([PROCEDURE_TYPE_DIM], expand(PROCEDURE_TYPE_DIM)) interface OPERATOR (.PROCEDURE.) module procedure PROCEDURE_TYPE_DIM end interface popdef([PROCEDURE]) popdef([TYPE]) popdef([DIM]) popdef([PROCEDURE_TYPE_DIM]) ]) forloop([Dim],[0],[7],[ fortext([Type],[Real Integer],[ fortext([Proc],[InInterval NotInInterval],[ OPERATOR_INTERFACE(Proc, Type, Dim) ]) ]) ]) define([OPERATOR_INTERFACE],[ pushdef([PROCEDURE], [$1]) pushdef([TYPE], [$2]) pushdef([PROCEDURE_TYPE], expand(PROCEDURE_TYPE)) interface OPERATOR (.PROCEDURE.) module procedure PROCEDURE_TYPE end interface popdef([PROCEDURE]) popdef([TYPE]) popdef([PROCEDURE_TYPE]) ]) fortext([Type],[Real Integer Character],[ fortext([Proc],[InSet NotInSet],[ OPERATOR_INTERFACE(Proc, Type) ]) ]) contains
The Logical_Class contains the following routines which are listed in separate sections:
end module Caesar_Logical_Class