Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | AirChillerSetID |
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 CalculateAirChillerSets(AirChillerSetID)
! SUBROUTINE INFORMATION:
! AUTHOR Therese Stovall, ORNL
! DATE WRITTEN January 2011
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Transfers the load requested from the zone to the refrigeration module.
! The load is met, partially met, or not met in the next time step when the refrigerated case
! module is called via case credits. Therefore, by definition, the sensible and latent
! output provided are zero.
!
! METHODOLOGY EMPLOYED:
! Called from Zone Equipment Manager.
!
! have however done the variable definitions for in and out.
! USE STATEMENTS:
!unused USE DataZoneEnergyDemands, ONLY: ZoneSysEnergyDemand
!unused USE InputProcessor, ONLY: FindItemInList
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER, INTENT(IN) :: AirChillerSetID
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: CoilID =0 ! Index to coil
INTEGER :: CoilIndex =0 ! rank of coils within system
REAL(r64) :: AirChillerSetSchedule =0.0d0 ! Schedule value for air chiller SET
REAL(r64) :: QZNReqSens =0.0d0 ! Amount of sensible heat needed by the zone, NEGATIVE when cooling needed [W]
REAL(r64) :: RemainQZNReqSens =0.0d0 ! Remaiing amount of sensible heat needed by the zone [W]
!Note, all coils in a coil set are in the same zone
! the coils may be served by different detailed systems
! The coils are dispatched to meet the load specified in the previous time step in order listed in coilset object
AirChillerSetSchedule = GetCurrentScheduleValue(AirChillerSet( AirChillerSetID)%SchedPtr)
IF ( AirChillerSetSchedule <= 0.d0) RETURN
QZNReqSens = AirChillerSet( AirChillerSetID)%QZnReqSens
RemainQZNReqSens = QZNReqSens
DO CoilIndex = 1,AirChillerSet(AirChillerSetID)%NumCoils
CoilID = AirChillerSet(AirChillerSetID)%CoilNum(CoilIndex)
CALL CalculateCoil(CoilID,RemainQZNReqSens)
RemainQZNReqSens = RemainQZNReqSens + WarehouseCoil(CoilID)%SensCreditRate
!should be a negative minus a negative, so a smaller negative, that is, going toward zero, but senscoolingenergyrate expressed as positive
!Need to go over all the coils so that the defrosts occur on schedule, even when the chiller isn't called for at that particular time step
!IF(RemainQZNReqSens >=0.d0)EXIT !shouldn't be > 0 because limited by request in calculatecoil
IF(RemainQZNReqSens > 0.d0)RemainQZNReqSens = 0.d0
END DO ! CoilIndex
RETURN
END SUBROUTINE CalculateAirChillerSets