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.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | BaseboardNum | |||
real(kind=r64), | intent(in) | :: | LoadMet |
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 SimElectricConvective(BaseboardNum, LoadMet)
! SUBROUTINE INFORMATION:
! AUTHOR Richard Liesen
! DATE WRITTEN Nov 2001
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE: This subroutine calculates the heat exchange rate
! in a pure Electricconvective baseboard heater.
! METHODOLOGY EMPLOYED:
! Currently this is primarily modified from HW Convective baseboard which has connections to
! a water loop and was necessary to calculate temps, flow rates and other things. This
! model might be made more sophisticated and might use some of those data structures in the future
! so they are left in place even though this model does not utilize them.
! REFERENCES:
! USE STATEMENTS:
!unused0909 USE DataEnvironment, ONLY: OutBaroPress
USE DataLoopNode, ONLY: Node
USE Psychrometrics, ONLY: PsyCpAirFnWTdb
USE DataHVACGlobals, ONLY: SmallLoad
IMPLICIT NONE
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER, INTENT(IN) :: BaseboardNum
REAL(r64), INTENT(IN) :: LoadMet
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
REAL(r64) :: AirInletTemp
REAL(r64) :: CpAir
REAL(r64) :: AirMassFlowRate
REAL(r64) :: CapacitanceAir
REAL(r64) :: Effic
REAL(r64) :: AirOutletTemp
REAL(r64) :: QBBCap
AirInletTemp = Baseboard(BaseboardNum)%AirInletTemp
AirOutletTemp = AirInletTemp
CpAir = PsyCpAirFnWTdb(Baseboard(BaseboardNum)%AirInletHumRat,AirInletTemp)
AirMassFlowRate = SimpConvAirFlowSpeed
CapacitanceAir = CpAir * AirMassFlowRate
! currently only the efficiency is used to calculate the electric consumption. There could be some
! thermal loss that could be accounted for with this efficiency input.
Effic = Baseboard(BaseboardNum)%BaseBoardEfficiency
IF (GetCurrentScheduleValue(Baseboard(BaseboardNum)%SchedPtr) .GT. 0.0 .and. &
LoadMet >= SmallLoad) THEN
! if the load exceeds the capacity than the capacity is set to the BB limit.
IF(LoadMet > Baseboard(BaseboardNum)%NominalCapacity) Then
QBBCap = Baseboard(BaseboardNum)%NominalCapacity
Else
QBBCap = LoadMet
End IF
! this could be utilized somehow or even reported so the data structures are left in place
AirOutletTemp=AirInletTemp + QBBCap/CapacitanceAir
!The BaseBoard electric Load is calculated using the efficiency
Baseboard(BaseboardNum)%ElecUseRate = QBBCap/Effic
ELSE
!if there is an off condition the BB does nothing.
AirOutletTemp = AirInletTemp
QBBCap = 0.0d0
Baseboard(BaseboardNum)%ElecUseRate = 0.0d0
END IF
Baseboard(BaseboardNum)%AirOutletTemp = AirOutletTemp
Baseboard(BaseboardNum)%Power = QBBCap
RETURN
END SUBROUTINE SimElectricConvective