WriteBEPSTable Subroutine

private subroutine WriteBEPSTable()

proc~~writebepstable~~UsesGraph proc~writebepstable WriteBEPSTable module~schedulemanager ScheduleManager module~schedulemanager->proc~writebepstable module~datahvacglobals DataHVACGlobals module~datahvacglobals->proc~writebepstable module~manageelectricpower ManageElectricPower module~datahvacglobals->module~manageelectricpower module~datawater DataWater module~datawater->proc~writebepstable module~outputprocessor OutputProcessor module~outputprocessor->proc~writebepstable module~sqliteprocedures~2 SQLiteProcedures module~sqliteprocedures~2->proc~writebepstable module~manageelectricpower->proc~writebepstable module~dataenvironment DataEnvironment module~dataenvironment->module~schedulemanager module~dataenvironment->module~outputprocessor module~datainterfaces DataInterfaces module~datainterfaces->module~schedulemanager module~datainterfaces->module~outputprocessor module~datainterfaces->module~sqliteprocedures~2 module~datainterfaces->module~manageelectricpower module~dataglobals DataGlobals module~dataglobals->module~schedulemanager module~dataglobals->module~datahvacglobals module~dataglobals->module~datawater module~dataglobals->module~outputprocessor module~dataglobals->module~manageelectricpower module~dataglobals->module~dataenvironment module~dataloopnode DataLoopNode module~dataglobals->module~dataloopnode module~dataprecisionglobals DataPrecisionGlobals module~dataprecisionglobals->module~schedulemanager module~dataprecisionglobals->module~datahvacglobals module~dataprecisionglobals->module~datawater module~dataprecisionglobals->module~outputprocessor module~dataprecisionglobals->module~manageelectricpower module~dataprecisionglobals->module~dataenvironment module~dataprecisionglobals->module~datainterfaces module~dataprecisionglobals->module~dataglobals module~dataprecisionglobals->module~dataloopnode module~dataglobalconstants DataGlobalConstants module~dataglobalconstants->module~outputprocessor module~dataglobalconstants->module~manageelectricpower module~dataloopnode->module~manageelectricpower
Help

Arguments

None

Calls

proc~~writebepstable~~CallsGraph proc~writebepstable WriteBEPSTable proc~determinebuildingfloorarea DetermineBuildingFloorArea proc~writebepstable->proc~determinebuildingfloorarea proc~getspecificunitdivider getSpecificUnitDivider proc~writebepstable->proc~getspecificunitdivider proc~samestring SameString proc~writebepstable->proc~samestring proc~writetable WriteTable proc~writebepstable->proc~writetable getschedulename getschedulename proc~writebepstable->getschedulename proc~addfootnotesubtable addFootNoteSubTable proc~writebepstable->proc~addfootnotesubtable proc~writetextline writeTextLine proc~writebepstable->proc~writetextline createsqlitetabulardatarecords createsqlitetabulardatarecords proc~writebepstable->createsqlitetabulardatarecords interface~predeftableentry PreDefTableEntry proc~writebepstable->interface~predeftableentry proc~writesubtitle writeSubtitle proc~writebepstable->proc~writesubtitle endusecategory endusecategory proc~writebepstable->endusecategory proc~convertipdelta ConvertIPdelta proc~writebepstable->proc~convertipdelta proc~lookupsitoip LookupSItoIP proc~writebepstable->proc~lookupsitoip proc~writereportheaders WriteReportHeaders proc~writebepstable->proc~writereportheaders proc~realtostr RealToStr proc~writebepstable->proc~realtostr zone zone proc~determinebuildingfloorarea->zone proc~getspecificunitmultiplier getSpecificUnitMultiplier proc~getspecificunitdivider->proc~getspecificunitmultiplier proc~makeuppercase MakeUPPERCase proc~samestring->proc~makeuppercase proc~writetable->proc~samestring proc~converttoescaped ConvertToEscaped proc~writetable->proc~converttoescaped proc~getunitsubstring GetUnitSubString proc~writetable->proc~getunitsubstring interface~showwarningerror ShowWarningError proc~writetable->interface~showwarningerror proc~insertcurrencysymbol InsertCurrencySymbol proc~writetable->proc~insertcurrencysymbol proc~converttoelementtag ConvertToElementTag proc~writetable->proc~converttoelementtag proc~charpredeftableentry CharPreDefTableEntry interface~predeftableentry->proc~charpredeftableentry proc~realpredeftableentry RealPreDefTableEntry interface~predeftableentry->proc~realpredeftableentry proc~intpredeftableentry IntPreDefTableEntry interface~predeftableentry->proc~intpredeftableentry proc~lookupsitoip->proc~samestring proc~lookupsitoip->proc~makeuppercase proc~writereportheaders->proc~converttoelementtag proc~makeanchorname MakeAnchorName proc~writereportheaders->proc~makeanchorname proc~getspecificunitmultiplier->proc~samestring monetaryunit monetaryunit proc~insertcurrencysymbol->monetaryunit proc~incrementtableentry incrementTableEntry proc~charpredeftableentry->proc~incrementtableentry proc~realpredeftableentry->proc~incrementtableentry proc~intpredeftableentry->proc~incrementtableentry
Help

Called By

proc~~writebepstable~~CalledByGraph proc~writebepstable WriteBEPSTable proc~writetabularreports WriteTabularReports proc~writetabularreports->proc~writebepstable
Help

Source Code


Source Code

SUBROUTINE WriteBEPSTable
          ! SUBROUTINE INFORMATION:
          !       AUTHOR         Jason Glazer
          !       DATE WRITTEN   November 2003
          !       MODIFIED       January 2010, Kyle Benne
          !                      Added SQLite output
          !       RE-ENGINEERED  na

          ! PURPOSE OF THIS SUBROUTINE:
          !   Take the gathered total and enduse meter data and structure
          !   the results into a tabular report for output.

          ! METHODOLOGY EMPLOYED:
          !   Create arrays for the call to writeTable and then call it.
          !   This report actually consists of many sub-tables each with
          !   its own call to writeTable.  Anytime that column headings are
          !   desired they are done in a new table because the only place
          !   that will split up very long header lines for the fixed width
          !   table is the header rows.

          ! REFERENCES:
          ! na

          ! USE STATEMENTS:
USE OutputProcessor, ONLY: MaxNumSubcategories, EndUseCategory
USE DataWater,       ONlY: WaterStorage
USE ManageElectricPower , ONLY: ElecStorage, NumElecStorageDevices
USE SQLiteProcedures, ONLY: CreateSQLiteTabularDataRecords
USE DataHVACGlobals, ONLY: deviationFromSetPtThresholdHtg,deviationFromSetPtThresholdClg
USE ScheduleManager, ONLY: GetScheduleName

IMPLICIT NONE    ! Enforce explicit typing of all variables in this routine

          ! SUBROUTINE ARGUMENT DEFINITIONS:
          ! na

          ! SUBROUTINE PARAMETER DEFINITIONS:
INTEGER, parameter  ::  enduseLine            = 1
INTEGER, parameter  ::  detailLine            = 16
INTEGER, parameter  ::  normalizedLine        = 23
INTEGER, parameter  ::  elecSatisLine         = 36
INTEGER, parameter  ::  thermSatisLine        = 50
INTEGER, parameter  ::  waterSatisLine        = 59
INTEGER, parameter  ::  sourceSiteLine        = 69
INTEGER, parameter  ::  areaLine              = 73
INTEGER, parameter  ::  controlLine           = 77
INTEGER, parameter  ::  notesLine             = 83

INTEGER, parameter  ::  colElectricity        = 1
INTEGER, parameter  ::  colGas                = 2
INTEGER, parameter  ::  colAdditionalFuel     = 3
INTEGER, parameter  ::  colPurchCool          = 4
INTEGER, parameter  ::  colPurchHeat          = 5
INTEGER, parameter  ::  colWater              = 6

REAL(r64), parameter :: SmallValue = 1.d-14

          ! INTERFACE BLOCK SPECIFICATIONS:
          ! na

          ! DERIVED TYPE DEFINITIONS:
          ! na

          ! SUBROUTINE LOCAL VARIABLE DECLARATIONS:

! all arrays are in the format: (row, column)
CHARACTER(len=MaxNameLength),ALLOCATABLE, DIMENSION(:)     :: columnHead
INTEGER,ALLOCATABLE,DIMENSION(:)                           :: columnWidth
CHARACTER(len=MaxNameLength),ALLOCATABLE, DIMENSION(:)     :: rowHead
CHARACTER(len=MaxNameLength),ALLOCATABLE, DIMENSION(:,:)   :: tableBody

! all arrays are in the format: (row, columnm)
REAL(r64),DIMENSION(15,6)                           :: useVal
REAL(r64),DIMENSION(4,6)                            :: normalVal
REAL(r64),DIMENSION(6)                              :: collapsedTotal
REAL(r64),DIMENSION(numEndUses,6)                   :: collapsedEndUse
REAL(r64),DIMENSION(6,numEndUses,MaxNumSubcategories) :: collapsedEndUseSub
REAL(r64),DIMENSION(numEndUses,6)                     :: endUseSubOther
LOGICAL,DIMENSION(numEndUses)                         :: needOtherRow
REAL(r64)                                      :: totalOnsiteHeat
REAL(r64)                                      :: totalOnsiteWater
REAL(r64)                                      :: totalWater
REAL(r64)                                      :: netElecPurchasedSold
REAL(r64)                                      :: totalSiteEnergyUse
REAL(r64)                                      :: netSiteEnergyUse
REAL(r64)                                      :: totalSourceEnergyUse
REAL(r64)                                      :: netSourceEnergyUse
REAL(r64)                                      :: netSourceElecPurchasedSold
INTEGER                                        :: iResource
INTEGER                                        :: jEndUse
INTEGER                                        :: kEndUseSub
INTEGER                                        :: i
REAL(r64)                                      :: largeConversionFactor
REAL(r64)                                      :: kConversionFactor
INTEGER                                        :: numRows
REAL(r64)                                      :: initialStorage
REAL(r64)                                      :: finalStorage
REAL(r64)                                      :: StorageChange
INTEGER                                        :: resourcePrimaryHeating
REAL(r64)                                      :: heatingMaximum
CHARACTER(len=100)                             :: footnote
REAL(r64)                                      :: waterConversionFactor
REAL(r64)                                      :: areaConversionFactor
REAL(r64)                                      :: convBldgGrossFloorArea
REAL(r64)                                      :: convBldgCondFloorArea
CHARACTER(len=MaxNameLength) :: curNameWithSIUnits
CHARACTER(len=MaxNameLength) :: curNameAndUnits
INTEGER :: indexUnitConv
CHARACTER(len=52)                              :: tableString
REAL(r64)                                      :: processFraction
REAL(r64)                                      :: processElecCost
REAL(r64)                                      :: processGasCost
REAL(r64)                                      :: processOthrCost

REAL(r64),DIMENSION(6)                         :: leedFansParkFromFan
REAL(r64),DIMENSION(6)                         :: leedFansParkFromExtFuelEquip
REAL(r64),DIMENSION(6)                         :: leedIntLightProc
REAL(r64),DIMENSION(6)                         :: leedCook
REAL(r64),DIMENSION(6)                         :: leedIndProc
REAL(r64),DIMENSION(6)                         :: leedElevEsc
CHARACTER(len=MaxNameLength)                   :: subCatName
REAL(r64)                                      :: nonMisc
REAL(r64)                                      :: leedSiteIntLite = 0.0d0
REAL(r64)                                      :: leedSiteSpHeat = 0.0d0
REAL(r64)                                      :: leedSiteSpCool = 0.0d0
REAL(r64)                                      :: leedSiteFanInt = 0.0d0
REAL(r64)                                      :: leedSiteSrvWatr = 0.0d0
REAL(r64)                                      :: leedSiteRecept = 0.0d0
REAL(r64)                                      :: leedSiteMisc = 0.0d0
REAL(r64)                                      :: leedSiteTotal = 0.0d0
REAL(r64)                                      :: unconvert

IF (displayTabularBEPS .or. displayLEEDSummary) THEN
  ! show the headers of the report
  IF (displayTabularBEPS) THEN
    CALL WriteReportHeaders('Annual Building Utility Performance Summary','Entire Facility',isAverage)
    ! show the number of hours that the table applies to
    CALL writeTextLine('Values gathered over ' // RealToStr(gatherElapsedTimeBEPS,2) // ' hours',.TRUE.)
    IF (gatherElapsedTimeBEPS .LT. 8759.0d0) THEN  ! might not add up to 8760 exactly but can't be more than 1 hour diff.
      CALL writeTextLine('WARNING: THE REPORT DOES NOT REPRESENT A FULL ANNUAL SIMULATION.',.TRUE.)
    END IF
    CALL writeTextLine('',.TRUE.)
  ENDIF
  ! determine building floor areas
  CALL DetermineBuildingFloorArea
  ! collapse the gatherEndUseBEPS array to the resource groups displayed
  DO jEndUse=1,numEndUses
    collapsedEndUse(jEndUse,1) = gatherEndUseBEPS(jEndUse,1)    !electricity
    collapsedEndUse(jEndUse,2) = gatherEndUseBEPS(jEndUse,2)    !natural gas
    collapsedEndUse(jEndUse,3) = gatherEndUseBEPS(jEndUse,6)  & !additional fuel  <- gasoline
                               + gatherEndUseBEPS(jEndUse,8)  & !                 <- diesel
                               + gatherEndUseBEPS(jEndUse,9)  & !                 <- coal
                               + gatherEndUseBEPS(jEndUse,10) & !                 <- fuel oil #1
                               + gatherEndUseBEPS(jEndUse,11) & !                 <- fuel oil #2
                               + gatherEndUseBEPS(jEndUse,12) & !                 <- propane
                               + gatherEndUseBEPS(jEndUse,13) & !                 <- otherfuel1
                               + gatherEndUseBEPS(jEndUse,14)   !                 <- otherfuel2
    collapsedEndUse(jEndUse,4) = gatherEndUseBEPS(jEndUse,3)    !district cooling <- purchased cooling
    collapsedEndUse(jEndUse,5) = gatherEndUseBEPS(jEndUse,4)  & !district heating <- purchased heating
                               + gatherEndUseBEPS(jEndUse,5)    !                 <- steam
    collapsedEndUse(jEndUse,6) = gatherEndUseBEPS(jEndUse,7)    !water
  END DO
  ! repeat with totals
  collapsedTotal(1) = gatherTotalsBEPS(1)    !electricity
  collapsedTotal(2) = gatherTotalsBEPS(2)    !natural gas
  collapsedTotal(3) = gatherTotalsBEPS(6)  & !additional fuel  <- gasoline
                    + gatherTotalsBEPS(8)  & !                 <- diesel
                    + gatherTotalsBEPS(9)  & !                 <- coal
                    + gatherTotalsBEPS(10) & !                 <- fuel oil #1
                    + gatherTotalsBEPS(11) & !                 <- fuel oil #2
                    + gatherTotalsBEPS(12) & !                 <- propane
                    + gatherTotalsBEPS(13) & !                 <- otherfuel1
                    + gatherTotalsBEPS(14)   !                 <- otherfuel2
  collapsedTotal(4) = gatherTotalsBEPS(3)    !district cooling <- purchased cooling
  collapsedTotal(5) = gatherTotalsBEPS(4)  & !district heating <- purchased heating
                    + gatherTotalsBEPS(5)    !                 <- steam
  collapsedTotal(6) = gatherTotalsBEPS(7)    !water

  DO jEndUse=1,numEndUses
    DO kEndUseSub = 1, EndUseCategory(jEndUse)%NumSubcategories
      collapsedEndUseSub(1,jEndUse,kEndUseSub) = gatherEndUseSubBEPS(1,jEndUse,kEndUseSub)    !electricity
      collapsedEndUseSub(2,jEndUse,kEndUseSub) = gatherEndUseSubBEPS(2,jEndUse,kEndUseSub)    !natural gas
      collapsedEndUseSub(3,jEndUse,kEndUseSub) = gatherEndUseSubBEPS(6,jEndUse,kEndUseSub) &  !additional fuel  <- gasoline
                                               + gatherEndUseSubBEPS(8,jEndUse,kEndUseSub) &  !                 <- diesel
                                               + gatherEndUseSubBEPS(9,jEndUse,kEndUseSub) &  !                 <- coal
                                               + gatherEndUseSubBEPS(10,jEndUse,kEndUseSub) & !                 <- fuel oil #1
                                               + gatherEndUseSubBEPS(11,jEndUse,kEndUseSub) & !                 <- fuel oil #2
                                               + gatherEndUseSubBEPS(12,jEndUse,kEndUseSub) & !                 <- propane
                                               + gatherEndUseSubBEPS(13,jEndUse,kEndUseSub) & !                 <- otherfuel1
                                               + gatherEndUseSubBEPS(14,jEndUse,kEndUseSub)   !                 <- otherfuel2
      collapsedEndUseSub(4,jEndUse,kEndUseSub) = gatherEndUseSubBEPS(3,jEndUse,kEndUseSub)    !district cooling <- purch cooling
      collapsedEndUseSub(5,jEndUse,kEndUseSub) = gatherEndUseSubBEPS(4,jEndUse,kEndUseSub) &  !district heating <- purch heating
                                               + gatherEndUseSubBEPS(5,jEndUse,kEndUseSub)    !                 <- steam
      collapsedEndUseSub(6,jEndUse,kEndUseSub) = gatherEndUseSubBEPS(7,jEndUse,kEndUseSub)    !water
    END DO
  END DO

  ! unit conversion - all values are used as divisors
  SELECT CASE (unitsStyle)
    CASE (unitsStyleJtoKWH)
      largeConversionFactor = 3600000.d0
      kConversionFactor = 1.0d0
      waterConversionFactor = 1.0d0
      areaConversionFactor = 1.0d0
    CASE (unitsStyleInchPound)
      largeConversionFactor =  getSpecificUnitDivider('J','kBtu')    !1054351.84 J to kBtu
      kConversionFactor = 1.0d0
      waterConversionFactor = getSpecificUnitDivider('m3','gal')     !0.003785413 m3 to gal
      areaConversionFactor = getSpecificUnitDivider('m2','ft2')      !0.092893973 m2 to ft2
    CASE DEFAULT
      largeConversionFactor = 1000000000.d0
      kConversionFactor =  1000.0d0
      waterConversionFactor = 1.0d0
      areaConversionFactor = 1.0d0
  END SELECT

  ! convert floor areas
  convBldgGrossFloorArea = buildingGrossFloorArea / areaConversionFactor
  convBldgCondFloorArea = buildingConditionedFloorArea / areaConversionFactor

  !convert units into GJ (divide by 1,000,000,000) if J otherwise kWh
  DO iResource= 1,5 !don't do water
    DO jEndUse=1,numEndUses
      collapsedEndUse(jEndUse,iResource) = collapsedEndUse(jEndUse,iResource) / largeConversionFactor
        DO kEndUseSub = 1, EndUseCategory(jEndUse)%NumSubcategories
          collapsedEndUseSub(iResource,jEndUse,kEndUseSub) = collapsedEndUseSub(iResource,jEndUse,kEndUseSub) &
            / largeConversionFactor
        END DO
    END DO
    collapsedTotal(iResource) = collapsedTotal(iResource) / largeConversionFactor
  END DO
  !do water
  DO jEndUse=1,numEndUses
    collapsedEndUse(jEndUse,6) = collapsedEndUse(jEndUse,6) / waterConversionFactor
      DO kEndUseSub = 1, EndUseCategory(jEndUse)%NumSubcategories
        collapsedEndUseSub(6,jEndUse,kEndUseSub) = collapsedEndUseSub(6,jEndUse,kEndUseSub) &
          / waterConversionFactor
      END DO
  END DO

  ! convert to GJ
  gatherPowerFuelFireGen =  gatherPowerFuelFireGen  / largeConversionFactor
  gatherPowerPV =           gatherPowerPV           / largeConversionFactor
  gatherPowerWind =         gatherPowerWind         / largeConversionFactor
  gatherPowerHTGeothermal = gatherPowerHTGeothermal / largeConversionFactor
  gatherElecProduced =      gatherElecProduced      / largeConversionFactor
  gatherElecPurchased =     gatherElecPurchased     / largeConversionFactor
  gatherElecSurplusSold =   gatherElecSurplusSold   / largeConversionFactor

  ! get change in overall state of charge for electrical storage devices.
  IF (NumElecStorageDevices >0) THEN
    OverallNetEnergyFromStorage = (Sum(ElecStorage%StartingEnergyStored) - Sum(ElecStorage%ThisTimeStepStateOfCharge))
    OverallNetEnergyFromStorage = OverallNetEnergyFromStorage  / largeConversionFactor
  ELSE
    OverallNetEnergyFromStorage = 0.0D0
  ENDIF
  ! determine which resource is the primary heating resourse
  resourcePrimaryHeating = 0
  heatingMaximum = 0.0d0
  DO iResource = 1, 5 !don't do water
    IF (collapsedEndUse(endUseHeating, iResource) .GT. heatingMaximum) THEN
      heatingMaximum = collapsedEndUse(endUseHeating, iResource)
      resourcePrimaryHeating = iResource
    END IF
  END DO


  !
  !---- Source and Site Energy Sub-Table
  !
  ALLOCATE(rowHead(4))
  ALLOCATE(columnHead(3))
  ALLOCATE(columnWidth(3))
  columnWidth = 14 !array assignment - same for all columns
  ALLOCATE(tableBody(4,3))

  SELECT CASE (unitsStyle)
    CASE (unitsStyleJtoKWH)
      columnHead(1) = 'Total Energy [kWh]'
      columnHead(2) = 'Energy Per Total Building Area [kWh/m2]'
      columnHead(3) = 'Energy Per Conditioned Building Area [kWh/m2]'
    CASE (unitsStyleInchPound)
      columnHead(1) = 'Total Energy [kBtu]'
      columnHead(2) = 'Energy Per Total Building Area [kBtu/ft2]'
      columnHead(3) = 'Energy Per Conditioned Building Area [kBtu/ft2]'
    CASE DEFAULT
      columnHead(1) = 'Total Energy [GJ]'
      columnHead(2) = 'Energy Per Total Building Area [MJ/m2]'
      columnHead(3) = 'Energy Per Conditioned Building Area [MJ/m2]'
  END SELECT

  rowHead(1)  = 'Total Site Energy'
  rowHead(2)  = 'Net Site Energy'
  rowHead(3)  = 'Total Source Energy'
  rowHead(4)  = 'Net Source Energy'

  tableBody = ''

  ! compute the net amount of electricity received from the utility which
  ! is the amount purchased less the amount sold to the utility. Note that
  ! previously these variables were converted into GJ so now we don't need
  ! to do any conversion
    totalSiteEnergyUse = (gatherTotalsBEPS(1)  & !electricity
                        + gatherTotalsBEPS(2)  & !natural gas
                        + gatherTotalsBEPS(3)  & !district cooling
                        + gatherTotalsBEPS(4)  & !district heating
                        + gatherTotalsBEPS(5)  & !steam
                        + gatherTotalsBEPS(6)  & !gasoline
  ! water is not included   gatherTotalsBEPS(7)    !water
                        + gatherTotalsBEPS(8)  & !diesel
                        + gatherTotalsBEPS(9)  & !coal
                        + gatherTotalsBEPS(10) & !fuel oil #1
                        + gatherTotalsBEPS(11) & !fuel oil #2
                        + gatherTotalsBEPS(12) & !propane
                        + gatherTotalsBEPS(13) & !otherfuel1
                        + gatherTotalsBEPS(14) & !otherfuel2
                                              ) / largeConversionFactor

  netElecPurchasedSold = gatherElecPurchased  - gatherElecSurplusSold

  netSiteEnergyUse = netElecPurchasedSold & !electricity (already in GJ)
              + ( gatherTotalsBEPS(2)  & !natural gas
                + gatherTotalsBEPS(3)  & !district cooling
                + gatherTotalsBEPS(4)  & !district heating
                + gatherTotalsBEPS(5)  & !steam
                + gatherTotalsBEPS(6)  & !gasoline
  ! water is not included   gatherTotalsBEPS(7)    !water
                + gatherTotalsBEPS(8)  & !diesel
                + gatherTotalsBEPS(9)  & !coal
                + gatherTotalsBEPS(10) & !fuel oil #1
                + gatherTotalsBEPS(11) & !fuel oil #2
                + gatherTotalsBEPS(12) & !propane
                + gatherTotalsBEPS(13) & !otherfuel1
                + gatherTotalsBEPS(14) & !otherfuel2
                                      ) / largeConversionFactor

  IF (efficiencyDistrictCooling .EQ. 0)  efficiencyDistrictCooling = 1.0d0
  IF (efficiencyDistrictHeating .EQ. 0)  efficiencyDistrictHeating = 1.0d0


  ! source emissions already have the source factors included in the calcs.
  TotalSourceEnergyUse=0.0d0
  !  electricity
  if (fuelfactorsused(1)) then
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsSource(1)
  else
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsBEPS(1)*sourceFactorElectric
  endif
  !  natural gas
  if (fuelfactorsused(2)) then
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsSource(2)
  else
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsBEPS(2)*sourceFactorNaturalGas
  endif
  ! gasoline
  if (fuelfactorsused(3)) then
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsSource(3)
  else
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsBEPS(6)*sourceFactorGasoline
  endif
  ! diesel
  if (fuelfactorsused(4)) then
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsSource(4)
  else
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsBEPS(8)*sourceFactorDiesel
  endif
  ! coal
  if (fuelfactorsused(5)) then
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsSource(5)
  else
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsBEPS(9)*sourceFactorCoal
  endif
  ! fuel oil #1
  if (fuelfactorsused(6)) then
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsSource(6)
  else
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsBEPS(10)*sourceFactorFuelOil1
  endif
  ! fuel oil #2
  if (fuelfactorsused(7)) then
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsSource(7)
  else
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsBEPS(11)*sourceFactorFuelOil2
  endif
  ! propane
  if (fuelfactorsused(8)) then
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsSource(8)
  else
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsBEPS(12)*sourceFactorPropane
  endif
  !otherfuel1
  if (fuelfactorsused(11)) then
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsSource(11)
  else
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsBEPS(13)*sourceFactorOtherFuel1
  endif
  !otherfuel2
  if (fuelfactorsused(12)) then
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsSource(12)
  else
    TotalSourceEnergyUse=TotalSourceEnergyUse+gatherTotalsBEPS(14)*sourceFactorOtherFuel2
  endif


  TotalSourceEnergyUse = (TotalSourceEnergyuse   &
                  + gatherTotalsBEPS(3)*sourceFactorElectric/efficiencyDistrictCooling  & !district cooling
                  + gatherTotalsBEPS(4)*sourceFactorNaturalGas/efficiencyDistrictHeating  & !district heating
                  + gatherTotalsBEPS(5)*sourceFactorSteam  & !steam
                                          ) / largeConversionFactor


  ! now determine "net" source from purchased and surplus sold (still in J)

  if (fuelfactorsused(1)) then
    netSourceElecPurchasedSold = gatherTotalsSource(9) - gatherTotalsSource(10)
  else
    netSourceElecPurchasedSold = netElecPurchasedSold*sourceFactorElectric*largeConversionFactor  ! back to J
  endif

  netSourceEnergyUse=0.0d0
  !  natural gas
  if (fuelfactorsused(2)) then
    netSourceEnergyUse=netSourceEnergyUse+gatherTotalsSource(2)
  else
    netSourceEnergyUse=netSourceEnergyUse+gatherTotalsBEPS(2)*sourceFactorNaturalGas
  endif
  ! gasoline
  if (fuelfactorsused(3)) then
    netSourceEnergyUse=netSourceEnergyUse+gatherTotalsSource(3)
  else
    netSourceEnergyUse=netSourceEnergyUse+gatherTotalsBEPS(6)*sourceFactorGasoline
  endif
  ! diesel
  if (fuelfactorsused(4)) then
    netSourceEnergyUse=netSourceEnergyUse+gatherTotalsSource(4)
  else
    netSourceEnergyUse=netSourceEnergyUse+gatherTotalsBEPS(8)*sourceFactorDiesel
  endif
  ! coal
  if (fuelfactorsused(5)) then
    netSourceEnergyUse=netSourceEnergyUse+gatherTotalsSource(5)
  else
    netSourceEnergyUse=netSourceEnergyUse+gatherTotalsBEPS(9)*sourceFactorCoal
  endif
  ! fuel oil #1
  if (fuelfactorsused(6)) then
    netSourceEnergyUse=netSourceEnergyUse+gatherTotalsSource(6)
  else
    netSourceEnergyUse=netSourceEnergyUse+gatherTotalsBEPS(10)*sourceFactorFuelOil1
  endif
  ! fuel oil #2
  if (fuelfactorsused(7)) then
    netSourceEnergyUse=netSourceEnergyUse+gatherTotalsSource(7)
  else
    netSourceEnergyUse=netSourceEnergyUse+gatherTotalsBEPS(11)*sourceFactorFuelOil2
  endif
  ! propane
  if (fuelfactorsused(8)) then
    netSourceEnergyUse=netSourceEnergyUse+gatherTotalsSource(8)
  else
    netSourceEnergyUse=netSourceEnergyUse+gatherTotalsBEPS(12)*sourceFactorPropane
  endif
  ! otherfuel1
  if (fuelfactorsused(11)) then
    netSourceEnergyUse=netSourceEnergyUse+gatherTotalsSource(11)
  else
    netSourceEnergyUse=netSourceEnergyUse+gatherTotalsBEPS(13)*sourceFactorOtherFuel1
  endif
  ! otherfuel2
  if (fuelfactorsused(12)) then
    netSourceEnergyUse=netSourceEnergyUse+gatherTotalsSource(12)
  else
    netSourceEnergyUse=netSourceEnergyUse+gatherTotalsBEPS(14)*sourceFactorOtherFuel2
  endif

  netSourceEnergyUse = (netSourceEnergyUse   &          ! from other fuels
                  + netSourceElecPurchasedSold        & !net source from electricity
                  + gatherTotalsBEPS(3)*sourceFactorElectric/efficiencyDistrictCooling  & !district cooling
                  + gatherTotalsBEPS(4)*sourceFactorNaturalGas/efficiencyDistrictHeating  & !district heating
                  + gatherTotalsBEPS(5)*sourceFactorSteam  & !steam
                                         ) / largeConversionFactor


  ! show annual values
  tableBody(1,1)  = TRIM(RealToStr(totalSiteEnergyUse,2))
  tableBody(2,1)  = TRIM(RealToStr(netSiteEnergyUse, 2))
  tableBody(3,1)  = TRIM(RealToStr(totalSourceEnergyUse,2))
  tableBody(4,1)  = TRIM(RealToStr(netSourceEnergyUse,2))
  ! show  per building area
  IF (convBldgGrossFloorArea .GT. 0) THEN
    tableBody(1,2)  = TRIM(RealToStr(totalSiteEnergyUse * kConversionFactor &
                           / convBldgGrossFloorArea,2))
    tableBody(2,2)  = TRIM(RealToStr(netSiteEnergyUse * kConversionFactor &
                           / convBldgGrossFloorArea,2))
    tableBody(3,2)  = TRIM(RealToStr(totalSourceEnergyUse * kConversionFactor &
                           / convBldgGrossFloorArea, 2))
    tableBody(4,2)  = TRIM(RealToStr(netSourceEnergyUse * kConversionFactor &
                           / convBldgGrossFloorArea, 2))
   END IF
  ! show  per conditioned building area
  IF (convBldgCondFloorArea .GT. 0) THEN
    tableBody(1,3)  = TRIM(RealToStr(TotalSiteEnergyUse * kConversionFactor &
                           / convBldgCondFloorArea,2))
    tableBody(2,3)  = TRIM(RealToStr(NetSiteEnergyUse * kConversionFactor &
                           / convBldgCondFloorArea,2))
    tableBody(3,3)  = TRIM(RealToStr(TotalSourceEnergyUse * kConversionFactor &
                           / convBldgCondFloorArea, 2))
    tableBody(4,3)  = TRIM(RealToStr(NetSourceEnergyUse * kConversionFactor &
                           / convBldgCondFloorArea, 2))
  END IF

  ! heading for the entire sub-table
  IF (displayTabularBEPS) THEN
    CALL writeSubtitle('Site and Source Energy')
    CALL writeTable(tableBody,rowHead,columnHead,columnWidth)
    CALL CreateSQLiteTabularDataRecords(tableBody,rowHead,columnHead,&
                                      'AnnualBuildingUtilityPerformanceSummary',&
                                      'Entire Facility',&
                                      'Site and Source Energy')
  ENDIF

  DEALLOCATE(columnHead)
  DEALLOCATE(rowHead)
  DEALLOCATE(columnWidth)
  DEALLOCATE(tableBody)

  !
  !---- Source and Site Energy Sub-Table
  !
  ALLOCATE(rowHead(13))
  ALLOCATE(columnHead(1))
  ALLOCATE(columnWidth(1))
  columnWidth = 50 !array assignment
  ALLOCATE(tableBody(13,1))

  columnHead(1) = 'Site=>Source Conversion Factor'

  rowHead(1)  = 'Electricity'
  rowHead(2)  = 'Natural Gas'
  rowHead(3)  = 'District Cooling'
  rowHead(4)  = 'District Heating'
  rowHead(5)  = 'Steam'
  rowHead(6)  = 'Gasoline'
  rowHead(7)  = 'Diesel'
  rowHead(8)  = 'Coal'
  rowHead(9)  = 'Fuel Oil #1'
  rowHead(10)  = 'Fuel Oil #2'
  rowHead(11)  = 'Propane'
  rowHead(12)  = 'Other Fuel 1'
  rowHead(13)  = 'Other Fuel 2'

  tableBody = ''

  ! set columns to conversion factors
  ! show values
!  tableBody(1,1)  = TRIM(RealToStr(sourceFactorElectric,3))
!  tableBody(2,1)  = TRIM(RealToStr(sourceFactorNaturalGas, 3))
!  tableBody(3,1)  = TRIM(RealToStr(sourceFactorElectric/ efficiencyDistrictCooling,3))
!  tableBody(4,1)  = TRIM(RealToStr(sourceFactorNaturalGas/ efficiencyDistrictHeating ,3))
!  tableBody(5,1)  = TRIM(RealToStr(sourceFactorSteam ,3))
!  tableBody(6,1)  = TRIM(RealToStr(sourceFactorGasoline ,3))
!  tableBody(7,1)  = TRIM(RealToStr(sourceFactorDiesel ,3))
!  tableBody(8,1)  = TRIM(RealToStr(sourceFactorCoal ,3))
!  tableBody(9,1)  = TRIM(RealToStr(sourceFactorFuelOil1 ,3))
!  tableBody(10,1) = TRIM(RealToStr(sourceFactorFuelOil2 ,3))
!  tableBody(11,1) = TRIM(RealToStr(sourceFactorPropane ,3))

  IF (.not. ffSchedUsed(1)) THEN
    tableBody(1,1)  = TRIM(RealToStr(sourceFactorElectric,3))
  ELSEIF (gatherTotalsBEPS(1) > SmallValue) THEN
    tableBody(1,1)  = 'Effective Factor = ' // TRIM(RealToStr(gatherTotalsBySourceBEPS(1)/gatherTotalsBEPS(1),3)) // &
                         ' (calculated using schedule "' // TRIM(GetScheduleName(ffSchedIndex(1))) // '")'
  ELSE
    tableBody(1,1)  = 'N/A'
  END IF

  IF (.not. ffSchedUsed(2)) THEN
    tableBody(2,1)  = TRIM(RealToStr(sourceFactorNaturalGas, 3))
  ELSEIF (gatherTotalsBEPS(2) > SmallValue) THEN
    tableBody(2,1)  = 'Effective Factor = ' // TRIM(RealToStr(gatherTotalsBySourceBEPS(2)/gatherTotalsBEPS(2),3)) // &
                         ' (calculated using schedule "' // TRIM(GetScheduleName(ffSchedIndex(2))) // '")'
  ELSE
    tableBody(2,1)  = 'N/A'
  END IF

  tableBody(3,1)  = TRIM(RealToStr(sourceFactorElectric/ efficiencyDistrictCooling,3)) ! District Cooling

  tableBody(4,1)  = TRIM(RealToStr(sourceFactorNaturalGas/ efficiencyDistrictHeating ,3)) ! Disctrict Heating

  tableBody(5,1)  = TRIM(RealToStr(sourceFactorSteam ,3)) ! Steam

  IF (.not. ffSchedUsed(6)) THEN
    tableBody(6,1)  = TRIM(RealToStr(sourceFactorGasoline ,3))
  ELSEIF (gatherTotalsBEPS(6) > SmallValue) THEN
    tableBody(6,1)  = 'Effective Factor = ' // TRIM(RealToStr(gatherTotalsBySourceBEPS(6)/gatherTotalsBEPS(6),3)) // &
                         ' (calculated using schedule "' // TRIM(GetScheduleName(ffSchedIndex(6))) // '")'
  ELSE
    tableBody(6,1)  = 'N/A'
  END IF

  IF (.not. ffSchedUsed(8)) THEN
    tableBody(7,1)  = TRIM(RealToStr(sourceFactorDiesel ,3))
  ELSEIF (gatherTotalsBEPS(8) > SmallValue) THEN
    tableBody(7,1)  = 'Effective Factor = ' // TRIM(RealToStr(gatherTotalsBySourceBEPS(8)/gatherTotalsBEPS(8),3)) // &
                         ' (calculated using schedule "' // TRIM(GetScheduleName(ffSchedIndex(8))) // '")'
  ELSE
    tableBody(7,1)  = 'N/A'
  END IF

  IF (.not. ffSchedUsed(9)) THEN
    tableBody(8,1)  = TRIM(RealToStr(sourceFactorCoal ,3))
  ELSEIF (gatherTotalsBEPS(9) > SmallValue) THEN
    tableBody(8,1)  = 'Effective Factor = ' // TRIM(RealToStr(gatherTotalsBySourceBEPS(9)/gatherTotalsBEPS(9),3)) // &
                         ' (calculated using schedule "' // TRIM(GetScheduleName(ffSchedIndex(9))) //'")'
  ELSE
    tableBody(8,1)  = 'N/A'
  END IF

  IF (.not. ffSchedUsed(10)) THEN
    tableBody(9,1)  = TRIM(RealToStr(sourceFactorFuelOil1 ,3))
  ELSEIF (gatherTotalsBEPS(10) > SmallValue) THEN
    tableBody(9,1)  = 'Effective Factor = ' // TRIM(RealToStr(gatherTotalsBySourceBEPS(10)/gatherTotalsBEPS(10),3)) // &
                         ' (calculated using schedule "' // TRIM(GetScheduleName(ffSchedIndex(10))) //'")'
  ELSE
    tableBody(9,1)  = 'N/A'
  END IF

  IF (.not. ffSchedUsed(11)) THEN
    tableBody(10,1)  = TRIM(RealToStr(sourceFactorFuelOil2 ,3))
  ELSEIF (gatherTotalsBEPS(11) > SmallValue) THEN
    tableBody(10,1)  = 'Effective Factor = ' // TRIM(RealToStr(gatherTotalsBySourceBEPS(11)/gatherTotalsBEPS(11),3)) // &
                         ' (calculated using schedule "' // TRIM(GetScheduleName(ffSchedIndex(11))) //'")'
  ELSE
    tableBody(10,1)  = 'N/A'
  END IF

  IF (.not. ffSchedUsed(12)) THEN
    tableBody(11,1)  = TRIM(RealToStr(sourceFactorPropane ,3))
  ELSEIF (gatherTotalsBEPS(12) > SmallValue) THEN
    tableBody(11,1)  = 'Effective Factor = ' // TRIM(RealToStr(gatherTotalsBySourceBEPS(12)/gatherTotalsBEPS(12),3)) // &
                         ' (calculated using schedule "' // TRIM(GetScheduleName(ffSchedIndex(12))) //'")'
  ELSE
    tableBody(11,1)  = 'N/A'
  END IF

  IF (.not. ffSchedUsed(13)) THEN
    tableBody(12,1)  = TRIM(RealToStr(sourceFactorOtherFuel1 ,3))
  ELSEIF (gatherTotalsBEPS(13) > SmallValue) THEN
    tableBody(12,1)  = 'Effective Factor = ' // TRIM(RealToStr(gatherTotalsBySourceBEPS(13)/gatherTotalsBEPS(13),3)) // &
                         ' (calculated using schedule "' // TRIM(GetScheduleName(ffSchedIndex(13))) //'")'
  ELSE
    tableBody(12,1)  = 'N/A'
  END IF

  IF (.not. ffSchedUsed(14)) THEN
    tableBody(13,1)  = TRIM(RealToStr(sourceFactorOtherFuel2 ,3))
  ELSEIF (gatherTotalsBEPS(14) > SmallValue) THEN
    tableBody(13,1)  = 'Effective Factor = ' // TRIM(RealToStr(gatherTotalsBySourceBEPS(14)/gatherTotalsBEPS(14),3)) // &
                         ' (calculated using schedule "' // TRIM(GetScheduleName(ffSchedIndex(14))) //'")'
  ELSE
    tableBody(13,1)  = 'N/A'
  END IF

  ! heading for the entire sub-table
  IF (displayTabularBEPS) THEN
    CALL writeSubtitle('Site to Source Energy Conversion Factors')
    CALL writeTable(tableBody,rowHead,columnHead,columnWidth)
    CALL CreateSQLiteTabularDataRecords(tableBody,rowHead,columnHead,&
                                      'AnnualBuildingUtilityPerformanceSummary',&
                                      'Entire Facility',&
                                      'Site to Source Energy Conversion Factors')
  ENDIF

  DEALLOCATE(columnHead)
  DEALLOCATE(rowHead)
  DEALLOCATE(columnWidth)
  DEALLOCATE(tableBody)

  !
  !---- Building Area Sub-Table
  !
  ALLOCATE(rowHead(3))
  ALLOCATE(columnHead(1))
  ALLOCATE(columnWidth(1))
  columnWidth = 14 !array assignment - same for all columns
  ALLOCATE(tableBody(3,1))

  SELECT CASE (unitsStyle)
    CASE (unitsStyleJtoKWH)
      columnHead(1) = 'Area [m2]'
    CASE (unitsStyleInchPound)
      columnHead(1) = 'Area [ft2]'
    CASE DEFAULT
      columnHead(1) = 'Area [m2]'
  END SELECT

  rowHead(1)  = 'Total Building Area'
  rowHead(2)  = 'Net Conditioned Building Area'
  rowHead(3)  = 'Unconditioned Building Area'

  tableBody = ''
  tableBody(1,1)  = TRIM(RealToStr(convBldgGrossFloorArea,2))
  CALL PreDefTableEntry(pdchLeedGenData,'Total gross floor area [m2]',TRIM(RealToStr(convBldgGrossFloorArea,2)))
  tableBody(2,1)  = TRIM(RealToStr(convBldgCondFloorArea,2))
  tableBody(3,1)  = TRIM(RealToStr(convBldgGrossFloorArea - convBldgCondFloorArea,2))

  ! heading for the entire sub-table
  IF (displayTabularBEPS) THEN
    CALL writeSubtitle('Building Area')
    CALL writeTable(tableBody,rowHead,columnHead,columnWidth)
    CALL CreateSQLiteTabularDataRecords(tableBody,rowHead,columnHead,&
                                      'AnnualBuildingUtilityPerformanceSummary',&
                                      'Entire Facility',&
                                      'Building Area')
  ENDIF

  DEALLOCATE(columnHead)
  DEALLOCATE(rowHead)
  DEALLOCATE(columnWidth)
  DEALLOCATE(tableBody)

  !
  !---- End Use Sub-Table
  !
  ALLOCATE(rowHead(16))
  ALLOCATE(columnHead(6))
  ALLOCATE(columnWidth(6))
  columnWidth = 14 !array assignment - same for all columns
  ALLOCATE(tableBody(16,6))
  DO iResource= 1,6
    useVal(1,iResource)  = collapsedEndUse(endUseHeating,iResource)
    useVal(2,iResource)  = collapsedEndUse(endUseCooling,iResource)
    useVal(3,iResource)  = collapsedEndUse(endUseInteriorLights,iResource)
    useVal(4,iResource)  = collapsedEndUse(endUseExteriorLights,iResource)
    useVal(5,iResource)  = collapsedEndUse(endUseInteriorEquipment,iResource)
    useVal(6,iResource)  = collapsedEndUse(endUseExteriorEquipment,iResource)
    useVal(7,iResource)  = collapsedEndUse(endUseFans,iResource)
    useVal(8,iResource)  = collapsedEndUse(endUsePumps,iResource)
    useVal(9,iResource)  = collapsedEndUse(endUseHeatRejection,iResource)
    useVal(10,iResource) = collapsedEndUse(endUseHumidification,iResource)
    useVal(11,iResource) = collapsedEndUse(endUseHeatRecovery,iResource)
    useVal(12,iResource) = collapsedEndUse(endUseWaterSystem,iResource)
    useVal(13,iResource) = collapsedEndUse(endUseRefrigeration,iResource)
    useVal(14,iResource) = collapsedEndUse(endUseCogeneration,iResource)

    useVal(15,iResource) = collapsedTotal(iResource)  ! totals
  END DO

  rowHead(1)  = 'Heating'
  rowHead(2)  = 'Cooling'
  rowHead(3)  = 'Interior Lighting'
  rowHead(4)  = 'Exterior Lighting'
  rowHead(5)  = 'Interior Equipment'
  rowHead(6)  = 'Exterior Equipment'
  rowHead(7)  = 'Fans'
  rowHead(8)  = 'Pumps'
  rowHead(9)  = 'Heat Rejection'
  rowHead(10) = 'Humidification'
  rowHead(11) = 'Heat Recovery'
  rowHead(12) = 'Water Systems'
  rowHead(13) = 'Refrigeration'
  rowHead(14) = 'Generators'
  rowHead(15) = ''
  rowHead(16) = 'Total End Uses'

  SELECT CASE (unitsStyle)
    CASE (unitsStyleJtoKWH)
      columnHead(1) = 'Electricity [kWh]'
      columnHead(2) = 'Natural Gas [kWh]'
      columnHead(3) = 'Additional Fuel [kWh]'
      columnHead(4) = 'District Cooling [kWh]'
      columnHead(5) = 'District Heating [kWh]'
      columnHead(6) = 'Water [m3]'
    CASE (unitsStyleInchPound)
      columnHead(1) = 'Electricity [kBtu]'
      columnHead(2) = 'Natural Gas [kBtu]'
      columnHead(3) = 'Additional Fuel [kBtu]'
      columnHead(4) = 'District Cooling [kBtu]'
      columnHead(5) = 'District Heating [kBtu]'
      columnHead(6) = 'Water [gal]'
    CASE DEFAULT
      columnHead(1) = 'Electricity [GJ]'
      columnHead(2) = 'Natural Gas [GJ]'
      columnHead(3) = 'Additional Fuel [GJ]'
      columnHead(4) = 'District Cooling [GJ]'
      columnHead(5) = 'District Heating [GJ]'
      columnHead(6) = 'Water [m3]'
  END SELECT

  tableBody = ''
  DO iResource= 1,6
    DO jEndUse=1,14
      tableBody(jEndUse,iResource) = TRIM(RealToStr(useVal(jEndUse,iResource),2))
    END DO
    tableBody(16,iResource) = TRIM(RealToStr(useVal(15,iResource),2))
  END DO
  !complete the LEED end use table using the same values
  ! for certain rows in the LEED table the subcategories are necessary so first compute those values
  leedFansParkFromFan = 0.0d0
  leedFansParkFromExtFuelEquip = 0.0d0
  leedIntLightProc = 0.0d0
  leedCook = 0.0d0
  leedIndProc = 0.0d0
  leedElevEsc = 0.0d0

  DO iResource = 1, 5    ! don't bother with water
    DO jEndUse = 1, NumEndUses
      IF (EndUseCategory(jEndUse)%NumSubcategories > 0) THEN
        DO kEndUseSub = 1, EndUseCategory(jEndUse)%NumSubcategories
          subCatName = EndUseCategory(jEndUse)%SubcategoryName(kEndUseSub)
          IF (SameString(subCatName,'Fans - Parking Garage')) THEN
            IF (jEndUse .EQ. 7) THEN  !fans
              leedFansParkFromFan(iResource) = leedFansParkFromFan(iResource) + collapsedEndUseSub(iResource,jEndUse,kEndUseSub)
            ELSE
              leedFansParkFromExtFuelEquip(iResource) = leedFansParkFromExtFuelEquip(iResource) &
                   + collapsedEndUseSub(iResource,jEndUse,kEndUseSub)
            END IF
          ELSEIF (SameString(subCatName,'Interior Lighting - Process')) THEN
            leedIntLightProc(iResource) = leedIntLightProc(iResource) + collapsedEndUseSub(iResource,jEndUse,kEndUseSub)
          ELSEIF (SameString(subCatName,'Cooking')) THEN
            leedCook(iResource) = leedCook(iResource) + collapsedEndUseSub(iResource,jEndUse,kEndUseSub)
          ELSEIF (SameString(subCatName,'Industrial Process')) THEN
            leedIndProc(iResource) = leedIndProc(iResource) + collapsedEndUseSub(iResource,jEndUse,kEndUseSub)
          ELSEIF (SameString(subCatName,'Elevators and Escalators')) THEN
            leedElevEsc(iResource) = leedElevEsc(iResource) + collapsedEndUseSub(iResource,jEndUse,kEndUseSub)
          END IF
        END DO
      END IF
    END DO
  END DO

  unconvert = largeConversionFactor / 1000000000.d0  !to avoid double converting, the values for the LEED report should be in GJ
  CALL PreDefTableEntry(pdchLeedPerfElEneUse,'Interior Lighting',unconvert * (useVal(3,colElectricity) &
                    - leedIntLightProc(colElectricity)),2)
  CALL PreDefTableEntry(pdchLeedPerfElEneUse,'Exterior Lighting',unconvert * useVal(4,colElectricity),2)
  CALL PreDefTableEntry(pdchLeedPerfElEneUse,'Space Heating',unconvert * useVal(1,colElectricity),2)
  CALL PreDefTableEntry(pdchLeedPerfElEneUse,'Space Cooling',unconvert * useVal(2,colElectricity),2)
  CALL PreDefTableEntry(pdchLeedPerfElEneUse,'Pumps',unconvert * useVal(8,colElectricity),2)
  CALL PreDefTableEntry(pdchLeedPerfElEneUse,'Heat Rejection',unconvert * useVal(9,colElectricity),2)
  CALL PreDefTableEntry(pdchLeedPerfElEneUse,'Fans-Interior',unconvert * (useVal(7,colElectricity) &
                     - leedFansParkFromFan(colElectricity)),2)
  CALL PreDefTableEntry(pdchLeedPerfElEneUse,'Fans-Parking Garage',unconvert * (leedFansParkFromFan(colElectricity) &
                     + leedFansParkFromExtFuelEquip(colElectricity)),2)
  CALL PreDefTableEntry(pdchLeedPerfElEneUse,'Service Water Heating',unconvert * useVal(12,colElectricity),2)
  CALL PreDefTableEntry(pdchLeedPerfElEneUse,'Receptacle Equipment',unconvert * useVal(5,colElectricity),2)
  CALL PreDefTableEntry(pdchLeedPerfElEneUse,'Interior Lighting (process)',unconvert * leedIntLightProc(colElectricity),2)
  CALL PreDefTableEntry(pdchLeedPerfElEneUse,'Refrigeration Equipment',unconvert * useVal(13,colElectricity),2)
  CALL PreDefTableEntry(pdchLeedPerfElEneUse,'Cooking',unconvert * leedCook(colElectricity),2)
  CALL PreDefTableEntry(pdchLeedPerfElEneUse,'Industrial Process',unconvert * leedIndProc(colElectricity),2)
  CALL PreDefTableEntry(pdchLeedPerfElEneUse,'Elevators and Escalators',unconvert * leedElevEsc(colElectricity),2)
  CALL PreDefTableEntry(pdchLeedPerfElEneUse,'Total Line',unconvert * useVal(15,colElectricity),2)
  !  Energy Use Intensities
  IF (buildingGrossFloorArea .GT. 0) THEN
    CALL PreDefTableEntry(pdchLeedEuiElec,'Interior Lighting',unconvert * 1000 * (useVal(3,colElectricity) &
                      - leedIntLightProc(colElectricity))/buildingGrossFloorArea,2)
    CALL PreDefTableEntry(pdchLeedEuiElec,'Space Heating',unconvert * 1000 * useVal(1,colElectricity)/buildingGrossFloorArea,2)
    CALL PreDefTableEntry(pdchLeedEuiElec,'Space Cooling',unconvert * 1000 * useVal(2,colElectricity)/buildingGrossFloorArea,2)
    CALL PreDefTableEntry(pdchLeedEuiElec,'Fans-Interior',unconvert * 1000 * (useVal(7,colElectricity) &
                      - leedFansParkFromFan(colElectricity))/buildingGrossFloorArea,2)
    CALL PreDefTableEntry(pdchLeedEuiElec,'Service Water Heating',unconvert * 1000 &
                      * useVal(12,colElectricity)/buildingGrossFloorArea,2)
    CALL PreDefTableEntry(pdchLeedEuiElec,'Receptacle Equipment',unconvert * 1000 &
                      * useVal(5,colElectricity)/buildingGrossFloorArea,2)
    nonMisc = useVal(3,colElectricity) - leedIntLightProc(colElectricity) &
              + useVal(1,colElectricity) +  useVal(2,colElectricity) &
              + useVal(7,colElectricity) - leedFansParkFromFan(colElectricity) &
              + useVal(12,colElectricity) + useVal(5,colElectricity)
    CALL PreDefTableEntry(pdchLeedEuiElec,'Miscellaneous',unconvert * 1000 * (useVal(15,colElectricity) - nonMisc) &
              / buildingGrossFloorArea,2)
    CALL PreDefTableEntry(pdchLeedEuiElec,'Subtotal',unconvert * 1000 * useVal(15,colElectricity)/buildingGrossFloorArea,2)
  END IF

  CALL PreDefTableEntry(pdchLeedEusTotal,'Electricity',unconvert * useVal(15,colElectricity),2)
  CALL PreDefTableEntry(pdchLeedEusProc,'Electricity',unconvert * (useVal(5,colElectricity) + useVal(13,colElectricity)),2)
  IF (useVal(15,colElectricity) .NE. 0) THEN
    processFraction = (useVal(5,colElectricity) + useVal(13,colElectricity))/useVal(15,colElectricity)
    processElecCost = LEEDelecCostTotal * processFraction
  ELSE
    processElecCost = 0.0d0
  END IF
  CALL PreDefTableEntry(pdchLeedEcsProc,'Electricity',processElecCost,2)
  CALL addFootNoteSubTable(pdstLeedEneCostSum,'Process energy cost based on ratio of process to total energy.')

  CALL PreDefTableEntry(pdchLeedPerfGasEneUse,'Interior Lighting',unconvert * (useVal(3,colGas) - leedIntLightProc(colGas)),2)
  CALL PreDefTableEntry(pdchLeedPerfGasEneUse,'Exterior Lighting',unconvert * useVal(4,colGas),2)
  CALL PreDefTableEntry(pdchLeedPerfGasEneUse,'Space Heating',unconvert * useVal(1,colGas),2)
  CALL PreDefTableEntry(pdchLeedPerfGasEneUse,'Space Cooling',unconvert * useVal(2,colGas),2)
  CALL PreDefTableEntry(pdchLeedPerfGasEneUse,'Pumps',unconvert * useVal(8,colGas),2)
  CALL PreDefTableEntry(pdchLeedPerfGasEneUse,'Heat Rejection',unconvert * useVal(9,colGas),2)
  CALL PreDefTableEntry(pdchLeedPerfGasEneUse,'Fans-Interior',unconvert * (useVal(7,colGas)- leedFansParkFromFan(colGas)),2)
  CALL PreDefTableEntry(pdchLeedPerfGasEneUse,'Fans-Parking Garage',unconvert * (leedFansParkFromFan(colGas) &
                    + leedFansParkFromExtFuelEquip(colGas)),2)
  CALL PreDefTableEntry(pdchLeedPerfGasEneUse,'Service Water Heating',unconvert * useVal(12,colGas),2)
  CALL PreDefTableEntry(pdchLeedPerfGasEneUse,'Receptacle Equipment',unconvert * useVal(5,colGas),2)
  CALL PreDefTableEntry(pdchLeedPerfGasEneUse,'Interior Lighting (process)',unconvert * leedIntLightProc(colGas),2)
  CALL PreDefTableEntry(pdchLeedPerfGasEneUse,'Refrigeration Equipment',unconvert * useVal(13,colGas),2)
  CALL PreDefTableEntry(pdchLeedPerfGasEneUse,'Cooking',unconvert * leedCook(colGas),2)
  CALL PreDefTableEntry(pdchLeedPerfGasEneUse,'Industrial Process',unconvert * leedIndProc(colGas),2)
  CALL PreDefTableEntry(pdchLeedPerfGasEneUse,'Elevators and Escalators',unconvert * leedElevEsc(colGas),2)
  CALL PreDefTableEntry(pdchLeedPerfGasEneUse,'Total Line',unconvert * useVal(15,colGas),2)
  !  Energy Use Intensities
  IF (buildingGrossFloorArea .GT. 0) THEN
    CALL PreDefTableEntry(pdchLeedEuiNatG,'Space Heating',unconvert * 1000 * useVal(1,colGas)/buildingGrossFloorArea,2)
    CALL PreDefTableEntry(pdchLeedEuiNatG,'Service Water Heating',unconvert * 1000 * useVal(12,colGas)/buildingGrossFloorArea,2)
    nonMisc = useVal(1,colGas) + useVal(12,colGas)
    CALL PreDefTableEntry(pdchLeedEuiNatG,'Miscellaneous',unconvert * 1000 * (useVal(15,colGas) - nonMisc) &
           / buildingGrossFloorArea,2)
    CALL PreDefTableEntry(pdchLeedEuiNatG,'Subtotal',unconvert * 1000 * useVal(15,colGas)/buildingGrossFloorArea,2)
  END IF
  CALL PreDefTableEntry(pdchLeedEusTotal,'Natural Gas',unconvert * useVal(15,colGas),2)
  CALL PreDefTableEntry(pdchLeedEusProc,'Natural Gas',unconvert * (useVal(5,colGas) + useVal(13,colGas)),2)
  IF (useVal(15,colGas) .NE. 0) THEN
    processFraction = (useVal(5,colGas) + useVal(13,colGas))/useVal(15,colGas)
    processGasCost = LEEDgasCostTotal * processFraction
  ELSE
    processGasCost = 0.0d0
  END IF
  CALL PreDefTableEntry(pdchLeedEcsProc,'Natural Gas',processGasCost,2)

  CALL PreDefTableEntry(pdchLeedPerfOthEneUse,'Interior Lighting',unconvert *   &
                                    (useVal(3,colAdditionalFuel) + useVal(3,colPurchCool) &
                                       + useVal(3,colPurchHeat) - (leedIntLightProc(colAdditionalFuel) &
                                       + leedIntLightProc(colPurchCool) + leedIntLightProc(colPurchHeat))) ,2)
  CALL PreDefTableEntry(pdchLeedPerfOthEneUse,'Exterior Lighting',unconvert *   &
                                    (useVal(4,colAdditionalFuel) + useVal(4,colPurchCool) &
                                       + useVal(4,colPurchHeat)),2)
  CALL PreDefTableEntry(pdchLeedPerfOthEneUse,'Space Heating',unconvert * (useVal(1,colAdditionalFuel) + useVal(1,colPurchCool) &
                                       + useVal(1,colPurchHeat)),2)
  CALL PreDefTableEntry(pdchLeedPerfOthEneUse,'Space Cooling',unconvert * (useVal(2,colAdditionalFuel) + useVal(2,colPurchCool) &
                                       + useVal(2,colPurchHeat)),2)
  CALL PreDefTableEntry(pdchLeedPerfOthEneUse,'Pumps',unconvert * (useVal(8,colAdditionalFuel) + useVal(8,colPurchCool) &
                                       + useVal(8,colPurchHeat)),2)
  CALL PreDefTableEntry(pdchLeedPerfOthEneUse,'Heat Rejection',unconvert * (useVal(9,colAdditionalFuel) + useVal(9,colPurchCool) &
                                       + useVal(9,colPurchHeat)),2)
  CALL PreDefTableEntry(pdchLeedPerfOthEneUse,'Fans-Interior',unconvert * (useVal(7,colAdditionalFuel) +  useVal(7,colPurchCool) &
                                       + useVal(7,colPurchHeat) - (leedFansParkFromFan(colAdditionalFuel) &
                                       + leedFansParkFromFan(colPurchCool) + leedFansParkFromFan(colPurchHeat))),2)
  CALL PreDefTableEntry(pdchLeedPerfOthEneUse,'Fans-Parking Garage',unconvert * (leedFansParkFromFan(colAdditionalFuel) &
                                       + leedFansParkFromFan(colPurchCool) + leedFansParkFromFan(colPurchHeat) &
                                       + leedFansParkFromExtFuelEquip(colAdditionalFuel)   &
                                       + leedFansParkFromExtFuelEquip(colPurchCool) &
                                       + leedFansParkFromExtFuelEquip(colPurchHeat)),2)
  CALL PreDefTableEntry(pdchLeedPerfOthEneUse,'Service Water Heating',unconvert * (useVal(12,colAdditionalFuel) &
                                       + useVal(12,colPurchCool) + useVal(12,colPurchHeat)),2)
  CALL PreDefTableEntry(pdchLeedPerfOthEneUse,'Receptacle Equipment',unconvert * (useVal(5,colAdditionalFuel) &
                                       + useVal(5,colPurchCool) + useVal(5,colPurchHeat)),2)
  CALL PreDefTableEntry(pdchLeedPerfOthEneUse,'Interior Lighting (process)',unconvert * (leedIntLightProc(colAdditionalFuel) &
                                      + leedIntLightProc(colPurchCool) + leedIntLightProc(colPurchHeat)),2)
  CALL PreDefTableEntry(pdchLeedPerfOthEneUse,'Refrigeration Equipment',unconvert * (useVal(13,colAdditionalFuel) &
                                      + useVal(13,colPurchCool) + useVal(13,colPurchHeat)),2)
  CALL PreDefTableEntry(pdchLeedPerfOthEneUse,'Cooking',unconvert * (leedCook(colAdditionalFuel) + leedCook(colPurchCool) &
                                      + leedCook(colPurchHeat)),2)
  CALL PreDefTableEntry(pdchLeedPerfOthEneUse,'Industrial Process',unconvert * (leedIndProc(colAdditionalFuel) &
                                      + leedIndProc(colPurchCool) + leedIndProc(colPurchHeat)),2)
  CALL PreDefTableEntry(pdchLeedPerfOthEneUse,'Elevators and Escalators',unconvert * (leedElevEsc(colAdditionalFuel) &
                                      + leedElevEsc(colPurchCool) + leedElevEsc(colPurchHeat)),2)
  CALL PreDefTableEntry(pdchLeedPerfOthEneUse,'Total Line',unconvert * (useVal(15,colAdditionalFuel) + useVal(15,colPurchCool) &
                                      + useVal(15,colPurchHeat)),2)
  !  Energy Use Intensities
  IF (buildingGrossFloorArea .GT. 0) THEN
    CALL PreDefTableEntry(pdchLeedEuiOthr,'Miscellaneous',unconvert * 1000 * useVal(15,colAdditionalFuel)/buildingGrossFloorArea,2)
    CALL PreDefTableEntry(pdchLeedEuiOthr,'Subtotal',unconvert * 1000 * useVal(15,colAdditionalFuel)/buildingGrossFloorArea,2)
  END IF
  CALL PreDefTableEntry(pdchLeedEusTotal,'Additional',unconvert * (useVal(15,colAdditionalFuel) + useVal(15,colPurchCool) &
                                                             + useVal(15,colPurchHeat)),2)
  CALL PreDefTableEntry(pdchLeedEusProc,'Additional',unconvert * (useVal(5,colAdditionalFuel) + useVal(13,colAdditionalFuel) &
                                                             + useVal(5,colPurchCool) + useVal(13,colPurchCool) &
                                                             + useVal(5,colPurchHeat) + useVal(13,colPurchHeat)) ,2)
  IF ((useVal(15,colAdditionalFuel) + useVal(15,colPurchCool) + useVal(15,colPurchHeat)) .GT. 0.001d0) THEN
              processFraction = (useVal(5,colAdditionalFuel) + useVal(13,colAdditionalFuel) &
                              + useVal(5,colPurchCool) + useVal(13,colPurchCool) &
                              + useVal(5,colPurchHeat) + useVal(13,colPurchHeat))&
                              /(useVal(15,colAdditionalFuel) + useVal(15,colPurchCool) + useVal(15,colPurchHeat))
  ELSE
     processFraction = 0.0d0
  END IF
  processOthrCost = LEEDothrCostTotal * processFraction
  CALL PreDefTableEntry(pdchLeedEcsProc,'Additional',processOthrCost,2)
  CALL PreDefTableEntry(pdchLeedEcsProc,'Total',processElecCost + processGasCost + processOthrCost,2)
  ! accumulate for percentage table
  leedSiteIntLite = 0.0d0
  leedSiteSpHeat = 0.0d0
  leedSiteSpCool = 0.0d0
  leedSiteFanInt = 0.0d0
  leedSiteSrvWatr = 0.0d0
  leedSiteRecept = 0.0d0
  leedSiteTotal  = 0.0d0
  DO iResource = 1, 5    ! don't bother with water
    leedSiteIntLite = leedSiteIntLite + useVal(3,iResource) - leedIntLightProc(iResource)
    leedSiteSpHeat = leedSiteSpHeat + useVal(1,iResource)
    leedSiteSpCool = leedSiteSpCool + useVal(2,iResource)
    leedSiteFanInt = leedSiteFanInt + useVal(7,iResource) - leedFansParkFromFan(iResource)
    leedSiteSrvWatr = leedSiteSrvWatr + useVal(12,iResource)
    leedSiteRecept = leedSiteRecept + useVal(5,iResource)
    leedSiteTotal  = leedSiteTotal + useVal(15,iResource)
  END DO
  IF (leedSiteTotal .NE. 0) THEN
    CALL PreDefTableEntry(pdchLeedEupPerc,'Interior Lighting',100 * leedSiteIntLite / leedSiteTotal,2)
    CALL PreDefTableEntry(pdchLeedEupPerc,'Space Heating',100 * leedSiteSpHeat / leedSiteTotal,2)
    CALL PreDefTableEntry(pdchLeedEupPerc,'Space Cooling',100 * leedSiteSpCool / leedSiteTotal,2)
    CALL PreDefTableEntry(pdchLeedEupPerc,'Fans-Interior',100 * leedSiteFanInt / leedSiteTotal,2)
    CALL PreDefTableEntry(pdchLeedEupPerc,'Service Water Heating',100 * leedSiteSrvWatr / leedSiteTotal,2)
    CALL PreDefTableEntry(pdchLeedEupPerc,'Receptacle Equipment',100 * leedSiteRecept / leedSiteTotal,2)
    CALL PreDefTableEntry(pdchLeedEupPerc,'Miscellaneous',100 * (leedSiteTotal &
      - (leedSiteIntLite + leedSiteSpHeat + leedSiteSpCool + leedSiteFanInt + leedSiteSrvWatr + leedSiteRecept)) / leedSiteTotal,2)
  END IF
  !totals across energy source
  CALL PreDefTableEntry(pdchLeedEusTotal,'Total',unconvert * (useVal(15,colAdditionalFuel) + useVal(15,colPurchCool)  &
                                         + useVal(15,colPurchHeat) + useVal(15,colElectricity) + useVal(15,colGas)),2)
  CALL PreDefTableEntry(pdchLeedEusProc,'Total',unconvert * (useVal(5,colAdditionalFuel) + useVal(13,colAdditionalFuel) &
                                                             + useVal(5,colPurchCool) + useVal(13,colPurchCool) &
                                                             + useVal(5,colPurchHeat) + useVal(13,colPurchHeat) &
                                                             + useVal(5,colElectricity) + useVal(13,colElectricity) &
                                                             + useVal(5,colGas) + useVal(13,colGas)),2)

  footnote = ''
  SELECT CASE (resourcePrimaryHeating)
    CASE (colElectricity)
      footnote = 'Note: Electricity appears to be the principal heating source based on energy usage. '
      CALL PreDefTableEntry(pdchLeedGenData,'Principal Heating Source','Electricity')
    CASE (colGas)
      footnote = 'Note: Natural gas appears to be the principal heating source based on energy usage. '
      CALL PreDefTableEntry(pdchLeedGenData,'Principal Heating Source','Natural Gas')
    CASE (colAdditionalFuel)
      footnote = 'Note: Additional fuel appears to be the principal heating source based on energy usage. '
      CALL PreDefTableEntry(pdchLeedGenData,'Principal Heating Source','Additional Fuel')
    CASE (colPurchHeat)
      footnote = 'Note: District heat appears to be the principal heating source based on energy usage. '
      CALL PreDefTableEntry(pdchLeedGenData,'Principal Heating Source','District Heat')
  END SELECT
  ! heading for the entire sub-table
  IF (displayTabularBEPS) THEN
    CALL writeSubtitle('End Uses')
    CALL writeTable(tableBody,rowHead,columnHead,columnWidth,.FALSE., footnote)
    CALL CreateSQLiteTabularDataRecords(tableBody,rowHead,columnHead,&
                                      'AnnualBuildingUtilityPerformanceSummary',&
                                      'Entire Facility',&
                                      'End Uses')
  ENDIF
  DEALLOCATE(columnHead)
  DEALLOCATE(rowHead)
  DEALLOCATE(columnWidth)
  DEALLOCATE(tableBody)


  !
  !---- End Uses By Subcategory Sub-Table
  !

  !determine if subcategories add up to the total and
  !if not, determine the difference for the 'other' row
  needOtherRow = .FALSE. !set array to all false assuming no other rows are needed
  DO iResource = 1, 6
    DO jEndUse = 1, NumEndUses
      IF (EndUseCategory(jEndUse)%NumSubcategories > 0) THEN
        !set the value to the total for the end use
        endUseSubOther(jEndUse,iResource) = collapsedEndUse(jEndUse,iResource)
        ! subtract off each sub end use category value
        DO kEndUseSub = 1, EndUseCategory(jEndUse)%NumSubcategories
          endUseSubOther(jEndUse,iResource) = endUseSubOther(jEndUse,iResource) &
            - collapsedEndUseSub(iResource,jEndUse,kEndUseSub)
        END DO
        !if just a small value remains set it to zero
        IF (ABS(endUseSubOther(jEndUse,iResource)) .GT. 0.01d0) THEN
          needOtherRow(jEndUse) = .TRUE.
        ELSE
          endUseSubOther(jEndUse,iResource) = 0.0d0
        END IF
      ELSE
        endUseSubOther(jEndUse,iResource) = 0.0d0
      END IF
    END DO
  END DO

  !determine the number of rows needed for sub-table
  numRows = 0
  DO jEndUse = 1, NumEndUses
    IF (EndUseCategory(jEndUse)%NumSubcategories > 0) THEN
      DO kEndUseSub = 1, EndUseCategory(jEndUse)%NumSubcategories
        numRows = numRows + 1
      END DO
      ! check if an 'other' row is needed
      IF (needOtherRow(jEndUse)) THEN
        numRows = numRows + 1
      END IF
    ELSE
      numRows = numRows + 1
    END IF
  END DO

  ALLOCATE(rowHead(numRows))
  ALLOCATE(columnHead(7))
  ALLOCATE(columnWidth(7))
  columnWidth = 14 !array assignment - same for all columns
  ALLOCATE(tableBody(numRows,7))

  rowHead = ''
  tableBody = ''

  ! Build row head and subcategories columns
  i = 1
  DO jEndUse = 1, NumEndUses
    rowHead(i) = EndUseCategory(jEndUse)%DisplayName
    IF (EndUseCategory(jEndUse)%NumSubcategories > 0) THEN
      DO kEndUseSub = 1, EndUseCategory(jEndUse)%NumSubcategories
        tableBody(i,1) = EndUseCategory(jEndUse)%SubcategoryName(kEndUseSub)
        i = i + 1
      END DO
      ! check if an 'other' row is needed
      IF (needOtherRow(jEndUse)) THEN
        tableBody(i,1) = 'Other'
        i = i + 1
      END IF
    ELSE
      tableBody(i,1) = 'General'
      i = i + 1
    END IF
  END DO

  columnHead(1) = 'Subcategory'

  SELECT CASE (unitsStyle)
    CASE (unitsStyleJtoKWH)
      columnHead(2) = 'Electricity [kWh]'
      columnHead(3) = 'Natural Gas [kWh]'
      columnHead(4) = 'Additional Fuel [kWh]'
      columnHead(5) = 'District Cooling [kWh]'
      columnHead(6) = 'District Heating [kWh]'
      columnHead(7) = 'Water [m3]'
    CASE (unitsStyleInchPound)
      columnHead(2) = 'Electricity [kBtu]'
      columnHead(3) = 'Natural Gas [kBtu]'
      columnHead(4) = 'Additional Fuel [kBtu]'
      columnHead(5) = 'District Cooling [kBtu]'
      columnHead(6) = 'District Heating [kBtu]'
      columnHead(7) = 'Water [gal]'
    CASE DEFAULT
      columnHead(2) = 'Electricity [GJ]'
      columnHead(3) = 'Natural Gas [GJ]'
      columnHead(4) = 'Additional Fuel [GJ]'
      columnHead(5) = 'District Cooling [GJ]'
      columnHead(6) = 'District Heating [GJ]'
      columnHead(7) = 'Water [m3]'
  END SELECT

  DO iResource = 1, 6
    i = 1
    DO jEndUse = 1, NumEndUses
      IF (EndUseCategory(jEndUse)%NumSubcategories > 0) THEN
        DO kEndUseSub = 1, EndUseCategory(jEndUse)%NumSubcategories
          tableBody(i,iResource+1) = TRIM(RealToStr(collapsedEndUseSub(iResource,jEndUse,kEndUseSub),2))
          i = i + 1
        END DO
        !put other
        IF (needOtherRow(jEndUse)) THEN
          tableBody(i,iResource+1) = TRIM(RealToStr(endUseSubOther(jEndUse,iResource),2))
          i = i + 1
        END IF
      ELSE
        tableBody(i,iResource+1) = TRIM(RealToStr(collapsedEndUse(jEndUse,iResource),2))
        i = i + 1
      END IF
    END DO
  END DO

  ! heading for the entire sub-table
  IF (displayTabularBEPS) THEN
    CALL writeSubtitle('End Uses By Subcategory')
    CALL writeTable(tableBody,rowHead,columnHead,columnWidth)
    CALL CreateSQLiteTabularDataRecords(tableBody,rowHead,columnHead,&
                                      'AnnualBuildingUtilityPerformanceSummary',&
                                      'Entire Facility',&
                                      'End Uses By Subcategory')
  ENDIF
  DEALLOCATE(columnHead)
  DEALLOCATE(rowHead)
  DEALLOCATE(columnWidth)
  DEALLOCATE(tableBody)
  !
  !---- Normalized by Conditioned Area Sub-Table
  !
  ! Calculations for both normalized tables are first
  ALLOCATE(rowHead(4))
  ALLOCATE(columnHead(6))
  ALLOCATE(columnWidth(6))
  columnWidth = 14 !array assignment - same for all columns
  ALLOCATE(tableBody(4,6))
  DO iResource= 1,6
    normalVal(1,iResource)  = collapsedEndUse(endUseInteriorLights,iResource) &     !Lights     <- InteriorLights
                            + collapsedEndUse(endUseExteriorLights,iResource)       !           <- ExteriorLights

    normalVal(2,iResource)  = collapsedEndUse(endUseFans,iResource)  &              !HVAC       <- fans
                            + collapsedEndUse(endUsePumps,iResource)  &             !           <- pumps
                            + collapsedEndUse(endUseHeating,iResource)  &           !           <- heating
                            + collapsedEndUse(endUseCooling,iResource)  &           !           <- cooling
                            + collapsedEndUse(endUseHeatRejection,iResource) &      !           <- heat rejection
                            + collapsedEndUse(endUseHumidification,iResource) &     !           <- humidification
                            + collapsedEndUse(endUseWaterSystem,iResource)          !           <- water system domestic hot water

    normalVal(3,iResource)  = collapsedEndUse(endUseInteriorEquipment,iResource)  & !Other      <- InteriorEquipment
                            + collapsedEndUse(endUseExteriorEquipment,iResource)  & !           <- ExteriorEquipment
                            + collapsedEndUse(endUseCogeneration,iResource) &       !           <- generator fuel
                            + collapsedEndUse(endUseHeatRecovery,iResource) &       !           <- Heat Recovery (parasitics)
                            + collapsedEndUse(endUseRefrigeration,iResource)        !           <- Refrigeration

    normalVal(4,iResource) = collapsedTotal(iResource)           ! totals
  END DO
  ! convert the normalized end use values to MJ from GJ if using J
  DO iResource= 1,5   !not including resource=6 water
    DO jEndUse=1,4
      normalVal(jEndUse,iResource) = normalVal(jEndUse,iResource) * kConversionFactor
    END DO
  END DO

  rowHead(1)  = 'Lighting'   !typo fixed 5-17-04 BTG
  rowHead(2)  = 'HVAC'
  rowHead(3)  = 'Other'
  rowHead(4)  = 'Total'

  SELECT CASE (unitsStyle)
    CASE (unitsStyleJtoKWH)
      columnHead(1) = 'Electricity Intensity [kWh/m2]'
      columnHead(2) = 'Natural Gas Intensity [kWh/m2]'
      columnHead(3) = 'Additional Fuel Intensity [kWh/m2]'
      columnHead(4) = 'District Cooling Intensity [kWh/m2]'
      columnHead(5) = 'District Heating Intensity [kWh/m2]'
      columnHead(6) = 'Water Intensity [m3/m2]'
    CASE (unitsStyleInchPound)
      columnHead(1) = 'Electricity Intensity [kBtu/ft2]'
      columnHead(2) = 'Natural Gas Intensity [kBtu/ft2]'
      columnHead(3) = 'Additional Fuel Intensity [kBtu/ft2]'
      columnHead(4) = 'District Cooling Intensity [kBtu/ft2]'
      columnHead(5) = 'District Heating Intensity [kBtu/ft2]'
      columnHead(6) = 'Water Intensity [gal/ft2]'
    CASE DEFAULT
      columnHead(1) = 'Electricity Intensity [MJ/m2]'
      columnHead(2) = 'Natural Gas Intensity [MJ/m2]'
      columnHead(3) = 'Additional Fuel Intensity [MJ/m2]'
      columnHead(4) = 'District Cooling Intensity [MJ/m2]'
      columnHead(5) = 'District Heating Intensity [MJ/m2]'
      columnHead(6) = 'Water Intensity [m3/m2]'
  END SELECT

  CALL writeTextLine('Normalized Metrics',.TRUE.)

  ! write the conditioned area based table
  tableBody = ''
  IF (convBldgCondFloorArea .GT. 0) THEN
    DO iResource= 1,6
      DO jEndUse=1,4
        tableBody(jEndUse,iResource) = TRIM(RealToStr(normalVal(jEndUse,iResource) / convBldgCondFloorArea,2))
      END DO
    END DO
  END IF
  ! heading for the entire sub-table
  IF (displayTabularBEPS) THEN
    CALL writeSubtitle('Utility Use Per Conditioned Floor Area')
    CALL writeTable(tableBody,rowHead,columnHead,columnWidth)
    CALL CreateSQLiteTabularDataRecords(tableBody,rowHead,columnHead,&
                                      'AnnualBuildingUtilityPerformanceSummary',&
                                      'Entire Facility',&
                                      'Utility Use Per Conditioned Floor Area')
  ENDIF
  !
  !---- Normalized by Total Area Sub-Table
  !
  tableBody = ''
  IF (convBldgGrossFloorArea .GT. 0) THEN
    DO iResource= 1,6
      DO jEndUse=1,4
        tableBody(jEndUse,iResource) = TRIM(RealToStr(normalVal(jEndUse,iResource) / convBldgGrossFloorArea,2))
      END DO
    END DO
  END IF
  ! heading for the entire sub-table
  IF (displayTabularBEPS) THEN
    CALL writeSubtitle('Utility Use Per Total Floor Area')
    CALL writeTable(tableBody,rowHead,columnHead,columnWidth)
    CALL CreateSQLiteTabularDataRecords(tableBody,rowHead,columnHead,&
                                      'AnnualBuildingUtilityPerformanceSummary',&
                                      'Entire Facility',&
                                      'Utility Use Per Total Floor Area')
  ENDIF

  DEALLOCATE(columnHead)
  DEALLOCATE(rowHead)
  DEALLOCATE(columnWidth)
  DEALLOCATE(tableBody)
  !
  !---- Electric Loads Satisfied Sub-Table
  !
  ALLOCATE(rowHead(13))
  ALLOCATE(columnHead(2))
  ALLOCATE(columnWidth(2))
  columnWidth = 14 !array assignment - same for all columns
  ALLOCATE(tableBody(13,2))

  SELECT CASE (unitsStyle)
    CASE (unitsStyleJtoKWH)
      columnHead(1) = 'Electricity [kWh]'
    CASE (unitsStyleInchPound)
      columnHead(1) = 'Electricity [kBtu]'
    CASE DEFAULT
      columnHead(1) = 'Electricity [GJ]'
  END SELECT
  columnHead(2) = 'Percent Electricity [%]'

  rowHead(1)  = 'Fuel-Fired Power Generation'
  rowHead(2)  = 'High Temperature Geothermal*'
  rowHead(3)  = 'Photovoltaic Power'
  rowHead(4)  = 'Wind Power'
  rowHead(5)  = 'Net Decrease in On-Site Storage'
  rowHead(6)  = 'Total On-Site Electric Sources'
  rowHead(7)  = ''
  rowHead(8)  = 'Electricity Coming From Utility'
  rowHead(9)  = 'Surplus Electricity Going To Utility'
  rowHead(10)  = 'Net Electricity From Utility'
  rowHead(11) = ''
  rowHead(12) = 'Total On-Site and Utility Electric Sources'
  rowHead(13) = 'Total Electricity End Uses'

  tableBody = ''

  ! show annual values
  unconvert = largeConversionFactor / 1000000000.d0  !to avoid double converting, the values for the LEED report should be in GJ

  tableBody(1,1)  = TRIM(RealToStr(gatherPowerFuelFireGen,2))
  tableBody(2,1)  = TRIM(RealToStr(gatherPowerHTGeothermal,2))
  tableBody(3,1)  = TRIM(RealToStr(gatherPowerPV,2))
  CALL PreDefTableEntry(pdchLeedRenAnGen,'Photovoltaic',unconvert * gatherPowerPV,2)
  tableBody(4,1)  = TRIM(RealToStr(gatherPowerWind,2))
  CALL PreDefTableEntry(pdchLeedRenAnGen,'Wind',unconvert * gatherPowerWind,2)
  tableBody(5,1)  = TRIM(RealToStr(OverallNetEnergyFromStorage, 2 ))
  tableBody(6,1)  = TRIM(RealToStr(gatherElecProduced,2))
  tableBody(8,1)  = TRIM(RealToStr(gatherElecPurchased,2))
  tableBody(9,1)  = TRIM(RealToStr(gatherElecSurplusSold,2))
  tableBody(10,1)  = TRIM(RealToStr(gatherElecPurchased - gatherElecSurplusSold,2))
  tableBody(12,1) = TRIM(RealToStr(gatherElecProduced + (gatherElecPurchased - gatherElecSurplusSold),2))
  tableBody(13,1) = TRIM(RealToStr(collapsedTotal(1),2))

  ! show annual percentages
  IF (collapsedTotal(1) .GT. 0) THEN
    tableBody(1,2)  = TRIM(RealToStr(100.0d0 * gatherPowerFuelFireGen / collapsedTotal(1),2))
    tableBody(2,2)  = TRIM(RealToStr(100.0d0 * gatherPowerHTGeothermal / collapsedTotal(1),2))
    tableBody(3,2)  = TRIM(RealToStr(100.0d0 * gatherPowerPV / collapsedTotal(1),2))
    tableBody(4,2)  = TRIM(RealToStr(100.0d0 * gatherPowerWind / collapsedTotal(1),2))
    tableBody(5,2)  = TRIM(RealToStr(100.0d0 * OverallNetEnergyFromStorage / collapsedTotal(1),2))
    tableBody(6,2)  = TRIM(RealToStr(100.0d0 * gatherElecProduced / collapsedTotal(1),2))
    tableBody(8,2)  = TRIM(RealToStr(100.0d0 * gatherElecPurchased / collapsedTotal(1),2))
    tableBody(9,2)  = TRIM(RealToStr(100.0d0 * gatherElecSurplusSold / collapsedTotal(1),2))
    tableBody(10,2) = TRIM(RealToStr(100.0d0 * (gatherElecPurchased - gatherElecSurplusSold) / collapsedTotal(1),2))
    tableBody(12,2) = TRIM(RealToStr(100.0d0 * (gatherElecProduced + (gatherElecPurchased - gatherElecSurplusSold)) /   &
                                               collapsedTotal(1),2))
    tableBody(13,2) = TRIM(RealToStr(100.0d0,2))
  END IF

  ! heading for the entire sub-table
  IF (displayTabularBEPS) THEN
    CALL writeSubtitle('Electric Loads Satisfied')
    CALL writeTable(tableBody,rowHead,columnHead,columnWidth)
    CALL CreateSQLiteTabularDataRecords(tableBody,rowHead,columnHead,&
                                      'AnnualBuildingUtilityPerformanceSummary',&
                                      'Entire Facility',&
                                      'Electric Loads Satisfied')
  ENDIF

  DEALLOCATE(columnHead)
  DEALLOCATE(rowHead)
  DEALLOCATE(columnWidth)
  DEALLOCATE(tableBody)

  !
  !---- On-Site Thermal Sources Sub-Table
  !
  ALLOCATE(rowHead(7))
  ALLOCATE(columnHead(2))
  ALLOCATE(columnWidth(2))
  columnWidth = 14 !array assignment - same for all columns
  ALLOCATE(tableBody(7,2))

  SELECT CASE (unitsStyle)
    CASE (unitsStyleJtoKWH)
      columnHead(1) = 'Heat [kWh]'
    CASE (unitsStyleInchPound)
      columnHead(1) = 'Heat [kBtu]'
    CASE DEFAULT
      columnHead(1) = 'Heat [GJ]'
  END SELECT

  columnHead(2) = 'Percent Heat [%]'

  rowHead(1)  = 'Water-Side Heat Recovery'
  rowHead(2)  = 'Air to Air Heat Recovery for Cooling'
  rowHead(3)  = 'Air to Air Heat Recovery for Heating'
  rowHead(4)  = 'High-Temperature Geothermal*'
  rowHead(5)  = 'Solar Water Thermal'
  rowHead(6)  = 'Solar Air Thermal'
  rowHead(7)  = 'Total On-Site Thermal Sources'

  tableBody = ''

  ! convert to GJ

  gatherWaterHeatRecovery   =  gatherWaterHeatRecovery    / largeConversionFactor
  gatherAirHeatRecoveryCool =  gatherAirHeatRecoveryCool  / largeConversionFactor
  gatherAirHeatRecoveryHeat =  gatherAirHeatRecoveryHeat  / largeConversionFactor
  gatherHeatHTGeothermal    =  gatherHeatHTGeothermal     / largeConversionFactor
  gatherHeatSolarWater      =  gatherHeatSolarWater       / largeConversionFactor
  gatherHeatSolarAir        =  gatherHeatSolarAir         / largeConversionFactor

  ! determine total on site heat
  totalOnsiteHeat = gatherWaterHeatRecovery &
                  + gatherAirHeatRecoveryCool &
                  + gatherAirHeatRecoveryHeat &
                  + gatherHeatHTGeothermal &
                  + gatherHeatSolarWater &
                  + gatherHeatSolarAir

  ! show annual values
  tableBody(1,1)  = TRIM(RealToStr(gatherWaterHeatRecovery,2))
  tableBody(2,1)  = TRIM(RealToStr(gatherAirHeatRecoveryCool,2))
  tableBody(3,1)  = TRIM(RealToStr(gatherAirHeatRecoveryHeat,2))
  tableBody(4,1)  = TRIM(RealToStr(gatherHeatHTGeothermal,2))
  tableBody(5,1)  = TRIM(RealToStr(gatherHeatSolarWater,2))
  tableBody(6,1)  = TRIM(RealToStr(gatherHeatSolarAir,2))
  tableBody(7,1)  = TRIM(RealToStr(totalOnsiteHeat,2))

  IF (totalOnsiteHeat .GT. 0) THEN
    tableBody(1,2)  = TRIM(RealToStr(100.0d0 * gatherWaterHeatRecovery / totalOnsiteHeat,2))
    tableBody(2,2)  = TRIM(RealToStr(100.0d0 * gatherAirHeatRecoveryCool / totalOnsiteHeat,2))
    tableBody(3,2)  = TRIM(RealToStr(100.0d0 * gatherAirHeatRecoveryHeat / totalOnsiteHeat,2))
    tableBody(4,2)  = TRIM(RealToStr(100.0d0 * gatherHeatHTGeothermal / totalOnsiteHeat,2))
    tableBody(5,2)  = TRIM(RealToStr(100.0d0 * gatherHeatSolarWater / totalOnsiteHeat,2))
    tableBody(6,2)  = TRIM(RealToStr(100.0d0 * gatherHeatSolarAir / totalOnsiteHeat,2))
    tableBody(7,2)  = TRIM(RealToStr(100.0d0,2))
  END IF

  ! heading for the entire sub-table
  IF (displayTabularBEPS) THEN
    CALL writeSubtitle('On-Site Thermal Sources')
    CALL writeTable(tableBody,rowHead,columnHead,columnWidth)
    CALL CreateSQLiteTabularDataRecords(tableBody,rowHead,columnHead,&
                                      'AnnualBuildingUtilityPerformanceSummary',&
                                      'Entire Facility',&
                                      'On-Site Thermal Sources')
  ENDIF

  DEALLOCATE(columnHead)
  DEALLOCATE(rowHead)
  DEALLOCATE(columnWidth)
  DEALLOCATE(tableBody)

  !
  !---- Water Loads Sub-Table
  ! As of 12/8/2003 decided to not include this sub-table to wait
  ! until water use is implemented in EnergyPlus before displaying
  ! the table. Implementing water end-uses makes sense for EnergyPlus
  ! but since they are not really implemented as of December 2003 the
  ! table would be all zeros.  Recommendation to exclude this table
  ! for now made by Glazer and Crawley.
  !
  !Aug 2006, adding table in with implementation of water system, BGriffith
  !
  !
  ALLOCATE(rowHead(13))
  ALLOCATE(columnHead(2))
  ALLOCATE(columnWidth(2))
  columnWidth = 14 !array assignment - same for all columns
  ALLOCATE(tableBody(13,2))
!
  SELECT CASE (unitsStyle)
    CASE (unitsStyleJtoKWH)
      columnHead(1) = 'Water [m3]'
    CASE (unitsStyleInchPound)
      columnHead(1) = 'Water [gal]'
    CASE DEFAULT
      columnHead(1) = 'Water [m3]'
  END SELECT
  columnHead(2) = 'Percent Water [%]'
!
  rowHead(1)  = 'Rainwater Collection'
  rowHead(2)  = 'Condensate Collection'
  rowHead(3)  = 'Groundwater Well'
  rowHead(4)  = 'Total On Site Water Sources'
  rowHead(5)  = '-'
  rowHead(6)  = 'Initial Storage'
  rowHead(7)  = 'Final Storage'
  rowHead(8)  = 'Change in Storage'
  rowHead(9)  = '-'
  rowHead(10)  = 'Water Supplied by Utility'
  rowHead(11)  = '-'
  rowHead(12)  = 'Total On Site, Change in Storage, and Utility Water Sources'
  rowHead(13)  = 'Total Water End Uses'
!
  tableBody = '-'
!

  totalOnsiteWater   = gatherRainWater + gatherCondensate  + gatherWellwater


!  ! show annual values
  tableBody(1,1)  = TRIM(RealToStr(gatherRainWater / waterConversionFactor ,2))
  tableBody(2,1)  = TRIM(RealToStr(gatherCondensate / waterConversionFactor,2))
  tableBody(3,1)  = TRIM(RealToStr(gatherWellwater / waterConversionFactor,2))
  tableBody(4,1)  = TRIM(RealToStr(totalOnsiteWater / waterConversionFactor,2))


  IF (allocated(WaterStorage)) Then
    initialStorage  = sum(waterStorage%InitialVolume)
    finalStorage    = SUM(WaterSTorage%ThisTimeStepVolume)
    StorageChange   = initialStorage-finalStorage
  else
    initialStorage  = 0.0d0
    finalStorage    = 0.0d0
    StorageChange   = 0.0d0
  endif
  tableBody(6,1)  = TRIM(RealToStr(initialStorage / waterConversionFactor,2))
  tableBody(7,1)  = TRIM(RealToStr(finalStorage / waterConversionFactor,2))
  tableBody(8,1)  = TRIM(RealToStr(StorageChange / waterConversionFactor,2))

  totalWater        = totalOnsiteWater + gatherMains + StorageChange

  tableBody(10,1)  = TRIM(RealToStr(gatherMains / waterConversionFactor,2))
  tableBody(12,1)  = TRIM(RealToStr(totalWater / waterConversionFactor,2))
  tableBody(13,1)  = TRIM(RealToStr(gatherWaterEndUseTotal / waterConversionFactor,2))
!

  IF (gatherWaterEndUseTotal .GT. 0) THEN
    tableBody(1,2)  = TRIM(RealToStr(100.0d0 * gatherRainWater / gatherWaterEndUseTotal,2))
    tableBody(2,2)  = TRIM(RealToStr(100.0d0 * gatherCondensate / gatherWaterEndUseTotal,2))
    tableBody(3,2)  = TRIM(RealToStr(100.0d0 * gatherWellwater / gatherWaterEndUseTotal,2))
    tableBody(4,2)  = TRIM(RealToStr(100.0d0 * totalOnsiteWater / gatherWaterEndUseTotal,2))
    tableBody(6,2)  = TRIM(RealToStr(100.0d0 * initialStorage/ gatherWaterEndUseTotal,2))
    tableBody(7,2)  = TRIM(RealToStr(100.0d0 * finalStorage / gatherWaterEndUseTotal,2))
    tableBody(8,2)  = TRIM(RealToStr(100.0d0 * StorageChange/ gatherWaterEndUseTotal,2))

    tableBody(10,2)  = TRIM(RealToStr(100.0d0 * gatherMains / gatherWaterEndUseTotal,2))

    tableBody(12,2)  = TRIM(RealToStr(100.0d0 * totalWater / gatherWaterEndUseTotal,2))
    tableBody(13,2)  = TRIM(RealToStr(100.0d0,2))
  END IF
!

!  ! heading for the entire sub-table
  IF (displayTabularBEPS) THEN
    CALL writeSubtitle('Water Source Summary')
    CALL writeTable(tableBody,rowHead,columnHead,columnWidth)
    CALL CreateSQLiteTabularDataRecords(tableBody,rowHead,columnHead,&
                                      'AnnualBuildingUtilityPerformanceSummary',&
                                      'Entire Facility',&
                                      'Water Source Summary')
  ENDIF

!
  DEALLOCATE(columnHead)
  DEALLOCATE(rowHead)
  DEALLOCATE(columnWidth)
  DEALLOCATE(tableBody)

  !
  !---- Comfort and Setpoint Not Met Sub-Table
  !
  IF (displayTabularBEPS) THEN
    ALLOCATE(rowHead(2))
    ALLOCATE(columnHead(1))
    ALLOCATE(columnWidth(1))
    columnWidth = 14 !array assignment - same for all columns
    ALLOCATE(tableBody(2,1))

    CALL writeSubtitle('Setpoint Not Met Criteria')

    curNameWithSIUnits = 'Degrees [deltaC]'
    curNameAndUnits = curNameWithSIUnits
    IF (unitsStyle .EQ. unitsStyleInchPound) THEN
      CALL LookupSItoIP(curNameWithSIUnits, indexUnitConv, curNameAndUnits)
    ENDIF
    columnHead(1)=curNameAndUnits

    rowHead(1)  = 'Tolerance for Zone Heating Setpoint Not Met Time'
    rowHead(2)  = 'Tolerance for Zone Cooling Setpoint Not Met Time'

    IF (unitsStyle .NE. unitsStyleInchPound) THEN
      tableBody(1,1)  = TRIM(RealToStr(abs(deviationFromSetPtThresholdHtg),2))
      tableBody(2,1)  = TRIM(RealToStr(deviationFromSetPtThresholdClg,2))
    ELSE
      tableBody(1,1)  = TRIM(RealToStr(ConvertIPDelta(indexUnitConv,abs(deviationFromSetPtThresholdHtg)),2))
      tableBody(2,1)  = TRIM(RealToStr(ConvertIPDelta(indexUnitConv,deviationFromSetPtThresholdClg),2))
    ENDIF

    CALL writeTable(tableBody,rowHead,columnHead,columnWidth)
    CALL CreateSQLiteTabularDataRecords(tableBody,rowHead,columnHead,&
                                        'AnnualBuildingUtilityPerformanceSummary',&
                                        'Entire Facility',&
                                        'Setpoint Not Met Criteria')

    DEALLOCATE(columnHead)
    DEALLOCATE(rowHead)
    DEALLOCATE(columnWidth)
    DEALLOCATE(tableBody)
  ENDIF

  ALLOCATE(rowHead(3))
  ALLOCATE(columnHead(1))
  ALLOCATE(columnWidth(1))
  columnWidth = 14 !array assignment - same for all columns
  ALLOCATE(tableBody(3,1))

  IF (displayTabularBEPS) THEN
    CALL writeSubtitle('Comfort and Setpoint Not Met Summary')
  ENDIF

  columnHead(1) = 'Facility [Hours]'

  rowHead(1)  = 'Time Setpoint Not Met During Occupied Heating'
  rowHead(2)  = 'Time Setpoint Not Met During Occupied Cooling'
  rowHead(3)  = 'Time Not Comfortable Based on Simple ASHRAE 55-2004'

  tableBody(1,1)  = TRIM(RealToStr(TotalNotMetHeatingOccupiedForABUPS,2))
  tableBody(2,1)  = TRIM(RealToStr(TotalNotMetCoolingOccupiedForABUPS,2))
  CALL PreDefTableEntry(pdchLeedAmData,'Number of hours heating loads not met', &
          TRIM(RealToStr(TotalNotMetHeatingOccupiedForABUPS,2)))
  CALL PreDefTableEntry(pdchLeedAmData,'Number of hours cooling loads not met', &
          TRIM(RealToStr(TotalNotMetCoolingOccupiedForABUPS,2)))
  CALL PreDefTableEntry(pdchLeedAmData,'Number of hours not met',TRIM(RealToStr(TotalNotMetOccupiedForABUPS,2)))
  tableBody(3,1)  = TRIM(RealToStr(TotalTimeNotSimpleASH55EitherForABUPS,2))

  IF (displayTabularBEPS) THEN
    CALL writeTable(tableBody,rowHead,columnHead,columnWidth)
    CALL CreateSQLiteTabularDataRecords(tableBody,rowHead,columnHead,&
                                      'AnnualBuildingUtilityPerformanceSummary',&
                                      'Entire Facility',&
                                      'Comfort and Setpoint Not Met Summary')
  ENDIF


  DEALLOCATE(columnHead)
  DEALLOCATE(rowHead)
  DEALLOCATE(columnWidth)
  DEALLOCATE(tableBody)


  !
  !---- Control Summary Sub-Table
  !

  !
  !---- End Notes
  !
  IF (displayTabularBEPS) THEN
    CALL writeTextLine('Note 1: An asterisk (*) indicates that the feature is not yet implemented.')
  ENDIF
  !CALL writeTextLine('Note 2: The source energy conversion factors used are: ')
  !CALL writeTextLine('        1.05 for all fuels, 1 for district, and 3 for electricity.')
END IF
END SUBROUTINE WriteBEPSTable


AbortEnergyPlus AbsoluteAirMass ActivateDemandManagers ActivateEMSControls AddBlankKeys addChargesToOperand AddCompSizeTableEntry AddEndUseSubcategory AddError addFootNoteSubTable AddInstruction AddMeter addMonthlyCharge AddMonthlyFieldSetInput AddMonthlyReport AddNeighborInformation AddObjectDefandParse addOperand AddRecordFromSection AddRecordToOutputVariableStructure AddSectionDef AddShadowRelateTableEntry AddSQLiteComponentSizingRecord AddSQLiteComponentSizingRecord AddSQLiteSystemSizingRecord AddSQLiteSystemSizingRecord AddSQLiteZoneSizingRecord AddSQLiteZoneSizingRecord AddTOCEntry AddTOCZoneLoadComponentTable AddToOutputVariableList AddVariablesForMonthlyReport AddVariableSlatBlind AddWindow AdjustAirSetpointsforOpTempCntrl AdjustCBF AdjustCBF AdjustChangeInLoadByEMSControls AdjustChangeInLoadByHowServed AdjustChangeInLoadForLastStageUpperRangeLimit AdjustCoolingSetPointforTempAndHumidityControl adjusthhat AdjustPumpFlowRequestByEMSControls AdjustReportingHourAndMinutes AdjustVBGap AdvanceRootFinder AFECFR AFECOI AFECPD AFECPF AFEDMP AFEDOP AFEDWC AFEELR AFEEXF AFEFAN AFEHEX AFEHOP AFEPLR AFESCR AFESEL AFESOP AFETMU AirflowNetworkVentingControl AirMass AIRMOV AllocateAirflowNetworkData AllocateAirHeatBalArrays AllocateAndInitData AllocateAndSetUpVentReports AllocateCFSStateHourlyData AllocateForCFSRefPointsGeometry AllocateForCFSRefPointsState AllocateHeatBalArrays AllocateLoadComponentArrays AllocateModuleArrays AllocateModuleArrays AllocateSurfaceHeatBalArrays AllocateWeatherData angle_2dvector AnisoSkyViewFactors AnyPlantLoopSidesNeedSim AnyPlantSplitterMixerLacksContinuity AreaPolygon ArgCheck array_to_vector ASHRAETauModel ASHWAT_OffNormalProperties ASHWAT_Solar ASHWAT_Thermal ASSIGNMENT (=) AssignNodeNumber AssignReportNumber AssignResourceTypeNum AssignReverseConstructionNumber AssignVariablePt AttachCustomMeters AttachMeters AuditBranches AUTOTDMA BaseThermalPropertySet_Diffusivity BeginEnvrnInitializeRuntimeLanguage BetweenDates BetweenGlassForcedFlow BetweenGlassShadeForcedFlow BetweenGlassShadeNaturalFlow BisectionMethod BlindBeamBeamTrans BlindOpticsBeam BlindOpticsDiffuse BoreholeResistance BoundValueToNodeMinMaxAvail BoundValueToWithinTwoValues BracketRoot BranchPressureDrop BrentMethod BuildGap BuildKeyVarList Calc4PipeFanCoil Calc_EN673 Calc_ISO15099 CalcActiveTranspiredCollector CalcAggregateLoad CalcAirflowNetworkAirBalance CalcAirflowNetworkCO2Balance CalcAirflowNetworkGCBalance CalcAirflowNetworkHeatBalance CalcAirflowNetworkMoisBalance CalcAirFlowSimple CalcAirLoopSplitter CalcAirMixer CalcAirToAirGenericHeatExch CalcAirToAirPlateHeatExch CalcAirZoneReturnPlenum CalcAirZoneSupplyPlenum CalcAlamdariHammondStableHorizontal CalcAlamdariHammondUnstableHorizontal CalcAlamdariHammondVerticalWall CalcAngleFactorMRT CalcApproximateViewFactors CalcASHRAEDetailedIntConvCoeff CalcASHRAESimpExtConvectCoeff CalcASHRAESimpleIntConvCoeff CalcASHRAEVerticalWall CalcATMixer CalcAwbiHattonHeatedFloor CalcAwbiHattonHeatedWall CalcBasinHeaterPower CalcBasinHeaterPowerForMultiModeDXCoil CalcBeamSolarOnWinRevealSurface CalcBeamSolDiffuseReflFactors CalcBeamSolSpecularReflFactors CalcBeausoleilMorrisonMixedAssistedWall CalcBeausoleilMorrisonMixedOpposingWall CalcBeausoleilMorrisonMixedStableCeiling CalcBeausoleilMorrisonMixedStableFloor CalcBeausoleilMorrisonMixedUnstableCeiling CalcBeausoleilMorrisonMixedUnstableFloor CalcBLASTAbsorberModel CalcBlockenWindward CalcBoilerModel CalcBoilerModel CalcBottomFluxCoefficents CalcBottomSurfTemp CalcBuriedPipeSoil CalcCBF CalcCBF CalcCBVAV CalcCeilingDiffuserInletCorr CalcCeilingDiffuserIntConvCoeff CalcChillerHeaterModel CalcChillerIPLV CalcChillerModel CalcClearRoof CalcCoilUAbyEffectNTU CalcColdestSetPoint CalcComplexWindowOverlap CalcComplexWindowThermal CalcCompSuctionTempResidual CalcCondEntSetPoint CalcConnectionsDrainTemp CalcConnectionsFlowRates CalcConnectionsHeatRecovery CalcConstCOPChillerModel CalcConvCoeffAbsPlateAndWater CalcConvCoeffBetweenPlates CalcCoolBeam CalcCoolTower CalcCoordinateTransformation CalcCoPlanarNess CalcCostEstimate CalcCTGeneratorModel CalcDayltgCoefficients CalcDayltgCoeffsMapPoints CalcDayltgCoeffsRefMapPoints CalcDayltgCoeffsRefPoints CalcDesiccantBalancedHeatExch CalcDesignSpecificationOutdoorAir CalcDesuperheaterHeatingCoil CalcDesuperheaterWaterHeater CalcDetailedHcInForDVModel CalcDetailedSystem CalcDetailedTransSystem CalcDetailFlatFinCoolingCoil CalcDetIceStorLMTDstar CalcDiffTSysAvailMgr CalcDirectAir CalcDirectEvapCooler CalcDirectResearchSpecialEvapCooler CalcDoe2DXCoil CalcDOE2Leeward CalcDOE2Windward CalcDryFinEffCoef CalcDryIndirectEvapCooler CalcDuct CalcDXCoilStandardRating CalcDXHeatingCoil CalcEarthTube CalcEcoRoof CalcEffectiveness CalcEffectiveSHR CalcEffectiveSHR CalcEffectiveSHR CalcEffectiveSHR CalcElecSteamHumidifier CalcElectricBaseboard CalcElectricChillerHeatRecovery CalcElectricChillerModel CalcElectricEIRChillerModel CalcElectricHeatingCoil CalcEmmelRoof CalcEmmelVertical CalcEngineChillerHeatRec CalcEngineDrivenChillerModel CalcEQLOpticalProperty CalcEQLWindowOpticalProperty CalcEQLWindowSHGCAndTransNormal CalcEQLWindowStandardRatings CalcEQLWindowUvalue CalcEquipmentDrainTemp CalcEquipmentFlowRates CalcExhaustAbsorberChillerModel CalcExhaustAbsorberHeaterModel CalcExteriorVentedCavity CalcFisherPedersenCeilDiffuserCeiling CalcFisherPedersenCeilDiffuserFloor CalcFisherPedersenCeilDiffuserWalls CalcFluidHeatExchanger CalcFohannoPolidoriVerticalWall CalcFollowOATempSetPoint CalcFollowSysNodeTempSetPoint CalcFourPipeIndUnit CalcFrameDividerShadow CalcFuelCellAuxHeater CalcFuelCellGeneratorModel CalcFuelCellGenHeatRecovery CalcFurnaceOutput CalcFurnaceResidual CalcGasAbsorberChillerModel CalcGasAbsorberHeaterModel CalcGasCooler CalcGasHeatingCoil CalcGenericDesiccantDehumidifier CalcGoldsteinNovoselacCeilingDiffuserFloor CalcGoldsteinNovoselacCeilingDiffuserWall CalcGoldsteinNovoselacCeilingDiffuserWindow CalcGroundTempSetPoint CalcGroundwaterWell CalcGshpModel CalcGshpModel CalcGTChillerModel CalcHeatBalanceAir CalcHeatBalanceInsideSurf CalcHeatBalanceInsideSurf CalcHeatBalanceOutsideSurf CalcHeatBalanceOutsideSurf CalcHeatBalFiniteDiff CalcHeatBalHAMT CalcHeatPumpWaterHeater CalcHeatTransCoeffAndCoverTemp CalcHfExteriorSparrow CalcHighTempRadiantSystem CalcHighTempRadiantSystemSP CalcHiTurnOffSysAvailMgr CalcHiTurnOnSysAvailMgr CalcHnASHRAETARPExterior CalcHPCoolingSimple CalcHPHeatingSimple CalcHPWHDXCoil CalcHWBaseboard CalcHXAssistedCoolingCoil CalcHXEffectTerm CalcHybridVentSysAvailMgr CalcIBesselFunc CalcICEngineGeneratorModel CalcICEngineGenHeatRecovery CalcIceStorageCapacity CalcIceStorageCharge CalcIceStorageDischarge CalcIceStorageDormant CalcICSSolarCollector CalcIdealCondEntSetPoint CalcIfSetpointMet CalcIndirectAbsorberModel CalcIndirectResearchSpecialEvapCooler CalcInteriorRadExchange CalcInteriorSolarDistribution CalcInteriorSolarOverlaps CalcInteriorWinTransDifSolInitialDistribution CalcISO15099WindowIntConvCoeff CalcKaradagChilledCeiling CalcKBesselFunc CalcKhalifaEq3WallAwayFromHeat CalcKhalifaEq4CeilingAwayFromHeat CalcKhalifaEq5WallsNearHeat CalcKhalifaEq6NonHeatedWalls CalcKhalifaEq7Ceiling CalcLoadCenterThermalLoad CalcLoTurnOffSysAvailMgr CalcLoTurnOnSysAvailMgr CalcLowTempCFloRadiantSystem CalcLowTempCFloRadSysComps CalcLowTempElecRadiantSystem CalcLowTempHydrRadiantSystem CalcLowTempHydrRadSysComps CalcMatrixInverse CalcMcAdams CalcMerkelVariableSpeedTower CalcMicroCHPNoNormalizeGeneratorModel CalcMinIntWinSolidAngs CalcMitchell CalcMixedAirSetPoint CalcMoistureBalanceEMPD CalcMoreNodeInfo CalcMoWITTLeeward CalcMoWITTWindward CalcMSHeatPump CalcMTGeneratorModel CalcMultiSpeedDXCoil CalcMultiSpeedDXCoilCooling CalcMultiSpeedDXCoilHeating CalcMultiStageElectricHeatingCoil CalcMultiStageGasHeatingCoil CalcMultiZoneAverageCoolingSetPoint CalcMultiZoneAverageHeatingSetPoint CalcMultiZoneAverageMaxHumSetPoint CalcMultiZoneAverageMinHumSetPoint CalcMultiZoneMaxHumSetPoint CalcMultiZoneMinHumSetPoint CalcMundtModel CalcNCycSysAvailMgr CalcNewZoneHeatCoolFlowRates CalcNewZoneHeatOnlyFlowRates CalcNodeMassFlows CalcNominalWindowCond CalcNonDXHeatingCoils CalcNonDXHeatingCoils CalcNonDXHeatingCoils CalcNonDXHeatingCoils CalcNusselt CalcNusseltJurges CalcNVentSysAvailMgr CalcOAController CalcOAMassFlow CalcOAMassFlow CalcOAMixer CalcOAOnlyMassFlow CalcOAPretreatSetPoint CalcOAUnitCoilComps CalcObstrMultiplier CalcOptStartSysAvailMgr CalcOtherSideDemand CalcOutdoorAirUnit CalcOutsideAirSetPoint CalcOutsideSurfTemp CalcParallelPIU CalcPassiveExteriorBaffleGap CalcPassiveSystem CalcPassiveTranspiredCollector CalcPerSolarBeam CalcPipeHeatTransCoef CalcPipesHeatTransfer CalcPipeTransBeam CalcPlantValves CalcPollution CalcPolyhedronVolume CalcPolynomCoef CalcPondGroundHeatExchanger CalcPredictedHumidityRatio CalcPredictedSystemLoad CalcPTUnit CalcPumps CalcPurchAirLoads CalcPurchAirMinOAMassFlow CalcPurchAirMixedAir CalcPVTcollectors CalcQiceChargeMaxByChiller CalcQiceChargeMaxByITS CalcQiceDischageMax CalcRABFlowSetPoint CalcRackSystem CalcRadSysHXEffectTerm CalcRadTemp CalcRainCollector CalcReformEIRChillerModel CalcResearchSpecialPartLoad CalcReturnAirPath CalcRfFlrCoordinateTransformation CalcSandiaPV CalcSatVapPressFromTemp CalcSchedOffSysAvailMgr CalcSchedOnSysAvailMgr CalcSchedSysAvailMgr CalcScheduledDualSetPoint CalcScheduledSetPoint CalcScreenTransmittance CalcScriptF CalcSeriesPIU CalcSetpointTempTarget CalcSHRUserDefinedCurves CalcSimpleController CalcSimpleHeatingCoil CalcSimplePV CalcSingleSpeedEvapFluidCooler CalcSingleSpeedTower CalcSingZoneClSetPoint CalcSingZoneHtSetPoint CalcSingZoneMaxHumSetPoint CalcSingZoneMinHumSetPoint CalcSingZoneRhSetPoint CalcSkySolDiffuseReflFactors CalcSolarCollector CalcSolarFlux CalcSolidDesiccantDehumidifier CalcSourceFlux CalcSourceTempCoefficents CalcSparrowLeeward CalcSparrowWindward CalcSpecialDayTypes CalcStandAloneERV CalcStandardRatings CalcStaticProperties CalcSteamAirCoil CalcSteamBaseboard CalcSurfaceCentroid CalcSurfaceGroundHeatExchanger CalcSystemEnergyUse CalcSZOneStageCoolingSetPt CalcSZOneStageHeatingSetPt CalcTankTemp CalcTDDTransSolAniso CalcTDDTransSolHorizon CalcTDDTransSolIso CalcTempDistModel CalcTempIntegral CalcTESCoilChargeOnlyMode CalcTESCoilCoolingAndChargeMode CalcTESCoilCoolingAndDischargeMode CalcTESCoilCoolingOnlyMode CalcTESCoilDischargeOnlyMode CalcTESCoilOffMode CalcTESIceStorageTank CalcTESWaterStorageTank CalcThermalChimney CalcThermalComfortAdaptiveASH55 CalcThermalComfortAdaptiveCEN15251 CalcThermalComfortFanger CalcThermalComfortKSU CalcThermalComfortPierce CalcThermalComfortSimpleASH55 CalcTimeNeeded CalcTopFluxCoefficents CalcTopSurfTemp CalcTotalFLux CalcTotCapSHR CalcTotCapSHR_VSWSHP CalcTransAbsorProduct CalcTransRefAbsOfCover CalcTRNSYSPV CalcTrombeWallIntConvCoeff CalcTwoSpeedDXCoilIEERResidual CalcTwoSpeedDXCoilStandardRating CalcTwoSpeedEvapFluidCooler CalcTwoSpeedTower CalcUAIce CalcUCSDCV CalcUCSDDV CalcUCSDUE CalcUCSDUI CalculateAirChillerSets CalculateBasisLength CalculateCase CalculateCoil CalculateCompressors CalculateCondensers CalculateCTFs CalculateDailySolarCoeffs CalculateDayOfWeek CalculateEpsFromNTUandZ CalculateExponentialMatrix CalculateFuncResults CalculateGammas CalculateInverseMatrix CalculateMoodyFrictionFactor CalculateNTUfromEpsAndZ CalculatePollution CalculateSecondary CalculateSubcoolers CalculateSunDirectionCosines CalculateTransCompressors CalculateWalkIn CalculateWaterUseage CalculateWaterUseage CalculateWindowBeamProperties CalculateZoneMRT CalculateZoneVolume CalcUnitaryCoolingSystem CalcUnitaryHeatingSystem CalcUnitarySuppHeatingSystem CalcUnitarySuppSystemtoSP CalcUnitarySystemLoadResidual CalcUnitarySystemToLoad CalcUnitHeater CalcUnitHeaterComponents CalcUnitVentilator CalcUnitVentilatorComponents CalcUnmetPlantDemand CalcUpdateHeatRecovery CalcUpdateHeatRecovery CalcUserDefinedInsideHcModel CalcUserDefinedOutsideHcModel CalcVariableSpeedTower CalcVarSpeedCoilCooling CalcVarSpeedCoilHeating CalcVarSpeedHeatPump CalcVarSpeedHeatPump CalcVAVVS CalcVentilatedSlab CalcVentilatedSlabComps CalcVentilatedSlabRadComps CalcVentSlabHXEffectTerm CalcVerticalGroundHeatExchanger CalcViewFactorToShelf CalcVRF CalcVRFCondenser CalcVRFCoolingCoil CalcVSTowerApproach CalcWallCoordinateTransformation CalcWaltonStableHorizontalOrTilt CalcWaltonUnstableHorizontalOrTilt CalcWarmestSetPoint CalcWarmestSetPointTempFlow CalcWaterMainsTemp CalcWaterSource CalcWaterStorageTank CalcWaterThermalTankMixed CalcWaterThermalTankStratified CalcWaterThermalTankZoneGains CalcWaterToAirHeatpump CalcWatertoAirHPCooling CalcWatertoAirHPHeating CalcWaterToAirResidual CalcWatertoWaterHPCooling CalcWatertoWaterHPHeating CalcWaterUseZoneGains CalcWetIndirectEvapCooler CalcWindowACOutput CalcWindowBlindProperties CalcWindowHeatBalance CalcWindowProfileAngles CalcWindowScreenProperties CalcWindowStaticProperties CalcWindPressure CalcWindPressureCoeffs CalcWindTurbine CalcWinFrameAndDividerTemps CalcWinTransDifSolInitialDistribution CalcWrapperModel CalcZoneAirComfortSetpoints CalcZoneAirTempSetpoints CalcZoneComponentLoadSums CalcZoneDehumidifier CalcZoneEvaporativeCoolerUnit CalcZoneLeavingConditions CalcZoneMassBalance CalcZonePipesHeatGain CalcZoneSums CartesianPipeCellInformation_ctor CellType_IsFieldCell CFSHasControlledShade CFSNGlz CFSRefPointPosFactor CFSRefPointSolidAngle CFSShadeAndBeamInitialization CFSUFactor cGetCoilAirOutletNode cGetCoilSteamInletNode cGetCoilSteamOutletNode CharPreDefTableEntry CheckActuatorNode CheckAndAddAirNodeNumber CheckAndFixCFSLayer CheckAndReadCustomSprectrumData CheckAndReadFaults CheckAndSetConstructionProperties CheckBracketRoundOff CheckBranchForOASys CheckCachedIPErrors CheckCFSStates CheckCoilWaterInletNode CheckControllerListOrder CheckControllerLists CheckConvexity CheckCostEstimateInput CheckCreatedZoneItemName CheckCurveLimitsForIPLV CheckCurveLimitsForStandardRatings CheckDayScheduleValueMinMax CheckDXCoolingCoilInOASysExists CheckFDSurfaceTempLimits CheckFFSchedule CheckFluidPropertyName CheckForActualFileName CheckForBalancedFlow CheckForControllerWaterCoil CheckForGeometricTransform CheckForGeometricTransform CheckForMisMatchedEnvironmentSpecifications CheckForOutOfRangeTempResult CheckForOutOfRangeTemps CheckForRequestedReporting CheckForRunawayPlantTemps CheckForSensorAndSetpointNode CheckGasCoefs CheckHeatingCoilSchedule CheckHXAssistedCoolingCoilSchedule CheckIFAnyEMS CheckIFAnyIdealCondEntSetPoint CheckIfAnyPlant CheckIfNodeSetpointManagedByEMS CheckIncrementRoundOff CheckInternalConsistency CheckLightsReplaceableMinMaxForZone CheckLocationValidity CheckLoopExitNode CheckLowerUpperBracket CheckMarkedNodes CheckMaxActiveController CheckMaxConstraint CheckMicroCHPThermalBalance CheckMinActiveController CheckMinConstraint checkMinimumMonthlyCharge CheckMinMaxCurveBoundaries CheckMinMaxRange CheckModelBoundOutput_HumRat CheckModelBoundOutput_Temp CheckModelBounds CheckModelBoundsHumRatEq CheckModelBoundsRH_HumRatEq CheckModelBoundsRH_TempEq CheckModelBoundsTempEq CheckNodeConnections CheckNodeSetPoint CheckNonSingularity CheckOAControllerName CheckOutAirNodeNumber CheckPlantConvergence CheckPlantMixerSplitterConsistency CheckPlantOnAbort CheckPollutionMeterReporting CheckRefrigerationInput CheckReportVariable CheckRootFinderCandidate CheckRootFinderConvergence CheckScheduledSurfaceGains CheckScheduleValue CheckScheduleValueMinMax Checksetpoints CheckSimpleController CheckSlope CheckSteamCoilSchedule CheckSubSurfaceMiscellaneous CheckSysSizing CheckSystemBranchFlow CheckTDDsAndLightShelvesInDaylitZones CheckThisAirSystemForSizing CheckThisZoneForSizing CheckThreading CheckUniqueNodes CheckUnitarySysCoilInOASysExists CheckUsedConstructions CheckValidSimulationObjects CheckWarmupConvergence CheckWaterCoilSchedule CheckWeatherFileValidity CheckWindowShadingControlFrameDivider CheckZoneEquipmentList CheckZoneSizing CHKBKS CHKGSS CHKSBS CLIP CLIPPOLY CloseDFSFile CloseMiscOpenFiles CloseMoistureBalanceEMPD CloseOutOpenFiles CloseOutputFiles CloseOutputTabularFile CloseReportIllumMaps CloseSocket CloseWeatherFile CoilAreaFracIter CoilCompletelyDry CoilCompletelyWet CoilOutletStreamCondition CoilPartWetPartDry COMMAND_ARGUMENT_COUNT CompactObjectsCheck CompareTwoVectors ComplexFenestrationLuminances ComputeDelayedComponents ComputeDifSolExcZonesWIZWindows ComputeIntSolarAbsorpFactors ComputeIntSWAbsorpFactors ComputeIntThermalAbsorpFactors ComputeLifeCycleCostAndReport ComputeLoadComponentDecayCurve ComputeNominalUwithConvCoeffs ComputePresentValue ComputeTariff ComputeTaxAndDepreciation ComputeWinShadeAbsorpFactors CondOutTempResidual ConstructBasis ControlCBVAVOutput ControlCompOutput ControlCompOutput ControlCoolBeam ControlCoolingSystem ControlCycWindACOutput ControlDesiccantDehumidifier ControlDXHeatingSystem ControlDXSystem ControlFluidHeatExchanger ControlHeatingSystem ControlHumidifier ControlMSHPOutput ControlPTUnitOutput ControlPVTcollector ControlReformEIRChillerModel ControlSuppHeatSystem ControlUnitarySystemOutput ControlUnitarySystemtoLoad ControlUnitarySystemtoSP ControlVRF ControlVSEvapUnitToMeetLoad ControlVSHPOutput ControlVSHPOutput ConvectionFactor ConvertCasetoLower ConvertCasetoUpper ConvertIP ConvertIPdelta ConvertToElementTag ConvertToEscaped CoolBeamResidual CoolingCoil CoolWaterHumRatResidual CoolWaterTempResidual CoolWatertoAirHPHumRatResidual CoolWatertoAirHPTempResidual CorrectZoneAirTemp CorrectZoneContaminants CorrectZoneHumRat CostInfoOut CPCW CPHW CreateBoundaryList CreateBoundaryListCount CreateCategoryNativeVariables CreateCellArray CreateCurrentDateTimeString CreateDefaultComputation CreateEnergyReportStructure CreateFCfactorConstructions CreateHVACStepFullString CreateHVACTimeIntervalString CreateHVACTimeString CreateNewellAreaVector CreateNewellSurfaceNormalVector CreatePartitionCenterList CreatePartitionRegionList CreatePredefinedMonthlyReports CreateRegionList CreateRegionListCount CreateShadedWindowConstruction CreateSQLiteConstructionsTable CreateSQLiteConstructionsTable CreateSQLiteDatabase CreateSQLiteDatabase CreateSQLiteDaylightMap CreateSQLiteDaylightMap CreateSQLiteDaylightMapTitle CreateSQLiteDaylightMapTitle CreateSQLiteEnvironmentPeriodRecord CreateSQLiteEnvironmentPeriodRecord CreateSQLiteErrorRecord CreateSQLiteErrorRecord CreateSQLiteInfiltrationTable CreateSQLiteInfiltrationTable CreateSQLiteMaterialsTable CreateSQLiteMaterialsTable CreateSQLiteMeterDictionaryRecord CreateSQLiteMeterDictionaryRecord CreateSQLiteMeterRecord CreateSQLiteMeterRecord CreateSQLiteNominalBaseboardHeatTable CreateSQLiteNominalBaseboardHeatTable CreateSQLiteNominalElectricEquipmentTable CreateSQLiteNominalElectricEquipmentTable CreateSQLiteNominalGasEquipmentTable CreateSQLiteNominalGasEquipmentTable CreateSQLiteNominalHotWaterEquipmentTable CreateSQLiteNominalHotWaterEquipmentTable CreateSQLiteNominalLightingTable CreateSQLiteNominalLightingTable CreateSQLiteNominalOtherEquipmentTable CreateSQLiteNominalOtherEquipmentTable CreateSQLiteNominalPeopleTable CreateSQLiteNominalPeopleTable CreateSQLiteNominalSteamEquipmentTable CreateSQLiteNominalSteamEquipmentTable CreateSQLiteReportVariableDataRecord CreateSQLiteReportVariableDataRecord CreateSQLiteReportVariableDictionaryRecord CreateSQLiteReportVariableDictionaryRecord CreateSQLiteRoomAirModelTable CreateSQLiteRoomAirModelTable CreateSQLiteSchedulesTable CreateSQLiteSimulationsRecord CreateSQLiteSimulationsRecord CreateSQLiteStringTableRecord CreateSQLiteSurfacesTable CreateSQLiteSurfacesTable CreateSQLiteTabularDataRecords CreateSQLiteTabularDataRecords CreateSQLiteTimeIndexRecord CreateSQLiteTimeIndexRecord CreateSQLiteVentilationTable CreateSQLiteVentilationTable CreateSQLiteZoneGroupTable CreateSQLiteZoneGroupTable CreateSQLiteZoneListTable CreateSQLiteZoneListTable CreateSQLiteZoneTable CreateSQLiteZoneTable CreateStormWindowConstructions CreateSysTimeIntervalString CreateTCConstructions CreateTimeIntervalString CreateTimeString CreatExtBooundCondName CreateZoneExtendedOutput CreateZoneExtendedOutput CrossProduct CrossProduct cSurfaceClass CTRANS CurveValue DateToString DateToStringWithMonth DaylghtAltAndAzimuth DayltgAveInteriorReflectance DayltgClosestObstruction DayltgCrossProduct DayltgCurrentExtHorizIllum DayltgDirectIllumComplexFenestration DayltgDirectSunDiskComplexFenestration DayltgElecLightingControl DayltgExtHorizIllum DayltgGlare DayltgGlarePositionFactor DayltgGlareWithIntWins DayltgHitBetWinObstruction DayltgHitInteriorObstruction DayltgHitObstruction DayltgInteriorIllum DayltgInteriorMapIllum DayltgInteriorTDDIllum DayltgInterReflectedIllum DayltgInterReflectedIllumComplexFenestration DayltgInterReflIllFrIntWins DayltgLuminousEfficacy DayltgPierceSurface DayltgSetupAdjZoneListsAndPointers DayltgSkyLuminance DayltgSurfaceLumFromSun dCheckScheduleValueMinMax1 dCheckScheduleValueMinMax2 DeallocateLoadComponentArrays DebugRootFinder DecodeHHMMField DecodeMonDayHrMin DeflectionTemperatures DeflectionWidths DegradF DElightDaylightCoefficients DElightDaylightCoefficients DElightElecLtgCtrl DElightElecLtgCtrl DElightFreeMemory DElightFreeMemory DElightInputGenerator DElightInputGenerator DElightOutputGenerator DElightOutputGenerator DensityCFSFillGas Depth DERIV DetailsForSurfaces DetectOscillatingZoneTemp DetermineAzimuthAndTilt DetermineBranchFlowRequest DetermineBuildingFloorArea DetermineDateTokens DetermineFrequency DetermineIndexGroupFromMeterGroup DetermineIndexGroupKeyFromMeterName DetermineMaxBackSurfaces DetermineMeterIPUnits DetermineMinuteForReporting DeterminePolygonOverlap DetermineShadowingCombinations DetermineSunUpDown DevelopMesh DiffuseAverage DiffuseAverageProfAngGnd DiffuseAverageProfAngSky DisplayMaterialRoughness DisplayNumberandString DisplaySimDaysProgress DisplayString distance DistributeBBElecRadGains DistributeBBRadGains DistributeBBSteamRadGains DistributeHTRadGains DistributePlantLoad DistributePressureOnBranch DistributeTDDAbsorbedSolar DistributeUserDefinedPlantLoad DL_RES_r2 DLAG DOE2DXCoilHumRatResidual DOE2DXCoilHumRatResidual DOE2DXCoilResidual DOE2DXCoilResidual DOE2DXCoilResidual DoEndOfIterationOperations DomainRectangle_Contains DOMakeUPPERCase DoOneTimeInitializations DOSameString DoShadeControl DoStartOfTimeStepInitializations DownInterpolate4HistoryValues DumpAirLoopStatistics DumpCurrentLineBuffer DUMPVD DUMPVR DXCoilCyclingHumRatResidual DXCoilCyclingHumRatResidual DXCoilCyclingResidual DXCoilCyclingResidual DXCoilVarSpeedHumRatResidual DXCoilVarSpeedHumRatResidual DXCoilVarSpeedResidual DXCoilVarSpeedResidual DXFOut DXFOutLines DXFOutWireFrame DXHeatingCoilResidual DXHeatingCoilResidual DXHeatingCoilResidual DynamicClothingModel DynamicExtConvSurfaceClassification DynamicIntConvSurfaceClassification EchoOutActuatorKeyChoices EchoOutInternalVariableChoices EffectiveEPSLB EffectiveEPSLF EIRChillerHeatRecovery EN673ISO10292 EncodeMonDayHrMin EndEnergyPlus EndUniqueNodeCheck EnthalpyResidual epElapsedTime epGetTimeUsed epGetTimeUsedperCall epStartTime epStopTime epSummaryTimes eptime EQLWindowInsideEffectiveEmiss EQLWindowOutsideEffectiveEmiss EQLWindowSurfaceHeatBalance EquationsSolver ERF EstimateHEXSurfaceArea EvalInsideMovableInsulation EvalOutsideMovableInsulation EvaluateAdiabaticSurfaceTemperature EvaluateBasementCellTemperature EvaluateCellNeighborDirections evaluateChargeBlock evaluateChargeSimple EvaluateExpression EvaluateExtHcModels EvaluateFarfieldBoundaryTemperature EvaluateFarfieldCharacteristics EvaluateFieldCellTemperature EvaluateGroundSurfaceTemperature EvaluateIntHcModels EvaluateLoopSetPointLoad EvaluateNeighborCharacteristics evaluateQualify evaluateRatchet EvaluateSoilRhoCp EvaluateStack EvolveParaUCSDCV ExitCalcController ExpandComplexState ExpressAsCashFlows ExtendObjectDefinition ExteriorBCEqns ExternalInterfaceExchangeVariables ExternalInterfaceInitializeErlVariable ExternalInterfaceSetErlVariable ExternalInterfaceSetSchedule ExtOrIntShadeNaturalFlow Fabric_EstimateDiffuseProps FACSKY FalsePositionMethod FEQX FI FigureACAncillaries FigureAirEnthalpy FigureAirHeatCap FigureAuxilHeatGasHeatCap FigureBeamSolDiffuseReflFactors FigureBeamSolSpecularReflFactors FigureConstGradPattern FigureDayltgCoeffsAtPointsForSunPosition FigureDayltgCoeffsAtPointsForWindowElements FigureDayltgCoeffsAtPointsSetupForWindow FigureElectricalStorageZoneGains FigureFuelCellZoneGains FigureFuelEnthalpy FigureFuelHeatCap FigureGaseousWaterEnthalpy FigureHeightPattern FigureHXleavingGasHeatCap FigureInverterZoneGains FigureLHVofFuel FigureLiquidWaterEnthalpy FigureLiquidWaterHeatCap FigureMapPointDayltgFactorsToAddIllums FigureMicroCHPZoneGains FigureNDheightInZone FigurePowerConditioningLosses FigureProductGasesEnthalpy FigureProductGasHeatCap FigureRefPointDayltgFactorsToAddIllums FigureRefrigerationZoneGains FigureSolarBeamAtTimestep FigureSunCosines FigureSurfMapPattern FigureTDDZoneGains FigureTransformerZoneGains FigureTransientConstraints FigureTwoGradInterpPattern FILJAC FillBasisElement FillDefaultsSWP FillRemainingPredefinedEntries FillWeatherPredefinedEntries film filmg filmi filmPillar FILSKY FinalizeCFS FinalizeCFSLAYER FinalRateCoils FindAirLoopBranchConnection FindAirPlantCondenserLoopFromBranchList FindAllNumbersinList FindArrayIndex FindCompSPInput FindCompSPLoad FindCondenserLoopBranchConnection FindControlledZoneIndexFromSystemNodeNumberForZone FindDeltaTempRangeInput FindDemandSideMatch FindEMSVariable FindFirstLastPtr FindFirstRecord FindGlycol FindHXDemandSideLoopFlow FindInBasis FindItem FindIteminList FindIteminSortedList FindItemInVariableList FindLoopSideInCallingOrder FindNextRecord FindNonSpace FindNumberinList FindOAMixerMatchForOASystem FindPlantLoopBranchConnection FindRangeBasedOrUncontrolledInput FindRangeVariable FindRefrigerant FindRootSimpleController FindStratifiedTankSensedTemp FindTariffIndex FindTDDPipe FindUnitNumber FinishDebugOutputFiles FixViewFactors FluidCellInformation_ctor FM_BEAM FM_DIFF FM_F FNU forcedventilation FourPipeInductionUnitHasMixer FourPipeIUCoolingResidual FourPipeIUHeatingResidual FRA FrostControl FrostControlSetPointLimit FrostControlSetPointLimit FuelCellProductGasEnthResidual FUN FuncDetermineCoolantWaterExitTemp FuncDetermineCWMdotForInternalFlowControl FuncDetermineEngineTemp FV GasElecHeatingCoilResidual GASSES90 GassesLow GatherBEPSResultsForTimestep GatherBinResultsForTimestep GatherComponentLoadsHVAC GatherComponentLoadsIntGain GatherComponentLoadsSurfAbsFact GatherComponentLoadsSurface GatherForEconomics GatherForPredefinedReport GatherHeatGainReport GatherMonthlyResultsForTimestep GatherPeakDemandForTimestep GatherSourceEnergyEndUseResultsForTimestep GaussElimination generate_ears GenerateDElightDaylightCoefficients GenerateDElightDaylightCoefficients GeneratorPowerOutput GenericCrack GenOutputVariablesAuditReport Get2DMatrix Get2DMatrixDimensions GET_COMMAND GET_COMMAND_ARGUMENT Get_Environment_Variable GetActualDXCoilIndex GetAirBranchIndex GetAirFlowFlag GetAirflowNetworkInput GetAirHeatBalanceInput GetAirLoopAvailabilityManager GetAirModelDatas GetAirNodeData GetAirPathData GetAngleFactorList GetATMixer GetATMixerOutNode GetATMixerPriNode GetATMixers GetATMixerSecNode GetAttShdSurfaceData GetAverageTempByType GetBaseboardInput GetBaseboardInput GetBasementFloorHeatFlux GetBasementWallHeatFlux GetBLASTAbsorberInput GetBoilerInput GetBoilerInput GetBranchData GetBranchFanTypeName GetBranchFlow GetBranchInput GetBranchList GetBranchListInput GetBuildingData GetCBVAV GetCellWidths GetCellWidthsCount GetChildrenData GetChillerheaterInput GetCoilAirFlowRate GetCoilAirFlowRateVariableSpeed GetCoilAirInletNode GetCoilAirOutletNode GetCoilAvailScheduleIndex GetCoilCapacity GetCoilCapacity GetCoilCapacity GetCoilCapacity GetCoilCapacity GetCoilCapacity GetCoilCapacityByIndexType GetCoilCapacityVariableSpeed GetCoilCondenserInletNode GetCoilControlNodeNum GetCoilGroupTypeNum GetCoilIndex GetCoilIndex GetCoilIndex GetCoilIndexVariableSpeed GetCoilInletNode GetCoilInletNode GetCoilInletNode GetCoilInletNode GetCoilInletNode GetCoilInletNode GetCoilInletNodeVariableSpeed GetCoilMaxSteamFlowRate GetCoilMaxWaterFlowRate GetCoilMaxWaterFlowRate GetCoilMaxWaterFlowRate GetCoilObjectTypeNum GetCoilOutletNode GetCoilOutletNode GetCoilOutletNode GetCoilOutletNode GetCoilOutletNode GetCoilOutletNode GetCoilOutletNodeVariableSpeed GetCoilSteamInletNode GetCoilSteamOutletNode GetCoilTypeNum GetCoilWaterInletNode GetCoilWaterInletNode GetCoilWaterOutletNode GetColumnUsingTabs GetComfortSetpoints GetComponentData GetCondFDInput GetConductivityGlycol GetConnectorList GetConnectorListInput GetConstCOPChillerInput GetConstructData GetControlledZoneIndex GetControllerActuatorNodeNum GetControllerInput GetCoolBeams GetCoolingCoilTypeNameAndIndex GetCooltower GetCostEstimateInput GetCrossVentData GetCTGeneratorInput GetCTGeneratorResults GetCurrentHVACTime GetCurrentMeterValue GetCurrentScheduleValue GetCurveCheck GetCurveIndex GetCurveInput GetCurveMinMaxValues GetCurveName GetCurveObjectTypeNum GetCurveType GetCustomMeterInput GetDaylightingParametersDetaild GetDaylightingParametersInput GetDayScheduleIndex GetDemandManagerInput GetDemandManagerListInput GetDensityGlycol GetDesiccantDehumidifierInput GetDesignDayData GetDesignLightingLevelForZone GetDetShdSurfaceData GetDirectAirInput GetDisplacementVentData GetDSTData GetDualDuctInput GetDualDuctOutdoorAirRecircUse GetDuctInput GetDXCoilAirFlow GetDXCoilAvailSchPtr GetDXCoilBypassedFlowFrac GetDXCoilCapFTCurveIndex GetDXCoilIndex GetDXCoilNumberOfSpeeds GetDXCoils GetDXCoolingSystemInput GetDXHeatPumpSystemInput GetEarthTube GetElecReformEIRChillerInput GetElectricBaseboardInput GetElectricChillerInput GetElectricEIRChillerInput GetEMSInput GetEngineDrivenChillerInput GetEnvironmentalImpactFactorInfo GetEvapFluidCoolerInput GetEvapInput GetExhaustAbsorberInput GetExhaustAirInletNode GetExteriorEnergyUseInput GetExtVentedCavityIndex GetExtVentedCavityIndex GetExtVentedCavityTsColl GetExtVentedCavityTsColl GetFanAvailSchPtr GetFanCoilIndex GetFanCoilInletAirNode GetFanCoilMixedAirNode GetFanCoilOutAirNode GetFanCoilReturnAirNode GetFanCoilUnits GetFanCoilZoneInletAirNode GetFanDesignVolumeFlowRate GetFanIndex GetFanIndexForTwoSpeedCoil GetFanInletNode GetFanInput GetFanOutletNode GetFanPower GetFanSpeedRatioCurveIndex GetFanType GetFanVolFlow GetFarfieldTemp GetFirstBranchInletNodeName GetFluidCoolerInput GetFluidDensityTemperatureLimits GetFluidHeatExchangerInput GetFluidPropertiesData GetFluidSpecificHeatTemperatureLimits GetFrameAndDividerData GetFuelCellGeneratorInput GetFuelCellGeneratorResults GetFuelFactorInfo GetFurnaceInput GetGasAbsorberInput GetGeneratorFuelSupplyInput GetGeometryParameters GetGlycolNameByIndex GetGroundheatExchangerInput GetGroundReflectances GetGroundTemps GetGshpInput GetGshpInput GetGTChillerInput GetHeatBalanceInput GetHeatBalHAMTInput GetHeatExchangerObjectTypeNum GetHeatingCoilIndex GetHeatingCoilInput GetHeatingCoilNumberOfStages GetHeatingCoilPLFCurveIndex GetHeatingCoilTypeNum GetHeatReclaimSourceIndex GetHeatRecoveryInput GetHighTempRadiantSystem GetHPCoolingCoilIndex GetHTSubSurfaceData GetHTSurfaceData GetHTSurfExtVentedCavityData GetHumidifierInput GetHVACSingleDuctSysIndex GetHWBaseboardInput GetHXAssistedCoolingCoilInput GetHXCoilAirFlowRate GetHXCoilType GetHXCoilTypeAndName GetHXDXCoilIndex GetHXDXCoilName GetHybridVentilationControlStatus GetHybridVentilationInputs GetICEGeneratorResults GetICEngineGeneratorInput GetIceStorageInput GetIDFRecordsStats GetIndirectAbsorberInput GetIndUnits GetInputEconomicsChargeBlock GetInputEconomicsChargeSimple GetInputEconomicsComputation GetInputEconomicsCurrencyType GetInputEconomicsQualify GetInputEconomicsRatchet GetInputEconomicsTariff GetInputEconomicsVariable GetInputForLifeCycleCost GetInputFuelAndPollutionFactors GetInputLifeCycleCostNonrecurringCost GetInputLifeCycleCostParameters GetInputLifeCycleCostRecurringCosts GetInputLifeCycleCostUseAdjustment GetInputLifeCycleCostUsePriceEscalation GetInputTabularMonthly GetInputTabularPredefined GetInputTabularStyle GetInputTabularTimeBins GetInputViewFactors GetInputViewFactorsbyName GetInputZoneEvaporativeCoolerUnit GetInstantMeterValue GetInternalBranchData GetInternalHeatGainsInput GetInternalVariableValue GetInternalVariableValue GetInternalVariableValueExternalInterface GetInternalVariableValueExternalInterface GetInterpolatedSatProp GetInterpValue GetIntMassSurfaceData GetLastBranchOutletNodeName GetLastWord GetLightWellData GetListOfObjectsInIDD GetListofSectionsinInput GetLocationInfo GetLoopMixer GetLoopSidePumpIndex GetLoopSplitter GetLowTempRadiantSystem GetMaterialData GetMatrixInput getMaxAndSum GetMeteredVariables GetMeterIndex GetMeterResourceType GetMicroCHPGeneratorInput GetMicroCHPGeneratorResults GetMinOATCompressor GetMixerInput GetMixerInput GetMoistureBalanceEMPDInput GetMonthlyCostForResource GetMovableInsulationData GetMSHeatPumpInput GetMTGeneratorExhaustNode GetMTGeneratorInput GetMTGeneratorResults GetMundtData GetNewUnitNumber GetNextEnvironment GetNodeConnectionType GetNodeList GetNodeListsInput GetNodeNums GetNTUforCrossFlowBothUnmixed GetNumberOfSchedules GetNumberOfSurfaceLists GetNumberOfSurfListVentSlab GetNumChildren GetNumMeteredVariables GetNumOAControllers GetNumOAMixers GetNumOASystems GetNumObjectsFound GetNumObjectsInIDD GetNumRangeCheckErrorsFound GetNumSectionsFound GetNumSectionsinInput GetNumSegmentsForHorizontalTrenches GetNumSplitterMixerInConntrList GetOACompListNumber GetOACompName GetOACompType GetOACompTypeNum GetOAControllerInputs GetOAMixerIndex GetOAMixerInletNodeNumber GetOAMixerInputs GetOAMixerMixedNodeNumber GetOAMixerNodeNumbers GetOAMixerReliefNodeNumber GetOAMixerReturnNodeNumber GetOARequirements GetOASysControllerListIndex GetOASysNumCoolingCoils GetOASysNumHeatingCoils GetOASysNumSimpControllers GetOASystemNumber GetObjectDefInIDD GetObjectDefMaxArgs GetObjectItem GetObjectItemfromFile GetObjectItemNum GetOnlySingleNode GetOperationSchemeInput GetOSCData GetOSCMData GetOutAirNodesInput GetOutdoorAirUnitInputs GetOutdoorAirUnitOutAirNode GetOutdoorAirUnitReturnAirNode GetOutdoorAirUnitZoneInletNode GetOutsideAirSysInputs GetOutsideEnergySourcesInput GetParentData GetPipeInput GetPipesHeatTransfer GetPipingSystemsInput GetPIUs GetPlantAvailabilityManager GetPlantInput GetPlantLoopData GetPlantOperationInput GetPlantProfileInput GetPlantSizingInput GetPlantValvesInput GetPollutionFactorInput GetPondGroundHeatExchanger GetPowerManagerInput GetPressureCurveTypeAndIndex GetPressureSystemInput GetPreviousHVACTime GetProjectControlData GetProjectData GetPTUnit GetPTUnitMixedAirNode GetPTUnitOutAirNode GetPTUnitReturnAirNode GetPTUnitZoneInletAirNode GetPumpInput GetPurchasedAir GetPurchasedAirMixedAirHumRat GetPurchasedAirMixedAirTemp GetPurchasedAirOutAirMassFlow GetPurchasedAirReturnAirNode GetPurchasedAirZoneInletAirNode GetPVGeneratorResults GetPVInput GetPVTcollectorsInput GetPVTThermalPowerProduction GetQualityRefrig GetRecordLocations GetRectDetShdSurfaceData GetRectSubSurfaces GetRectSurfaces GetRefrigeratedRackIndex GetRefrigerationInput GetReportVariableInput GetRequiredMassFlowRate GetResidCrossFlowBothUnmixed GetResourceTypeChar GetReturnAirNodeForZone GetReturnAirPathInput GetRoomAirModelParameters GetRunPeriodData GetRunPeriodDesignData GetRuntimeLanguageUserInput GetSatDensityRefrig GetSatEnthalpyRefrig GetSatPressureRefrig GetSatSpecificHeatRefrig GetSatTemperatureRefrig GetScheduledSurfaceGains GetScheduleIndex GetScheduleMaxValue GetScheduleMinValue GetScheduleName GetScheduleType GetScheduleValuesForDay GetSecondaryInletNode GetSecondaryOutletNode GetSetPointManagerInputs GetShadingSurfReflectanceData GetShadowingInput GetShelfInput GetSimpleAirModelInputs GetSimpleShdSurfaceData GetSimpleWatertoAirHPInput GetSingleDayScheduleValues GetSiteAtmosphereData GetSizingParams GetSnowGroundRefModifiers GetSolarCollectorInput GetSpecialDayPeriodData GetSpecificHeatGlycol getSpecificUnitDivider getSpecificUnitIndex getSpecificUnitMultiplier GetSplitterInput GetSplitterInput GetSplitterNodeNumbers GetSplitterOutletNumber GetStandAloneERV GetStandAloneERVNodes GetStandAloneERVOutAirNode GetStandAloneERVReturnAirNode GetStandAloneERVZoneInletAirNode GetStandardMeterResourceType GetSteamBaseboardInput GetSteamCoilAvailScheduleIndex GetSteamCoilControlNodeNum GetSteamCoilIndex GetSteamCoilInput GetSTM GetStormWindowData GetSupHeatDensityRefrig GetSupHeatEnthalpyRefrig GetSupHeatPressureRefrig GetSupplyAirFlowRate GetSupplyAirFlowRate GetSupplyAirInletNode GetSupplyInletNode GetSupplyOutletNode GetSurfaceCountForOSCM GetSurfaceData GetSurfaceGroundHeatExchanger GetSurfaceHeatTransferAlgorithmOverrides GetSurfaceIndecesForOSCM GetSurfaceListsInputs GetSurfHBDataForMundtModel GetSurfHBDataForTempDistModel GetSysAvailManagerInputs GetSysAvailManagerListInputs GetSysInput GetSystemNodeNumberForZone GetSystemSizingInput GetTDDInput GetTESCoilIndex GetTESCoilInput GetThermalChimney GetTowerInput GetTranspiredCollectorIndex GetTranspiredCollectorInput GetTypeOfCoil GetUFADZoneData GetUnitarySystemDXCoolingCoilIndex GetUnitarySystemInput GetUnitarySystemOAHeatCoolCoil GetUnitConversion GetUnitHeaterInput GetUnitsString GetUnitSubString GetUnitVentilatorInput GetUnitVentilatorMixedAirNode GetUnitVentilatorOutAirNode GetUnitVentilatorReturnAirNode GetUnitVentilatorZoneInletAirNode GetUserConvectionCoefficients GetUserDefinedComponents GetUserDefinedOpSchemeInput GetUserDefinedPatternData GetUTSCTsColl GetVariableKeyCountandType GetVariableKeyCountandType GetVariableKeys GetVariableKeys GetVariableTypeAndIndex GetVariableUnitsString GetVarSpeedCoilInput GetVentilatedSlabInput GetVertices GetViscosityGlycol GetVRFInput GetVSCoilCondenserInletNode GetVSCoilMinOATCompressor GetVSCoilNumOfSpeeds GetWaterCoilAvailScheduleIndex GetWaterCoilCapacity GetWaterCoilIndex GetWaterCoilInput GetWaterMainsTemperatures GetWaterManagerInput GetWaterSource GetWaterThermalTankInput GetWatertoAirHPInput GetWatertoWaterHPInput GetWaterUseInput GetWeatherProperties GetWeatherStation GetWindowAC GetWindowACMixedAirNode GetWindowACOutAirNode GetWindowACReturnAirNode GetWindowACZoneInletAirNode GetWindowGapAirflowControlData GetWindowGlassSpectralData GetWindowShadingControlData GetWindTurbineInput GetWrapperInput GetWTGeneratorResults GetZoneAirDistribution GetZoneAirLoopEquipment GetZoneAirSetpoints GetZoneAndZoneListNames GetZoneContaminanInputs GetZoneContaminanSetpoints GetZoneData GetZoneDehumidifierInput GetZoneDehumidifierNodeNumber GetZoneEqAvailabilityManager GetZoneEquipment GetZoneEquipmentData GetZoneEquipmentData1 GetZoneInfilAirChangeRate GetZoneLoads GetZonePlenumInput GetZoneSizingInput GLtoAMB GoAhead guess HasFractionalScheduleValue hatter HCInWindowStandardRatings HConvGap HcUCSDCV HcUCSDDV HcUCSDUF HeatingCoilVarSpeedCycResidual HeatingCoilVarSpeedResidual HeatPumpRunFrac HeatPumpRunFrac HeatPumpRunFrac HeatWatertoAirHPTempResidual Height HEMINT HIC_ASHRAE HotWaterCoilResidual HotWaterCoilResidual HotWaterCoilResidual HotWaterCoilResidual HotWaterCoilResidual HotWaterHeatingCoilResidual HRadPar HTRANS HTRANS0 HTRANS1 HWBaseboardUAResidual HXAssistDXCoilResidual HXAssistedCoolCoilHRResidual HXAssistedCoolCoilHRResidual HXAssistedCoolCoilTempResidual HXAssistedCoolCoilTempResidual HXDemandSideLoopFlowResidual HybridVentilationControl IAM iCheckScheduleValue ICSCollectorAnalyticalSoluton iGetCoilAirOutletNode iGetCoilSteamInletNode iGetCoilSteamOutletNode INCLOS incrementEconVar IncrementInstMeterCache incrementSteps incrementTableEntry InitAirflowNetwork InitAirflowNetworkData InitAirHeatBalance InitAirLoops InitAirLoopSplitter InitAirMixer InitAirTerminalUserDefined InitAirZoneReturnPlenum InitAirZoneSupplyPlenum InitATMixer InitBaseboard InitBaseboard InitBLASTAbsorberModel InitBoiler InitBoiler InitBoreholeHXSimVars InitBSDFWindows InitCBVAV InitCoilUserDefined InitComplexWindows InitComponentNodes InitConductionTransferFunctions InitConnections InitConstCOPChiller InitController InitCoolBeam InitCTGenerators InitCurveReporting InitDaylightingDevices InitDemandManagers InitDesiccantDehumidifier InitDetailedIceStorage InitDirectAir InitDualDuct InitDuct InitDXCoil InitDXCoolingSystem InitDXHeatPumpSystem InitElecReformEIRChiller InitElectricBaseboard InitElectricChiller InitElectricEIRChiller InitEMS InitEMSControlledConstructions InitEMSControlledSurfaceProperties InitEnergyReports InitEngineDrivenChiller InitEquivalentLayerWindowCalculations InitEvapCooler InitEvapFluidCooler InitExhaustAbsorber InitExteriorConvectionCoeff InitFan InitFanCoilUnits InitFluidCooler InitFluidHeatExchanger InitFuelCellGenerators InitFurnace InitGasAbsorber InitGlassOpticalCalculations InitGshp InitGshp InitGTChiller InitHeatBalance InitHeatBalFiniteDiff InitHeatBalHAMT InitHeatingCoil InitHeatRecovery InitHighTempRadiantSystem InitHumidifier InitHWBaseboard InitHXAssistedCoolingCoil InitHybridVentSysAvailMgr InitialInitHeatBalFiniteDiff InitializeCFSDaylighting InitializeCFSStateData InitializeComponentSizingTable InitializeConstructionsTables InitializeDaylightMapTables InitializeEnvironmentPeriodsTable InitializeErrorsTable InitializeGlycolTempLimits InitializeHeatTransferPipes InitializeIndexes InitializeIndexes InitializeLoops InitializeMaterialsTable InitializeMeters initializeMonetaryUnit InitializeNominalBaseboardHeatTable InitializeNominalElectricEquipmentTable InitializeNominalGasEquipmentTable InitializeNominalHotWaterEquipmentTable InitializeNominalInfiltrationTable InitializeNominalLightingTable InitializeNominalOtherEquipmentTable InitializeNominalPeopleTable InitializeNominalSteamEquipmentTable InitializeNominalVentilationTable InitializeOperatingMode InitializeOutput InitializePipes InitializePredefinedMonthlyTitles InitializePsychRoutines InitializePumps InitializeRefrigerantLimits InitializeReportMeterDataDictionaryTable InitializeReportMeterDataTables InitializeReportVariableDataDictionaryTable InitializeReportVariableDataTables InitializeRoomAirModelTable InitializeRootFinder InitializeRuntimeLanguage InitializeSchedulesTable InitializeSimulationsTable InitializeSQLiteTables InitializeSurfacesTable InitializeSystemSizingTable InitializeTabularDataTable InitializeTabularDataTable InitializeTabularDataView InitializeTabularDataView InitializeTabularMonthly InitializeTimeIndicesTable InitializeViews InitializeWeather InitializeZoneGroupTable InitializeZoneInfoTable InitializeZoneListTable InitializeZoneSizingTable InitICEngineGenerators InitIndirectAbsorpChiller InitIndUnit InitInteriorConvectionCoeffs InitInteriorRadExchange InitInternalHeatGains InitIntSolarDistribution InitLoadBasedControl InitLoadDistribution InitLowTempRadiantSystem InitMicroCHPNoNormalizeGenerators InitMoistureBalanceEMPD InitMSHeatPump InitMTGenerators InitMundtModel InitOAController InitOAMixer InitOneTimePlantSizingInfo InitOutAirNodes InitOutdoorAirUnit InitOutsideAirSys InitPipesHeatTransfer InitPipingSystems InitPIU InitPlantProfile InitPlantUserComponent InitPlantValves InitPollutionMeterReporting InitPondGroundHeatExchanger InitPressureDrop InitPTUnit InitPurchasedAir InitPVTcollectors InitRefrigeration InitRefrigerationPlantConnections InitReturnAirPath InitSecretObjects InitSetPointManagers InitSimpleIceStorage InitSimpleMixingConvectiveHeatGains InitSimpleWatertoAirHP InitSimVars InitSimVars InitSimVars InitSimVars InitSolarCalculations InitSolarCollector InitSolarHeatGains InitSolReflRecSurf InitStandAloneERV InitSteamBaseboard InitSteamCoil InitSurfaceGroundHeatExchanger InitSurfaceHeatBalance InitSys InitSysAvailManagers InitSystemOutputRequired InitTempDistModel InitTESCoil InitThermalAndFluxHistories InitThermalComfort InitTower InitTranspiredCollector InitTRNSYSPV InitUCSDCV InitUCSDDV InitUCSDUF InitUniqueNodeCheck InitUnitarySystems InitUnitHeater InitUnitVentilator InitVarSpeedCoil InitVentilatedSlab InitVRF InitWaterCoil InitWaterSource InitWaterThermalTank InitWatertoAirHP InitWatertoWaterHP InitWindowAC InitWindTurbine InitWrapper InitZoneAirLoopEquipment InitZoneAirSetpoints InitZoneAirUserDefined InitZoneContSetpoints InitZoneDehumidifier InitZoneEquipment InitZoneEvaporativeCoolerUnit InPolygon InsertCurrencySymbol int_times_vector INTCPT Integer_IsInRange IntegerIsWithinTwoValues IntegerToString InterConnectTwoPlantLoopSides InteriorBCEqns InteriorNodeEqns InternalRangeCheck InternalSetupTankDemandComponent InternalSetupTankSupplyComponent interp INTERP InterpBlind InterpDefValuesForGlycolConc Interpolate Interpolate_Lagrange InterpolateBetweenFourValues InterpolateBetweenTwoValues InterpolatePipeTransBeam InterpProfAng InterpProfSlatAng InterpretWeatherDataLine InterpSlatAng InterpSw InterpValuesForGlycolConc IntInterfaceNodeEqns IntPreDefTableEntry IntToStr Invert3By3Matrix InvertMatrix InvJulianDay IPTrimSigDigits iRoundSigDigits IS_BEAM IS_DIFF IS_DSRATIO IS_F IS_LWP IS_OPENNESS IS_SWP isCompLoadRepReq IsControlledShade IsConverged_CurrentToPrevIteration IsConverged_PipeCurrentToPrevIteration IsCurveInputTypeValid IsCurveOutputTypeValid isExternalInterfaceErlVariable IsGlazeLayerX IsGZSLayer isInQuadrilateral IsInRange isInTriangle IsLeapYear IsNodeOnSetPtManager IsParentObject IsParentObjectCompSet IsShadingLayer IssueSevereAlphaInputFieldError IssueSevereInputFieldError IssueSevereRealInputFieldError IsValidConnectionType IsVBLayer isWithinRange ITERATE IterateRootFinder iTrimSigDigits JGDate JulianDay LClimb LDSumMax LDSumMean LEEDtariffReporting LimitCoilCapacity LimitController LimitTUCapacity LinesOut linint LoadEquipList LoadInterface LogicalToInteger LogicalToInteger LogPlantConvergencePoints lookupOperator LookUpScheduleValue LookUpSeason LookupSItoIP lubksb LUBKSB ludcmp LUDCMP LUdecomposition LUsolution MakeAnchorName MakeHVACTimeIntervalString MakeMirrorSurface MakeRectangularVertices MakeRelativeRectangularVertices MakeTransition MakeUPPERCase ManageAirflowNetworkBalance ManageAirHeatBalance ManageAirLoops ManageAirModel ManageBranchInput ManageControllers ManageCoolTower ManageDemand ManageEarthTube ManageElectCenterStorageInteractions ManageElectricLoadCenters ManageElectStorInteractions ManageEMS ManageExteriorEnergyUse ManageGeneratorControlState ManageGeneratorFuelFlow ManageHeatBalance ManageHeatBalFiniteDiff ManageHeatBalHAMT ManageHVAC ManageHybridVentilation ManageInsideAdaptiveConvectionAlgo ManageInternalHeatGains ManageInverter ManageMundtModel ManageNonZoneEquipment ManageOutsideAdaptiveConvectionAlgo ManageOutsideAirSystem ManagePlantLoadDistribution ManagePlantLoops ManageRefrigeratedCaseRacks ManageSetPoints ManageSimulation ManageSingleCommonPipe ManageSizing ManageSurfaceHeatBalance ManageSystemAvailability ManageThermalChimney ManageThermalComfort ManageTransformers ManageTwoWayCommonPipe ManageUCSDCVModel ManageUCSDDVModel ManageUCSDUFModels ManageUserDefinedPatterns ManageWater ManageWaterInits ManageWeather ManageZoneAirLoopEquipment ManageZoneAirUpdates ManageZoneContaminanUpdates ManageZoneEquipment MapExtConvClassificationToHcModels MapIntConvClassificationToHcModels MarkNode MatchAndSetColorTextString MatchPlantSys MatrixIndex matrixQBalance MeshPartition_CompareByDimension MeshPartition_SelectionSort MeshPartitionArray_Contains MinePlantStructForInfo MixedAirControlTempResidual ModifyWindow Modulus MonthToMonthNumber MovingAvg MRXINV MSHPCyclingResidual MSHPHeatRecovery MSHPVarSpeedResidual MultiModeDXCoilHumRatResidual MultiModeDXCoilHumRatResidual MultiModeDXCoilResidual MultiModeDXCoilResidual MultiModeDXCoilResidual MultiSpeedDXCoolingCoilStandardRatings MultiSpeedDXHeatingCoilStandardRatings MULTOL MyPlantSizingIndex NeighborInformationArray_Value NETRAD NewEMSVariable NewExpression newPreDefColumn newPreDefReport newPreDefSubTable NEWTON NodeHasSPMCtrlVarType NormalArea NumBranchesInBranchList NumCompsInBranch nusselt NusseltNumber OpenEPlusWeatherFile OPENNESS_LW OpenOutputFiles OpenOutputTabularFile OpenWeatherFile OPERATOR (*) OPERATOR (+) OPERATOR (-) OPERATOR (.dot.) OPERATOR (.twodcross.) OPERATOR (.twoddot.) OPERATOR (/) ORDER OutBaroPressAt OutDewPointTempAt OutDryBulbTempAt OutsidePipeHeatTransCoef OutWetBulbTempAt P01 PanesDeflection ParametricObjectsCheck parseComputeLine ParseExpression ParseStack ParseTime PartLoadFactor PassiveGapNusseltNumber PassPressureAcrossInterface PassPressureAcrossMixer PassPressureAcrossSplitter PD_BEAM PD_BEAM_CASE_I PD_BEAM_CASE_II PD_BEAM_CASE_III PD_BEAM_CASE_IV PD_BEAM_CASE_V PD_BEAM_CASE_VI PD_DIFF PD_LW PD_LWP PD_SWP PerformanceCurveObject PerformanceTableObject PerformIterationLoop PerformPipeCellSimulation PerformPipeCircuitSimulation PerformSolarCalculations PerformTemperatureFieldUpdate PierceSurface PierceSurfaceVector PipeCircuitInfo_InitInOutCells PipeSegmentInfo_InitPipeCells PIUInducesPlenumAir PIUnitHasMixer PlaneEquation PlantHalfLoopSolver PlantMassFlowRatesFunc PLRResidual PLRResidual PLRResidualMixedTank PLRResidualStratifiedTank PMVResidual POLY1F POLY2F POLYF polygon_contains_point_2d popStack pos PostIPProcessing POWER PreDefTableEntry PredictSystemLoads PredictZoneContaminants PreparePipeCircuitSimulation PrepDebugFilesAndVariables PreProcessorCheck PrepVariablesISO15099 PreScanReportingVariables PresProfile PressureCurveValue ProcessDataDicFile ProcessDateString ProcessEMSInput ProcessEPWHeader ProcessForDayTypes ProcessInput ProcessInputDataFile ProcessIntervalFields ProcessMinMaxDefLine ProcessNumber ProcessScheduleInput ProcessSurfaceVertices ProcessTokens ProduceMinMaxString ProduceMinMaxStringWStartMinute ProduceRDDMDD ProfileAngle PropagateResolvedFlow PStack PsyCpAirFnWTdb PsyHfgAirFnWTdb PsyHFnTdbRhPb PsyHFnTdbW PsyHgAirFnWTdb PsyPsatFnTemp PsyPsatFnTemp_raw PsyRhFnTdbRhov PsyRhFnTdbRhovLBnd0C PsyRhFnTdbWPb PsyRhoAirFnPbTdbW PsyRhovFnTdbRh PsyRhovFnTdbRhLBnd0C PsyRhovFnTdbWPb PsyTdbFnHW PsyTdpFnTdbTwbPb PsyTdpFnWPb PsyTsatFnHPb PsyTsatFnPb PsyTwbFnTdbWPb PsyTwbFnTdbWPb_raw PsyVFnTdbWPb PsyWFnTdbH PsyWFnTdbRhPb PsyWFnTdbTwbPb PsyWFnTdpPb psz Pt2Plane PullCompInterconnectTrigger PumpDataForTable PushBranchFlowCharacteristics PushInnerTimeStepArrays pushStack PushSystemTimestepHistories PushSystemTimestepHistories PushZoneTimestepHistories PushZoneTimestepHistories QsortC QsortPartition RadialCellInfo_XY_CrossSectArea RadialCellInformation_ctor RadialSizing_Thickness Rainflow RangeCheck RB_BEAM RB_DIFF RB_F RB_LWP RB_SWP rCheckDayScheduleValueMinMax rCheckScheduleValue rCheckScheduleValueMinMax1 rCheckScheduleValueMinMax2 ReadEnergyMeters ReadEPlusWeatherForDay ReadGeneralDomainInputs ReadHorizontalTrenchInputs ReadINIFile ReadInputLine ReadPipeCircuitInputs ReadPipeSegmentInputs ReadTableData ReadUserWeatherInput ReadWeatherForDay Real_ConstrainTo Real_IsInRange real_times_vector ReAllocateAndPreserveOutputVariablesForSimulation ReallocateIntegerArray ReallocateIVar ReallocateRealArray ReallocateRVar RealPreDefTableEntry RealToStr RecKeepHeatBalance RecordOutput RectangleF_Contains ReformEIRChillerCondInletTempResidual ReformEIRChillerHeatRecovery RegisterNodeConnection RegisterPlantCompDesignFlow RegulateCondenserCompFlowReqOp ReInitPlantLoopsAtFirstHVACIteration RemoveSpaces RemoveTrailingZeros reorder ReplaceBlanksWithUnderscores ReplaceBlanksWithUnderscores ReportAirflowNetwork ReportAirHeatBalance ReportAirLoopConnections ReportAirTerminalUserDefined ReportAndTestGlycols ReportAndTestRefrigerants ReportBaseboard ReportBaseboard ReportCBVAV ReportChillerIPLV ReportCoilUserDefined ReportCompSetMeterVariables ReportController ReportCoolBeam ReportCoolTower ReportCTFs ReportCWTankInits ReportDemandManagerList ReportDesiccantDehumidifier ReportDetailedIceStorage ReportDirectAir ReportDualDuct ReportDualDuctConnections ReportDuct ReportDXCoil ReportDXCoilRating ReportDYMeters ReportEarthTube ReportEconomicVariable ReportElectricBaseboard ReportEMS ReportEvapCooler ReportEvapFluidCooler ReportExteriorEnergyUse ReportFan ReportFanCoilUnit ReportFatalGlycolErrors ReportFatalRefrigerantErrors ReportFiniteDiffInits ReportFluidCooler ReportFluidHeatExchanger ReportForTabularReports ReportFurnace ReportGlass ReportHeatBalance ReportHeatingCoil ReportHeatRecovery ReportHighTempRadiantSystem ReportHRMeters ReportHumidifier ReportHWBaseboard ReportIllumMap ReportingFreqName ReportingThisVariable ReportInternalHeatGains ReportLoopConnections ReportLowTempRadiantSystem ReportMaxVentilationLoads ReportMeterDetails ReportMissing_RangeData ReportMixer ReportMNMeters ReportMoistureBalanceEMPD ReportMSHeatPump ReportNodeConnections ReportOAController ReportOAMixer ReportOrphanFluids ReportOrphanRecordObjects ReportOrphanSchedules ReportOutdoorAirUnit ReportOutputFileHeaders ReportParentChildren ReportPipesHeatTransfer ReportPIU ReportPlantProfile ReportPlantUserComponent ReportPlantValves ReportPondGroundHeatExchanger ReportPTUnit ReportPumps ReportPurchasedAir ReportPV ReportRackSystem ReportRefrigerationComponents ReportReturnAirPath ReportRuntimeLanguage ReportScheduleDetails ReportScheduleValues ReportSizingOutput ReportSMMeters ReportSolarCollector ReportSplitter ReportStandAloneERV ReportStandAloneWaterUse ReportSteamBaseboard ReportSteamCoil ReportSurfaceErrors ReportSurfaceGroundHeatExchngr ReportSurfaceHeatBalance ReportSurfaces ReportSurfaceShading ReportSys ReportSysSizing ReportSystemEnergyUse ReportThermalChimney ReportTowers ReportTSMeters ReportUnitarySystem ReportUnitHeater ReportUnitVentilator ReportVentilatedSlab ReportVRFCondenser ReportVRFTerminalUnit ReportWarmupConvergence ReportWaterCoil ReportWaterManager ReportWaterThermalTank ReportWaterUse ReportWeatherAndTimeInformation ReportWindowAC ReportWindTurbine ReportZoneAirLoopEquipment ReportZoneAirUserDefined ReportZoneDehumidifier ReportZoneEquipment ReportZoneEvaporativeCoolerUnit ReportZoneMeanAirTemp ReportZoneReturnPlenum ReportZoneSizing ReportZoneSupplyPlenum ResetAllPlantInterConnectFlags ResetController ResetEnvironmentCounter ResetHVACControl ResetNodeData ResetPerformanceCurveOutput ResetRootFinder ResetTerminalUnitFlowLimits ResetWeekDaysByMonth Resimulate resist ReSolveAirLoopControllers ResolveAirLoopFlowLimits ResolveLocationInformation ResolveLockoutFlags ResolveLoopFlowVsPressure ResolveParallelFlows ResolveSysFlow ReverseAndRecalculate RevertZoneTimestepHistories RevertZoneTimestepHistories RevisePlantCallingOrder RezeroZoneSizingArrays RhoH2O RHtoVP RKG RoundSigDigits rRoundSigDigits rTrimSigDigits SafeCopyPlantNode SafeDiv SafeDivide SameString SandiaCellTemperature SandiaEffectiveIrradiance SandiaF1 SandiaF2 SandiaImp SandiaIsc SandiaIx SandiaIxx SandiaModuleTemperature SandiaTcellFromTmodule SandiaVmp SandiaVoc SaveSimpleController ScanForReports ScanPlantLoopsForNodeNum ScanPlantLoopsForObject sCheckDayScheduleValueMinMax ScheduleAverageHoursPerWeek SEARCH SearchAscTable SearchWindow5DataFile SecantFormula SecantMethod selectTariff SetActuatedBranchFlowRate SetAdditionalNeighborData SetAllFlowLocks SetAllPlantSimFlagsToValue SetATMixerPriFlow SetATMixerPriFlow SetAverageAirFlow SetAverageAirFlow SetAverageAirFlow SetAverageAirFlow SetAverageAirFlow SetAverageAirFlow SetCoilDesFlow SetCoilSystemCoolingData SetCoilSystemHeatingDXFlag SetCompFlowRate SetComponentFlowRate SetCurrentWeather SetCurveOutputMinMaxValues SetDSTDateRanges SetDXCoilTypeData SetDXCoolingCoilData SetEquivalentLayerWindowProperties SetErlValueNumber SetExtConvectionCoeff SetFanData SetHeatExchangerData SetHeatToReturnAirFlag SetInitialMeterReportingAndOutputNames SetIntConvectionCoeff SetInternalVariableValue SetMinMax setNativeVariables SetNodeResult SetOAControllerData SetOnOffMassFlowRate SetOnOffMassFlowRate SetOnOffMassFlowRate SetOnOffMassFlowRateVSCoil SetOnOffMassFlowRateVSCoil SetOutAirNodes SetOutBulbTempAt SetPredefinedTables SetSimpleWSHPData SETSKY SetSpecialDayDates SetSpeedVariables SetStormWindowControl SetSurfHBDataForMundtModel SetSurfHBDataForTempDistModel SetSurfTmeanAir SETUP4x4_A SetupAdaptiveConvectionRadiantSurfaceData SetupAdaptiveConvectionStaticMetaData SetupAirLoopControllersTracer SetupAllOutputVariables SetUpAndSort SetupBranchControlTypes SetupCellNeighbors SetupCommonPipes SetupComplexFenestrationMaterialInput SetupComplexFenestrationStateInput SetupComplexWindowStateGeometry SetUpCompSets SetupDElightOutput4EPlus SetupDElightOutput4EPlus SetUpDesignDay SetupEMSActuator SetupEMSIntegerActuator SetupEMSIntegerInternalVariable SetupEMSInternalVariable SetupEMSLogicalActuator SetupEMSRealActuator SetupEMSRealInternalVariable SetupEnvironmentTypes SetupFuelConstituentData SetupGeneratorControlStateManager SetupIndividualControllerTracer SetupInitialPlantCallingOrder SetupIntegerOutputVariable SetupInterpolationValues SetupLoopFlowRequest SetupMeteredVarsForSetPt SetupMundtModel SetupNodeSetpointsAsActuators SetupNodeVarsForReporting SetupOutputVariable SetupPipeCircuitInOutCells SetupPlantEMSActuators SetupPollutionCalculations SetupPollutionMeterReporting SetupPossibleOperators SetupPrimaryAirSystemAvailMgrAsActuators SetupPumpMinMaxFlows SetupRealOutputVariable SetupRealOutputVariable_IntKey SetupReportInput SetupReports SetupRootFinder SetUpSchemeColors SetupShadeSurfacesForSolarCalcs SetupSimpleWindowGlazingSystem SetupSimulation SetupStratifiedNodes SetupSurfaceConstructionActuators SetupSurfaceConvectionActuators SetupSurfaceOutdoorBoundaryConditionActuators SetUpSysSizingArrays SetupTankDemandComponent SetupTankSupplyComponent SetupThermostatActuators SetupTimePointers SetupUnitConversions SetupWeekDaysByMonth SetupWindowShadingControlActuators SetupZoneEquipmentForConvectionFlowRegime SetupZoneGeometry SetupZoneInfoAsInternalDataAvail SetupZoneInternalGain SetupZoneInternalGain SetupZoneSizing SetUpZoneSizingArrays SetUTSCQdotSource SetVarSpeedCoilData SetVentedModuleQdotSource SetVSHPAirFlow SetVSHPAirFlow SetWindSpeedAt SetZoneEquipSimOrder shading shadingedge shadingin SHADOW SharedDVCVUFDataInit SHDBKS SHDGSS SHDRVL SHDSBS shift ShiftPipeTemperaturesForNewIteration ShiftPlantLoopSideCallingOrder ShiftTemperaturesForNewIteration ShiftTemperaturesForNewTimeStep ShowAuditErrorMessage ShowBranchesOnLoop ShowContinueError ShowContinueError ShowContinueErrorTimeStamp ShowContinueErrorTimeStamp ShowErrorMessage ShowErrorMessage ShowFatalError ShowFatalError ShowMessage ShowMessage ShowPsychrometricSummary ShowRecurringContinueErrorAtEnd ShowRecurringContinueErrorAtEnd ShowRecurringErrors ShowRecurringSevereErrorAtEnd ShowRecurringSevereErrorAtEnd ShowRecurringWarningErrorAtEnd ShowRecurringWarningErrorAtEnd ShowSevereError ShowSevereError ShowSevereMessage ShowSevereMessage ShowWarningError ShowWarningError ShowWarningMessage ShowWarningMessage showWarningsBasedOnTotal Sim4PipeFanCoil SimAirChillerSet SimAirLoop SimAirLoopComponent SimAirLoopComponents SimAirLoops SimAirLoopSplitter SimAirMixer SimAirTerminalUserDefined SimAirZonePlenum SimATMixer SimBaseboard SimBLASTAbsorber SimBoiler SimCBVAV SimCBVAV SimCentralGroundSourceHeatPump SimChiller SimCoilUserDefined SimComponentModelFan SimConstVol SimCoolBeam SimCostEstimate SimCTGenerator SimCTPlantHeatRecovery SimCyclingWindowAC SimDesiccantDehumidifier SimDetailedIceStorage SimDirectAir SimDistrictEnergy SimDualDuctConstVol SimDualDuctVarVol SimDualDuctVAVOutdoorAir SimDuct SimDXCoil SimDXCoilMultiMode SimDXCoilMultiSpeed SimDXCoolingSystem SimDXHeatPumpSystem SimElecBaseBoard SimElectricBaseBoard SimElectricConvective SimElectricEIRChiller SimEvapCooler SimEvapFluidCoolers SimExhaustAbsorber SimFanCoilUnit SimFluidCoolers SimFluidHeatExchanger SimFourPipeIndUnit SimFuelCellGenerator SimFuelCellPlantHeatRecovery SimFurnace SimGasAbsorber SimGroundHeatExchangers SimHeatPumpWaterHeater SimHeatRecovery SimHighTempRadiantSystem SimHPWatertoWaterCOOLING SimHPWatertoWaterHEATING SimHPWatertoWaterSimple SimHumidifier SimHVAC SimHWBaseboard SimHWConvective SimHXAssistedCoolingCoil SimICEngineGenerator SimICEPlantHeatRecovery SimIceStorage SimIndirectAbsorber SimIndUnit SimLowTempRadiantSystem SimMicroCHPGenerator SimMicroCHPPlantHeatRecovery SimMSHeatPump SimMSHP SimMTGenerator SimMTPlantHeatRecovery SimMultiSpeedCoils SimOAComponent SimOAController SimOAMixer SimOnOffFan SimOutdoorAirEquipComps SimOutdoorAirUnit SimOutsideAirSys SimOutsideEnergy SimPackagedTerminalUnit SimPipes SimPipesHeatTransfer SimPipingSystemCircuit SimPIU SimPlantEquip SimPlantValves SimpleCoolingCoilUAResidual SimpleEvapFluidCoolerUAResidual SimpleFluidCoolerUAResidual SimpleHeatingCoilUAResidual SimpleTowerApproachResidual SimpleTowerTrResidual SimpleTowerUAResidual SimPondGroundHeatExchanger SimPressureDropSystem SimPTUnit SimPumps SimPurchasedAir SimPVGenerator SimPVTcollectors SimReformulatedEIRChiller SimRefrigCondenser SimReturnAirPath SimSelectedEquipment SimSetPointManagers SimSimpleEvapFluidCooler SimSimpleFan SimSimpleFluidCooler SimSimpleTower SimSolarCollector SimStandAloneERV SimSteamBaseboard SimSteamBoiler SimSteamCoils SimSurfaceGroundHeatExchanger SimSysAvailManager SimTESCoil SimTowers SimTranspiredCollector SimulateAllInteriorRadialSoilSlices SimulateAllLoopSideBranches SimulateAllLoopSidePumps SimulateDemandManagerList SimulateDetailedRefrigerationSystems SimulateDetailedTransRefrigSystems SimulateDualDuct SimulateFanComponents SimulateFluidCell SimulateHeatingCoilComponents SimulateInnerMostRadialSoilSlice SimulateLoopSideBranchGroup SimulateOuterMostRadialSoilSlice SimulatePlantProfile SimulateRadialInsulationCell SimulateRadialPipeCell SimulateRadialToCartesianInterface SimulateSingleDuct SimulateSteamCoilComponents SimulateVRF SimulateWaterCoilComponents SimulateWaterHeaterStandAlone SimulateWaterUse SimulateWaterUseConnection SimUnitaryBypassVAV SimUnitarySystem SimUnitHeater SimUnitVentilator SimUnitVentOAMixer SimUserDefinedPlantComponent SimVariableSpeedCoils SimVariableSpeedHP SimVariableSpeedHP SimVariableTower SimVariableVolumeFan SimVAV SimVAVVS SimVentilatedSlab SimVentSlabOAMixer SimVRF SimVRFCondenserPlant SimWaterCoils SimWaterSource SimWaterThermalTank SimWatertoAirHP SimWatertoAirHPSimple SimWindowAC SimWindTurbine SimZoneAirLoopEquipment SimZoneAirUserDefined SimZoneDehumidifier SimZoneEquipment SimZoneEvaporativeCoolerUnit SimZoneExhaustFan SimZoneOutAirUnitComps SingelSpeedDXCoolingCoilStandardRatings SingleSpeedDXHeatingCoilStandardRatings SingleSpeedFluidCooler SizeAbsorpChiller SizeAirLoopBranches SizeAirLoops SizeBaseboard SizeBoiler SizeBoiler SizeCBVAV SizeConstCOPChiller SizeController SizeCoolBeam SizeDemandSidePlantConnections SizeDirectAir SizeDualDuct SizeDXCoil SizeElecReformEIRChiller SizeElectricBaseboard SizeElectricBaseboard SizeElectricChiller SizeElectricEIRChiller SizeEngineDrivenChiller SizeEvapCooler SizeEvapFluidCooler SizeExhaustAbsorber SizeFan SizeFanCoilUnit SizeFluidCooler SizeFluidHeatExchanger SizeFurnace SizeGasAbsorber SizeGTChiller SizeHeatingCoil SizeHeatRecovery SizeHighTempRadiantSystem SizeHumidifier SizeHVACWaterToAir SizeHWBaseboard SizeIndirectAbsorpChiller SizeIndUnit SizeLowTempRadiantSystem SizeMSHeatPump SizeOAController SizeOutdoorAirUnit SizePIU SizePlantLoop SizePTUnit SizePump SizePurchasedAir SizePVT SizeStandAloneERV SizeStandAloneWaterHeater SizeSteamBaseboard SizeSteamCoil SizeSupplySidePlantConnections SizeSys SizeTankForDemandSide SizeTankForSupplySide SizeTESCoil SizeTower SizeUCSDUF SizeUnitarySystem SizeUnitHeater SizeUnitVentilator SizeVarSpeedCoil SizeVentilatedSlab SizeVRF SizeVRFCondenser SizeVSMerkelTower SizeWaterCoil SizeWaterManager SizeWaterSource SizeWindowAC SizeWrapper SizeZoneDehumidifier SizeZoneEquipment SizeZoneEvaporativeCoolerUnit SkipEPlusWFHeader SkyDifSolarShading SkyGndWeight SkyWeight SLtoAMB SLtoGL SLVSKY solar_EN673 solarISO15099 SolarSprectrumAverage SOLMATS SolveAirLoopControllers SolveForWindowTemperatures SolveRegression SolveRegulaFalsi SolverMoistureBalanceEMPD SOLVZP SortHistory Specular_Adjust Specular_EstimateDiffuseProps Specular_F Specular_OffNormal Specular_RATDiff Specular_SWP SQLiteBegin SQLiteBegin SQLiteBindDouble SQLiteBindInteger SQLiteBindLogicalMacro SQLiteBindNULL SQLiteBindText SQLiteBindTextMacro SQLiteClearBindings SQLiteCloseDatabase SQLiteColumnInt SQLiteColumnIntMacro SQLiteCommit SQLiteCommit SQLiteExecuteCommand SQLiteExecuteCommandMacro SQLiteFinalizeCommand SQLiteOpenDatabase SQLiteOpenDatabaseMacro SQLitePrepareStatement SQLitePrepareStatementMacro SQLiteResetCommand SQLiteStepCommand SQLiteWriteMessage SQLiteWriteMessageMacro SQLiteWriteMessageMacro StandardIndexTypeKey StandardVariableTypeKey StartingWindowTemps StartingWinTempsForNominalCond SteamHeatingCoilResidual StorageType StoreAPumpOnCurrentTempLoop storeIterationResults StoreRecurringErrorMessage StringValue StrToReal SumAllInternalCO2Gains SumAllInternalConvectionGains SumAllInternalGenericContamGains SumAllInternalLatentGains SumAllInternalRadiationGains SumAllReturnAirConvectionGains SumAllReturnAirLatentGains SumHATsurf SumHATsurf SumHATsurf SumHATsurf SumHATsurf SumHATsurf SumInternalCO2GainsByTypes SumInternalConvectionGainsByTypes SumInternalLatentGainsByTypes SumInternalRadiationGainsByTypes SummarizeErrors SumReturnAirConvectionGainsByTypes SumZoneImpacts SUN3 SUN4 SupSATResidual SurfaceScheduledSolarInc SurveyDemandManagers SystemPropertiesAtLambdaAndPhi SystemSpectralPropertiesAtPhi TableLookupObject TARCOG90 TBND TdbFnHRhPb TDMA TDMA_R TellMeHowManyObjectItemArgs TemperaturesFromEnergy TempIPtoSI TempSItoIP terpld TESCoilHumRatResidual TESCoilResidual TestAirPathIntegrity TestBranchIntegrity TestCompSet TestCompSetInletOutletNodes TestInletOutletNodes TestReturnAirPathIntegrity TestSupplyAirPathIntegrity therm1d TightenNodeMinMaxAvails TimestepInitComplexFenestration TimestepTypeName TraceAirLoopController TraceAirLoopControllers TraceIndividualController TraceIterationStamp TrackAirLoopController TrackAirLoopControllers TRadC TransAndReflAtPhi TransformVertsByAspect TransTDD Triangulate TrimSigDigits TurnOffLoopEquipment TurnOffLoopSideEquipment TurnOffReportRangeCheckErrors TurnOnPlantLoopPipes TurnOnReportRangeCheckErrors TwoSpeedFluidCooler UnitarySystemHeatRecovery UpdateAbsorberChillerComponentGeneratorSide UpdateAirflowNetwork UpdateAirMixer UpdateAirSysCompPtrArray UpdateAirSysSubCompPtrArray UpdateAirSysSubSubCompPtrArray UpdateAirZoneReturnPlenum UpdateAirZoneSupplyPlenum UpdateAnyLoopDemandAlterations UpdateATMixer UpdateBaseboard UpdateBaseboardPlantConnection UpdateBasementSurfaceTemperatures UpdateBBElecRadSourceValAvg UpdateBBRadSourceValAvg UpdateBBSteamRadSourceValAvg UpdateBLASTAbsorberRecords UpdateBoilerRecords UpdateBoilerRecords UpdateBracket UpdateBranchConnections UpdateChillerComponentCondenserSide UpdateChillerheaterRecords UpdateChillerRecords UpdateColdWeatherProtection UpdateCommonPipe UpdateComplexWindows UpdateComponentHeatRecoverySide UpdateConstCOPChillerRecords UpdateController UpdateCoolBeam UpdateCoolTower UpdateCTGeneratorRecords UpdateDataandReport UpdateDemandManagers UpdateDesiccantDehumidifier UpdateDetailedIceStorage UpdateDualDuct UpdateDuct UpdateDXCoil UpdateElectricBaseboard UpdateElectricChillerRecords UpdateElectricEIRChillerRecords UpdateEMSTrendVariables UpdateEngineDrivenChiller UpdateEvapCooler UpdateEvapFluidCooler UpdateEvaporativeCondenserBasinHeater UpdateEvaporativeCondenserWaterUse UpdateExhaustAbsorberCoolRecords UpdateExhaustAbsorberHeatRecords UpdateExhaustAirFlows UpdateFan UpdateFinalSurfaceHeatBalance UpdateFluidCooler UpdateFluidHeatExchanger UpdateFuelCellGeneratorRecords UpdateGasAbsorberCoolRecords UpdateGasAbsorberHeatRecords UpdateGSHPRecords UpdateGSHPRecords UpdateGSHPRecords UpdateGTChillerRecords UpdateHalfLoopInletTemp UpdateHeatBalHAMT UpdateHeatingCoil UpdateHeatRecovery UpdateHighTempRadiantSystem UpdateHistories UpdateHistory UpdateHTRadSourceValAvg UpdateHumidifier UpdateHVACInterface UpdateHWBaseboard UpdateHWBaseboardPlantConnection UpdateIceFractions UpdateICEngineGeneratorRecords UpdateIndirectAbsorberRecords UpdateInternalGainValues UpdateIrrigation UpdateLoadCenterRecords UpdateLoopSideReportVars UpdateLowTempRadiantSystem UpdateMeterReporting UpdateMeters UpdateMeterValues UpdateMicroCHPGeneratorRecords UpdateMinMax UpdateMixedAirSetPoints UpdateMoistureBalanceEMPD UpdateMoistureBalanceFD UpdateMSHeatPump UpdateMTGeneratorRecords UpdateNode UpdateNodeThermalHistory UpdateOAController UpdateOAMixer UpdateOAPretreatSetPoints UpdatePipesHeatTransfer UpdatePipingSystems UpdatePlantLoopInterface UpdatePlantMixer UpdatePlantProfile UpdatePlantSplitter UpdatePlantValves UpdatePondGroundHeatExchanger UpdatePrecipitation UpdatePressureDrop UpdatePurchasedAir UpdatePVTcollectors UpdateRadSysSourceValAvg UpdateRecords UpdateReformEIRChillerRecords UpdateRefrigCondenser UpdateReportWaterSystem UpdateRootFinder UpdateScheduleValues UpdateSetPointManagers UpdateSimpleWatertoAirHP UpdateSoilProps UpdateSolarCollector UpdateSplitter UpdateSQLiteErrorRecord UpdateSQLiteErrorRecord UpdateSQLiteSimulationRecord UpdateSQLiteSimulationRecord UpdateSteamBaseboard UpdateSteamBaseboardPlantConnection UpdateSteamCoil UpdateSurfaceGroundHeatExchngr UpdateSys UpdateSysSizing UpdateSystemOutputRequired UpdateTabularReports UpdateTEStorage UpdateThermalHistories UpdateTowers UpdateTranspiredCollector UpdateUnitarySystemControl UpdateUtilityBills UpdateVarSpeedCoil UpdateVentilatedSlab UpdateVerticalGroundHeatExchanger UpdateVRFCondenser UpdateWaterCoil UpdateWaterConnections UpdateWaterManager UpdateWaterSource UpdateWaterThermalTank UpdateWaterToAirCoilPlantConnection UpdateWatertoAirHP UpdateWeatherData UpdateWholeBuildingRecords UpdateZoneAirLoopEquipment UpdateZoneCompPtrArray UpdateZoneDehumidifier UpdateZoneEquipment UpdateZoneInletConvergenceLog UpdateZoneListAndGroupLoads UpdateZoneSizing UpdateZoneSubCompPtrArray UpdateZoneSubSubCompPtrArray ValidateAndSetSysAvailabilityManagerType ValidateComponent ValidateDistributionSystem ValidateEMSProgramName ValidateEMSVariableName ValidateExhaustFanInput ValidateFlowControlPaths ValidateFuelType ValidateIndexType ValidateMaterialRoughness ValidateMonthDay ValidateNStandardizeMeterTitles ValidateObjectandParse ValidatePipeConstruction ValidatePLFCurve ValidateSection ValidateSectionsInput ValidateVariableType value_to_vector ValueToString VAVVSCoolingResidual VAVVSHCFanOnResidual VAVVSHWFanOnResidual VAVVSHWNoFanResidual VB_CriticalSlatAngle VB_DIFF VB_LWP VB_ShadeControl VB_SLAT_RADIUS_RATIO VB_SOL4 VB_SOL46_CURVE VB_SOL6 VB_SWP vec2d_cross_product vec2d_dot_product vec_cross_product vec_dot_product VecLength VecNegate VecNormalize VecRound VecSquaredLength vector_add vector_div_int vector_div_real vector_subtract vector_times_int vector_times_real vector_to_array VerifyControlledZoneForThermostat VerifyCustomMetersElecPowerMgr VerifyHeatExchangerParent VerifyName VerifySetPointManagers VerifyThermostatInZone VerifyUniqueBaseboardName VerifyUniqueBoilerName VerifyUniqueChillerName VerifyUniqueCoilName ViewFac VisibleSprectrumAverage Volume VRMLOut VSCoilCyclingHumResidual VSCoilCyclingResidual VSCoilCyclingResidual VSCoilSpeedHumResidual VSCoilSpeedResidual VSCoilSpeedResidual VSEvapUnitLoadResidual VSHPCyclingResidual VSHPCyclingResidual VSHPSpeedResidual VSHPSpeedResidual VSMerkelResidual W5InitGlassParameters W5LsqFit W5LsqFit2 W6CoordsFromWorldVect warnIfNativeVarname WetCoilOutletCondition WhichCompSet WhichParentCompSet WhichParentSet Width WindowGapAirflowControl WindowGasConductance WindowGasPropertiesAtTemp WindowHeatBalanceEquations WindowScheduledSolarAbs WindowShadingManager WindowTempsForNominalCond WindSpeedAt Windward WorldVectFromW6 WriteAdaptiveComfortTable WriteAirLoopStatistics WriteBEPSTable WriteCompCostTable WriteComponentSizing WriteCumulativeReportMeterData WriteDaylightMapTitle WriteDemandEndUseSummary WriteInputArguments WriteIntegerData WriteIntegerVariableOutput WriteMeterDictionaryItem WriteModifiedArguments WriteMonthlyTables WriteOutputArguments WriteOutputEN673 WritePoint WritePredefinedTables WriteRealData WriteRealVariableOutput WriteReportHeaders WriteReportIntegerData WriteReportMeterData WriteReportRealData WriteReportVariableDictionaryItem WriteRootFinderStatus WriteRootFinderTrace WriteRootFinderTraceHeader WriteSourceEnergyEndUseSummary writeSubtitle WriteSurfaceShadowing WriteTable WriteTableOfContents WriteTabularLifeCycleCostReport WriteTabularReports WriteTabularTariffReports WriteTARCOGInputFile writeTextLine WriteTimeBinTables WriteTimeStampFormatData WriteTrace WriteVeriSumTable WriteZoneLoadComponentTable WVDC XNormalArea XYRectangle XZRectangle YNormalArea YZRectangle ZeroHVACValues ZNormalArea