Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
logical, | intent(in) | :: | InitializeOnly |
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 ManageThermalComfort(InitializeOnly)
! SUBROUTINE INFORMATION:
! AUTHOR Rick Strand
! DATE WRITTEN February 2000
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine manages the various thermal comfort calculations.
! METHODOLOGY EMPLOYED:
! Standard EnergyPlus manager methodology.
! REFERENCES:
! na
! USE STATEMENTS:
! na
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
LOGICAL, INTENT(IN) :: InitializeOnly ! when called from ZTPC and calculations aren't needed
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
LOGICAL,SAVE :: FirstTimeFlag = .TRUE. ! Flag set to make sure you get input once
LOGICAL,SAVE :: ASH55Flag = .false.
LOGICAL,SAVE :: CEN15251Flag = .false.
! FLOW:
! No input to get because this is already done by other heat balance routines
IF (FirstTimeFlag) THEN
CALL InitThermalComfort ! Mainly sets up output stuff
FirstTimeFlag = .FALSE.
IF (TotPeople > 0) THEN
IF (ANY(People%AdaptiveASH55)) ASH55Flag = .true.
IF (ANY(People%AdaptiveCEN15251)) CEN15251Flag = .true.
ENDIF
END IF
IF (DayOfSim == 1) THEN
IF (HourOfDay < 7) THEN
TemporarySixAMTemperature = 1.868132
ELSE IF (HourOfDay == 7) THEN
IF (TimeStep == 1) THEN
TemporarySixAMTemperature = OutDryBulbTemp
END IF
END IF
ELSE
IF (HourOfDay == 7) THEN
IF (TimeStep == 1) THEN
TemporarySixAMTemperature = OutDryBulbTemp
END IF
END IF
END IF
IF (InitializeOnly) RETURN
IF (BeginEnvrnFlag) THEN
ZoneOccHrs=0.0d0
ENDIF
IF (.not. DoingSizing .and. .not. WarmupFlag) THEN
CALL CalcThermalComfortFanger
CALL CalcThermalComfortPierce
CALL CalcThermalComfortKSU
CALL CalcThermalComfortSimpleASH55
CALL CalcIfSetpointMet
IF(ASH55Flag) CALL CalcThermalComfortAdaptiveASH55(.false.)
IF(CEN15251Flag) CALL CalcThermalComfortAdaptiveCEN15251(.false.)
ENDIF
! No updating needed
! No other reporting needed
RETURN
END SUBROUTINE ManageThermalComfort