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) | :: | TempControlledZoneID | |||
integer, | intent(in) | :: | ActualZoneNum |
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 AdjustCoolingSetPointforTempAndHumidityControl(TempControlledZoneID, ActualZoneNum)
! SUBROUTINE INFORMATION:
! AUTHOR Bereket A Nigusse, FSEC/UCF
! DATE WRITTEN Nov 2010
! MODIFIED
! RE-ENGINEERED
! PURPOSE OF THIS SUBROUTINE:
! This subroutine modifies the air cooling setpoint temperature to effect zone air Temperature
! and humidity control
!
! METHODOLOGY EMPLOYED:
! Alter the zone air cooling setpoint if the zone air relative humidity value exceeds the
! the zone dehumidifying relative humidity setpoint.
! REFERENCES:
! USE STATEMENTS:
USE ScheduleManager, ONLY: GetCurrentScheduleValue
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER, INTENT(IN) :: TempControlledZoneID
INTEGER, INTENT(IN) :: ActualZoneNum ! controlled zone actual zone number
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
REAL(r64) :: MaxAllowedOvercoolRange ! Maximum allowed zone overcool range [DeltaC]
REAL(r64) :: RelativeHumidityDiff ! Difference between zone air relative humidity and dehumidifying setpoint [%RH]
REAL(r64) :: ZoneOvercoolRange !
REAL(r64) :: ZoneOvercoolControlRatio !
IF (.NOT.(AnyZoneTempAndHumidityControl)) RETURN ! do nothing to setpoint
IF (.NOT. (TempControlledZone(TempControlledZoneID)%ZoneOvercoolControl)) RETURN ! do nothing to setpoint
IF (TempControlledZone(TempControlledZoneID)%OverCoolCntrlModeScheduled)THEN
ZoneOvercoolRange = &
GetCurrentScheduleValue(TempControlledZone(TempControlledZoneID)%ZoneOverCoolRangeSchedIndex)
ELSE
ZoneOvercoolRange = TempControlledZone(TempControlledZoneID)%ZoneOvercoolConstRange
ENDIF
ZoneOvercoolControlRatio = TempControlledZone(TempControlledZoneID)%ZoneOvercoolControlRatio
! For Dual Setpoint thermostat the overcool range is limited by the temperature difference between cooling
! and heating setpoints
MaxAllowedOvercoolRange = ZoneThermostatSetPointHi(ActualZoneNum) - ZoneThermostatSetPointLo(ActualZoneNum)
IF (MaxAllowedOvercoolRange > 0.0d0)THEN
ZoneOvercoolRange = MIN(ZoneOvercoolRange, MaxAllowedOvercoolRange)
ENDIF
! Calculate difference between zone air relative humidity and the dehumidifying setpoint
RelativeHumidityDiff = ZoneAirRelHum(ActualZoneNum) &
- GetCurrentScheduleValue(TempControlledZone(TempControlledZoneID)%DehumidifyingSchedIndex)
IF (RelativeHumidityDiff > 0.0d0 .AND. ZoneOvercoolControlRatio > 0.0d0) THEN
! proportionally reset the cooling setpoint temperature downward (zone Overcool)
ZoneOvercoolRange = MIN(ZoneOvercoolRange, RelativeHumidityDiff / ZoneOvercoolControlRatio)
ZoneThermostatSetPointHi(ActualZoneNum) = ZoneThermostatSetPointHi(ActualZoneNum) - ZoneOvercoolRange
ENDIF
RETURN
END SUBROUTINE AdjustCoolingSetPointforTempAndHumidityControl