| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(RootFinderDataType), | intent(in) | :: | RootFinderData | |||
| real(kind=r64), | intent(in) | :: | X | 
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
LOGICAL FUNCTION CheckMinMaxRange( RootFinderData, X )
          ! FUNCTION INFORMATION:
          !       AUTHOR         Dimitri Curtil (LBNL)
          !       DATE WRITTEN   February 2006
          !       MODIFIED       Brent Griffith (NREL) added DefinedFlag traps
          !       RE-ENGINEERED  na
          ! PURPOSE OF THIS FUNCTION:
          ! This function checks whether the current iterate X lies within the specified min/max limits
          ! or not.
          !
          ! Returns TRUE if current iterate satisfies min/max constraints.
          ! Returns FALSE if current iterate is out-of-range.
          !
          ! METHODOLOGY EMPLOYED:
          ! na
          ! REFERENCES:
          ! na
          ! USE STATEMENTS:
          ! na
  IMPLICIT NONE    ! Enforce explicit typing of all variables in this routine
          ! FUNCTION ARGUMENT DEFINITIONS:
  TYPE(RootFinderDataType), INTENT(IN)    :: RootFinderData ! Data used by root finding algorithm
  REAL(r64), INTENT(IN)                        :: X              ! X value for current iterate
          ! FUNCTION PARAMETER DEFINITIONS:
          ! na
          ! INTERFACE BLOCK SPECIFICATIONS
          ! na
          ! DERIVED TYPE DEFINITIONS
          ! na
          ! FUNCTION LOCAL VARIABLE DECLARATIONS:
          ! na
          ! FLOW:
  IF (RootFinderData%MinPoint%DefinedFlag) THEN  !DSU3 testing
    IF ( X < RootFinderData%MinPoint%X ) THEN
      CheckMinMaxRange = .FALSE.
      RETURN
    END IF
  ENDIF
  IF (RootFinderData%MaxPoint%DefinedFlag) THEN  !DSU3 testing
    IF ( X > RootFinderData%MaxPoint%X ) THEN
      CheckMinMaxRange = .FALSE.
      RETURN
    END IF
  ENDIF
  CheckMinMaxRange = .TRUE.
  RETURN
END FUNCTION CheckMinMaxRange