Nodes of different colours represent the following:
Solid arrows point from a parent (sub)module to the submodule which is descended from it. Dashed arrows point from a module being used to the module or program unit using it. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
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.
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.
SUBROUTINE EchoOutInternalVariableChoices
! SUBROUTINE INFORMATION:
! AUTHOR Brent Griffith
! DATE WRITTEN April 2009
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! echo out actuators registered with SetupEMSActuator for user access
! METHODOLOGY EMPLOYED:
! mine structure and write to eio file
! REFERENCES:
! na
! USE STATEMENTS
USE InputProcessor, ONLY: FindItemInList
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
! na
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: InternalDataLoop
CHARACTER(len=MaxNameLength), DIMENSION(:), ALLOCATABLE :: TempTypeName
LOGICAL, DIMENSION(:), ALLOCATABLE :: UniqueARRflag
INTEGER :: Found
IF (OutputEMSInternalVarsFull) THen
WRITE(OutputEMSFileUnitNum, '(A)') '! <EnergyManagementSystem:InternalVariable Available>, Unique Name, Internal Data Type' &
//', Units '
DO InternalDataLoop =1, numEMSInternalVarsAvailable
WRITE(OutputEMSFileUnitNum, '(A)') 'EnergyManagementSystem:InternalVariable Available,'&
//Trim(EMSInternalVarsAvailable(InternalDataLoop)%UniqueIDName) &
//','//Trim(EMSInternalVarsAvailable(InternalDataLoop)%DataTypeName) &
//','//Trim(EMSInternalVarsAvailable(InternalDataLoop)%Units )
ENDDO
ELSE IF (OutputEMSInternalVarsSmall) THEN
WRITE(OutputEMSFileUnitNum, '(A)') '! <EnergyManagementSystem:InternalVariable Available>, *, Internal Data Type'
ALLOCATE(TempTypeName(numEMSInternalVarsAvailable))
TempTypeName = EMSInternalVarsAvailable%DataTypeName
ALLOCATE(UniqueARRflag(numEMSInternalVarsAvailable))
UniqueARRflag = .FALSE.
DO InternalDataLoop =1, numEMSInternalVarsAvailable
IF (InternalDataLoop+1 <= numEMSInternalVarsAvailable) THEN
Found = FindItemInList(TempTypeName(InternalDataLoop), TempTypeName(InternalDataLoop+1:numEMSInternalVarsAvailable), &
(numEMSInternalVarsAvailable - (InternalDataLoop+1)) )
ELSE
Found = 0
ENDIF
IF (Found == 0) UniqueARRflag(InternalDataLoop) = .TRUE.
ENDDO
DO InternalDataLoop =1, numEMSInternalVarsAvailable
IF (UniqueARRflag(InternalDataLoop)) Then
WRITE(OutputEMSFileUnitNum, '(A)') 'EnergyManagementSystem:InternalVariable Available,'&
//' *' &
//','//Trim(EMSInternalVarsAvailable(InternalDataLoop)%DataTypeName) &
//','//Trim(EMSInternalVarsAvailable(InternalDataLoop)%Units )
ENDIF
ENDDO
DEALLOCATE(TempTypeName)
DEALLOCATE(UniqueARRflag)
ENDIF
RETURN
END SUBROUTINE EchoOutInternalVariableChoices