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 GetPlantValvesInput
! SUBROUTINE INFORMATION:
! AUTHOR Brent Griffith
! DATE WRITTEN Jan. 2006
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! get input from user
! METHODOLOGY EMPLOYED:
! usual method using InputProcessor
! REFERENCES:
! na
! USE STATEMENTS:
USE DataInterfaces, ONLY : ShowSevereError, ShowWarningError, ShowFatalError, SetupOutputVariable
USE InputProcessor, ONLY: GetNumObjectsFound, GetObjectItem ! might also use FindItemInList
USE DataIPShortCuts ! Data for field names, blank numerics
USE BranchNodeConnections, ONLY: TestCompSet
USE NodeInputManager, ONLY: GetOnlySingleNode
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 :: Item ! Item to be "gotten"
CHARACTER(len=MaxNameLength), &
DIMENSION(6) :: Alphas ! Alpha items for object
REAL(r64), DIMENSION(1) :: Numbers ! Numeric items for object
INTEGER :: NumAlphas ! Number of Alphas for each GetObjectItem call
INTEGER :: NumNumbers ! Number of Numbers for each GetObjectItem call
INTEGER :: IOStatus ! Used in GetObjectItem
LOGICAL :: ErrorsFound=.false. ! Set to true if errors in input, fatal at end of routine
CHARACTER(len=MaxNameLength) :: CurrentModuleObject ! for ease in renaming.
CurrentModuleObject = 'TemperingValve'
NumTemperingValves = GetNumObjectsFound(CurrentModuleObject)
ALLOCATE(TemperValve(NumTemperingValves))
ALLOCATE(CheckEquipName(NumTemperingValves))
CheckEquipName=.true.
DO Item=1,NumTemperingValves
CALL GetObjectItem(CurrentModuleObject,Item,Alphas,NumAlphas,Numbers,NumNumbers,IOStatus)
! <process, noting errors>
TemperValve(Item)%Name = Alphas(1)
! Get Plant Inlet Node
TemperValve(Item)%PltInletNodeNum = &
GetOnlySingleNode(Alphas(2),ErrorsFound,TRIM(CurrentModuleObject),Alphas(1), &
NodeType_Water,NodeConnectionType_Inlet, 1, ObjectIsNotParent)
! Get Plant Outlet Node
TemperValve(Item)%PltOutletNodeNum = &
GetOnlySingleNode(Alphas(3),ErrorsFound,TRIM(CurrentModuleObject),Alphas(1), &
NodeType_Water,NodeConnectionType_Outlet, 1, ObjectIsNotParent)
! Get Stream 2 Source Node
TemperValve(Item)%PltStream2NodeNum = &
GetOnlySingleNode(Alphas(4),ErrorsFound,TRIM(CurrentModuleObject),Alphas(1), &
NodeType_Water,NodeConnectionType_Sensor, 1, ObjectIsNotParent)
! Get Mixed water Setpoint
TemperValve(Item)%PltSetPointNodeNum = &
GetOnlySingleNode(Alphas(5),ErrorsFound,TRIM(CurrentModuleObject),Alphas(1), &
NodeType_Water,NodeConnectionType_Setpoint, 1, ObjectIsNotParent)
! Get Pump outlet
TemperValve(Item)%PltPumpOutletNodeNum = &
GetOnlySingleNode(Alphas(6),ErrorsFound,TRIM(CurrentModuleObject),Alphas(1), &
NodeType_Water,NodeConnectionType_Sensor, 1, ObjectIsNotParent)
! Note most checks on user input are made in second pass thru init routine
CALL TestCompSet(TRIM(CurrentModuleObject), Alphas(1), Alphas(2), Alphas(3), 'Supply Side Water Nodes')
ENDDO
DO Item=1,NumTemperingValves
CALL SetupOutputVariable('Tempering Valve Flow Fraction []', &
TemperValve(Item)%FlowDivFract,'System','Average',TemperValve(Item)%Name)
ENDDO
IF (ErrorsFound) THEN
CALL ShowFatalError('GetPlantValvesInput: '//TRIM(CurrentModuleObject)//' Errors found in input')
ENDIF
RETURN
END SUBROUTINE GetPlantValvesInput