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 GetBaseboardInput
! SUBROUTINE INFORMATION:
! AUTHOR Russ Taylor
! DATE WRITTEN Nov 1997
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine gets the input for the Baseboard units.
! METHODOLOGY EMPLOYED:
! Standard input processor calls.
! REFERENCES:
! na
! USE STATEMENTS:
USE InputProcessor, ONLY: GetNumObjectsFound, GetObjectItem, VerifyName, MakeUPPERCase, SameString
USE NodeInputManager, ONLY: GetOnlySingleNode
USE BranchNodeConnections, ONLY: TestCompSet
USE DataLoopNode
USE GlobalNames, ONLY : VerifyUniqueBaseboardName
USE DataIPShortCuts
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
! na
! SUBROUTINE PARAMETER DEFINITIONS:
CHARACTER(len=*), PARAMETER :: RoutineName='GetBaseboardInput: ' ! include trailing blank space
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: BaseboardNum
INTEGER :: NumConvHWBaseboards
INTEGER :: ConvHWBaseboardNum
INTEGER :: NumAlphas
INTEGER :: NumNums
INTEGER :: IOSTAT
LOGICAL :: ErrorsFound = .false. ! If errors detected in input
LOGICAL :: IsNotOK ! Flag to verify name
LOGICAL :: IsBlank ! Flag for blank name
LOGICAL :: errflag
cCurrentModuleObject = cCMO_BBRadiator_Water
NumConvHWBaseboards = GetNumObjectsFound(cCurrentModuleObject)
! Calculate total number of baseboard units
NumBaseboards = NumConvHWBaseboards
ALLOCATE(Baseboard(NumBaseboards))
ALLOCATE(CheckEquipName(NumBaseboards))
CheckEquipName=.true.
IF (NumConvHWBaseboards .GT. 0)THEN !Get the data for cooling schemes
BaseBoardNum=0
DO ConvHWBaseboardNum = 1, NumConvHWBaseboards
CALL GetObjectItem(cCurrentModuleObject,ConvHWBaseboardNum,cAlphaArgs,NumAlphas,rNumericArgs,NumNums,IOSTAT, &
NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),Baseboard%EquipID,BaseboardNum,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.true.
CYCLE
ENDIF
CALL VerifyUniqueBaseboardName(TRIM(cCurrentModuleObject),cAlphaArgs(1),errflag,TRIM(cCurrentModuleObject)//' Name')
IF (errflag) THEN
ErrorsFound=.true.
ENDIF
BaseboardNum = BaseboardNum + 1
Baseboard(BaseboardNum)%EquipID = cAlphaArgs(1) ! name of this baseboard
Baseboard(BaseboardNum)%EquipType = TypeOf_Baseboard_Conv_Water
Baseboard(BaseboardNum)%Schedule = cAlphaArgs(2)
IF (lAlphaFieldBlanks(2)) THEN
Baseboard(BaseboardNum)%SchedPtr = ScheduleAlwaysOn
ELSE
Baseboard(BaseboardNum)%SchedPtr = GetScheduleIndex(cAlphaArgs(2))
IF (Baseboard(BaseboardNum)%SchedPtr == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//': invalid '//TRIM(cAlphaFieldNames(2))// &
' entered ='//TRIM(cAlphaArgs(2))// &
' for '//TRIM(cAlphaFieldNames(1))//'='//TRIM(cAlphaArgs(1)))
ErrorsFound=.true.
END IF
ENDIF
! get inlet node number
Baseboard(BaseboardNum)%WaterInletNode = &
GetOnlySingleNode(cAlphaArgs(3),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Water,NodeConnectionType_Inlet,1,ObjectIsNotParent)
! get outlet node number
Baseboard(BaseboardNum)%WaterOutletNode = &
GetOnlySingleNode(cAlphaArgs(4),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Water,NodeConnectionType_Outlet,1,ObjectIsNotParent)
CALL TestCompSet(cCMO_BBRadiator_Water,cAlphaArgs(1),cAlphaArgs(3), &
cAlphaArgs(4),'Hot Water Nodes')
Baseboard(BaseboardNum)%UA = rNumericArgs(1)
Baseboard(BaseboardNum)%WaterVolFlowRateMax = rNumericArgs(2)
Baseboard(BaseboardNum)%Offset = rNumericArgs(3)
! Set default convergence tolerance
IF (Baseboard(BaseboardNum)%Offset .LE. 0.0d0) THEN
Baseboard(BaseboardNum)%Offset = 0.001d0
END IF
END DO
IF (ErrorsFound) THEN
CALL ShowFatalError(RoutineName//'Errors found in getting input. Preceding condition(s) cause termination.')
ENDIF
END IF
DO BaseboardNum = 1,NumBaseboards
! Setup Report variables for the unit
! CurrentModuleObject='ZoneHVAC:Baseboard:Convective:Water'
CALL SetupOutputVariable('Baseboard Total Heating Energy [J]', Baseboard(BaseboardNum)%Energy, &
'System','Sum',Baseboard(BaseboardNum)%EquipID, &
ResourceTypeKey='ENERGYTRANSFER',EndUseKey='BASEBOARD',GroupKey='System')
CALL SetupOutputVariable('Baseboard Hot Water Energy [J]', Baseboard(BaseboardNum)%Energy, &
'System','Sum',Baseboard(BaseboardNum)%EquipID, &
ResourceTypeKey='PLANTLOOPHEATINGDEMAND',EndUseKey='BASEBOARD',GroupKey='System')
CALL SetupOutputVariable('Baseboard Total Heating Rate [W]', Baseboard(BaseboardNum)%Power, &
'System','Average',Baseboard(BaseboardNum)%EquipID)
CALL SetupOutputVariable('Baseboard Hot Water Mass Flow Rate [kg/s]', Baseboard(BaseboardNum)%WaterMassFlowRate, &
'System','Average',Baseboard(BaseboardNum)%EquipID)
CALL SetupOutputVariable('Baseboard Air Mass Flow Rate [kg/s]', Baseboard(BaseboardNum)%AirMassFlowRate, &
'System','Average',Baseboard(BaseboardNum)%EquipID)
CALL SetupOutputVariable('Baseboard Air Inlet Temperature [C]', Baseboard(BaseboardNum)%AirInletTemp, &
'System','Average',Baseboard(BaseboardNum)%EquipID)
CALL SetupOutputVariable('Baseboard Air Outlet Temperature [C]', Baseboard(BaseboardNum)%AirOutletTemp, &
'System','Average',Baseboard(BaseboardNum)%EquipID)
CALL SetupOutputVariable('Baseboard Water Inlet Temperature [C]', Baseboard(BaseboardNum)%WaterInletTemp, &
'System','Average',Baseboard(BaseboardNum)%EquipID)
CALL SetupOutputVariable('Baseboard Water Outlet Temperature [C]', Baseboard(BaseboardNum)%WaterOutletTemp, &
'System','Average',Baseboard(BaseboardNum)%EquipID)
END DO
RETURN
END SUBROUTINE GetBaseboardInput