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 InitThermalComfort
! SUBROUTINE INFORMATION:
! AUTHOR Rick Strand
! DATE WRITTEN February 2000
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine allocates the proper arrays, sets all values to zero,
! and sets up the output stuff.
! 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:
! na
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: Loop ! DO loop counter
CHARACTER(len=MaxNameLength) :: CurrentGroupName
! FLOW:
ALLOCATE (ThermalComfortData(TotPeople))
DO Loop = 1, TotPeople
CurrentGroupName = People(Loop)%Name
! CurrentModuleObject='People'
IF (People(Loop)%Fanger) THEN
CALL SetupOutputVariable('Zone Thermal Comfort Fanger Model PMV []',ThermalComfortData(Loop)%FangerPMV, &
'Zone','State',People(Loop)%Name)
CALL SetupOutputVariable('Zone Thermal Comfort Fanger Model PPD [%]',ThermalComfortData(Loop)%FangerPPD, &
'Zone','State',People(Loop)%Name)
CALL SetupOutputVariable('Zone Thermal Comfort Clothing Surface Temperature [C]',ThermalComfortData(Loop)%CloSurfTemp, &
'Zone','State',People(Loop)%Name)
END IF
IF (People(Loop)%Pierce) THEN
CALL SetupOutputVariable('Zone Thermal Comfort Pierce Model Effective Temperature PMV []', &
ThermalComfortData(Loop)%PiercePMVET, &
'Zone','State',People(Loop)%Name)
CALL SetupOutputVariable('Zone Thermal Comfort Pierce Model Standard Effective Temperature PMV []', &
ThermalComfortData(Loop)%PiercePMVSET, &
'Zone','State',People(Loop)%Name)
CALL SetupOutputVariable('Zone Thermal Comfort Pierce Model Discomfort Index []',ThermalComfortData(Loop)%PierceDISC, &
'Zone','State',People(Loop)%Name)
CALL SetupOutputVariable('Zone Thermal Comfort Pierce Model Thermal Sensation Index []', &
ThermalComfortData(Loop)%PierceTSENS, &
'Zone','State',People(Loop)%Name)
END IF
IF (People(Loop)%Ksu) THEN
CALL SetupOutputVariable('Zone Thermal Comfort KSU Model Thermal Sensation Vote []',ThermalComfortData(Loop)%KsuTSV, &
'Zone','State',People(Loop)%Name)
END IF
IF ((People(Loop)%Fanger).OR.(People(Loop)%Pierce).OR.(People(Loop)%Ksu)) THEN
CALL SetupOutputVariable('Zone Thermal Comfort Mean Radiant Temperature [C]',ThermalComfortData(Loop)%ThermalComfortMRT, &
'Zone','State',People(Loop)%Name)
CALL SetupOutputVariable('Zone Thermal Comfort Operative Temperature [C]',ThermalComfortData(Loop)%ThermalComfortOpTemp, &
'Zone','State',People(Loop)%Name)
CALL SetupOutputVariable('Zone Thermal Comfort Clothing Value [clo]',ThermalComfortData(Loop)%ClothingValue, &
'Zone','State',People(Loop)%Name)
END IF
IF (People(Loop)%AdaptiveASH55) THEN
CALL SetupOutputVariable('Zone Thermal Comfort ASHRAE 55 Adaptive Model 90% Acceptability Status []', &
ThermalComfortData(Loop)%ThermalComfortAdaptiveASH5590, &
'Zone','State',People(Loop)%Name)
CALL SetupOutputVariable('Zone Thermal Comfort ASHRAE 55 Adaptive Model 80% Acceptability Status []', &
ThermalComfortData(Loop)%ThermalComfortAdaptiveASH5580, &
'Zone','State',People(Loop)%Name)
CALL SetupOutputVariable('Zone Thermal Comfort ASHRAE 55 Adaptive Model Running Average Outdoor Air Temperature [C]', &
ThermalComfortData(Loop)%ASHRAE55RunningMeanOutdoorTemp, &
'Zone','State',People(Loop)%Name)
CALL SetupOutputVariable('Zone Thermal Comfort ASHRAE 55 Adaptive Model Temperature [C]', &
ThermalComfortData(Loop)%TComfASH55, &
'Zone','State',People(Loop)%Name)
END IF
IF (People(Loop)%AdaptiveCEN15251) THEN
CALL SetupOutputVariable('Zone Thermal Comfort CEN 15251 Adaptive Model Category I Status []', &
ThermalComfortData(Loop)%ThermalComfortAdaptiveCEN15251CatI, &
'Zone','State',People(Loop)%Name)
CALL SetupOutputVariable('Zone Thermal Comfort CEN 15251 Adaptive Model Category II Status []', &
ThermalComfortData(Loop)%ThermalComfortAdaptiveCEN15251CatII, &
'Zone','State',People(Loop)%Name)
CALL SetupOutputVariable('Zone Thermal Comfort CEN 15251 Adaptive Model Category III Status []', &
ThermalComfortData(Loop)%ThermalComfortAdaptiveCEN15251CatIII, &
'Zone','State',People(Loop)%Name)
CALL SetupOutputVariable('Zone Thermal Comfort CEN 15251 Adaptive Model Running Average Outdoor Air Temperature [C]', &
ThermalComfortData(Loop)%CEN15251RunningMeanOutdoorTemp, &
'Zone','State',People(Loop)%Name)
CALL SetupOutputVariable('Zone Thermal Comfort CEN 15251 Adaptive Model Temperature [C]', &
ThermalComfortData(Loop)%TComfCEN15251, &
'Zone','State',People(Loop)%Name)
END IF
END DO
ALLOCATE (ThermalComfortInASH55(NumOfZones))
! ASHRAE 55 Warning. If any people statement for a zone is true, set that zone to true
DO Loop = 1, TotPeople
IF (People(Loop)%Show55Warning) THEN
ThermalComfortInASH55(People(Loop)%ZonePtr)%Enable55Warning = .TRUE.
END IF
END DO
! CurrentModuleObject='Zone'
DO Loop = 1, NumOfZones
CALL SetupOutputVariable('Zone Thermal Comfort ASHRAE 55 Simple Model Summer Clothes Not Comfortable Time [hr]', &
ThermalComfortInASH55(Loop)%timeNotSummer, &
'Zone','Sum',Zone(Loop)%Name)
CALL SetupOutputVariable('Zone Thermal Comfort ASHRAE 55 Simple Model Winter Clothes Not Comfortable Time [hr]', &
ThermalComfortInASH55(Loop)%timeNotWinter, &
'Zone','Sum',Zone(Loop)%Name)
CALL SetupOutputVariable('Zone Thermal Comfort ASHRAE 55 Simple Model Summer or Winter Clothes Not Comfortable Time [hr]', &
ThermalComfortInASH55(Loop)%timeNotEither, &
'Zone','Sum',Zone(Loop)%Name)
END DO
CALL SetupOutputVariable('Facility Thermal Comfort ASHRAE 55 Simple Model Summer Clothes Not Comfortable Time [hr]', &
AnyZoneTimeNotSimpleASH55Summer, &
'Zone','Sum','Facility')
CALL SetupOutputVariable('Facility Thermal Comfort ASHRAE 55 Simple Model Winter Clothes Not Comfortable Time [hr]', &
AnyZoneTimeNotSimpleASH55Winter, &
'Zone','Sum','Facility')
CALL SetupOutputVariable('Facility Thermal Comfort ASHRAE 55 Simple Model Summer or Winter Clothes Not Comfortable Time [hr]', &
AnyZoneTimeNotSimpleASH55Either, &
'Zone','Sum','Facility')
ALLOCATE (ThermalComfortSetpoint(NumOfZones))
DO Loop = 1, NumOfZones
CALL SetupOutputVariable('Zone Heating Setpoint Not Met Time [hr]',ThermalComfortSetpoint(Loop)%notMetHeating, &
'Zone','Sum',Zone(Loop)%Name)
CALL SetupOutputVariable('Zone Heating Setpoint Not Met While Occupied Time [hr]', &
ThermalComfortSetpoint(Loop)%notMetHeatingOccupied, &
'Zone','Sum',Zone(Loop)%Name)
CALL SetupOutputVariable('Zone Cooling Setpoint Not Met Time [hr]',ThermalComfortSetpoint(Loop)%notMetCooling, &
'Zone','Sum',Zone(Loop)%Name)
CALL SetupOutputVariable('Zone Cooling Setpoint Not Met While Occupied Time [hr]', &
ThermalComfortSetpoint(Loop)%notMetCoolingOccupied, &
'Zone','Sum',Zone(Loop)%Name)
END DO
CALL SetupOutputVariable('Facility Heating Setpoint Not Met Time [hr]',AnyZoneNotMetHeating, &
'Zone','Sum','Facility')
CALL SetupOutputVariable('Facility Cooling Setpoint Not Met Time [hr]',AnyZoneNotMetCooling, &
'Zone','Sum','Facility')
CALL SetupOutputVariable('Facility Heating Setpoint Not Met While Occupied Time [hr]',AnyZoneNotMetHeatingOccupied, &
'Zone','Sum','Facility')
CALL SetupOutputVariable('Facility Cooling Setpoint Not Met While Occupied Time [hr]',AnyZoneNotMetCoolingOccupied, &
'Zone','Sum','Facility')
CALL GetAngleFactorList
ALLOCATE(ZoneOccHrs(NumOfZones))
ZoneOccHrs=0.0d0
RETURN
END SUBROUTINE InitThermalComfort