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 SetupNodeSetpointsAsActuators
! SUBROUTINE INFORMATION:
! AUTHOR Brent Griffith
! DATE WRITTEN May 2009
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! make system nodes in model available for EMS control
! METHODOLOGY EMPLOYED:
! Loop over node structures and make calls to SetupEMSActuator
! the pattern for the basic node setpoints is a little different in that the actuators directly
! affect the node variables, rather than using seperate logical override flag and ems values
! REFERENCES:
! na
! USE STATEMENTS:
USE DataLoopNode, ONLY: Node, NodeID, NumOfNodes
USE DataInterfaces, ONLY: SetupEMSActuator
USE OutAirNodeManager, ONLY: NumOutsideAirNodes, OutsideAirNodeList
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 :: LoopNode !local do loop index
LOGICAL :: lDummy ! not going to setup a pointer to logical control
! (could this ever cause a fault?)
! make it optional in Setup call?
INTEGER :: OutsideAirNodeNum ! local do loop index
INTEGER :: NodeNum ! local index.
lDummy = .FALSE.
IF (NumOfNodes > 0 ) THEN
DO LoopNode = 1, NumOfNodes
! setup the setpoint for each type of variable that can be controlled
CALL SetupEMSActuator ('System Node Setpoint', NodeID(LoopNode), &
'Temperature Setpoint', '[C]', lDummy, Node(LoopNode)%TempSetPoint )
CALL SetupEMSActuator ('System Node Setpoint', NodeID(LoopNode), &
'Temperature Minimum Setpoint', '[C]', lDummy, Node(LoopNode)%TempMin )
CALL SetupEMSActuator ('System Node Setpoint', NodeID(LoopNode), &
'Temperature Maximum Setpoint', '[C]', lDummy, Node(LoopNode)%TempMax )
CALL SetupEMSActuator ('System Node Setpoint', NodeID(LoopNode), &
'Humidity Ratio Setpoint', '[kgWater/kgDryAir]', lDummy, Node(LoopNode)%HumRatSetPoint )
CALL SetupEMSActuator ('System Node Setpoint', NodeID(LoopNode), &
'Humidity Ratio Maximum Setpoint', '[kgWater/kgDryAir]', lDummy, Node(LoopNode)%HumRatMax )
CALL SetupEMSActuator ('System Node Setpoint', NodeID(LoopNode), &
'Humidity Ratio Minimum Setpoint', '[kgWater/kgDryAir]', lDummy, Node(LoopNode)%HumRatMin )
CALL SetupEMSActuator ('System Node Setpoint', NodeID(LoopNode), &
'Mass Flow Rate Setpoint', '[kg/s]', lDummy, Node(LoopNode)%MassFlowRateSetPoint )
CALL SetupEMSActuator ('System Node Setpoint', NodeID(LoopNode), &
'Mass Flow Rate Maximum Available Setpoint', '[kg/s]', lDummy, Node(LoopNode)%MassFlowRateMaxAvail )
CALL SetupEMSActuator ('System Node Setpoint', NodeID(LoopNode), &
'Mass Flow Rate Minimum Available Setpoint', '[kg/s]', lDummy, Node(LoopNode)%MassFlowRateMinAvail )
ENDDO
ENDIF ! NumOfNodes > 0
IF (NumOutsideAirNodes > 0) THEN
DO OutsideAirNodeNum = 1, NumOutsideAirNodes
NodeNum = OutsideAirNodeList(OutsideAirNodeNum)
CALL SetupEMSActuator ('Outdoor Air System Node', NodeID(NodeNum), &
'Drybulb Temperature' , '[C]', Node(NodeNum)%EMSOverrideOutAirDryBulb, &
Node(NodeNum)%EMSValueForOutAirDryBulb )
CALL SetupEMSActuator ('Outdoor Air System Node', NodeID(NodeNum), &
'Wetbulb Temperature' , '[C]', Node(NodeNum)%EMSOverrideOutAirWetBulb, &
Node(NodeNum)%EMSValueForOutAirWetBulb )
ENDDO
ENDIF
RETURN
END SUBROUTINE SetupNodeSetpointsAsActuators