| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| character(len=MaxNameLength), | public | :: | Name | = | '' | ||
| integer, | public | :: | Type | = | 0 | ||
| integer, | public | :: | DemandManagerList | = | 0 | ||
| logical, | public | :: | CanReduceDemand | = | .FALSE. | ||
| integer, | public | :: | AvailSchedule | = | 0 | ||
| logical, | public | :: | Available | = | .FALSE. | ||
| logical, | public | :: | Activate | = | .FALSE. | ||
| logical, | public | :: | Active | = | .FALSE. | ||
| integer, | public | :: | LimitControl | = | 0 | ||
| integer, | public | :: | SelectionControl | = | 0 | ||
| integer, | public | :: | LimitDuration | = | 0 | ||
| integer, | public | :: | ElapsedTime | = | 0 | ||
| integer, | public | :: | RotationDuration | = | 0 | ||
| integer, | public | :: | ElapsedRotationTime | = | 0 | ||
| integer, | public | :: | RotatedLoadNum | = | 0 | ||
| real(kind=r64), | public | :: | LowerLimit | = | 0.0d0 | ||
| real(kind=r64), | public | :: | UpperLimit | = | 0.0d0 | ||
| integer, | public | :: | NumOfLoads | = | 0 | ||
| integer, | public, | ALLOCATABLE, DIMENSION(:) | :: | Load | 
TYPE DemandManagerData
  CHARACTER(len=MaxNameLength)   :: Name = ''                     ! Name of DEMAND MANAGER
  INTEGER                        :: Type = 0                      ! Type of DEMAND MANAGER (:LIGHTS, :ELECTRICEQUIPMENT, etc.)
  INTEGER                        :: DemandManagerList = 0         ! Reference to parent DEMAND MANAGER LIST for error checking
  LOGICAL                        :: CanReduceDemand = .FALSE.     ! Flag to indicate whether manager can reduce demand
  INTEGER                        :: AvailSchedule = 0             ! Schedule index pointer for Availability Schedule
  LOGICAL                        :: Available = .FALSE.           ! Availability flag
  LOGICAL                        :: Activate = .FALSE.            ! Flag to activate the manager
  LOGICAL                        :: Active = .FALSE.              ! Flag to indicate that the manager is active
  INTEGER                        :: LimitControl = 0              !
  INTEGER                        :: SelectionControl = 0          !
  INTEGER                        :: LimitDuration = 0             ! Minimum duration of demand manager activity (min)
  INTEGER                        :: ElapsedTime = 0               ! Elapsed time for the demand manager activity (min)
  INTEGER                        :: RotationDuration = 0          ! Rotation duration (min)
  INTEGER                        :: ElapsedRotationTime = 0       ! Elapsed time for the current rotation (min)
  INTEGER                        :: RotatedLoadNum = 0            ! Index for rotated load
  REAL(r64)                      :: LowerLimit = 0.0d0              ! Lowest demand limit as fraction of design level
                                                                  ! Lowest heating setpoint for thermostats
  REAL(r64)                      :: UpperLimit = 0.0d0              ! Not used for demand limit
                                                                  ! Highest cooling setpoint for thermostats
  INTEGER                        :: NumOfLoads = 0                ! Number of load objects
  INTEGER, ALLOCATABLE, DIMENSION(:) :: Load                      ! Pointers to load objects
END TYPE DemandManagerData