LCOV - code coverage report
Current view: top level - EnergyPlus - OutputReportPredefined.cc (source / functions) Hit Total Coverage
Test: lcov.output.filtered Lines: 987 1015 97.2 %
Date: 2023-01-17 19:17:23 Functions: 12 14 85.7 %

          Line data    Source code
       1             : // EnergyPlus, Copyright (c) 1996-2023, The Board of Trustees of the University of Illinois,
       2             : // The Regents of the University of California, through Lawrence Berkeley National Laboratory
       3             : // (subject to receipt of any required approvals from the U.S. Dept. of Energy), Oak Ridge
       4             : // National Laboratory, managed by UT-Battelle, Alliance for Sustainable Energy, LLC, and other
       5             : // contributors. All rights reserved.
       6             : //
       7             : // NOTICE: This Software was developed under funding from the U.S. Department of Energy and the
       8             : // U.S. Government consequently retains certain rights. As such, the U.S. Government has been
       9             : // granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable,
      10             : // worldwide license in the Software to reproduce, distribute copies to the public, prepare
      11             : // derivative works, and perform publicly and display publicly, and to permit others to do so.
      12             : //
      13             : // Redistribution and use in source and binary forms, with or without modification, are permitted
      14             : // provided that the following conditions are met:
      15             : //
      16             : // (1) Redistributions of source code must retain the above copyright notice, this list of
      17             : //     conditions and the following disclaimer.
      18             : //
      19             : // (2) Redistributions in binary form must reproduce the above copyright notice, this list of
      20             : //     conditions and the following disclaimer in the documentation and/or other materials
      21             : //     provided with the distribution.
      22             : //
      23             : // (3) Neither the name of the University of California, Lawrence Berkeley National Laboratory,
      24             : //     the University of Illinois, U.S. Dept. of Energy nor the names of its contributors may be
      25             : //     used to endorse or promote products derived from this software without specific prior
      26             : //     written permission.
      27             : //
      28             : // (4) Use of EnergyPlus(TM) Name. If Licensee (i) distributes the software in stand-alone form
      29             : //     without changes from the version obtained under this License, or (ii) Licensee makes a
      30             : //     reference solely to the software portion of its product, Licensee must refer to the
      31             : //     software as "EnergyPlus version X" software, where "X" is the version number Licensee
      32             : //     obtained under this License and may not use a different name for the software. Except as
      33             : //     specifically required in this Section (4), Licensee shall not use in a company name, a
      34             : //     product name, in advertising, publicity, or other promotional activities any name, trade
      35             : //     name, trademark, logo, or other designation of "EnergyPlus", "E+", "e+" or confusingly
      36             : //     similar designation, without the U.S. Department of Energy's prior written consent.
      37             : //
      38             : // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
      39             : // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
      40             : // AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
      41             : // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
      42             : // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
      43             : // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
      44             : // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
      45             : // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
      46             : // POSSIBILITY OF SUCH DAMAGE.
      47             : 
      48             : // ObjexxFCL Headers
      49             : #include <ObjexxFCL/Array.functions.hh>
      50             : 
      51             : // EnergyPlus Headers
      52             : #include <EnergyPlus/Data/EnergyPlusData.hh>
      53             : #include <EnergyPlus/OutputReportPredefined.hh>
      54             : 
      55             : namespace EnergyPlus {
      56             : 
      57             : namespace OutputReportPredefined {
      58             : 
      59             :     // MODULE INFORMATION:
      60             :     //    AUTHOR         Jason Glazer of GARD Analytics, Inc.
      61             :     //    DATE WRITTEN   August 2006
      62             :     //    MODIFIED       na
      63             :     //    RE-ENGINEERED  na
      64             :     // PURPOSE OF THIS MODULE:
      65             :     //    Support the creation of predefined tabular output.
      66             :     // METHODOLOGY EMPLOYED:
      67             :     // REFERENCES:
      68             :     //    None.
      69             :     // OTHER NOTES:.
      70             :     // Using/Aliasing
      71             :     // Data
      72             :     // The following section initializes the predefined column heading variables
      73             :     // The variables get their value in AssignPredefined
      74             : 
      75             :     // Internal data structures to store information provided by calls
      76             : 
      77         771 :     void SetPredefinedTables(EnergyPlusData &state)
      78             :     {
      79             :         // SUBROUTINE INFORMATION:
      80             :         //       AUTHOR         Jason Glazer
      81             :         //       DATE WRITTEN   August 2006
      82             :         //       MODIFIED
      83             :         //       RE-ENGINEERED  na
      84             : 
      85             :         // PURPOSE OF THIS SUBROUTINE:
      86             :         //   Creates the structure of the predefined reports
      87             :         //   including the name and abbreviation of the report
      88             :         //   the subtables involved and the column headings.
      89             :         //   The variables defined for the columns are then
      90             :         //   used throughout the program to assign values
      91             :         //   to the subtables.
      92             : 
      93             :         // METHODOLOGY EMPLOYED:
      94             :         //   Simple assignments to public variables.
      95             : 
      96             :         // Climate Summary Report
      97             : 
      98         771 :         auto &s(state.dataOutRptPredefined);
      99             : 
     100         771 :         s->pdrClim = newPreDefReport(state, "ClimaticDataSummary", "Clim", "Climatic Data Summary");
     101             : 
     102         771 :         s->pdstDesDay = newPreDefSubTable(state, s->pdrClim, "SizingPeriod:DesignDay");
     103             : 
     104         771 :         s->pdchDDmaxDB = newPreDefColumn(state, s->pdstDesDay, "Maximum Dry Bulb [C]");
     105         771 :         s->pdchDDrange = newPreDefColumn(state, s->pdstDesDay, "Daily Temperature Range [deltaC]");
     106         771 :         s->pdchDDhumid = newPreDefColumn(state, s->pdstDesDay, "Humidity Value");
     107         771 :         s->pdchDDhumTyp = newPreDefColumn(state, s->pdstDesDay, "Humidity Type");
     108         771 :         s->pdchDDwindSp = newPreDefColumn(state, s->pdstDesDay, "Wind Speed [m/s]");
     109         771 :         s->pdchDDwindDr = newPreDefColumn(state, s->pdstDesDay, "Wind Direction");
     110             : 
     111         771 :         s->pdstMonthlyPrec = newPreDefSubTable(state, s->pdrClim, "Monthly Precipitation Summary");
     112             : 
     113         771 :         s->pdchMonthlyTotalPrecInWeather = newPreDefColumn(state, s->pdstMonthlyPrec, "Monthly Total Precipitation from .epw [mm]");
     114         771 :         s->pdchMonthlyTotalHrRain = newPreDefColumn(state, s->pdstMonthlyPrec, "Monthly Total Hours of Rain from .epw");
     115         771 :         s->pdchMonthlyTotalPrecInSitePrec = newPreDefColumn(state, s->pdstMonthlyPrec, "Monthly Total Precipitation in Site:Precipitation [mm]");
     116         771 :         s->pdchMonthlyTotalIrrDep = newPreDefColumn(state, s->pdstMonthlyPrec, "Monthly Total Roof Irrigation Depth [mm]");
     117         771 :         s->pdchMonthlyTotalRainCol = newPreDefColumn(state, s->pdstMonthlyPrec, "Monthly Total Rain Collection Volume [m3]");
     118             : 
     119         771 :         s->pdstWthr = newPreDefSubTable(state, s->pdrClim, "Weather Statistics File");
     120         771 :         s->pdchWthrVal = newPreDefColumn(state, s->pdstWthr, "Value");
     121             : 
     122             :         // Envelope Report
     123             : 
     124         771 :         s->pdrEnvelope = newPreDefReport(state, "EnvelopeSummary", "Env", "Envelope Summary");
     125             : 
     126         771 :         s->pdstOpaque = newPreDefSubTable(state, s->pdrEnvelope, "Opaque Exterior");
     127             : 
     128         771 :         s->pdchOpCons = newPreDefColumn(state, s->pdstOpaque, "Construction");
     129         771 :         s->pdchOpRefl = newPreDefColumn(state, s->pdstOpaque, "Reflectance");
     130         771 :         s->pdchOpUfactFilm = newPreDefColumn(state, s->pdstOpaque, "U-Factor with Film [W/m2-K]");
     131         771 :         s->pdchOpUfactNoFilm = newPreDefColumn(state, s->pdstOpaque, "U-Factor no Film [W/m2-K]");
     132         771 :         s->pdchOpGrArea = newPreDefColumn(state, s->pdstOpaque, "Gross Area [m2]");
     133         771 :         s->pdchOpNetArea = newPreDefColumn(state, s->pdstOpaque, "Net Area [m2]");
     134         771 :         s->pdchOpAzimuth = newPreDefColumn(state, s->pdstOpaque, "Azimuth [deg]");
     135         771 :         s->pdchOpTilt = newPreDefColumn(state, s->pdstOpaque, "Tilt [deg]");
     136         771 :         s->pdchOpDir = newPreDefColumn(state, s->pdstOpaque, "Cardinal Direction");
     137             : 
     138         771 :         s->pdstIntOpaque = newPreDefSubTable(state, s->pdrEnvelope, "Opaque Interior");
     139             : 
     140         771 :         s->pdchIntOpCons = newPreDefColumn(state, s->pdstIntOpaque, "Construction");
     141         771 :         s->pdchIntOpRefl = newPreDefColumn(state, s->pdstIntOpaque, "Reflectance");
     142         771 :         s->pdchIntOpUfactFilm = newPreDefColumn(state, s->pdstIntOpaque, "U-Factor with Film [W/m2-K]");
     143         771 :         s->pdchIntOpUfactNoFilm = newPreDefColumn(state, s->pdstIntOpaque, "U-Factor no Film [W/m2-K]");
     144         771 :         s->pdchIntOpGrArea = newPreDefColumn(state, s->pdstIntOpaque, "Gross Area [m2]");
     145         771 :         s->pdchIntOpNetArea = newPreDefColumn(state, s->pdstIntOpaque, "Net Area [m2]");
     146         771 :         s->pdchIntOpAzimuth = newPreDefColumn(state, s->pdstIntOpaque, "Azimuth [deg]");
     147         771 :         s->pdchIntOpTilt = newPreDefColumn(state, s->pdstIntOpaque, "Tilt [deg]");
     148         771 :         s->pdchIntOpDir = newPreDefColumn(state, s->pdstIntOpaque, "Cardinal Direction");
     149             : 
     150         771 :         s->pdstFen = newPreDefSubTable(state, s->pdrEnvelope, "Exterior Fenestration");
     151             : 
     152         771 :         s->pdchFenCons = newPreDefColumn(state, s->pdstFen, "Construction");
     153         771 :         s->pdchFenFrameDivName = newPreDefColumn(state, s->pdstFen, "Frame and Divider");
     154         771 :         s->pdchFenGlassAreaOf1 = newPreDefColumn(state, s->pdstFen, "Glass Area [m2]");
     155         771 :         s->pdchFenFrameAreaOf1 = newPreDefColumn(state, s->pdstFen, "Frame Area [m2]");
     156         771 :         s->pdchFenDividerAreaOf1 = newPreDefColumn(state, s->pdstFen, "Divider Area [m2]");
     157         771 :         s->pdchFenAreaOf1 = newPreDefColumn(state, s->pdstFen, "Area of One Opening [m2]");
     158         771 :         s->pdchFenArea = newPreDefColumn(state, s->pdstFen, "Area of Multiplied Openings [m2]");
     159         771 :         s->pdchFenUfact = newPreDefColumn(state, s->pdstFen, "Glass U-Factor [W/m2-K]");
     160         771 :         s->pdchFenSHGC = newPreDefColumn(state, s->pdstFen, "Glass SHGC");
     161         771 :         s->pdchFenVisTr = newPreDefColumn(state, s->pdstFen, "Glass Visible Transmittance");
     162         771 :         s->pdchFenFrameConductance = newPreDefColumn(state, s->pdstFen, "Frame Conductance [W/m2-K]");
     163         771 :         s->pdchFenDividerConductance = newPreDefColumn(state, s->pdstFen, "Divider Conductance [W/m2-K]");
     164         771 :         s->pdchFenAssemNfrcType = newPreDefColumn(state, s->pdstFen, "NFRC Product Type");
     165         771 :         s->pdchFenAssemUfact = newPreDefColumn(state, s->pdstFen, "Assembly U-Factor [W/m2-K]");
     166         771 :         s->pdchFenAssemSHGC = newPreDefColumn(state, s->pdstFen, "Assembly SHGC");
     167         771 :         s->pdchFenAssemVisTr = newPreDefColumn(state, s->pdstFen, "Assembly Visible Transmittance");
     168         771 :         s->pdchFenSwitchable = newPreDefColumn(state, s->pdstFen, "Shade Control");
     169         771 :         s->pdchFenParent = newPreDefColumn(state, s->pdstFen, "Parent Surface");
     170         771 :         s->pdchFenAzimuth = newPreDefColumn(state, s->pdstFen, "Azimuth [deg]");
     171         771 :         s->pdchFenTilt = newPreDefColumn(state, s->pdstFen, "Tilt [deg]");
     172         771 :         s->pdchFenDir = newPreDefColumn(state, s->pdstFen, "Cardinal Direction");
     173             : 
     174         771 :         s->pdstFenShd = newPreDefSubTable(state, s->pdrEnvelope, "Exterior Fenestration Shaded State");
     175             : 
     176         771 :         s->pdchFenShdFrameDiv = newPreDefColumn(state, s->pdstFenShd, "Frame and Divider");
     177         771 :         s->pdchFenShdUfact = newPreDefColumn(state, s->pdstFenShd, "Glass U-Factor [W/m2-K]");
     178         771 :         s->pdchFenShdSHGC = newPreDefColumn(state, s->pdstFenShd, "Glass SHGC");
     179         771 :         s->pdchFenShdVisTr = newPreDefColumn(state, s->pdstFenShd, "Glass Visible Transmittance");
     180         771 :         s->pdchFenShdAssemNfrcType = newPreDefColumn(state, s->pdstFenShd, "NFRC Product Type");
     181         771 :         s->pdchFenShdAssemUfact = newPreDefColumn(state, s->pdstFenShd, "Assembly U-Factor [W/m2-K]");
     182         771 :         s->pdchFenShdAssemSHGC = newPreDefColumn(state, s->pdstFenShd, "Assembly SHGC");
     183         771 :         s->pdchFenShdAssemVisTr = newPreDefColumn(state, s->pdstFenShd, "Assembly Visible Transmittance");
     184             : 
     185         771 :         s->pdstIntFen = newPreDefSubTable(state, s->pdrEnvelope, "Interior Fenestration");
     186             : 
     187         771 :         s->pdchIntFenCons = newPreDefColumn(state, s->pdstIntFen, "Construction");
     188         771 :         s->pdchIntFenAreaOf1 = newPreDefColumn(state, s->pdstIntFen, "Area of One Opening [m2]");
     189         771 :         s->pdchIntFenArea = newPreDefColumn(state, s->pdstIntFen, "Area of Openings [m2]");
     190         771 :         s->pdchIntFenUfact = newPreDefColumn(state, s->pdstIntFen, "Glass U-Factor [W/m2-K]");
     191         771 :         s->pdchIntFenSHGC = newPreDefColumn(state, s->pdstIntFen, "Glass SHGC");
     192         771 :         s->pdchIntFenVisTr = newPreDefColumn(state, s->pdstIntFen, "Glass Visible Transmittance");
     193         771 :         s->pdchIntFenParent = newPreDefColumn(state, s->pdstIntFen, "Parent Surface");
     194             :         // s->pdchIntFenGlassAreaOf1 =   newPreDefColumn(state, s->pdstIntFen,'Glass Area [m2]')
     195             :         // s->pdchIntFenFrameAreaOf1 =   newPreDefColumn(state, s->pdstIntFen,'Frame Area [m2]')
     196             :         // s->pdchIntFenDividerAreaOf1 =   newPreDefColumn(state, s->pdstIntFen,'Divider Area [m2]')
     197             :         // s->pdchIntFenFrameConductance =  newPreDefColumn(state, s->pdstIntFen,'Frame Conductance [W/m2-K]')
     198             :         // s->pdchIntFenDividerConductance =  newPreDefColumn(state, s->pdstIntFen,'Divider Conductance [W/m2-K]')
     199             : 
     200         771 :         s->pdstDoor = newPreDefSubTable(state, s->pdrEnvelope, "Exterior Door");
     201         771 :         s->pdchDrCons = newPreDefColumn(state, s->pdstDoor, "Construction");
     202         771 :         s->pdchDrUfactFilm = newPreDefColumn(state, s->pdstDoor, "U-Factor with Film [W/m2-K]");
     203         771 :         s->pdchDrUfactNoFilm = newPreDefColumn(state, s->pdstDoor, "U-Factor no Film [W/m2-K]");
     204         771 :         s->pdchDrGrArea = newPreDefColumn(state, s->pdstDoor, "Gross Area [m2]");
     205         771 :         s->pdchDrParent = newPreDefColumn(state, s->pdstDoor, "Parent Surface");
     206             : 
     207         771 :         s->pdstIntDoor = newPreDefSubTable(state, s->pdrEnvelope, "Interior Door");
     208             : 
     209         771 :         s->pdchIntDrCons = newPreDefColumn(state, s->pdstIntDoor, "Construction");
     210         771 :         s->pdchIntDrUfactFilm = newPreDefColumn(state, s->pdstIntDoor, "U-Factor with Film [W/m2-K]");
     211         771 :         s->pdchIntDrUfactNoFilm = newPreDefColumn(state, s->pdstIntDoor, "U-Factor no Film [W/m2-K]");
     212         771 :         s->pdchIntDrGrArea = newPreDefColumn(state, s->pdstIntDoor, "Gross Area [m2]");
     213         771 :         s->pdchIntDrParent = newPreDefColumn(state, s->pdstIntDoor, "Parent Surface");
     214             : 
     215             :         // Shading Report
     216         771 :         s->pdrShading = newPreDefReport(state, "ShadingSummary", "Shade", "Shading Summary");
     217             : 
     218         771 :         s->pdstSunlitFrac = newPreDefSubTable(state, s->pdrShading, "Sunlit Fraction");
     219             : 
     220         771 :         s->pdchSlfMar21_9 = newPreDefColumn(state, s->pdstSunlitFrac, "March 21 9am");
     221         771 :         s->pdchSlfMar21_12 = newPreDefColumn(state, s->pdstSunlitFrac, "March 21 noon");
     222         771 :         s->pdchSlfMar21_15 = newPreDefColumn(state, s->pdstSunlitFrac, "March 21 3pm");
     223         771 :         s->pdchSlfJun21_9 = newPreDefColumn(state, s->pdstSunlitFrac, "June 21 9am");
     224         771 :         s->pdchSlfJun21_12 = newPreDefColumn(state, s->pdstSunlitFrac, "June 21 noon");
     225         771 :         s->pdchSlfJun21_15 = newPreDefColumn(state, s->pdstSunlitFrac, "June 21 3pm");
     226         771 :         s->pdchSlfDec21_9 = newPreDefColumn(state, s->pdstSunlitFrac, "December 21 9am");
     227         771 :         s->pdchSlfDec21_12 = newPreDefColumn(state, s->pdstSunlitFrac, "December 21 noon");
     228         771 :         s->pdchSlfDec21_15 = newPreDefColumn(state, s->pdstSunlitFrac, "December 21 3pm");
     229             : 
     230         771 :         s->pdstWindowControl = newPreDefSubTable(state, s->pdrShading, "Window Control");
     231             : 
     232         771 :         s->pdchWscName = newPreDefColumn(state, s->pdstWindowControl, "Name");
     233         771 :         s->pdchWscShading = newPreDefColumn(state, s->pdstWindowControl, "Type");
     234         771 :         s->pdchWscShadCons = newPreDefColumn(state, s->pdstWindowControl, "Shaded Construction");
     235         771 :         s->pdchWscControl = newPreDefColumn(state, s->pdstWindowControl, "Control");
     236         771 :         s->pdchWscGlare = newPreDefColumn(state, s->pdstWindowControl, "Glare Control");
     237             : 
     238             :         // Lighting Report
     239         771 :         s->pdrLighting = newPreDefReport(state, "LightingSummary", "Light", "Lighting Summary");
     240             : 
     241         771 :         s->pdstInLite = newPreDefSubTable(state, s->pdrLighting, "Interior Lighting");
     242             : 
     243         771 :         s->pdchInLtZone = newPreDefColumn(state, s->pdstInLite, "Zone Name");
     244         771 :         s->pdchInLtSpace = newPreDefColumn(state, s->pdstInLite, "Space Name");
     245         771 :         s->pdchInLtSpaceType = newPreDefColumn(state, s->pdstInLite, "Space Type");
     246         771 :         s->pdchInLtDens = newPreDefColumn(state, s->pdstInLite, "Lighting Power Density [W/m2]");
     247         771 :         s->pdchInLtArea = newPreDefColumn(state, s->pdstInLite, "Space Area [m2]");
     248         771 :         s->pdchInLtPower = newPreDefColumn(state, s->pdstInLite, "Total Power [W]");
     249         771 :         s->pdchInLtEndUse = newPreDefColumn(state, s->pdstInLite, "End Use Subcategory");
     250         771 :         s->pdchInLtSchd = newPreDefColumn(state, s->pdstInLite, "Schedule Name");
     251         771 :         s->pdchInLtAvgHrSchd = newPreDefColumn(state, s->pdstInLite, "Scheduled Hours/Week [hr]");
     252         771 :         s->pdchInLtAvgHrOper = newPreDefColumn(state, s->pdstInLite, "Hours/Week > 1% [hr]");
     253         771 :         s->pdchInLtFullLoadHrs = newPreDefColumn(state, s->pdstInLite, "Full Load Hours/Week [hr]");
     254         771 :         s->pdchInLtRetAir = newPreDefColumn(state, s->pdstInLite, "Return Air Fraction");
     255         771 :         s->pdchInLtCond = newPreDefColumn(state, s->pdstInLite, "Conditioned (Y/N)");
     256         771 :         s->pdchInLtConsump = newPreDefColumn(state, s->pdstInLite, "Consumption [GJ]");
     257             : 
     258         771 :         s->pdstDaylight = newPreDefSubTable(state, s->pdrLighting, "Daylighting");
     259             : 
     260         771 :         s->pdchDyLtZone = newPreDefColumn(state, s->pdstDaylight, "Zone");
     261         771 :         s->pdchDyLtCtrlName = newPreDefColumn(state, s->pdstDaylight, "Control Name");
     262         771 :         s->pdchDyLtKind = newPreDefColumn(state, s->pdstDaylight, "Daylighting Method"); // detailed or DElight
     263         771 :         s->pdchDyLtCtrlType = newPreDefColumn(state, s->pdstDaylight, "Control Type");   // stepped or continuous
     264         771 :         s->pdchDyLtFrac = newPreDefColumn(state, s->pdstDaylight, "Fraction Controlled");
     265         771 :         s->pdchDyLtWInst = newPreDefColumn(state, s->pdstDaylight, "Lighting Installed in Zone [W]");
     266         771 :         s->pdchDyLtWCtrl = newPreDefColumn(state, s->pdstDaylight, "Lighting Controlled [W]");
     267             : 
     268         771 :         s->pdstExtLite = newPreDefSubTable(state, s->pdrLighting, "Exterior Lighting");
     269             : 
     270         771 :         s->pdchExLtPower = newPreDefColumn(state, s->pdstExtLite, "Total Watts");
     271         771 :         s->pdchExLtClock = newPreDefColumn(state, s->pdstExtLite, "Astronomical Clock/Schedule");
     272         771 :         s->pdchExLtSchd = newPreDefColumn(state, s->pdstExtLite, "Schedule Name");
     273         771 :         s->pdchExLtAvgHrSchd = newPreDefColumn(state, s->pdstExtLite, "Scheduled Hours/Week [hr]");
     274         771 :         s->pdchExLtAvgHrOper = newPreDefColumn(state, s->pdstExtLite, "Hours/Week > 1% [hr]");
     275         771 :         s->pdchExLtFullLoadHrs = newPreDefColumn(state, s->pdstExtLite, "Full Load Hours/Week [hr]");
     276         771 :         s->pdchExLtConsump = newPreDefColumn(state, s->pdstExtLite, "Consumption [GJ]");
     277             : 
     278             :         // HVAC Equipment Report
     279             : 
     280         771 :         s->pdrEquip = newPreDefReport(state, "EquipmentSummary", "Equip", "Equipment Summary");
     281             : 
     282         771 :         s->pdstMech = newPreDefSubTable(state, s->pdrEquip, "Central Plant");
     283             : 
     284         771 :         s->pdchMechType = newPreDefColumn(state, s->pdstMech, "Type");
     285         771 :         s->pdchMechNomCap = newPreDefColumn(state, s->pdstMech, "Reference Capacity [W]");
     286         771 :         s->pdchMechNomEff = newPreDefColumn(state, s->pdstMech, "Reference Efficiency [W/W]");
     287         771 :         s->pdchMechRatCap = newPreDefColumn(state, s->pdstMech, "Rated Capacity [W]");
     288         771 :         s->pdchMechRatEff = newPreDefColumn(state, s->pdstMech, "Rated Efficiency [W/W]");
     289             :         // Note: We don't want any of these to convert.
     290             :         // The Btu/W-h isn't going to convert anyways, and the W/W will convert to W/W since it has "SI" in the string as a hint
     291         771 :         s->pdchMechIPLVSI = newPreDefColumn(state, s->pdstMech, "IPLV in SI Units [W/W]");
     292         771 :         s->pdchMechIPLVIP = newPreDefColumn(state, s->pdstMech, "IPLV in IP Units [Btu/W-h]");
     293             : 
     294             :         // Ok Constant                        Object Name                            Module                   Example File
     295             :         // -- ------------------------------- -------------------------------------- ------------------------ -----------------
     296             :         // o  CoilDX_CoolingSingleSpeed       Coil:Cooling:DX:SingleSpeed            DXCoil                   FurnaceWithDXSystem
     297             :         // x  CoilDX_CoolingTwoSpeed          Coil:Cooling:DX:TwoSpeed               DXCoil                   5ZoneAutoDXVAV
     298             :         // o  CoilDX_CoolingTwoStageWHumControl    Coil:Cooling:DX:                 DXCoil                   SmOffPSZ-MultiModeDX
     299             :         //                                    TwoStageWithHumidityControlMode
     300             :         // o  CoilDX_MultiSpeedCooling        Coil:Cooling:DX:MultiSpeed             DXCoil                   MultispeedHeatPump
     301             :         // o  Coil_CoolingWater               Coil:Cooling:Water                     HVACWaterCoilComponent   5ZoneAirCooled
     302             :         // o  Coil_CoolingWaterDetailed       Coil:Cooling:Water:DetailedGeometry    HVACWaterCoilComponent   5zoneWaterSystems
     303             :         // o  Coil_CoolingWaterToAirHP        Coil:Cooling:WaterToAirHeatPump:       HVACWaterToAir           5ZoneWaterLoopHeatPump
     304             :         //                                      ParameterEstimation
     305             :         // o  Coil_CoolingWaterToAirHPSimple  Coil:Cooling:WaterToAirHeatPump:       HVACWaterToAir           HeatPumpWaterToAirEquationFit
     306             :         //                                      EquationFit
     307             : 
     308             :         // o  CoilDX_HeatingEmpirical         Coil:Heating:DX:SingleSpeed            DXCoil                   HeatPumpAuto
     309             :         // o  CoilDX_MultiSpeedHeating        Coil:Heating:DX:MultiSpeed             DXCoil                   MultispeedHeatPump
     310             :         // o  Coil_HeatingGasOrOtherFuel                 Coil:Heating:Fuel                       HVACHeatingCoils         5ZoneAutoDXVAV
     311             :         // o  Coil_HeatingElectric            Coil:Heating:Electric                  HVACHeatingCoils         PackagedTerminalAirConditioner
     312             :         // o  Coil_HeatingDesuperheater       Coil:Heating:Desuperheater             HVACHeatingCoils         SuperMarket_DesuperHeatingCoil
     313             :         // o  Coil_HeatingWater               Coil:Heating:Water                     HVACWaterCoilComponent   5ZoneAirCooled
     314             :         // o  Coil_HeatingWaterToAirHP        Coil:Heating:WaterToAirHeatPump:       HVACWaterToAir           5ZoneWaterLoopHeatPump
     315             :         //                                      ParameterEstimation
     316             :         // o  Coil_HeatingWaterToAirHPSimple  Coil:Heating:WaterToAirHeatPump:       HVACWaterToAir           HeatPumpWaterToAirEquationFit
     317             :         //                                      EquationFit
     318             :         // o  CoilDX_HeatPumpWaterHeater      Coil:WaterHeating:AirToWaterHeatPump   DXCoil                   HeatPumpWaterHeater
     319             : 
     320             :         // NOT INCLUDED:
     321             :         //    CoilDX_CoolingHXAssisted        CoilSystem:Cooling:DX:                 HVACHXAssistedCooolingCoil
     322             :         //                                      HeatExchangerAssisted
     323             :         //    CoilWater_CoolingHXAssisted     CoilSystem:Cooling:Water:              HVACHXAssistedCooolingCoil
     324             :         //                                      HeatExchangerAssisted
     325             : 
     326         771 :         s->pdstCoolCoil = newPreDefSubTable(state, s->pdrEquip, "Cooling Coils");
     327             : 
     328         771 :         s->pdchCoolCoilType = newPreDefColumn(state, s->pdstCoolCoil, "Type");
     329         771 :         s->pdchCoolCoilDesCap = newPreDefColumn(state, s->pdstCoolCoil, "Design Coil Load [W]");
     330         771 :         s->pdchCoolCoilTotCap = newPreDefColumn(state, s->pdstCoolCoil, "Nominal Total Capacity [W]");
     331         771 :         s->pdchCoolCoilSensCap = newPreDefColumn(state, s->pdstCoolCoil, "Nominal Sensible Capacity [W]");
     332         771 :         s->pdchCoolCoilLatCap = newPreDefColumn(state, s->pdstCoolCoil, "Nominal Latent Capacity [W]");
     333         771 :         s->pdchCoolCoilSHR = newPreDefColumn(state, s->pdstCoolCoil, "Nominal Sensible Heat Ratio");
     334         771 :         s->pdchCoolCoilNomEff = newPreDefColumn(state, s->pdstCoolCoil, "Nominal Efficiency [W/W]");
     335         771 :         s->pdchCoolCoilUATotal = newPreDefColumn(state, s->pdstCoolCoil, "Nominal Coil UA Value [W/C]");
     336         771 :         s->pdchCoolCoilArea = newPreDefColumn(state, s->pdstCoolCoil, "Nominal Coil Surface Area [m2]");
     337             : 
     338         771 :         s->pdstDXCoolCoil = newPreDefSubTable(state, s->pdrEquip, "DX Cooling Coils");
     339         771 :         s->pdchDXCoolCoilType = newPreDefColumn(state, s->pdstDXCoolCoil, "DX Cooling Coil Type");
     340         771 :         s->pdchDXCoolCoilNetCapSI = newPreDefColumn(state, s->pdstDXCoolCoil, "Standard Rated Net Cooling Capacity [W]");
     341             : 
     342         771 :         s->pdchDXCoolCoilCOP = newPreDefColumn(state, s->pdstDXCoolCoil, "Standard Rated Net COP [W/W]");
     343         771 :         s->pdchDXCoolCoilEERIP = newPreDefColumn(state, s->pdstDXCoolCoil, "EER [Btu/W-h]");
     344         771 :         s->pdchDXCoolCoilSEERUserIP = newPreDefColumn(state, s->pdstDXCoolCoil, "SEER User [Btu/W-h]");
     345         771 :         s->pdchDXCoolCoilSEERStandardIP = newPreDefColumn(state, s->pdstDXCoolCoil, "SEER Standard [Btu/W-h]");
     346         771 :         s->pdchDXCoolCoilIEERIP = newPreDefColumn(state, s->pdstDXCoolCoil, "IEER [Btu/W-h]");
     347             : 
     348             :         // for DX Cooling Coil AHRI Standard 2023 Ratings | SEER2
     349         771 :         s->pdstDXCoolCoil_2023 = newPreDefSubTable(state, s->pdrEquip, "DX Cooling Coils [ SEER2 ]");
     350         771 :         s->pdchDXCoolCoilType_2023 = newPreDefColumn(state, s->pdstDXCoolCoil_2023, "DX Cooling Coil Type");
     351         771 :         s->pdchDXCoolCoilNetCapSI_2023 = newPreDefColumn(state, s->pdstDXCoolCoil_2023, "Standard Rated Net Cooling Capacity [W]");
     352             : 
     353         771 :         s->pdchDXCoolCoilCOP_2023 = newPreDefColumn(state, s->pdstDXCoolCoil_2023, "Standard Rated Net COP2 [W/W]");
     354         771 :         s->pdchDXCoolCoilEERIP_2023 = newPreDefColumn(state, s->pdstDXCoolCoil_2023, "EER2 [Btu/W-h]");
     355         771 :         s->pdchDXCoolCoilSEER2UserIP_2023 = newPreDefColumn(state, s->pdstDXCoolCoil_2023, "SEER2 User [Btu/W-h]");
     356         771 :         s->pdchDXCoolCoilSEER2StandardIP_2023 = newPreDefColumn(state, s->pdstDXCoolCoil_2023, "SEER2 Standard [Btu/W-h]");
     357         771 :         s->pdchDXCoolCoilIEERIP_2023 = newPreDefColumn(state, s->pdstDXCoolCoil_2023, "IEER2 [Btu/W-h]");
     358             : 
     359             :         // for DX Cooling Coil ASHRAE 127-12 Report
     360         771 :         s->pdstDXCoolCoil2 = newPreDefSubTable(state, s->pdrEquip, "DX Cooling Coil ASHRAE 127 Standard Ratings Report");
     361         771 :         s->pdchDXCoolCoilType = newPreDefColumn(state, s->pdstDXCoolCoil2, "DX Cooling Coil Type");
     362         771 :         s->pdchDXCoolCoilNetCapSIA = newPreDefColumn(state, s->pdstDXCoolCoil2, "Rated Net Cooling Capacity Test A [W]");
     363         771 :         s->pdchDXCoolCoilElecPowerA = newPreDefColumn(state, s->pdstDXCoolCoil2, "Rated Electric Power Test A [W]");
     364         771 :         s->pdchDXCoolCoilNetCapSIB = newPreDefColumn(state, s->pdstDXCoolCoil2, "Rated Net Cooling Capacity Test B [W]");
     365         771 :         s->pdchDXCoolCoilElecPowerB = newPreDefColumn(state, s->pdstDXCoolCoil2, "Rated Electric Power Test B [W]");
     366         771 :         s->pdchDXCoolCoilNetCapSIC = newPreDefColumn(state, s->pdstDXCoolCoil2, "Rated Net Cooling Capacity Test C [W]");
     367         771 :         s->pdchDXCoolCoilElecPowerC = newPreDefColumn(state, s->pdstDXCoolCoil2, "Rated Electric Power Test C [W]");
     368         771 :         s->pdchDXCoolCoilNetCapSID = newPreDefColumn(state, s->pdstDXCoolCoil2, "Rated Net Cooling Capacity Test D [W]");
     369         771 :         s->pdchDXCoolCoilElecPowerD = newPreDefColumn(state, s->pdstDXCoolCoil2, "Rated Electric Power Test D [W]");
     370             : 
     371             :         // Water-to-Air HP report
     372         771 :         s->pdstWAHP = newPreDefSubTable(state, s->pdrEquip, "Water-to-Air Heat Pumps at Rated Temperatures Report");
     373         771 :         s->pdchWAHPType = newPreDefColumn(state, s->pdstWAHP, "Coil Type");
     374         771 :         s->pdchWAHPRatedCapAtRatedCdts = newPreDefColumn(state, s->pdstWAHP, "Rated Total Capacity [W]");
     375         771 :         s->pdchWAHPRatedSensCapAtRatedCdts = newPreDefColumn(state, s->pdstWAHP, "Rated Sensible Capacity [W]");
     376         771 :         s->pdchWAHPRatedPowerAtRatedCdts = newPreDefColumn(state, s->pdstWAHP, "Rated Power[W]");
     377         771 :         s->pdchWAHPRatedCOPAtRatedCdts = newPreDefColumn(state, s->pdstWAHP, "Rated COP [W/W]");
     378         771 :         s->pdchWAHPRatedAirDBT = newPreDefColumn(state, s->pdstWAHP, "Rated Air Dry-bulb Temperature [C]");
     379         771 :         s->pdchWAHPRatedAirWBT = newPreDefColumn(state, s->pdstWAHP, "Rated Air Wet-bulb Temperature [C]");
     380         771 :         s->pdchWAHPRatedWtrT = newPreDefColumn(state, s->pdstWAHP, "Rated Water Temperature [C]");
     381         771 :         s->pdchWAHPDD = newPreDefColumn(state, s->pdstWAHP, "Design Day used for Sizing");
     382             : 
     383         771 :         s->pdstDXHeatCoil = newPreDefSubTable(state, s->pdrEquip, "DX Heating Coils");
     384         771 :         s->pdchDXHeatCoilType = newPreDefColumn(state, s->pdstDXHeatCoil, "DX Heating Coil Type");
     385         771 :         s->pdchDXHeatCoilHighCap = newPreDefColumn(state, s->pdstDXHeatCoil, "High Temperature Heating (net) Rating Capacity [W]");
     386         771 :         s->pdchDXHeatCoilLowCap = newPreDefColumn(state, s->pdstDXHeatCoil, "Low Temperature Heating (net) Rating Capacity [W]");
     387         771 :         s->pdchDXHeatCoilHSPFIP = newPreDefColumn(state, s->pdstDXHeatCoil, "HSPF [Btu/W-h]");
     388         771 :         s->pdchDXHeatCoilRegionNum = newPreDefColumn(state, s->pdstDXHeatCoil, "Region Number");
     389             : 
     390             :         // for DX Heating Coil AHRI Standard 2023 Ratings | HSPF2
     391         771 :         s->pdstDXHeatCoil_2023 = newPreDefSubTable(state, s->pdrEquip, "DX Heating Coils [ HSPF2 ]");
     392         771 :         s->pdchDXHeatCoilType_2023 = newPreDefColumn(state, s->pdstDXHeatCoil_2023, "DX Heating Coil Type");
     393         771 :         s->pdchDXHeatCoilHighCap_2023 = newPreDefColumn(state, s->pdstDXHeatCoil_2023, "High Temperature Heating (net) Rating Capacity [W]");
     394         771 :         s->pdchDXHeatCoilLowCap_2023 = newPreDefColumn(state, s->pdstDXHeatCoil_2023, "Low Temperature Heating (net) Rating Capacity [W]");
     395         771 :         s->pdchDXHeatCoilHSPF2IP_2023 = newPreDefColumn(state, s->pdstDXHeatCoil_2023, "HSPF2 [Btu/W-h]");
     396         771 :         s->pdchDXHeatCoilRegionNum_2023 = newPreDefColumn(state, s->pdstDXHeatCoil_2023, "Region Number");
     397             : 
     398         771 :         s->pdstHeatCoil = newPreDefSubTable(state, s->pdrEquip, "Heating Coils");
     399             : 
     400         771 :         s->pdchHeatCoilType = newPreDefColumn(state, s->pdstHeatCoil, "Type");
     401         771 :         s->pdchHeatCoilDesCap = newPreDefColumn(state, s->pdstHeatCoil, "Design Coil Load [W]");
     402         771 :         s->pdchHeatCoilNomCap = newPreDefColumn(state, s->pdstHeatCoil, "Nominal Total Capacity [W]");
     403         771 :         s->pdchHeatCoilNomEff = newPreDefColumn(state, s->pdstHeatCoil, "Nominal Efficiency [W/W]");
     404             : 
     405         771 :         s->pdstFan = newPreDefSubTable(state, s->pdrEquip, "Fans");
     406             : 
     407         771 :         s->pdchFanType = newPreDefColumn(state, s->pdstFan, "Type");
     408         771 :         s->pdchFanTotEff = newPreDefColumn(state, s->pdstFan, "Total Efficiency [W/W]");
     409         771 :         s->pdchFanDeltaP = newPreDefColumn(state, s->pdstFan, "Delta Pressure [pa]");
     410         771 :         s->pdchFanVolFlow = newPreDefColumn(state, s->pdstFan, "Max Air Flow Rate [m3/s]");
     411         771 :         s->pdchFanPwr = newPreDefColumn(state, s->pdstFan, "Rated Electricity Rate [W]");
     412         771 :         s->pdchFanPwrPerFlow = newPreDefColumn(state, s->pdstFan, "Rated Power Per Max Air Flow Rate [W-s/m3]");
     413         771 :         s->pdchFanMotorIn = newPreDefColumn(state, s->pdstFan, "Motor Heat In Air Fraction");
     414         771 :         s->pdchFanEnergyIndex = newPreDefColumn(state, s->pdstFan, "Fan Energy Index");
     415         771 :         s->pdchFanEndUse = newPreDefColumn(state, s->pdstFan, "End Use Subcategory");
     416         771 :         s->pdchFanDesDay = newPreDefColumn(state, s->pdstFan, "Design Day Name for Fan Sizing Peak");
     417         771 :         s->pdchFanPkTime = newPreDefColumn(state, s->pdstFan, "Date/Time for Fan Sizing Peak");
     418             : 
     419         771 :         s->pdstPump = newPreDefSubTable(state, s->pdrEquip, "Pumps");
     420         771 :         s->pdchPumpType = newPreDefColumn(state, s->pdstPump, "Type");
     421         771 :         s->pdchPumpControl = newPreDefColumn(state, s->pdstPump, "Control");
     422         771 :         s->pdchPumpHead = newPreDefColumn(state, s->pdstPump, "Head [pa]");
     423         771 :         s->pdchPumpFlow = newPreDefColumn(state, s->pdstPump, "Water Flow [m3/s]");
     424         771 :         s->pdchPumpPower = newPreDefColumn(state, s->pdstPump, "Electricity Rate [W]");
     425         771 :         s->pdchPumpPwrPerFlow = newPreDefColumn(state, s->pdstPump, "Power Per Water Flow Rate [W-s/m3]");
     426         771 :         s->pdchMotEff = newPreDefColumn(state, s->pdstPump, "Motor Efficiency [W/W]");
     427         771 :         s->pdchPumpEndUse = newPreDefColumn(state, s->pdstPump, "End Use Subcategory");
     428             : 
     429         771 :         s->pdstSWH = newPreDefSubTable(state, s->pdrEquip, "Service Water Heating");
     430         771 :         s->pdchSWHType = newPreDefColumn(state, s->pdstSWH, "Type");
     431         771 :         s->pdchSWHVol = newPreDefColumn(state, s->pdstSWH, "Storage Volume [m3]");
     432         771 :         s->pdchSWHHeatIn = newPreDefColumn(state, s->pdstSWH, "Input [W]");
     433         771 :         s->pdchSWHThEff = newPreDefColumn(state, s->pdstSWH, "Thermal Efficiency [W/W]");
     434         771 :         s->pdchSWHRecEff = newPreDefColumn(state, s->pdstSWH, "Recovery Efficiency [W/W]");
     435         771 :         s->pdchSWHEnFac = newPreDefColumn(state, s->pdstSWH, "Energy Factor");
     436             : 
     437             :         // Sizing Report
     438             : 
     439         771 :         s->pdrSizing = newPreDefReport(state, "HVACSizingSummary", "Size", "HVAC Sizing Summary");
     440             : 
     441         771 :         s->pdstZoneClSize = newPreDefSubTable(state, s->pdrSizing, "Zone Sensible Cooling");
     442             : 
     443         771 :         s->pdchZnClCalcDesLd = newPreDefColumn(state, s->pdstZoneClSize, "Calculated Design Load [W]");
     444         771 :         s->pdchZnClUserDesLd = newPreDefColumn(state, s->pdstZoneClSize, "User Design Load [W]");
     445         771 :         s->pdchZnClUserDesLdPerArea = newPreDefColumn(state, s->pdstZoneClSize, "User Design Load per Area [W/m2]");
     446         771 :         s->pdchZnClCalcDesAirFlow = newPreDefColumn(state, s->pdstZoneClSize, "Calculated Design Air Flow [m3/s]");
     447         771 :         s->pdchZnClUserDesAirFlow = newPreDefColumn(state, s->pdstZoneClSize, "User Design Air Flow [m3/s]");
     448         771 :         s->pdchZnClDesDay = newPreDefColumn(state, s->pdstZoneClSize, "Design Day Name");
     449         771 :         s->pdchZnClPkTime = newPreDefColumn(state, s->pdstZoneClSize, "Date/Time Of Peak {TIMESTAMP}");
     450         771 :         s->pdchZnClPkTstatTemp = newPreDefColumn(state, s->pdstZoneClSize, "Thermostat Setpoint Temperature at Peak Load [C]");
     451         771 :         s->pdchZnClPkIndTemp = newPreDefColumn(state, s->pdstZoneClSize, "Indoor Temperature at Peak Load [C]");
     452         771 :         s->pdchZnClPkIndHum = newPreDefColumn(state, s->pdstZoneClSize, "Indoor Humidity Ratio at Peak Load [kgWater/kgDryAir]");
     453         771 :         s->pdchZnClPkOATemp = newPreDefColumn(state, s->pdstZoneClSize, "Outdoor Temperature at Peak Load [C]");
     454         771 :         s->pdchZnClPkOAHum = newPreDefColumn(state, s->pdstZoneClSize, "Outdoor Humidity Ratio at Peak Load [kgWater/kgDryAir]");
     455         771 :         s->pdchZnClPkOAMinFlow = newPreDefColumn(state, s->pdstZoneClSize, "Minimum Outdoor Air Flow Rate [m3/s]");
     456         771 :         s->pdchZnClPkDOASHeatGain = newPreDefColumn(state, s->pdstZoneClSize, "Heat Gain Rate from DOAS [W]");
     457         771 :         addFootNoteSubTable(
     458         771 :             state, s->pdstZoneClSize, "The Design Load is the zone sensible load only. It does not include any system effects or ventilation loads.");
     459         771 :         s->pdstZoneHtSize = newPreDefSubTable(state, s->pdrSizing, "Zone Sensible Heating");
     460             : 
     461         771 :         s->pdchZnHtCalcDesLd = newPreDefColumn(state, s->pdstZoneHtSize, "Calculated Design Load [W]");
     462         771 :         s->pdchZnHtUserDesLd = newPreDefColumn(state, s->pdstZoneHtSize, "User Design Load [W]");
     463         771 :         s->pdchZnHtUserDesLdPerArea = newPreDefColumn(state, s->pdstZoneHtSize, "User Design Load per Area [W/m2]");
     464         771 :         s->pdchZnHtCalcDesAirFlow = newPreDefColumn(state, s->pdstZoneHtSize, "Calculated Design Air Flow [m3/s]");
     465         771 :         s->pdchZnHtUserDesAirFlow = newPreDefColumn(state, s->pdstZoneHtSize, "User Design Air Flow [m3/s]");
     466         771 :         s->pdchZnHtDesDay = newPreDefColumn(state, s->pdstZoneHtSize, "Design Day Name");
     467         771 :         s->pdchZnHtPkTime = newPreDefColumn(state, s->pdstZoneHtSize, "Date/Time Of Peak {TIMESTAMP}");
     468         771 :         s->pdchZnHtPkTstatTemp = newPreDefColumn(state, s->pdstZoneHtSize, "Thermostat Setpoint Temperature at Peak Load [C]");
     469         771 :         s->pdchZnHtPkIndTemp = newPreDefColumn(state, s->pdstZoneHtSize, "Indoor Temperature at Peak Load [C]");
     470         771 :         s->pdchZnHtPkIndHum = newPreDefColumn(state, s->pdstZoneHtSize, "Indoor Humidity Ratio at Peak Load [kgWater/kgDryAir]");
     471         771 :         s->pdchZnHtPkOATemp = newPreDefColumn(state, s->pdstZoneHtSize, "Outdoor Temperature at Peak Load [C]");
     472         771 :         s->pdchZnHtPkOAHum = newPreDefColumn(state, s->pdstZoneHtSize, "Outdoor Humidity Ratio at Peak Load [kgWater/kgDryAir]");
     473         771 :         s->pdchZnHtPkOAMinFlow = newPreDefColumn(state, s->pdstZoneHtSize, "Minimum Outdoor Air Flow Rate [m3/s]");
     474         771 :         s->pdchZnHtPkDOASHeatGain = newPreDefColumn(state, s->pdstZoneHtSize, "Heat Gain Rate from DOAS [W]");
     475         771 :         addFootNoteSubTable(
     476         771 :             state, s->pdstZoneHtSize, "The Design Load is the zone sensible load only. It does not include any system effects or ventilation loads.");
     477         771 :         s->pdstSystemSize = newPreDefSubTable(state, s->pdrSizing, "System Design Air Flow Rates");
     478             : 
     479         771 :         s->pdchSysSizCalcClAir = newPreDefColumn(state, s->pdstSystemSize, "Calculated cooling [m3/s]");
     480         771 :         s->pdchSysSizUserClAir = newPreDefColumn(state, s->pdstSystemSize, "User cooling [m3/s]");
     481         771 :         s->pdchSysSizCalcHtAir = newPreDefColumn(state, s->pdstSystemSize, "Calculated heating [m3/s]");
     482         771 :         s->pdchSysSizUserHtAir = newPreDefColumn(state, s->pdstSystemSize, "User heating [m3/s]");
     483         771 :         s->pdchSysSizAdjustedClAir = newPreDefColumn(state, s->pdstSystemSize, "Adjusted cooling [m3/s]");
     484         771 :         s->pdchSysSizAdjustedHtAir = newPreDefColumn(state, s->pdstSystemSize, "Adjusted heating [m3/s]");
     485         771 :         s->pdchSysSizAdjustedMainAir = newPreDefColumn(state, s->pdstSystemSize, "Adjusted main [m3/s]");
     486         771 :         s->pdchSysSizCalcHeatFlowRatio = newPreDefColumn(state, s->pdstSystemSize, "Calculated Heating Air Flow Ratio []");
     487         771 :         s->pdchSysSizUserHeatFlowRatio = newPreDefColumn(state, s->pdstSystemSize, "User Heating Air Flow Ratio []");
     488             : 
     489         771 :         s->pdstPlantSize = newPreDefSubTable(state, s->pdrSizing, "Plant Loop Coincident Design Fluid Flow Rate Adjustments");
     490             :         //        s->pdchPlantSizPass = newPreDefColumn(state,  s->pdstPlantSize, "Sizing Pass" );
     491         771 :         s->pdchPlantSizPrevVdot = newPreDefColumn(state, s->pdstPlantSize, "Previous Design Volume Flow Rate [m3/s]");
     492         771 :         s->pdchPlantSizMeasVdot = newPreDefColumn(state, s->pdstPlantSize, "Algorithm Volume Flow Rate [m3/s]");
     493         771 :         s->pdchPlantSizCalcVdot = newPreDefColumn(state, s->pdstPlantSize, "Coincident Design Volume Flow Rate [m3/s]");
     494         771 :         s->pdchPlantSizCoincYesNo = newPreDefColumn(state, s->pdstPlantSize, "Coincident Size Adjusted");
     495         771 :         s->pdchPlantSizDesDay = newPreDefColumn(state, s->pdstPlantSize, "Peak Sizing Period Name");
     496         771 :         s->pdchPlantSizPkTimeDayOfSim = newPreDefColumn(state, s->pdstPlantSize, "Peak Day into Period {TIMESTAMP}[day]");
     497         771 :         s->pdchPlantSizPkTimeHour = newPreDefColumn(state, s->pdstPlantSize, "Peak Hour Of Day {TIMESTAMP}[hr]");
     498         771 :         s->pdchPlantSizPkTimeMin = newPreDefColumn(state, s->pdstPlantSize, "Peak Step Start Minute {TIMESTAMP}[min]");
     499             : 
     500         771 :         s->pdst2CoilSummaryCoilSelection = newPreDefSubTable(state, s->pdrSizing, "Coil Sizing Summary");
     501             :         // coil meta data information
     502             :         //    the first column will be the coil name, the unique user name from input. It has no header or column definition
     503         771 :         s->pdch2CoilType = newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Coil Type");
     504         771 :         s->pdch2CoilHVACType = newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "HVAC Type");
     505         771 :         s->pdch2CoilHVACName = newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "HVAC Name");
     506             : 
     507             :         // coil Final size summary, regardless of how determined (
     508         771 :         s->pdch2CoilFinalTotalCap = newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Coil Final Gross Total Capacity [W]");
     509         771 :         s->pdch2CoilFinalSensCap = newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Coil Final Gross Sensible Capacity [W]");
     510         771 :         s->pdch2CoilFinalAirVolFlowRate =
     511        1542 :             newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Coil Final Reference Air Volume Flow Rate [m3/s]");
     512         771 :         s->pdch2CoilFinalPlantVolFlowRate =
     513        1542 :             newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Coil Final Reference Plant Fluid Volume Flow Rate [m3/s]");
     514         771 :         s->pdch2CoilUA = newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Coil U-value Times Area Value [W/K]");
     515             : 
     516             :         // results from regular zone and system sizing calcs, "At Ideal Loads Peak"
     517         771 :         s->pdch2CoilDDnameSensIdealPeak = newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Design Day Name at Sensible Ideal Loads Peak");
     518         771 :         s->pdch2CoilDateTimeSensIdealPeak = newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Date/Time at Sensible Ideal Loads Peak");
     519         771 :         s->pdch2CoilDDnameAirFlowIdealPeak = newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Design Day Name at Air Flow Ideal Loads Peak");
     520         771 :         s->pdch2CoilDateTimeAirFlowIdealPeak = newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Date/Time at Air Flow Ideal Loads Peak");
     521             : 
     522         771 :         s->pdch2CoilTotalCapIdealPeak = newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Coil Total Capacity at Ideal Loads Peak [W]");
     523         771 :         s->pdch2CoilSensCapIdealPeak = newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Coil Sensible Capacity at Ideal Loads Peak [W]");
     524         771 :         s->pdch2CoilAirVolumeFlowIdealPeak =
     525        1542 :             newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Coil Air Volume Flow Rate at Ideal Loads Peak [m3/s]");
     526         771 :         s->pdch2CoilEntDryBulbIdealPeak =
     527        1542 :             newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Coil Entering Air Drybulb at Ideal Loads Peak [C]");
     528         771 :         s->pdch2CoilEntWetBulbIdealPeak =
     529        1542 :             newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Coil Entering Air Wetbulb at Ideal Loads Peak [C]");
     530         771 :         s->pdch2CoilEntHumRatIdealPeak =
     531        1542 :             newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Coil Entering Air Humidity Ratio at Ideal Loads Peak [kgWater/kgDryAir]");
     532         771 :         s->pdch2CoilLvgDryBulbIdealPeak =
     533        1542 :             newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Coil Leaving Air Drybulb at Ideal Loads Peak [C]");
     534         771 :         s->pdch2CoilLvgWetBulbIdealPeak =
     535        1542 :             newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Coil Leaving Air Wetbulb at Ideal Loads Peak [C]");
     536         771 :         s->pdch2CoilLvgHumRatIdealPeak =
     537        1542 :             newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Coil Leaving Air Humidity Ratio at Ideal Loads Peak [kgWater/kgDryAir]");
     538         771 :         s->pdch2OADryBulbIdealPeak = newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Outdoor Air Drybulb at Ideal Loads Peak [C]");
     539         771 :         s->pdch2OAHumRatIdealPeak =
     540        1542 :             newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Outdoor Air Humidity Ratio at Ideal Loads Peak [kgWater/kgDryAir]");
     541         771 :         s->pdch2OAWetBulbatIdealPeak = newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Outdoor Air Wetbulb at Ideal Loads Peak [C]");
     542         771 :         s->pdch2OAFlowPrcntIdealPeak =
     543        1542 :             newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Outdoor Air Flow Percentage at Ideal Loads Peak [%]");
     544         771 :         s->pdch2ZoneAirDryBulbIdealPeak = newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Zone Air Drybulb at Ideal Loads Peak [C]");
     545         771 :         s->pdch2ZoneAirHumRatIdealPeak =
     546        1542 :             newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Zone Air Humidity Ratio at Ideal Loads Peak [kgWater/kgDryAir]");
     547         771 :         s->pdch2ZoneAirRelHumIdealPeak =
     548        1542 :             newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Zone Air Relative Humidity at Ideal Loads Peak [%]");
     549         771 :         s->pdch2ZoneSensibleLoadIdealPeak =
     550        1542 :             newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Zone Sensible Heat Gain at Ideal Loads Peak [W]");
     551         771 :         s->pdch2ZoneLatentLoadIdealPeak = newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Zone Latent Heat Gain at Ideal Loads Peak [W]");
     552             :         // results for coil at Rated Conditions
     553         771 :         s->pdch2CoilRatedTotalCap = newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Coil Total Capacity at Rating Conditions [W]");
     554         771 :         s->pdch2CoilRatedSensCap = newPreDefColumn(state, s->pdst2CoilSummaryCoilSelection, "Coil Sensible Capacity at Rating Conditions [W]");
     555             : 
     556         771 :         s->pdrCoilSizingDetailsTable = newPreDefReport(state, "CoilSizingDetails", "Coil", "Coil Sizing Details");
     557         771 :         s->pdstCoilSummaryCoilSelection = newPreDefSubTable(state, s->pdrCoilSizingDetailsTable, "Coils");
     558             :         // coil meta data information
     559             :         //    the first column will be the coil name, the unique user name from input. It has no header or column definition
     560         771 :         s->pdchCoilType = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Type");
     561         771 :         s->pdchCoilLocation = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Location");
     562         771 :         s->pdchCoilHVACType = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "HVAC Type");
     563         771 :         s->pdchCoilHVACName = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "HVAC Name");
     564         771 :         s->pdchCoilZoneName = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Zone Name(s)");
     565             : 
     566         771 :         s->pdchSysSizingMethCoinc = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "System Sizing Method Concurrence");
     567         771 :         s->pdchSysSizingMethCap = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "System Sizing Method Capacity");
     568         771 :         s->pdchSysSizingMethAir = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "System Sizing Method Air Flow");
     569             : 
     570         771 :         s->pdchCoilIsCapAutosized = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Autosized Coil Capacity?");
     571         771 :         s->pdchCoilIsAirFlowAutosized = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Autosized Coil Airflow?");
     572         771 :         s->pdchCoilIsWaterFlowAutosized = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Autosized Coil Water Flow?");
     573         771 :         s->pdchCoilIsOATreated = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "OA Pretreated prior to coil inlet?");
     574             : 
     575             :         // coil Final size summary, regardless of how determined (
     576             :         // get rid of these, this will be the same as At Rating Conditions.
     577         771 :         s->pdchCoilFinalTotalCap = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Final Gross Total Capacity [W]");
     578         771 :         s->pdchCoilFinalSensCap = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Final Gross Sensible Capacity [W]");
     579         771 :         s->pdchCoilFinalAirVolFlowRate = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Final Reference Air Volume Flow Rate [m3/s]");
     580         771 :         s->pdchCoilFinalPlantVolFlowRate =
     581        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Final Reference Plant Fluid Volume Flow Rate [m3/s]");
     582             : 
     583             :         // Misc Design output
     584         771 :         s->pdchCoilUA = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil U-value Times Area Value [W/K]");
     585         771 :         s->pdchReheatCoilMultiplier = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Terminal Unit Reheat Coil Multiplier");
     586         771 :         s->pdchFlowCapRatioLowCapIncreaseRatio =
     587        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "DX Coil Capacity Increase Ratio from Too Low Flow/Capacity Ratio");
     588         771 :         s->pdchFlowCapRatioHiCapDecreaseRatio =
     589        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "DX Coil Capacity Decrease Ratio from Too High Flow/Capacity Ratio");
     590             : 
     591         771 :         s->pdchMoistAirSpecificHeat =
     592        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Moist Air Heat Capacity [J/kg-K]"); // standard? for ideal sizing calcs?
     593         771 :         s->pdchDryAirSpecificHeat =
     594        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Dry Air Heat Capacity [J/kg-K]"); // standard? for ideal sizing calcs?
     595         771 :         s->pdchStandRhoAir = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Standard Air Density Adjusted for Elevation [kg/m3]");
     596             : 
     597             :         // Fan info for coil
     598         771 :         s->pdchFanAssociatedWithCoilName = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Supply Fan Name for Coil");
     599         771 :         s->pdchFanAssociatedWithCoilType = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Supply Fan Type for Coil");
     600         771 :         s->pdchFanAssociatedVdotSize = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Supply Fan Maximum Air Volume Flow Rate [m3/s]");
     601         771 :         s->pdchFanAssociatedMdotSize = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Supply Fan Maximum Air Mass Flow Rate [kg/s]");
     602             : 
     603             :         // Plant info for coil
     604         771 :         s->pdchCoilPlantLoopName = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Plant Name for Coil");
     605         771 :         s->pdchPlantFluidSpecificHeat =
     606        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Plant Fluid Specific Heat Capacity [J/kg-K]"); // standard/inits ?
     607         771 :         s->pdchPlantFluidDensity =
     608        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Plant Fluid Density [kg/m3]"); // standard/inits ? for ideal sizing calcs?
     609         771 :         s->pdchPlantMassFlowMaximum = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Plant Maximum Fluid Mass Flow Rate [kg/s]");
     610         771 :         s->pdchPlantRetTempDesign = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Plant Design Fluid Return Temperature [C]");
     611         771 :         s->pdchPlantSupTempDesign = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Plant Design Fluid Supply Temperature [C]");
     612         771 :         s->pdchPlantDeltaTempDesign = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Plant Design Fluid Temperature Difference [deltaC]");
     613         771 :         s->pdchPlantCapacity = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Plant Design Capacity [W]");
     614         771 :         s->pdchCoilCapPrcntPlantCapacity =
     615        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Capacity Percentage of Plant Design Capacity [%]");
     616         771 :         s->pdchCoilFlowPrcntPlantFlow =
     617        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Fluid Flow Rate Percentage of Plant Design Flow Rate [%]");
     618             : 
     619             :         // results from regular zone and system sizing calcs, "At Ideal Loads Peak"
     620         771 :         s->pdchCoilDDnameSensIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Design Day Name at Sensible Ideal Loads Peak");
     621         771 :         s->pdchCoilDateTimeSensIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Date/Time at Sensible Ideal Loads Peak");
     622         771 :         s->pdchCoilDDnameTotIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Design Day Name at Total Ideal Loads Peak");
     623         771 :         s->pdchCoilDateTimeTotIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Date/Time at Total Ideal Loads Peak");
     624         771 :         s->pdchCoilDDnameAirFlowIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Design Day Name at Air Flow Ideal Loads Peak");
     625         771 :         s->pdchCoilDateTimeAirFlowIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Date/Time at Air Flow Ideal Loads Peak");
     626         771 :         s->pdchCoilPeakLoadTypeToSizeOn = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Peak Load Type to Size On");
     627             : 
     628         771 :         s->pdchCoilTotalCapIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Total Capacity at Ideal Loads Peak [W]");
     629         771 :         s->pdchCoilSensCapIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Sensible Capacity at Ideal Loads Peak [W]");
     630         771 :         s->pdchCoilOffRatingCapacityModifierIdealPeak =
     631        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Off-Rating Capacity Modifier at Ideal Loads Peak [ ]");
     632         771 :         s->pdchCoilAirMassFlowIdealPeak =
     633        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Air Mass Flow Rate at Ideal Loads Peak [kg/s]");
     634         771 :         s->pdchCoilAirVolumeFlowIdealPeak =
     635        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Air Volume Flow Rate at Ideal Loads Peak [m3/s]");
     636         771 :         s->pdchCoilEntDryBulbIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Entering Air Drybulb at Ideal Loads Peak [C]");
     637         771 :         s->pdchCoilEntWetBulbIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Entering Air Wetbulb at Ideal Loads Peak [C]");
     638         771 :         s->pdchCoilEntHumRatIdealPeak =
     639        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Entering Air Humidity Ratio at Ideal Loads Peak [kgWater/kgDryAir]");
     640         771 :         s->pdchCoilEntEnthalpyIdealPeak =
     641        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Entering Air Enthalpy at Ideal Loads Peak [J/KG-K]");
     642         771 :         s->pdchCoilLvgDryBulbIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Leaving Air Drybulb at Ideal Loads Peak [C]");
     643         771 :         s->pdchCoilLvgWetBulbIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Leaving Air Wetbulb at Ideal Loads Peak [C]");
     644         771 :         s->pdchCoilLvgHumRatIdealPeak =
     645        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Leaving Air Humidity Ratio at Ideal Loads Peak [kgWater/kgDryAir]");
     646         771 :         s->pdchCoilLvgEnthalpyIdealPeak =
     647        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Leaving Air Enthalpy at Ideal Loads Peak [J/KG-K]");
     648         771 :         s->pdchCoilWaterMassFlowIdealPeak =
     649        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Plant Fluid Mass Flow Rate at Ideal Loads Peak [kg/s]");
     650         771 :         s->pdchCoilEntWaterTempIdealPeak =
     651        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Entering Plant Fluid Temperature at Ideal Loads Peak [C]");
     652         771 :         s->pdchCoilLvgWaterTempIdealPeak =
     653        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Leaving Plant Fluid Temperature at Ideal Loads Peak [C]");
     654         771 :         s->pdchCoilWaterDeltaTempIdealPeak =
     655        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Plant Fluid Temperature Difference at Ideal Loads Peak [deltaC]");
     656         771 :         s->pdchFanHeatGainIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Supply Fan Air Heat Gain at Ideal Loads Peak [W]");
     657         771 :         s->pdchCoilNetTotalCapacityIdealPeak =
     658        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil and Fan Net Total Capacity at Ideal Loads Peak [W]");
     659         771 :         s->pdchOADryBulbIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Outdoor Air Drybulb at Ideal Loads Peak [C]");
     660         771 :         s->pdchOAHumRatIdealPeak =
     661        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Outdoor Air Humidity Ratio at Ideal Loads Peak [kgWater/kgDryAir]");
     662         771 :         s->pdchOAWetBulbatIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Outdoor Air Wetbulb at Ideal Loads Peak [C]");
     663         771 :         s->pdchOAVolFlowIdealPeak =
     664        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Outdoor Air Volume Flow Rate at Ideal Loads Peak [m3/s]");
     665         771 :         s->pdchOAFlowPrcntIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Outdoor Air Flow Percentage at Ideal Loads Peak [%]");
     666         771 :         s->pdchAirSysRADryBulbIdealPeak =
     667        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "System Return Air Drybulb at Ideal Loads Peak [C]");
     668         771 :         s->pdchAirSysRAHumRatIdealPeak =
     669        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "System Return Air Humidity Ratio at Ideal Loads Peak [kgWater/kgDryAir]");
     670         771 :         s->pdchZoneAirDryBulbIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Zone Air Drybulb at Ideal Loads Peak [C]");
     671         771 :         s->pdchZoneAirHumRatIdealPeak =
     672        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Zone Air Humidity Ratio at Ideal Loads Peak [kgWater/kgDryAir]");
     673         771 :         s->pdchZoneAirRelHumIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Zone Air Relative Humidity at Ideal Loads Peak [%]");
     674         771 :         s->pdchZoneSensibleLoadIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Zone Sensible Heat Gain at Ideal Loads Peak [W]");
     675         771 :         s->pdchZoneLatentLoadIdealPeak = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Zone Latent Heat Gain at Ideal Loads Peak [W]");
     676             :         // results for coil at Rated Conditions
     677         771 :         s->pdchCoilRatedTotalCap = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Total Capacity at Rating Conditions [W]");
     678         771 :         s->pdchCoilRatedSensCap = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Sensible Capacity at Rating Conditions [W]");
     679             : 
     680         771 :         s->pdchCoilRatedAirMass = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Air Mass Flow Rate at Rating Conditions [kg/s]");
     681         771 :         s->pdchCoilRatedEntDryBulb = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Entering Air Drybulb at Rating Conditions [C]");
     682         771 :         s->pdchCoilRatedEntWetBulb = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Entering Air Wetbulb at Rating Conditions [C]");
     683         771 :         s->pdchCoilRatedEntHumRat =
     684        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Entering Air Humidity Ratio at Rating Conditions [kgWater/kgDryAir]");
     685         771 :         s->pdchCoilRatedEntEnthalpy =
     686        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Entering Air Enthalpy at Rating Conditions [J/KG-K]");
     687         771 :         s->pdchCoilRatedLvgDryBulb = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Leaving Air Drybulb at Rating Conditions [C]");
     688         771 :         s->pdchCoilRatedLvgWetBulb = newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Leaving Air Wetbulb at Rating Conditions [C]");
     689         771 :         s->pdchCoilRatedLvgHumRat =
     690        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Leaving Air Humidity Ratio at Rating Conditions [kgWater/kgDryAir]");
     691         771 :         s->pdchCoilRatedLvgEnthalpy =
     692        1542 :             newPreDefColumn(state, s->pdstCoilSummaryCoilSelection, "Coil Leaving Air Enthalpy at Rating Conditions [J/KG-K]");
     693             : 
     694             :         // System Summary Report
     695             : 
     696         771 :         s->pdrSystem = newPreDefReport(state, "SystemSummary", "Sys", "System Summary");
     697             : 
     698         771 :         s->pdstEconomizer = newPreDefSubTable(state, s->pdrSystem, "Economizer");
     699             : 
     700         771 :         s->pdchEcoKind = newPreDefColumn(state, s->pdstEconomizer, "High Limit Shutoff Control");
     701         771 :         s->pdchEcoMinOA = newPreDefColumn(state, s->pdstEconomizer, "Minimum Outdoor Air [m3/s]");
     702         771 :         s->pdchEcoMaxOA = newPreDefColumn(state, s->pdstEconomizer, "Maximum Outdoor Air [m3/s]");
     703         771 :         s->pdchEcoRetTemp = newPreDefColumn(state, s->pdstEconomizer, "Return Air Temp Limit");
     704         771 :         s->pdchEcoRetEnth = newPreDefColumn(state, s->pdstEconomizer, "Return Air Enthalpy Limit");
     705         771 :         s->pdchEcoOATempLim = newPreDefColumn(state, s->pdstEconomizer, "Outdoor Air Temperature Limit [C]");
     706         771 :         s->pdchEcoOAEnthLim = newPreDefColumn(state, s->pdstEconomizer, "Outdoor Air Enthalpy Limit [C]");
     707             : 
     708         771 :         s->pdstDemCntlVent = newPreDefSubTable(state, s->pdrSystem, "Demand Controlled Ventilation using Controller:MechanicalVentilation");
     709         771 :         s->pdchDCVventMechName = newPreDefColumn(state, s->pdstDemCntlVent, "Controller:MechanicalVentilation Name");
     710         771 :         s->pdchDCVperPerson = newPreDefColumn(state, s->pdstDemCntlVent, "Outdoor Air Per Person [m3/s-person]");
     711         771 :         s->pdchDCVperArea = newPreDefColumn(state, s->pdstDemCntlVent, "Outdoor Air Per Area [m3/s-m2]");
     712         771 :         s->pdchDCVperZone = newPreDefColumn(state, s->pdstDemCntlVent, "Outdoor Air Per Zone [m3/s]");
     713         771 :         s->pdchDCVperACH = newPreDefColumn(state, s->pdstDemCntlVent, "Outdoor Air ACH [ach]");
     714         771 :         s->pdchDCVMethod = newPreDefColumn(state, s->pdstDemCntlVent, "Outdoor Air Method");
     715         771 :         s->pdchDCVOASchName = newPreDefColumn(state, s->pdstDemCntlVent, "Outdoor Air Schedule Name");
     716             : 
     717             :         // added for new DCV
     718         771 :         s->pdchDCVZoneADEffCooling = newPreDefColumn(state, s->pdstDemCntlVent, "Air Distribution Effectiveness in Cooling Mode");
     719         771 :         s->pdchDCVZoneADEffHeating = newPreDefColumn(state, s->pdstDemCntlVent, "Air Distribution Effectiveness in Heating Mode");
     720         771 :         s->pdchDCVZoneADEffSchName = newPreDefColumn(state, s->pdstDemCntlVent, "Air Distribution Effectiveness Schedule Name");
     721             : 
     722         771 :         s->pdstSimpleComfort = newPreDefSubTable(state, s->pdrSystem, "Time Not Comfortable Based on Simple ASHRAE 55-2004");
     723         771 :         s->pdchSCwinterClothes = newPreDefColumn(state, s->pdstSimpleComfort, "Winter Clothes [hr]");
     724         771 :         s->pdchSCsummerClothes = newPreDefColumn(state, s->pdstSimpleComfort, "Summer Clothes [hr]");
     725         771 :         s->pdchSCeitherClothes = newPreDefColumn(state, s->pdstSimpleComfort, "Summer or Winter Clothes [hr]");
     726             : 
     727         771 :         s->pdstUnmetLoads = newPreDefSubTable(state, s->pdrSystem, "Time Setpoint Not Met");
     728         771 :         s->pdchULnotMetHeat = newPreDefColumn(state, s->pdstUnmetLoads, "During Heating [hr]");
     729         771 :         s->pdchULnotMetCool = newPreDefColumn(state, s->pdstUnmetLoads, "During Cooling [hr]");
     730         771 :         s->pdchULnotMetHeatOcc = newPreDefColumn(state, s->pdstUnmetLoads, "During Occupied Heating [hr]");
     731         771 :         s->pdchULnotMetCoolOcc = newPreDefColumn(state, s->pdstUnmetLoads, "During Occupied Cooling [hr]");
     732             : 
     733             :         // Outdoor Air Report
     734         771 :         s->pdrOutsideAir = newPreDefReport(state, "OutdoorAirSummary", "OA", "Outdoor Air Summary");
     735             : 
     736         771 :         s->pdstOAavgOcc = newPreDefSubTable(state, s->pdrOutsideAir, "Average Outdoor Air During Occupied Hours");
     737             : 
     738         771 :         s->pdchOaoAvgNumOcc1 = newPreDefColumn(state, s->pdstOAavgOcc, "Average Number of Occupants");
     739         771 :         s->pdchOaoNomNumOcc1 = newPreDefColumn(state, s->pdstOAavgOcc, "Nominal Number of Occupants");
     740         771 :         s->pdchOaoZoneVol1 = newPreDefColumn(state, s->pdstOAavgOcc, "Zone Volume [m3]");
     741         771 :         s->pdchOaoAvgMechVent = newPreDefColumn(state, s->pdstOAavgOcc, "Mechanical Ventilation [ach]");
     742         771 :         s->pdchOaoAvgInfil = newPreDefColumn(state, s->pdstOAavgOcc, "Infiltration [ach]");
     743         771 :         s->pdchOaoAvgAFNInfil = newPreDefColumn(state, s->pdstOAavgOcc, "AFN Infiltration [ach]");
     744         771 :         s->pdchOaoAvgSimpVent = newPreDefColumn(state, s->pdstOAavgOcc, "Simple Ventilation [ach]");
     745             :         // s->pdchOaoAvgTotVent =   newPreDefColumn(state, s->pdstOAavgOcc,'Total Ventilation [ach]')
     746             : 
     747         771 :         addFootNoteSubTable(state, s->pdstOAavgOcc, "Values shown for a single zone without multipliers");
     748             : 
     749         771 :         s->pdstOAminOcc = newPreDefSubTable(state, s->pdrOutsideAir, "Minimum Outdoor Air During Occupied Hours");
     750             : 
     751         771 :         s->pdchOaoAvgNumOcc2 = newPreDefColumn(state, s->pdstOAminOcc, "Average Number of Occupants");
     752         771 :         s->pdchOaoNomNumOcc2 = newPreDefColumn(state, s->pdstOAminOcc, "Nominal Number of Occupants");
     753         771 :         s->pdchOaoZoneVol2 = newPreDefColumn(state, s->pdstOAminOcc, "Zone Volume [m3]");
     754         771 :         s->pdchOaoMinMechVent = newPreDefColumn(state, s->pdstOAminOcc, "Mechanical Ventilation [ach]");
     755         771 :         s->pdchOaoMinInfil = newPreDefColumn(state, s->pdstOAminOcc, "Infiltration [ach]");
     756         771 :         s->pdchOaoMinAFNInfil = newPreDefColumn(state, s->pdstOAminOcc, "AFN Infiltration [ach]");
     757         771 :         s->pdchOaoMinSimpVent = newPreDefColumn(state, s->pdstOAminOcc, "Simple Ventilation [ach]");
     758             :         // s->pdchOaoMinTotVent =   newPreDefColumn(state, s->pdstOAminOcc,'Total Ventilation [ach]')
     759         771 :         addFootNoteSubTable(state, s->pdstOAminOcc, "Values shown for a single zone without multipliers");
     760             : 
     761             :         // Outdoor Air Details Report
     762         771 :         s->pdrOutsideAirDetails = newPreDefReport(state, "OutdoorAirDetails", "OAD", "Outdoor Air Details");
     763             : 
     764         771 :         s->pdstOAmechVentParByZone = newPreDefSubTable(state, s->pdrOutsideAirDetails, "Mechanical Ventilation Parameters by Zone");
     765         771 :         s->pdchOaMvAirLpNm = newPreDefColumn(state, s->pdstOAmechVentParByZone, "AirLoop Name");
     766         771 :         s->pdchOaMvAvgNumOcc = newPreDefColumn(state, s->pdstOAmechVentParByZone, "Average Number of Occupants");
     767         771 :         s->pdchOaMvNomNumOcc = newPreDefColumn(state, s->pdstOAmechVentParByZone, "Nominal Number of Occupants");
     768         771 :         s->pdchOaMvZoneVol = newPreDefColumn(state, s->pdstOAmechVentParByZone, "Zone Volume [m3]");
     769         771 :         s->pdchOaMvZoneArea = newPreDefColumn(state, s->pdstOAmechVentParByZone, "Zone Area [m2]");
     770         771 :         s->pdchOaMvDesZnOa = newPreDefColumn(state, s->pdstOAmechVentParByZone, "Design Zone Outdoor Airflow - Voz [m3/s]");
     771         771 :         s->pdchOaMvMinDynTrgVent = newPreDefColumn(state, s->pdstOAmechVentParByZone, "Minimum Dynamic Target Ventilation - Voz-dyn-min [m3/s]");
     772             : 
     773         771 :         s->pdstOAtotAirByZone = newPreDefSubTable(state, s->pdrOutsideAirDetails, "Total Outdoor Air by Zone");
     774         771 :         s->pdchOaTaBzMechVent = newPreDefColumn(state, s->pdstOAtotAirByZone, "Mechanical Ventilation [m3]");
     775         771 :         s->pdchOaTaBzNatVent = newPreDefColumn(state, s->pdstOAtotAirByZone, "Natural Ventilation [m3]");
     776         771 :         s->pdchOaTaBzTotVent = newPreDefColumn(state, s->pdstOAtotAirByZone, "Total Ventilation [m3]");
     777         771 :         s->pdchOaTaBzInfil = newPreDefColumn(state, s->pdstOAtotAirByZone, "Infiltration [m3]");
     778         771 :         s->pdchOaTaBzTotVentInfil = newPreDefColumn(state, s->pdstOAtotAirByZone, "Total Ventilation and Infiltration [m3]");
     779         771 :         s->pdchOaTaBzDynTrgVent = newPreDefColumn(state, s->pdstOAtotAirByZone, "Dynamic Target Ventilation - Voz-dyn [m3]");
     780         771 :         s->pdchOaTaBzTmBelow = newPreDefColumn(state, s->pdstOAtotAirByZone, "Time Below Voz-dyn [hr]");
     781         771 :         s->pdchOaTaBzTmAt = newPreDefColumn(state, s->pdstOAtotAirByZone, "Time At Voz-dyn [hr]");
     782         771 :         s->pdchOaTaBzTmAbove = newPreDefColumn(state, s->pdstOAtotAirByZone, "Time Above Voz-dyn [hr]");
     783         771 :         s->pdchOaTaBzTmAboveUnocc = newPreDefColumn(state, s->pdstOAtotAirByZone, "Time Above Zero When Unoccupied [hr]");
     784             : 
     785         771 :         s->pdstOAavgOccByZone = newPreDefSubTable(state, s->pdrOutsideAirDetails, "Average Outdoor Air During Occupancy by Zone - Flow Rates");
     786         771 :         s->pdchOaOccBzMechVent = newPreDefColumn(state, s->pdstOAavgOccByZone, "Mechanical Ventilation [m3/s]");
     787         771 :         s->pdchOaOccBzNatVent = newPreDefColumn(state, s->pdstOAavgOccByZone, "Natural Ventilation [m3/s]");
     788         771 :         s->pdchOaOccBzTotVent = newPreDefColumn(state, s->pdstOAavgOccByZone, "Total Ventilation [m3/s]");
     789         771 :         s->pdchOaOccBzInfil = newPreDefColumn(state, s->pdstOAavgOccByZone, "Infiltration [m3/s]");
     790         771 :         s->pdchOaOccBzTotVentInfil = newPreDefColumn(state, s->pdstOAavgOccByZone, "Total Ventilation and Infiltration [m3/s]");
     791         771 :         s->pdchOaOccBzDynTrgVent = newPreDefColumn(state, s->pdstOAavgOccByZone, "Dynamic Target Ventilation - Voz-dyn [m3/s]");
     792         771 :         s->pdchOaOccBzTmBelow = newPreDefColumn(state, s->pdstOAavgOccByZone, "Time Below Voz-dyn [hr]");
     793         771 :         s->pdchOaOccBzTmAt = newPreDefColumn(state, s->pdstOAavgOccByZone, "Time At Voz-dyn [hr]");
     794         771 :         s->pdchOaOccBzTmAbove = newPreDefColumn(state, s->pdstOAavgOccByZone, "Time Above Voz-dyn [hr]");
     795             : 
     796         771 :         s->pdstOAtotAirByLoop = newPreDefSubTable(state, s->pdrOutsideAirDetails, "Total Outdoor Air by AirLoop");
     797         771 :         s->pdchOaTaAlMechVent = newPreDefColumn(state, s->pdstOAtotAirByLoop, "Mechanical Ventilation [m3]");
     798         771 :         s->pdchOaTaAlNatVent = newPreDefColumn(state, s->pdstOAtotAirByLoop, "Natural Ventilation [m3]");
     799         771 :         s->pdchOaTaAlTotVent = newPreDefColumn(state, s->pdstOAtotAirByLoop, "Total Ventilation [m3]");
     800         771 :         s->pdchOaTaAlSumDynTrgVent = newPreDefColumn(state, s->pdstOAtotAirByLoop, "Sum Zone Dynamic Target Ventilation - Voz-sum-dyn [m3]");
     801         771 :         s->pdchOaTaAlTmBelow = newPreDefColumn(state, s->pdstOAtotAirByLoop, "Time Below Voz-sum-dyn [hr]");
     802         771 :         s->pdchOaTaAlTmAt = newPreDefColumn(state, s->pdstOAtotAirByLoop, "Time At Voz-sum-dyn [hr]");
     803         771 :         s->pdchOaTaAlTmAbove = newPreDefColumn(state, s->pdstOAtotAirByLoop, "Time Above Voz-sum-dyn [hr]");
     804         771 :         s->pdchOaTaAlTmAboveUnocc = newPreDefColumn(state, s->pdstOAtotAirByLoop, "Time Above Zero When Unoccupied [hr]");
     805             : 
     806         771 :         s->pdstOAavgOccByLoop = newPreDefSubTable(state, s->pdrOutsideAirDetails, "Average Outdoor Air During Occupancy by AirLoop");
     807         771 :         s->pdchOaOccAlMechVent = newPreDefColumn(state, s->pdstOAavgOccByLoop, "Mechanical Ventilation [m3/s]");
     808         771 :         s->pdchOaOccAlNatVent = newPreDefColumn(state, s->pdstOAavgOccByLoop, "Natural Ventilation [m3/s]");
     809         771 :         s->pdchOaOccAlTotVent = newPreDefColumn(state, s->pdstOAavgOccByLoop, "Total Ventilation [m3/s]");
     810         771 :         s->pdchOaOccAlSumDynTrgVent = newPreDefColumn(state, s->pdstOAavgOccByLoop, "Sum Zone Dynamic Target Ventilation - Voz-sum-dyn [m3/s]");
     811         771 :         s->pdchOaOccAlTmBelow = newPreDefColumn(state, s->pdstOAavgOccByLoop, "Time Below Voz-sum-dyn [hr]");
     812         771 :         s->pdchOaOccAlTmAt = newPreDefColumn(state, s->pdstOAavgOccByLoop, "Time At Voz-sum-dyn [hr]");
     813         771 :         s->pdchOaOccAlTmAbove = newPreDefColumn(state, s->pdstOAavgOccByLoop, "Time Above Voz-sum-dyn [hr]");
     814             : 
     815         771 :         s->pdstOAtimeFactorsDurOcc = newPreDefSubTable(state, s->pdrOutsideAirDetails, "Outdoor Air Controller Limiting Factors by AirLoop");
     816         771 :         s->pdchOaTmFctNoLimit = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "No Limiting Factor [hr]");        // todo
     817         771 :         s->pdchOaTmFctLimit = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "Limits and Scheduled Limits [hr]"); // todo
     818         771 :         s->pdchOaTmFctEcono = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "Economizer [hr]");                  // todo
     819         771 :         s->pdchOaTmFctExhaust = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "Exhaust Flow [hr]");              // todo
     820         771 :         s->pdchOaTmFctMixedLimit = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "Mixed Air Flow [hr]");         // todo
     821         771 :         s->pdchOaTmFctHiHumid = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "High Humidity [hr]");             // todo
     822         771 :         s->pdchOaTmFctDCV = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "Demand Controlled Ventilation [hr]"); // todo
     823         771 :         s->pdchOaTmFctNiteVent = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "Night Ventilation [hr]");        // todo
     824         771 :         s->pdchOaTmFctDemand = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "Demand Limiting [hr]");            // todo
     825         771 :         s->pdchOaTmFctEMS = newPreDefColumn(state, s->pdstOAtimeFactorsDurOcc, "Energy Management System [hr]");      // todo
     826             : 
     827         771 :         s->pdstOAavgFactorsDurOcc = newPreDefSubTable(state, s->pdrOutsideAirDetails, "Average Outdoor Air for Limiting Factors During Occupancy");
     828         771 :         s->pdchOaAvFctNoLimit = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "No Limiting Factor [m3/s]");        // todo
     829         771 :         s->pdchOaAvFctLimit = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "Limits and Scheduled Limits [m3/s]"); // todo
     830         771 :         s->pdchOaAvFctEcono = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "Economizer [m3/s]");                  // todo
     831         771 :         s->pdchOaAvFctExhaust = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "Exhaust Flow [m3/s]");              // todo
     832         771 :         s->pdchOaAvFctMixedLimit = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "Mixed Air Flow [m3/s]");         // todo
     833         771 :         s->pdchOaAvFctHiHumid = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "High Humidity [m3/s]");             // todo
     834         771 :         s->pdchOaAvFctDCV = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "Demand Controlled Ventilation [m3/s]"); // todo
     835         771 :         s->pdchOaAvFctNiteVent = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "Night Ventilation [m3/s]");        // todo
     836         771 :         s->pdchOaAvFctDemand = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "Demand Limiting [m3/s]");            // todo
     837         771 :         s->pdchOaAvFctEMS = newPreDefColumn(state, s->pdstOAavgFactorsDurOcc, "Energy Management System [m3/s]");      // todo
     838             : 
     839             :         // Object Count Report
     840         771 :         s->pdrObjCnt = newPreDefReport(state, "ObjectCountSummary", "Count", "Object Count Summary");
     841             : 
     842         771 :         s->pdstSurfCnt = newPreDefSubTable(state, s->pdrObjCnt, "Surfaces by Class");
     843         771 :         s->pdchSurfCntTot = newPreDefColumn(state, s->pdstSurfCnt, "Total");
     844         771 :         s->pdchSurfCntExt = newPreDefColumn(state, s->pdstSurfCnt, "Outdoors");
     845             : 
     846         771 :         s->pdstHVACcnt = newPreDefSubTable(state, s->pdrObjCnt, "HVAC");
     847         771 :         s->pdchHVACcntVal = newPreDefColumn(state, s->pdstHVACcnt, "Count");
     848             : 
     849         771 :         s->pdstFieldCnt = newPreDefSubTable(state, s->pdrObjCnt, "Input Fields");
     850         771 :         s->pdchFieldCntVal = newPreDefColumn(state, s->pdstFieldCnt, "Count");
     851             : 
     852             :         // Energy Meters report
     853         771 :         s->pdrEnergyMeters = newPreDefReport(state, "EnergyMeters", "Meters", "Energy Meters");
     854             : 
     855             :         // s->pdstEMvalues = newPreDefSubTable(state, s->pdrEnergyMeters,'Annual and Peak Values')
     856             :         // s->pdchEMannual = newPreDefColumn(state, s->pdstEMvalues,'Annual Value [GJ]')
     857             :         // s->pdchEMminvalue = newPreDefColumn(state, s->pdstEMvalues,'Minimum Value [J]')
     858             :         // s->pdchEMminvaluetime = newPreDefColumn(state, s->pdstEMvalues,'Timestamp of Minimum')
     859             :         // s->pdchEMmaxvalue = newPreDefColumn(state, s->pdstEMvalues,'Maximum Value [J]')
     860             :         // s->pdchEMmaxvaluetime = newPreDefColumn(state, s->pdstEMvalues,'Timestamp of Maximum')
     861             :         // Electricity Sub Table
     862         771 :         s->pdstEMelecvalues = newPreDefSubTable(state, s->pdrEnergyMeters, "Annual and Peak Values - Electricity");
     863         771 :         s->pdchEMelecannual = newPreDefColumn(state, s->pdstEMelecvalues, "Electricity Annual Value [GJ]");
     864         771 :         s->pdchEMelecminvalue = newPreDefColumn(state, s->pdstEMelecvalues, "Electricity Minimum Value [W]");
     865         771 :         s->pdchEMelecminvaluetime = newPreDefColumn(state, s->pdstEMelecvalues, "Timestamp of Minimum {TIMESTAMP}");
     866         771 :         s->pdchEMelecmaxvalue = newPreDefColumn(state, s->pdstEMelecvalues, "Electricity Maximum Value [W]");
     867         771 :         s->pdchEMelecmaxvaluetime = newPreDefColumn(state, s->pdstEMelecvalues, "Timestamp of Maximum {TIMESTAMP}");
     868             : 
     869             :         // Gas Sub Table
     870         771 :         s->pdstEMgasvalues = newPreDefSubTable(state, s->pdrEnergyMeters, "Annual and Peak Values - Natural Gas");
     871         771 :         s->pdchEMgasannual = newPreDefColumn(state, s->pdstEMgasvalues, "Natural Gas Annual Value [GJ]");
     872         771 :         s->pdchEMgasminvalue = newPreDefColumn(state, s->pdstEMgasvalues, "Natural Gas Minimum Value [W]");
     873         771 :         s->pdchEMgasminvaluetime = newPreDefColumn(state, s->pdstEMgasvalues, "Timestamp of Minimum {TIMESTAMP}");
     874         771 :         s->pdchEMgasmaxvalue = newPreDefColumn(state, s->pdstEMgasvalues, "Natural Gas Maximum Value [W]");
     875         771 :         s->pdchEMgasmaxvaluetime = newPreDefColumn(state, s->pdstEMgasvalues, "Timestamp of Maximum {TIMESTAMP}");
     876             : 
     877             :         // Cool SubTable
     878         771 :         s->pdstEMcoolvalues = newPreDefSubTable(state, s->pdrEnergyMeters, "Annual and Peak Values - Cooling");
     879         771 :         s->pdchEMcoolannual = newPreDefColumn(state, s->pdstEMcoolvalues, "Cooling Annual Value [GJ]");
     880         771 :         s->pdchEMcoolminvalue = newPreDefColumn(state, s->pdstEMcoolvalues, "Cooling Minimum Value [W]");
     881         771 :         s->pdchEMcoolminvaluetime = newPreDefColumn(state, s->pdstEMcoolvalues, "Timestamp of Minimum {TIMESTAMP}");
     882         771 :         s->pdchEMcoolmaxvalue = newPreDefColumn(state, s->pdstEMcoolvalues, "Cooling Maximum Value [W]");
     883         771 :         s->pdchEMcoolmaxvaluetime = newPreDefColumn(state, s->pdstEMcoolvalues, "Timestamp of Maximum {TIMESTAMP}");
     884             : 
     885             :         // Water SubTable
     886         771 :         s->pdstEMwatervalues = newPreDefSubTable(state, s->pdrEnergyMeters, "Annual and Peak Values - Water");
     887         771 :         s->pdchEMwaterannual = newPreDefColumn(state, s->pdstEMwatervalues, "Annual Value [m3]");
     888         771 :         s->pdchEMwaterminvalue = newPreDefColumn(state, s->pdstEMwatervalues, "Minimum Value [m3/s]");
     889         771 :         s->pdchEMwaterminvaluetime = newPreDefColumn(state, s->pdstEMwatervalues, "Timestamp of Minimum {TIMESTAMP}");
     890         771 :         s->pdchEMwatermaxvalue = newPreDefColumn(state, s->pdstEMwatervalues, "Maximum Value [m3/s]");
     891         771 :         s->pdchEMwatermaxvaluetime = newPreDefColumn(state, s->pdstEMwatervalues, "Timestamp of Maximum {TIMESTAMP}");
     892             : 
     893             :         // Other KG SubTable
     894         771 :         s->pdstEMotherKGvalues = newPreDefSubTable(state, s->pdrEnergyMeters, "Annual and Peak Values - Other by Weight/Mass");
     895         771 :         s->pdchEMotherKGannual = newPreDefColumn(state, s->pdstEMotherKGvalues, "Annual Value [kg]");
     896         771 :         s->pdchEMotherKGminvalue = newPreDefColumn(state, s->pdstEMotherKGvalues, "Minimum Value [kg/s]");
     897         771 :         s->pdchEMotherKGminvaluetime = newPreDefColumn(state, s->pdstEMotherKGvalues, "Timestamp of Minimum {TIMESTAMP}");
     898         771 :         s->pdchEMotherKGmaxvalue = newPreDefColumn(state, s->pdstEMotherKGvalues, "Maximum Value [kg/s]");
     899         771 :         s->pdchEMotherKGmaxvaluetime = newPreDefColumn(state, s->pdstEMotherKGvalues, "Timestamp of Maximum {TIMESTAMP}");
     900             : 
     901             :         // Other M3 SubTable
     902         771 :         s->pdstEMotherM3values = newPreDefSubTable(state, s->pdrEnergyMeters, "Annual and Peak Values - Other Volumetric");
     903         771 :         s->pdchEMotherM3annual = newPreDefColumn(state, s->pdstEMotherM3values, "Annual Value [m3]");
     904         771 :         s->pdchEMotherM3minvalue = newPreDefColumn(state, s->pdstEMotherM3values, "Minimum Value [m3/s]");
     905         771 :         s->pdchEMotherM3minvaluetime = newPreDefColumn(state, s->pdstEMotherM3values, "Timestamp of Minimum {TIMESTAMP}");
     906         771 :         s->pdchEMotherM3maxvalue = newPreDefColumn(state, s->pdstEMotherM3values, "Maximum Value [m3/s]");
     907         771 :         s->pdchEMotherM3maxvaluetime = newPreDefColumn(state, s->pdstEMotherM3values, "Timestamp of Maximum {TIMESTAMP}");
     908             : 
     909             :         // Other M3 SubTable
     910         771 :         s->pdstEMotherLvalues = newPreDefSubTable(state, s->pdrEnergyMeters, "Annual and Peak Values - Other Liquid/Gas");
     911         771 :         s->pdchEMotherLannual = newPreDefColumn(state, s->pdstEMotherLvalues, "Annual Value [L]");
     912         771 :         s->pdchEMotherLminvalue = newPreDefColumn(state, s->pdstEMotherLvalues, "Minimum Value [L]");
     913         771 :         s->pdchEMotherLminvaluetime = newPreDefColumn(state, s->pdstEMotherLvalues, "Timestamp of Minimum {TIMESTAMP}");
     914         771 :         s->pdchEMotherLmaxvalue = newPreDefColumn(state, s->pdstEMotherLvalues, "Maximum Value [L]");
     915         771 :         s->pdchEMotherLmaxvaluetime = newPreDefColumn(state, s->pdstEMotherLvalues, "Timestamp of Maximum {TIMESTAMP}");
     916             : 
     917             :         // Other J SubTable
     918         771 :         s->pdstEMotherJvalues = newPreDefSubTable(state, s->pdrEnergyMeters, "Annual and Peak Values - Other");
     919         771 :         s->pdchEMotherJannual = newPreDefColumn(state, s->pdstEMotherJvalues, "Annual Value [GJ]");
     920         771 :         s->pdchEMotherJminvalue = newPreDefColumn(state, s->pdstEMotherJvalues, "Minimum Value [W]");
     921         771 :         s->pdchEMotherJminvaluetime = newPreDefColumn(state, s->pdstEMotherJvalues, "Timestamp of Minimum {TIMESTAMP}");
     922         771 :         s->pdchEMotherJmaxvalue = newPreDefColumn(state, s->pdstEMotherJvalues, "Maximum Value [W]");
     923         771 :         s->pdchEMotherJmaxvaluetime = newPreDefColumn(state, s->pdstEMotherJvalues, "Timestamp of Maximum {TIMESTAMP}");
     924             : 
     925             :         // Sensible Heat Gain Component Report
     926         771 :         s->pdrSensibleGain = newPreDefReport(state, "SensibleHeatGainSummary", "SHGS", "Sensible Heat Gain Summary");
     927             : 
     928         771 :         s->pdstSHGSannual = newPreDefSubTable(state, s->pdrSensibleGain, "Annual Building Sensible Heat Gain Components");
     929             : 
     930         771 :         s->pdchSHGSAnZoneEqHt = newPreDefColumn(state, s->pdstSHGSannual, "HVAC Zone Eq & Other Sensible Air Heating [GJ]");
     931         771 :         s->pdchSHGSAnZoneEqCl = newPreDefColumn(state, s->pdstSHGSannual, "HVAC Zone Eq & Other Sensible Air Cooling [GJ]");
     932         771 :         s->pdchSHGSAnHvacATUHt = newPreDefColumn(state, s->pdstSHGSannual, "HVAC Terminal Unit Sensible Air Heating [GJ]");
     933         771 :         s->pdchSHGSAnHvacATUCl = newPreDefColumn(state, s->pdstSHGSannual, "HVAC Terminal Unit Sensible Air Cooling [GJ]");
     934         771 :         s->pdchSHGSAnSurfHt = newPreDefColumn(state, s->pdstSHGSannual, "HVAC Input Heated Surface Heating [GJ]");
     935         771 :         s->pdchSHGSAnSurfCl = newPreDefColumn(state, s->pdstSHGSannual, "HVAC Input Cooled Surface Cooling [GJ]");
     936         771 :         s->pdchSHGSAnPeoplAdd = newPreDefColumn(state, s->pdstSHGSannual, "People Sensible Heat Addition [GJ]");
     937         771 :         s->pdchSHGSAnLiteAdd = newPreDefColumn(state, s->pdstSHGSannual, "Lights Sensible Heat Addition [GJ]");
     938         771 :         s->pdchSHGSAnEquipAdd = newPreDefColumn(state, s->pdstSHGSannual, "Equipment Sensible Heat Addition [GJ]");
     939         771 :         s->pdchSHGSAnWindAdd = newPreDefColumn(state, s->pdstSHGSannual, "Window Heat Addition [GJ]");
     940         771 :         s->pdchSHGSAnIzaAdd = newPreDefColumn(state, s->pdstSHGSannual, "Interzone Air Transfer Heat Addition [GJ]");
     941         771 :         s->pdchSHGSAnInfilAdd = newPreDefColumn(state, s->pdstSHGSannual, "Infiltration Heat Addition [GJ]");
     942         771 :         s->pdchSHGSAnOtherAdd = newPreDefColumn(state, s->pdstSHGSannual, "Opaque Surface Conduction and Other Heat Addition [GJ]");
     943         771 :         s->pdchSHGSAnEquipRem = newPreDefColumn(state, s->pdstSHGSannual, "Equipment Sensible Heat Removal [GJ]");
     944         771 :         s->pdchSHGSAnWindRem = newPreDefColumn(state, s->pdstSHGSannual, "Window Heat Removal [GJ]");
     945         771 :         s->pdchSHGSAnIzaRem = newPreDefColumn(state, s->pdstSHGSannual, "Interzone Air Transfer Heat Removal [GJ]");
     946         771 :         s->pdchSHGSAnInfilRem = newPreDefColumn(state, s->pdstSHGSannual, "Infiltration Heat Removal [GJ]");
     947         771 :         s->pdchSHGSAnOtherRem = newPreDefColumn(state, s->pdstSHGSannual, "Opaque Surface Conduction and Other Heat Removal [GJ]");
     948             : 
     949         771 :         s->pdstSHGSpkCl = newPreDefSubTable(state, s->pdrSensibleGain, "Peak Cooling Sensible Heat Gain Components");
     950             : 
     951         771 :         s->pdchSHGSClTimePeak = newPreDefColumn(state, s->pdstSHGSpkCl, "Time of Peak {TIMESTAMP}");
     952         771 :         s->pdchSHGSClHvacHt = newPreDefColumn(state, s->pdstSHGSpkCl, "HVAC Zone Eq & Other Sensible Air Heating [W]");
     953         771 :         s->pdchSHGSClHvacCl = newPreDefColumn(state, s->pdstSHGSpkCl, "HVAC Zone Eq & Other Sensible Air Cooling [W]");
     954         771 :         s->pdchSHGSClHvacATUHt = newPreDefColumn(state, s->pdstSHGSpkCl, "HVAC Terminal Unit Sensible Air Heating [W]");
     955         771 :         s->pdchSHGSClHvacATUCl = newPreDefColumn(state, s->pdstSHGSpkCl, "HVAC Terminal Unit Sensible Air Cooling [W]");
     956         771 :         s->pdchSHGSClSurfHt = newPreDefColumn(state, s->pdstSHGSpkCl, "HVAC Input Heated Surface Heating [W]");
     957         771 :         s->pdchSHGSClSurfCl = newPreDefColumn(state, s->pdstSHGSpkCl, "HVAC Input Cooled Surface Cooling [W]");
     958         771 :         s->pdchSHGSClPeoplAdd = newPreDefColumn(state, s->pdstSHGSpkCl, "People Sensible Heat Addition [W]");
     959         771 :         s->pdchSHGSClLiteAdd = newPreDefColumn(state, s->pdstSHGSpkCl, "Lights Sensible Heat Addition [W]");
     960         771 :         s->pdchSHGSClEquipAdd = newPreDefColumn(state, s->pdstSHGSpkCl, "Equipment Sensible Heat Addition [W]");
     961         771 :         s->pdchSHGSClWindAdd = newPreDefColumn(state, s->pdstSHGSpkCl, "Window Heat Addition [W]");
     962         771 :         s->pdchSHGSClIzaAdd = newPreDefColumn(state, s->pdstSHGSpkCl, "Interzone Air Transfer Heat Addition [W]");
     963         771 :         s->pdchSHGSClInfilAdd = newPreDefColumn(state, s->pdstSHGSpkCl, "Infiltration Heat Addition [W]");
     964         771 :         s->pdchSHGSClOtherAdd = newPreDefColumn(state, s->pdstSHGSpkCl, "Opaque Surface Conduction and Other Heat Addition [W]");
     965         771 :         s->pdchSHGSClEquipRem = newPreDefColumn(state, s->pdstSHGSpkCl, "Equipment Sensible Heat Removal [W]");
     966         771 :         s->pdchSHGSClWindRem = newPreDefColumn(state, s->pdstSHGSpkCl, "Window Heat Removal [W]");
     967         771 :         s->pdchSHGSClIzaRem = newPreDefColumn(state, s->pdstSHGSpkCl, "Interzone Air Transfer Heat Removal [W]");
     968         771 :         s->pdchSHGSClInfilRem = newPreDefColumn(state, s->pdstSHGSpkCl, "Infiltration Heat Removal [W]");
     969         771 :         s->pdchSHGSClOtherRem = newPreDefColumn(state, s->pdstSHGSpkCl, "Opaque Surface Conduction and Other Heat Removal [W]");
     970             : 
     971         771 :         s->pdstSHGSpkHt = newPreDefSubTable(state, s->pdrSensibleGain, "Peak Heating Sensible Heat Gain Components");
     972             : 
     973         771 :         s->pdchSHGSHtTimePeak = newPreDefColumn(state, s->pdstSHGSpkHt, "Time of Peak {TIMESTAMP}");
     974         771 :         s->pdchSHGSHtHvacHt = newPreDefColumn(state, s->pdstSHGSpkHt, "HVAC Zone Eq & Other Sensible Air Heating [W]");
     975         771 :         s->pdchSHGSHtHvacCl = newPreDefColumn(state, s->pdstSHGSpkHt, "HVAC Zone Eq & Other Sensible Air Cooling [W]");
     976         771 :         s->pdchSHGSHtHvacATUHt = newPreDefColumn(state, s->pdstSHGSpkHt, "HVAC Terminal Unit Sensible Air Heating [W]");
     977         771 :         s->pdchSHGSHtHvacATUCl = newPreDefColumn(state, s->pdstSHGSpkHt, "HVAC Terminal Unit Sensible Air Cooling [W]");
     978         771 :         s->pdchSHGSHtSurfHt = newPreDefColumn(state, s->pdstSHGSpkHt, "HVAC Input Heated Surface Heating [W]");
     979         771 :         s->pdchSHGSHtSurfCl = newPreDefColumn(state, s->pdstSHGSpkHt, "HVAC Input Cooled Surface Cooling [W]");
     980         771 :         s->pdchSHGSHtPeoplAdd = newPreDefColumn(state, s->pdstSHGSpkHt, "People Sensible Heat Addition [W]");
     981         771 :         s->pdchSHGSHtLiteAdd = newPreDefColumn(state, s->pdstSHGSpkHt, "Lights Sensible Heat Addition [W]");
     982         771 :         s->pdchSHGSHtEquipAdd = newPreDefColumn(state, s->pdstSHGSpkHt, "Equipment Sensible Heat Addition [W]");
     983         771 :         s->pdchSHGSHtWindAdd = newPreDefColumn(state, s->pdstSHGSpkHt, "Window Heat Addition [W]");
     984         771 :         s->pdchSHGSHtIzaAdd = newPreDefColumn(state, s->pdstSHGSpkHt, "Interzone Air Transfer Heat Addition [W]");
     985         771 :         s->pdchSHGSHtInfilAdd = newPreDefColumn(state, s->pdstSHGSpkHt, "Infiltration Heat Addition [W]");
     986         771 :         s->pdchSHGSHtOtherAdd = newPreDefColumn(state, s->pdstSHGSpkHt, "Opaque Surface Conduction and Other Heat Addition [W]");
     987         771 :         s->pdchSHGSHtEquipRem = newPreDefColumn(state, s->pdstSHGSpkHt, "Equipment Sensible Heat Removal [W]");
     988         771 :         s->pdchSHGSHtWindRem = newPreDefColumn(state, s->pdstSHGSpkHt, "Window Heat Removal [W]");
     989         771 :         s->pdchSHGSHtIzaRem = newPreDefColumn(state, s->pdstSHGSpkHt, "Interzone Air Transfer Heat Removal [W]");
     990         771 :         s->pdchSHGSHtInfilRem = newPreDefColumn(state, s->pdstSHGSpkHt, "Infiltration Heat Removal [W]");
     991         771 :         s->pdchSHGSHtOtherRem = newPreDefColumn(state, s->pdstSHGSpkHt, "Opaque Surface Conduction and Other Heat Removal [W]");
     992             : 
     993             :         // Standard62Report
     994         771 :         if (state.dataGlobal->DoZoneSizing || state.dataGlobal->DoSystemSizing) {
     995         409 :             s->pdrStd62 = newPreDefReport(state, "Standard62.1Summary", "Std62", "Standard 62.1 Summary");
     996             : 
     997         409 :             s->pdstS62sysVentReqCool = newPreDefSubTable(state, s->pdrStd62, "System Ventilation Requirements for Cooling");
     998             : 
     999         409 :             s->pdchS62svrClSumVpz = newPreDefColumn(state, s->pdstS62sysVentReqCool, "Sum of Zone Primary Air Flow - Vpz-sum [m3/s]");
    1000         409 :             s->pdchS62svrClPs = newPreDefColumn(state, s->pdstS62sysVentReqCool, "System Population - Ps");
    1001         409 :             s->pdchS62svrClSumPz = newPreDefColumn(state, s->pdstS62sysVentReqCool, "Sum of Zone Population - Pz-sum");
    1002         409 :             s->pdchS62svrClD = newPreDefColumn(state, s->pdstS62sysVentReqCool, "Occupant Diversity - D");
    1003         409 :             s->pdchS62svrClDorg = newPreDefColumn(state, s->pdstS62sysVentReqCool, "Origin of D");
    1004         409 :             s->pdchS62svrClVou = newPreDefColumn(state, s->pdstS62sysVentReqCool, "Uncorrected Outdoor Air Intake Airflow - Vou [m3/s]");
    1005         409 :             s->pdchS62svrClVps = newPreDefColumn(state, s->pdstS62sysVentReqCool, "System Primary Airflow - Vps [m3/s]");
    1006         409 :             s->pdchS62svrClXs = newPreDefColumn(state, s->pdstS62sysVentReqCool, "Average Outdoor Air Fraction - Xs");
    1007         409 :             s->pdchS62svrClEv = newPreDefColumn(state, s->pdstS62sysVentReqCool, "System Ventilation Efficiency - Ev");
    1008         409 :             s->pdchS62svrClEvMthd = newPreDefColumn(state, s->pdstS62sysVentReqCool, "Calculation Method for Ev");
    1009         409 :             s->pdchS62svrClVot = newPreDefColumn(state, s->pdstS62sysVentReqCool, "Outdoor Air Intake Flow - Vot [m3/s]");
    1010         409 :             s->pdchS62svrClPercOA = newPreDefColumn(state, s->pdstS62sysVentReqCool, "Percent Outdoor Air - %OA");
    1011         409 :             s->pdchS62svrClEnvironmentOfPs = newPreDefColumn(state, s->pdstS62sysVentReqCool, "Environment Name of Peak System Population - Ps");
    1012         409 :             s->pdchS62svrClTimeOfPs = newPreDefColumn(state, s->pdstS62sysVentReqCool, "Date and Time of Last Peak System Population - Ps");
    1013             : 
    1014         409 :             s->pdstS62sysVentReqHeat = newPreDefSubTable(state, s->pdrStd62, "System Ventilation Requirements for Heating");
    1015             : 
    1016         409 :             s->pdchS62svrHtSumVpz = newPreDefColumn(state, s->pdstS62sysVentReqHeat, "Sum of Zone Primary Air Flow - Vpz-sum [m3/s]");
    1017         409 :             s->pdchS62svrHtPs = newPreDefColumn(state, s->pdstS62sysVentReqHeat, "System Population - Ps");
    1018         409 :             s->pdchS62svrHtSumPz = newPreDefColumn(state, s->pdstS62sysVentReqHeat, "Sum of Zone Population - Pz-sum");
    1019         409 :             s->pdchS62svrHtD = newPreDefColumn(state, s->pdstS62sysVentReqHeat, "Occupant Diversity - D");
    1020         409 :             s->pdchS62svrHtDorg = newPreDefColumn(state, s->pdstS62sysVentReqHeat, "Origin of D");
    1021         409 :             s->pdchS62svrHtVou = newPreDefColumn(state, s->pdstS62sysVentReqHeat, "Uncorrected Outdoor Air Intake Airflow - Vou [m3/s]");
    1022         409 :             s->pdchS62svrHtVps = newPreDefColumn(state, s->pdstS62sysVentReqHeat, "System Primary Airflow - Vps [m3/s]");
    1023         409 :             s->pdchS62svrHtXs = newPreDefColumn(state, s->pdstS62sysVentReqHeat, "Average Outdoor Air Fraction - Xs");
    1024         409 :             s->pdchS62svrHtEv = newPreDefColumn(state, s->pdstS62sysVentReqHeat, "System Ventilation Efficiency - Ev");
    1025         409 :             s->pdchS62svrHtEvMthd = newPreDefColumn(state, s->pdstS62sysVentReqHeat, "Calculation Method for Ev");
    1026         409 :             s->pdchS62svrHtVot = newPreDefColumn(state, s->pdstS62sysVentReqHeat, "Outdoor Air Intake Flow Vot [m3/s]");
    1027         409 :             s->pdchS62svrHtPercOA = newPreDefColumn(state, s->pdstS62sysVentReqHeat, "Percent Outdoor Air - %OA");
    1028         409 :             s->pdchS62svrHtEnvironmentOfPs = newPreDefColumn(state, s->pdstS62sysVentReqHeat, "Environment Name of Peak System Population - Ps");
    1029         409 :             s->pdchS62svrHtTimeOfPs = newPreDefColumn(state, s->pdstS62sysVentReqHeat, "Date and Time of Last Peak System Population - Ps");
    1030             : 
    1031         409 :             s->pdstS62znVentPar = newPreDefSubTable(state, s->pdrStd62, "Zone Ventilation Parameters");
    1032             : 
    1033         409 :             s->pdchS62zvpAlN = newPreDefColumn(state, s->pdstS62znVentPar, "AirLoop Name");
    1034         409 :             s->pdchS62zvpRp = newPreDefColumn(state, s->pdstS62znVentPar, "People Outdoor Air Rate - Rp [m3/s-person]");
    1035         409 :             s->pdchS62zvpPz = newPreDefColumn(state, s->pdstS62znVentPar, "Zone Population - Pz");
    1036         409 :             s->pdchS62zvpRa = newPreDefColumn(state, s->pdstS62znVentPar, "Area Outdoor Air Rate - Ra [m3/s-m2]");
    1037         409 :             s->pdchS62zvpAz = newPreDefColumn(state, s->pdstS62znVentPar, "Zone Floor Area - Az [m2]");
    1038         409 :             s->pdchS62zvpVbz = newPreDefColumn(state, s->pdstS62znVentPar, "Breathing Zone Outdoor Airflow - Vbz [m3/s]");
    1039         409 :             s->pdchS62zvpClEz = newPreDefColumn(state, s->pdstS62znVentPar, "Cooling Zone Air Distribution Effectiveness - Ez-clg");
    1040         409 :             s->pdchS62zvpClVoz = newPreDefColumn(state, s->pdstS62znVentPar, "Cooling Zone Outdoor Airflow - Voz-clg [m3/s]");
    1041         409 :             s->pdchS62zvpHtEz = newPreDefColumn(state, s->pdstS62znVentPar, "Heating Zone Air Distribution Effectiveness - Ez-htg");
    1042         409 :             s->pdchS62zvpHtVoz = newPreDefColumn(state, s->pdstS62znVentPar, "Heating Zone Outdoor Airflow - Voz-htg [m3/s]");
    1043             : 
    1044         409 :             s->pdstS62sysVentPar = newPreDefSubTable(state, s->pdrStd62, "System Ventilation Parameters");
    1045             : 
    1046         409 :             s->pdchS62svpRp = newPreDefColumn(state, s->pdstS62sysVentPar, "People Outdoor Air Rate - Rp [m3/s-person]");
    1047         409 :             s->pdchS62svpPz = newPreDefColumn(state, s->pdstS62sysVentPar, "Sum of Zone Population - Pz-sum");
    1048         409 :             s->pdchS62svpRa = newPreDefColumn(state, s->pdstS62sysVentPar, "Area Outdoor Air Rate - Ra [m3/s-m2]");
    1049         409 :             s->pdchS62svpAz = newPreDefColumn(state, s->pdstS62sysVentPar, "Sum of Zone Floor Area - Az-sum [m2]");
    1050         409 :             s->pdchS62svpVbz = newPreDefColumn(state, s->pdstS62sysVentPar, "Breathing Zone Outdoor Airflow - Vbz [m3/s]");
    1051         409 :             s->pdchS62svpClVoz = newPreDefColumn(state, s->pdstS62sysVentPar, "Cooling Zone Outdoor Airflow - Voz-clg [m3/s]");
    1052         409 :             s->pdchS62svpHtVoz = newPreDefColumn(state, s->pdstS62sysVentPar, "Heating Zone Outdoor Airflow - Voz-htg [m3/s]");
    1053             : 
    1054         409 :             s->pdstS62znCoolDes = newPreDefSubTable(state, s->pdrStd62, "Zone Ventilation Calculations for Cooling Design");
    1055             : 
    1056         409 :             s->pdchS62zcdAlN = newPreDefColumn(state, s->pdstS62znCoolDes, "AirLoop Name");
    1057         409 :             s->pdchS62zcdBox = newPreDefColumn(state, s->pdstS62znCoolDes, "Box Type");
    1058         409 :             s->pdchS62zcdVpz = newPreDefColumn(state, s->pdstS62znCoolDes, "Zone Primary Airflow - Vpz [m3/s]");
    1059             :             // s->pdchS62zcdVps =         newPreDefColumn(state, s->pdstS62znCoolDes,'System Primary Airflow - Vps [m3/s]')
    1060             :             // s->pdchS62zcdVsec =        newPreDefColumn(state, s->pdstS62znCoolDes,'Secondary Fan Airflow - Vsec [m3/s]')
    1061         409 :             s->pdchS62zcdVdz = newPreDefColumn(state, s->pdstS62znCoolDes, "Zone Discharge Airflow - Vdz [m3/s]");
    1062         409 :             s->pdchS62zcdVpzmin = newPreDefColumn(state, s->pdstS62znCoolDes, "Minimum Zone Primary Airflow - Vpz-min [m3/s]");
    1063         409 :             s->pdchS62zcdVpzminSPSize =
    1064         818 :                 newPreDefColumn(state, s->pdstS62znCoolDes, "Is Vpz-min calculated using the Standard 62.1 Simplified Procedure?");
    1065         409 :             s->pdchS62zcdVozclg = newPreDefColumn(state, s->pdstS62znCoolDes, "Zone Outdoor Airflow Cooling - Voz-clg [m3/s]");
    1066         409 :             s->pdchS62zcdZpz = newPreDefColumn(state, s->pdstS62znCoolDes, "Primary Outdoor Air Fraction - Zpz");
    1067         409 :             s->pdchS62zcdEp = newPreDefColumn(state, s->pdstS62znCoolDes, "Primary Air Fraction - Ep");
    1068         409 :             s->pdchS62zcdEr = newPreDefColumn(state, s->pdstS62znCoolDes, "Secondary Recirculation Fraction- Er");
    1069         409 :             s->pdchS62zcdFa = newPreDefColumn(state, s->pdstS62znCoolDes, "Supply Air Fraction- Fa");
    1070         409 :             s->pdchS62zcdFb = newPreDefColumn(state, s->pdstS62znCoolDes, "Mixed Air Fraction - Fb");
    1071         409 :             s->pdchS62zcdFc = newPreDefColumn(state, s->pdstS62znCoolDes, "Outdoor Air Fraction - Fc");
    1072         409 :             s->pdchS62zcdEvz = newPreDefColumn(state, s->pdstS62znCoolDes, "Zone Ventilation Efficiency - Evz");
    1073             : 
    1074         409 :             s->pdstS62sysCoolDes = newPreDefSubTable(state, s->pdrStd62, "System Ventilation Calculations for Cooling Design");
    1075             : 
    1076         409 :             s->pdchS62scdVpz = newPreDefColumn(state, s->pdstS62sysCoolDes, "Sum of Zone Primary Airflow - Vpz-sum [m3/s]");
    1077         409 :             s->pdchS62scdVps = newPreDefColumn(state, s->pdstS62sysCoolDes, "System Primary Airflow - Vps [m3/s]");
    1078             :             // s->pdchS62scdVsec =        newPreDefColumn(state, s->pdstS62sysCoolDes,'Secondary Fan Airflow - Vsec [m3/s]')
    1079         409 :             s->pdchS62scdVdz = newPreDefColumn(state, s->pdstS62sysCoolDes, "Sum of Zone Discharge Airflow - Vdz-sum [m3/s]");
    1080         409 :             s->pdchS62scdVpzmin = newPreDefColumn(state, s->pdstS62sysCoolDes, "Sum of Min Zone Primary Airflow - Vpz-min [m3/s]");
    1081         409 :             s->pdchS62scdVozclg = newPreDefColumn(state, s->pdstS62sysCoolDes, "Zone Outdoor Airflow Cooling - Voz-clg [m3/s]");
    1082         409 :             s->pdchS62scdEvz = newPreDefColumn(state, s->pdstS62sysCoolDes, "Zone Ventilation Efficiency - Evz-min");
    1083             : 
    1084         409 :             s->pdstS62znHeatDes = newPreDefSubTable(state, s->pdrStd62, "Zone Ventilation Calculations for Heating Design");
    1085             : 
    1086         409 :             s->pdchS62zhdAlN = newPreDefColumn(state, s->pdstS62znHeatDes, "AirLoop Name");
    1087         409 :             s->pdchS62zhdBox = newPreDefColumn(state, s->pdstS62znHeatDes, "Box Type");
    1088         409 :             s->pdchS62zhdVpz = newPreDefColumn(state, s->pdstS62znHeatDes, "Zone Primary Airflow - Vpz [m3/s]");
    1089             :             // s->pdchS62zhdVps =         newPreDefColumn(state, s->pdstS62znHeatDes,'System Primary Airflow - Vps [m3/s]')
    1090             :             // s->pdchS62zhdVsec =        newPreDefColumn(state, s->pdstS62znHeatDes,'Secondary Fan Airflow - Vsec [m3/s]')
    1091         409 :             s->pdchS62zhdVdz = newPreDefColumn(state, s->pdstS62znHeatDes, "Zone Discharge Airflow - Vdz [m3/s]");
    1092         409 :             s->pdchS62zhdVpzmin = newPreDefColumn(state, s->pdstS62znHeatDes, "Minimum Zone Primary Airflow - Vpz-min [m3/s]");
    1093         409 :             s->pdchS62zhdVpzminSPSize =
    1094         818 :                 newPreDefColumn(state, s->pdstS62znHeatDes, "Is Vpz-min calculated using the Standard 62.1 Simplified Procedure?");
    1095         409 :             s->pdchS62zhdVozhtg = newPreDefColumn(state, s->pdstS62znHeatDes, "Zone Outdoor Airflow Heating - Voz-htg [m3/s]");
    1096         409 :             s->pdchS62zhdZpz = newPreDefColumn(state, s->pdstS62znHeatDes, "Primary Outdoor Air Fraction - Zpz");
    1097         409 :             s->pdchS62zhdEp = newPreDefColumn(state, s->pdstS62znHeatDes, "Primary Air Fraction - Ep");
    1098         409 :             s->pdchS62zhdEr = newPreDefColumn(state, s->pdstS62znHeatDes, "Secondary Recirculation Fraction- Er");
    1099         409 :             s->pdchS62zhdFa = newPreDefColumn(state, s->pdstS62znHeatDes, "Supply Air Fraction- Fa");
    1100         409 :             s->pdchS62zhdFb = newPreDefColumn(state, s->pdstS62znHeatDes, "Mixed Air Fraction - Fb");
    1101         409 :             s->pdchS62zhdFc = newPreDefColumn(state, s->pdstS62znHeatDes, "Outdoor Air Fraction - Fc");
    1102         409 :             s->pdchS62zhdEvz = newPreDefColumn(state, s->pdstS62znHeatDes, "Zone Ventilation Efficiency - Evz");
    1103             : 
    1104         409 :             s->pdstS62sysHeatDes = newPreDefSubTable(state, s->pdrStd62, "System Ventilation Calculations for Heating Design");
    1105             : 
    1106         409 :             s->pdchS62shdVpz = newPreDefColumn(state, s->pdstS62sysHeatDes, "Sum of Zone Primary Airflow - Vpz-sum [m3/s]");
    1107         409 :             s->pdchS62shdVps = newPreDefColumn(state, s->pdstS62sysHeatDes, "System Primary Airflow - Vps [m3/s]");
    1108             :             // s->pdchS62shdVsec =        newPreDefColumn(state, s->pdstS62sysHeatDes,'Secondary Fan Airflow - Vsec [m3/s]')
    1109         409 :             s->pdchS62shdVdz = newPreDefColumn(state, s->pdstS62sysHeatDes, "Sum of Zone Discharge Airflow - Vdz-sum [m3/s]");
    1110         409 :             s->pdchS62shdVpzmin = newPreDefColumn(state, s->pdstS62sysHeatDes, "Sum of Min Zone Primary Airflow - Vpz-min [m3/s]");
    1111         409 :             s->pdchS62shdVozhtg = newPreDefColumn(state, s->pdstS62sysHeatDes, "Zone Outdoor Airflow Heating - Voz-htg [m3/s]");
    1112         409 :             s->pdchS62shdEvz = newPreDefColumn(state, s->pdstS62sysHeatDes, "Zone Ventilation Efficiency - Evz-min");
    1113             :         }
    1114             : 
    1115         771 :         s->pdrLeed = newPreDefReport(state, "LEEDsummary", "LEED", "LEED Summary");
    1116             : 
    1117         771 :         s->pdstLeedGenInfo = newPreDefSubTable(state, s->pdrLeed, "Sec1.1A-General Information");
    1118             :         // single column with rows of:
    1119             :         //    Principal Heating Source
    1120             :         //    Weather File
    1121             :         //    Climate Zone
    1122             :         //    Heating Degree Days
    1123             :         //    Cooling Degree Days
    1124             :         //    HDD and CDD data source
    1125             :         //    Total gross floor area
    1126         771 :         s->pdchLeedGenData = newPreDefColumn(state, s->pdstLeedGenInfo, "Data");
    1127             : 
    1128         771 :         s->pdstLeedSpaceUsageType = newPreDefSubTable(state, s->pdrLeed, "EAp2-1. Space Usage Type");
    1129         771 :         s->pdchLeedSutSpArea = newPreDefColumn(state, s->pdstLeedSpaceUsageType, "Space Area [m2]");
    1130         771 :         s->pdchLeedSutOcArea = newPreDefColumn(state, s->pdstLeedSpaceUsageType, "Regularly Occupied Area [m2]");
    1131         771 :         s->pdchLeedSutUnArea = newPreDefColumn(state, s->pdstLeedSpaceUsageType, "Unconditioned Area [m2]");
    1132         771 :         s->pdchLeedSutHrsWeek = newPreDefColumn(state, s->pdstLeedSpaceUsageType, "Typical Hours/Week in Operation [hr/wk]");
    1133             : 
    1134         771 :         s->pdstLeedAdvsMsg = newPreDefSubTable(state, s->pdrLeed, "EAp2-2. Advisory Messages");
    1135             :         // single column with rows of:
    1136             :         //    Number of hours heating loads not met
    1137             :         //    Number of hours cooling loads not met
    1138             :         //    Total
    1139             :         //    Difference
    1140             :         //    Number of warning messages
    1141             :         //    Number of error messages
    1142             :         //    Number of defaults overridden
    1143         771 :         s->pdchLeedAmData = newPreDefColumn(state, s->pdstLeedAdvsMsg, "Data");
    1144             : 
    1145         771 :         s->pdstLeedEneTypSum = newPreDefSubTable(state, s->pdrLeed, "EAp2-3. Energy Type Summary");
    1146             :         // multiple columns with rows of
    1147             :         //    Electricity
    1148             :         //    Natural Gas
    1149             :         //    <additional fuels>
    1150         771 :         s->pdchLeedEtsRtNm = newPreDefColumn(state, s->pdstLeedEneTypSum, "Utility Rate");
    1151         771 :         s->pdchLeedEtsVirt = newPreDefColumn(state, s->pdstLeedEneTypSum, "Virtual Rate [$/unit energy]");
    1152         771 :         s->pdchLeedEtsEneUnt = newPreDefColumn(state, s->pdstLeedEneTypSum, "Units of Energy");
    1153         771 :         s->pdchLeedEtsDemUnt = newPreDefColumn(state, s->pdstLeedEneTypSum, "Units of Demand");
    1154             : 
    1155         771 :         s->pdstLeedPerf = newPreDefSubTable(state, s->pdrLeed, "EAp2-4/5. Performance Rating Method Compliance");
    1156             :         // Multiple colums with rows of:
    1157             :         //     Interior Lighting
    1158             :         //     Exterior Lighting
    1159             :         //     Space Heating
    1160             :         //     Space Cooling
    1161             :         //     Pumps
    1162             :         //     Heat Rejection
    1163             :         //     Fans-Interior
    1164             :         //     Fans-Parking Garage
    1165             :         //     Service Water Heating
    1166             :         //     Receptacle Equipment
    1167             :         //     Interior Lighting (process)
    1168             :         //     Refrigeration Equipment
    1169             :         //     Cooking
    1170             :         //     Industrial Process
    1171             :         //     Elevators and Escalators
    1172             :         //     Total
    1173         771 :         s->pdchLeedPerfElEneUse = newPreDefColumn(state, s->pdstLeedPerf, "Electricity Energy Use [GJ]");
    1174         771 :         s->pdchLeedPerfElDem = newPreDefColumn(state, s->pdstLeedPerf, "Electricity Demand [W]");
    1175         771 :         s->pdchLeedPerfGasEneUse = newPreDefColumn(state, s->pdstLeedPerf, "Natural Gas Energy Use [GJ]");
    1176         771 :         s->pdchLeedPerfGasDem = newPreDefColumn(state, s->pdstLeedPerf, "Natural Gas Demand [W]");
    1177         771 :         s->pdchLeedPerfGasolineEneUse = newPreDefColumn(state, s->pdstLeedPerf, "Gasoline Use [GJ]");
    1178         771 :         s->pdchLeedPerfGasolineDem = newPreDefColumn(state, s->pdstLeedPerf, "Gasoline Demand [W]");
    1179         771 :         s->pdchLeedPerfDieselEneUse = newPreDefColumn(state, s->pdstLeedPerf, "Diesel Use [GJ]");
    1180         771 :         s->pdchLeedPerfDieselDem = newPreDefColumn(state, s->pdstLeedPerf, "Diesel Demand [W]");
    1181         771 :         s->pdchLeedPerfCoalEneUse = newPreDefColumn(state, s->pdstLeedPerf, "Coal Use [GJ]");
    1182         771 :         s->pdchLeedPerfCoalDem = newPreDefColumn(state, s->pdstLeedPerf, "Coal Demand [W]");
    1183         771 :         s->pdchLeedPerfFuelOil1EneUse = newPreDefColumn(state, s->pdstLeedPerf, "Fuel Oil No 1 Use [GJ]");
    1184         771 :         s->pdchLeedPerfFuelOil1Dem = newPreDefColumn(state, s->pdstLeedPerf, "Fuel Oil No 1 Demand [W]");
    1185         771 :         s->pdchLeedPerfFuelOil2EneUse = newPreDefColumn(state, s->pdstLeedPerf, "Fuel Oil No 2 Use [GJ]");
    1186         771 :         s->pdchLeedPerfFuelOil2Dem = newPreDefColumn(state, s->pdstLeedPerf, "Fuel Oil No 2 Demand [W]");
    1187         771 :         s->pdchLeedPerfPropaneEneUse = newPreDefColumn(state, s->pdstLeedPerf, "Propane Use [GJ]");
    1188         771 :         s->pdchLeedPerfPropaneDem = newPreDefColumn(state, s->pdstLeedPerf, "Propane Demand [W]");
    1189         771 :         s->pdchLeedPerfOtherFuel1EneUse = newPreDefColumn(state, s->pdstLeedPerf, "Other Fuel 1 Use [GJ]");
    1190         771 :         s->pdchLeedPerfOtherFuel1Dem = newPreDefColumn(state, s->pdstLeedPerf, "Other Fuel 1 Demand [W]");
    1191         771 :         s->pdchLeedPerfOtherFuel2EneUse = newPreDefColumn(state, s->pdstLeedPerf, "Other Fuel 2 Use [GJ]");
    1192         771 :         s->pdchLeedPerfOtherFuel2Dem = newPreDefColumn(state, s->pdstLeedPerf, "Other Fuel 2 Demand [W]");
    1193         771 :         s->pdchLeedPerfDisClEneUse = newPreDefColumn(state, s->pdstLeedPerf, "District Cooling Use [GJ]");
    1194         771 :         s->pdchLeedPerfDisClDem = newPreDefColumn(state, s->pdstLeedPerf, "District Cooling Demand [W]");
    1195         771 :         s->pdchLeedPerfDisHtEneUse = newPreDefColumn(state, s->pdstLeedPerf, "District Heating Use [GJ]");
    1196         771 :         s->pdchLeedPerfDisHtDem = newPreDefColumn(state, s->pdstLeedPerf, "District Heating Demand [W]");
    1197             : 
    1198         771 :         s->pdstLeedEneUseSum = newPreDefSubTable(state, s->pdrLeed, "EAp2-6. Energy Use Summary");
    1199             :         // Multiple columns with rows of:
    1200             :         //    Electricity
    1201             :         //    Natural Gas
    1202             :         //    <additional fuels>
    1203             :         //    Total
    1204         771 :         s->pdchLeedEusProc = newPreDefColumn(state, s->pdstLeedEneUseSum, "Process Subtotal [GJ]");
    1205         771 :         s->pdchLeedEusTotal = newPreDefColumn(state, s->pdstLeedEneUseSum, "Total Energy Use [GJ]");
    1206             : 
    1207         771 :         s->pdstLeedEneCostSum = newPreDefSubTable(state, s->pdrLeed, "EAp2-7. Energy Cost Summary");
    1208             :         // Multiple columns with rows of:
    1209             :         //    Electricity
    1210             :         //    Natural Gas
    1211             :         //    <additional fuels>
    1212             :         //    Total
    1213         771 :         s->pdchLeedEcsProc = newPreDefColumn(state, s->pdstLeedEneCostSum, "Process Subtotal [$]");
    1214         771 :         s->pdchLeedEcsTotal = newPreDefColumn(state, s->pdstLeedEneCostSum, "Total Energy Cost [$]");
    1215             : 
    1216         771 :         s->pdstLeedRenewSum = newPreDefSubTable(state, s->pdrLeed, "L-1. Renewable Energy Source Summary");
    1217             :         // Multiple columns with rows of each renewable source
    1218         771 :         s->pdchLeedRenRatCap = newPreDefColumn(state, s->pdstLeedRenewSum, "Rated Capacity [kW]");
    1219         771 :         s->pdchLeedRenAnGen = newPreDefColumn(state, s->pdstLeedRenewSum, "Annual Energy Generated [GJ]");
    1220             : 
    1221         771 :         s->pdstLeedEneUseIntEl = newPreDefSubTable(state, s->pdrLeed, "EAp2-17a. Energy Use Intensity - Electricity");
    1222             :         // Single column with rows of:
    1223             :         //    Interior lighting
    1224             :         //    Space heating
    1225             :         //    Space cooling
    1226             :         //    Fans-interior
    1227             :         //    Service water heating
    1228             :         //    Receptacle equipment
    1229             :         //    Miscellaneous
    1230             :         //    Subtotal
    1231         771 :         s->pdchLeedEuiElec = newPreDefColumn(state, s->pdstLeedEneUseIntEl, "Electricty [MJ/m2]");
    1232             : 
    1233         771 :         s->pdstLeedEneUseIntNatG = newPreDefSubTable(state, s->pdrLeed, "EAp2-17b. Energy Use Intensity - Natural Gas");
    1234             :         // Single column with rows of:
    1235             :         //    Space heating
    1236             :         //    Service water heating
    1237             :         //    Miscellaneous
    1238             :         //    Subtotal
    1239         771 :         s->pdchLeedEuiNatG = newPreDefColumn(state, s->pdstLeedEneUseIntNatG, "Natural Gas [MJ/m2]");
    1240             : 
    1241         771 :         s->pdstLeedEneUseIntOthr = newPreDefSubTable(state, s->pdrLeed, "EAp2-17c. Energy Use Intensity - Additional");
    1242             :         // Single column with rows of:
    1243             :         //    Miscellaneous
    1244             :         //    Subtotal
    1245         771 :         s->pdchLeedEuiOthr = newPreDefColumn(state, s->pdstLeedEneUseIntOthr, "Additional [MJ/m2]");
    1246             : 
    1247         771 :         s->pdstLeedEneUsePerc = newPreDefSubTable(state, s->pdrLeed, "EAp2-18. End Use Percentage");
    1248             :         // single column with rows of:
    1249             :         //    Interior Lighting
    1250             :         //    Space heating
    1251             :         //    Space cooling
    1252             :         //    Fans-Interior
    1253             :         //    Service Water Heating
    1254             :         //    Receptacle Equipment
    1255             :         //    Miscellaneous
    1256         771 :         s->pdchLeedEupPerc = newPreDefColumn(state, s->pdstLeedEneUsePerc, "Percent [%]");
    1257             : 
    1258         771 :         s->pdstLeedEqFlLdHrs = newPreDefSubTable(state, s->pdrLeed, "Schedules-Equivalent Full Load Hours (Schedule Type=Fraction)");
    1259         771 :         s->pdchLeedEflhEflh = newPreDefColumn(state, s->pdstLeedEqFlLdHrs, "Equivalent Full Load Hours of Operation Per Year [hr]");
    1260         771 :         s->pdchLeedEflhNonZerHrs = newPreDefColumn(state, s->pdstLeedEqFlLdHrs, "Hours > 1% [hr]");
    1261             : 
    1262         771 :         s->pdstLeedSchedSetPts = newPreDefSubTable(state, s->pdrLeed, "Schedules-SetPoints (Schedule Type=Temperature)");
    1263         771 :         s->pdChLeedSchStPtFirstObjUsed = newPreDefColumn(state, s->pdstLeedSchedSetPts, "First Object Used");
    1264         771 :         s->pdChLeedSchStPtMonthUsed = newPreDefColumn(state, s->pdstLeedSchedSetPts, "Month Assumed");
    1265         771 :         s->pdchLeedSchStPt11amWednesday = newPreDefColumn(state, s->pdstLeedSchedSetPts, "11am First Wednesday [C]");
    1266         771 :         s->pdchLeedSchStPt11amWedCnt = newPreDefColumn(state, s->pdstLeedSchedSetPts, "Days with Same 11am Value");
    1267         771 :         s->pdchLeedSchStPt11pmWednesday = newPreDefColumn(state, s->pdstLeedSchedSetPts, "11pm First Wednesday [C]");
    1268         771 :         s->pdchLeedSchStPt11pmWedCnt = newPreDefColumn(state, s->pdstLeedSchedSetPts, "Days with Same 11pm Value");
    1269             : 
    1270         771 :         s->pdrCO2Resilience = newPreDefReport(state, "CO2ResilienceSummary", "CO2R", "Annual CO2 Resilience Summary");
    1271             : 
    1272         771 :         s->pdstCO2Hours = newPreDefSubTable(state, s->pdrCO2Resilience, "CO2 Level Hours");
    1273         771 :         s->pdchCO2HourSafe = newPreDefColumn(state, s->pdstCO2Hours, "Safe (<= 1000 ppm) [hr]");
    1274         771 :         s->pdchCO2HourCaution = newPreDefColumn(state, s->pdstCO2Hours, "Caution (> 1000, <= 5000 ppm) [hr]");
    1275         771 :         s->pdchCO2HourHazard = newPreDefColumn(state, s->pdstCO2Hours, "Hazard (> 5000 ppm) [hr]");
    1276             : 
    1277         771 :         s->pdstCO2OccuHours = newPreDefSubTable(state, s->pdrCO2Resilience, "CO2 Level OccupantHours");
    1278         771 :         s->pdchCO2OccuHourSafe = newPreDefColumn(state, s->pdstCO2OccuHours, "Safe (<= 1000 ppm) [hr]");
    1279         771 :         s->pdchCO2OccuHourCaution = newPreDefColumn(state, s->pdstCO2OccuHours, "Caution (> 1000, <= 5000 ppm) [hr]");
    1280         771 :         s->pdchCO2OccuHourHazard = newPreDefColumn(state, s->pdstCO2OccuHours, "Hazard (> 5000 ppm) [hr]");
    1281             : 
    1282         771 :         s->pdstCO2OccupiedHours = newPreDefSubTable(state, s->pdrCO2Resilience, "CO2 Level OccupiedHours");
    1283         771 :         s->pdchCO2OccupiedHourSafe = newPreDefColumn(state, s->pdstCO2OccupiedHours, "Safe (<= 1000 ppm) [hr]");
    1284         771 :         s->pdchCO2OccupiedHourCaution = newPreDefColumn(state, s->pdstCO2OccupiedHours, "Caution (> 1000, <= 5000 ppm) [hr]");
    1285         771 :         s->pdchCO2OccupiedHourHazard = newPreDefColumn(state, s->pdstCO2OccupiedHours, "Hazard (> 5000 ppm) [hr]");
    1286             : 
    1287         771 :         s->pdrVisualResilience = newPreDefReport(state, "VisualResilienceSummary", "VisualR", "Annual Visual Resilience Summary");
    1288             : 
    1289         771 :         s->pdstIllumHours = newPreDefSubTable(state, s->pdrVisualResilience, "Illuminance Level Hours");
    1290         771 :         s->pdchIllumHourDark = newPreDefColumn(state, s->pdstIllumHours, "A Bit Dark (<= 100 lux) [hr]");
    1291         771 :         s->pdchIllumHourDim = newPreDefColumn(state, s->pdstIllumHours, "Dim (> 100, <= 300 lux) [hr]");
    1292         771 :         s->pdchIllumHourAdequate = newPreDefColumn(state, s->pdstIllumHours, "Adequate (> 300, <= 500 lux) [hr]");
    1293         771 :         s->pdchIllumHourBright = newPreDefColumn(state, s->pdstIllumHours, "Bright (>500 lux) [hr]");
    1294             : 
    1295         771 :         s->pdstIllumOccuHours = newPreDefSubTable(state, s->pdrVisualResilience, "Illuminance Level OccupantHours");
    1296         771 :         s->pdchIllumOccuHourDark = newPreDefColumn(state, s->pdstIllumOccuHours, "A Bit Dark (<= 100 lux) [hr]");
    1297         771 :         s->pdchIllumOccuHourDim = newPreDefColumn(state, s->pdstIllumOccuHours, "Dim (> 100, <= 300 lux) [hr]");
    1298         771 :         s->pdchIllumOccuHourAdequate = newPreDefColumn(state, s->pdstIllumOccuHours, "Adequate (> 300, <= 500 lux) [hr]");
    1299         771 :         s->pdchIllumOccuHourBright = newPreDefColumn(state, s->pdstIllumOccuHours, "Bright (>500 lux) [hr]");
    1300             : 
    1301         771 :         s->pdstIllumOccupiedHours = newPreDefSubTable(state, s->pdrVisualResilience, "Illuminance Level OccupiedHours");
    1302         771 :         s->pdchIllumOccupiedHourDark = newPreDefColumn(state, s->pdstIllumOccupiedHours, "A Bit Dark (<= 100 lux) [hr]");
    1303         771 :         s->pdchIllumOccupiedHourDim = newPreDefColumn(state, s->pdstIllumOccupiedHours, "Dim (> 100, <= 300 lux) [hr]");
    1304         771 :         s->pdchIllumOccupiedHourAdequate = newPreDefColumn(state, s->pdstIllumOccupiedHours, "Adequate (> 300, <= 500 lux) [hr]");
    1305         771 :         s->pdchIllumOccupiedHourBright = newPreDefColumn(state, s->pdstIllumOccupiedHours, "Bright (>500 lux) [hr]");
    1306         771 :     }
    1307             : 
    1308     2370880 :     void PreDefTableEntry(
    1309             :         EnergyPlusData &state, int const columnIndex, std::string_view objName, Real64 const tableEntryReal, Optional_int_const numSigDigits)
    1310             :     {
    1311             :         // SUBROUTINE INFORMATION:
    1312             :         //       AUTHOR         Jason Glazer
    1313             :         //       DATE WRITTEN   August 2006
    1314             :         //       MODIFIED
    1315             :         //       RE-ENGINEERED  na
    1316             : 
    1317             :         // PURPOSE OF THIS SUBROUTINE:
    1318             :         //   Creates an entry for predefined tables when the entry
    1319             :         //   is a real variable
    1320             : 
    1321             :         // METHODOLOGY EMPLOYED:
    1322             :         //   Simple assignments to public variables.
    1323             : 
    1324             :         // REFERENCES:
    1325             :         // na
    1326             : 
    1327             :         // USE STATEMENTS:
    1328             : 
    1329             :         // Locals
    1330             :         // SUBROUTINE ARGUMENT DEFINITIONS:
    1331             : 
    1332             :         // SUBROUTINE PARAMETER DEFINITIONS:
    1333             : 
    1334             :         // INTERFACE BLOCK SPECIFICATIONS:
    1335             :         // na
    1336             : 
    1337             :         // DERIVED TYPE DEFINITIONS:
    1338             :         // na
    1339             : 
    1340             :         // SUBROUTINE LOCAL VARIABLE DECLARATIONS:
    1341             :         int sigDigitCount;
    1342     4741760 :         std::string stringEntry;
    1343             : 
    1344     2370880 :         incrementTableEntry(state);
    1345             :         // check for number of significant digits
    1346     2370880 :         if (present(numSigDigits)) {
    1347     1035129 :             if ((numSigDigits <= 9) && (numSigDigits >= 0)) {
    1348     1035129 :                 sigDigitCount = numSigDigits;
    1349             :             } else {
    1350           0 :                 sigDigitCount = 2;
    1351             :             }
    1352             :         } else {
    1353     1335751 :             sigDigitCount = 2;
    1354             :         }
    1355             : 
    1356     2370880 :         if (tableEntryReal < 1e8) { // change from 1e10 for more robust entry writing
    1357             :             // something changed in FMT 7.x and "{:#12.{}F}" now outputs 13. So changing it to 11.{}F to maintain existing functionality. Likely
    1358             :             // related to https://github.com/fmtlib/fmt/issues/1893
    1359     4741664 :             state.dataOutRptPredefined->tableEntry(state.dataOutRptPredefined->numTableEntry).charEntry =
    1360     7112496 :                 format("{:#11.{}F}", tableEntryReal, sigDigitCount);
    1361             :         } else {
    1362             :             // Formatting in scientific notation, zero sigDigits makes zero sense.
    1363             :             // **for something greater than 1E+08**, one sigDigits is very unhelpful (you're having an accuracy of 0.5E+07 at best)
    1364          48 :             if (sigDigitCount < 2) {
    1365           0 :                 sigDigitCount = 2;
    1366             :             }
    1367          96 :             state.dataOutRptPredefined->tableEntry(state.dataOutRptPredefined->numTableEntry).charEntry =
    1368         144 :                 format("{:12.{}Z}", tableEntryReal, sigDigitCount);
    1369             :         }
    1370             : 
    1371     2370880 :         if (state.dataOutRptPredefined->tableEntry(state.dataOutRptPredefined->numTableEntry).charEntry.size() > 12) {
    1372         349 :             state.dataOutRptPredefined->tableEntry(state.dataOutRptPredefined->numTableEntry).charEntry = "  Too Big";
    1373             :         }
    1374             : 
    1375     2370880 :         state.dataOutRptPredefined->tableEntry(state.dataOutRptPredefined->numTableEntry).objectName = objName;
    1376     2370880 :         state.dataOutRptPredefined->tableEntry(state.dataOutRptPredefined->numTableEntry).indexColumn = columnIndex;
    1377     2370880 :         state.dataOutRptPredefined->tableEntry(state.dataOutRptPredefined->numTableEntry).origRealEntry = tableEntryReal;
    1378     2370880 :         state.dataOutRptPredefined->tableEntry(state.dataOutRptPredefined->numTableEntry).significantDigits = sigDigitCount;
    1379     2370880 :         state.dataOutRptPredefined->tableEntry(state.dataOutRptPredefined->numTableEntry).origEntryIsReal = true;
    1380     2370880 :     }
    1381             : 
    1382      621850 :     void PreDefTableEntry(EnergyPlusData &state, int const columnIndex, std::string_view objName, std::string_view tableEntryChar)
    1383             :     {
    1384             :         // SUBROUTINE INFORMATION:
    1385             :         //       AUTHOR         Jason Glazer
    1386             :         //       DATE WRITTEN   August 2006
    1387             :         //       MODIFIED
    1388             :         //       RE-ENGINEERED  na
    1389             : 
    1390             :         // PURPOSE OF THIS SUBROUTINE:
    1391             :         //   Creates an entry for predefined tables when the entry
    1392             :         //   is a character variable
    1393             : 
    1394             :         // METHODOLOGY EMPLOYED:
    1395             :         //   Simple assignments to public variables.
    1396             : 
    1397             :         // REFERENCES:
    1398             :         // na
    1399             : 
    1400             :         // USE STATEMENTS:
    1401             : 
    1402             :         // Locals
    1403             :         // SUBROUTINE ARGUMENT DEFINITIONS:
    1404             : 
    1405             :         // SUBROUTINE PARAMETER DEFINITIONS:
    1406             :         // na
    1407             : 
    1408             :         // INTERFACE BLOCK SPECIFICATIONS:
    1409             :         // na
    1410             : 
    1411             :         // DERIVED TYPE DEFINITIONS:
    1412             :         // na
    1413             : 
    1414             :         // SUBROUTINE LOCAL VARIABLE DECLARATIONS:
    1415             : 
    1416      621850 :         incrementTableEntry(state);
    1417      621850 :         state.dataOutRptPredefined->tableEntry(state.dataOutRptPredefined->numTableEntry).charEntry = tableEntryChar;
    1418      621850 :         state.dataOutRptPredefined->tableEntry(state.dataOutRptPredefined->numTableEntry).objectName = objName;
    1419      621850 :         state.dataOutRptPredefined->tableEntry(state.dataOutRptPredefined->numTableEntry).indexColumn = columnIndex;
    1420      621850 :     }
    1421             : 
    1422       45391 :     void PreDefTableEntry(EnergyPlusData &state, int const columnIndex, std::string_view objName, int const tableEntryInt)
    1423             :     {
    1424             :         // SUBROUTINE INFORMATION:
    1425             :         //       AUTHOR         Jason Glazer
    1426             :         //       DATE WRITTEN   August 2006
    1427             :         //       MODIFIED
    1428             :         //       RE-ENGINEERED  na
    1429             : 
    1430             :         // PURPOSE OF THIS SUBROUTINE:
    1431             :         //   Creates an entry for predefined tables when the entry
    1432             :         //   is a integer variable
    1433             : 
    1434             :         // METHODOLOGY EMPLOYED:
    1435             :         //   Simple assignments to public variables.
    1436             : 
    1437             :         // REFERENCES:
    1438             :         // na
    1439             : 
    1440             :         // USE STATEMENTS:
    1441             : 
    1442             :         // Locals
    1443             :         // SUBROUTINE ARGUMENT DEFINITIONS:
    1444             : 
    1445             :         // SUBROUTINE PARAMETER DEFINITIONS:
    1446             : 
    1447             :         // INTERFACE BLOCK SPECIFICATIONS:
    1448             :         // na
    1449             : 
    1450             :         // DERIVED TYPE DEFINITIONS:
    1451             :         // na
    1452             : 
    1453             :         // SUBROUTINE LOCAL VARIABLE DECLARATIONS:
    1454             : 
    1455       45391 :         incrementTableEntry(state);
    1456             :         // convert the integer to a string
    1457       45391 :         state.dataOutRptPredefined->tableEntry(state.dataOutRptPredefined->numTableEntry).charEntry = format("{:12}", tableEntryInt);
    1458       45391 :         state.dataOutRptPredefined->tableEntry(state.dataOutRptPredefined->numTableEntry).objectName = objName;
    1459       45391 :         state.dataOutRptPredefined->tableEntry(state.dataOutRptPredefined->numTableEntry).indexColumn = columnIndex;
    1460       45391 :     }
    1461             : 
    1462           0 :     std::string RetrievePreDefTableEntry(EnergyPlusData &state, int const columnIndex, std::string_view objName)
    1463             :     {
    1464           0 :         for (int iTableEntry = 1; iTableEntry <= state.dataOutRptPredefined->numTableEntry; ++iTableEntry) {
    1465           0 :             if (state.dataOutRptPredefined->tableEntry(iTableEntry).indexColumn == columnIndex &&
    1466           0 :                 state.dataOutRptPredefined->tableEntry(iTableEntry).objectName == objName) {
    1467           0 :                 return trimmed(ljustified(state.dataOutRptPredefined->tableEntry(iTableEntry).charEntry));
    1468             :             }
    1469             :         }
    1470           0 :         return "NOT FOUND";
    1471             :     }
    1472             : 
    1473     3038121 :     void incrementTableEntry(EnergyPlusData &state)
    1474             :     {
    1475             :         // SUBROUTINE INFORMATION:
    1476             :         //       AUTHOR         Jason Glazer
    1477             :         //       DATE WRITTEN   August 2006
    1478             :         //       MODIFIED
    1479             :         //       RE-ENGINEERED  na
    1480             : 
    1481             :         // PURPOSE OF THIS SUBROUTINE:
    1482             :         //   Manages the resizing of the TableEntry Array
    1483             : 
    1484             :         // METHODOLOGY EMPLOYED:
    1485             :         //   Simple assignments to public variables.
    1486             : 
    1487             :         // REFERENCES:
    1488             :         // na
    1489             : 
    1490             :         // USE STATEMENTS:
    1491             : 
    1492             :         // SUBROUTINE ARGUMENT DEFINITIONS:
    1493             :         // na
    1494             : 
    1495             :         // SUBROUTINE PARAMETER DEFINITIONS:
    1496             :         // na
    1497             : 
    1498             :         // INTERFACE BLOCK SPECIFICATIONS:
    1499             :         // na
    1500             : 
    1501             :         // DERIVED TYPE DEFINITIONS:
    1502             :         // na
    1503             : 
    1504             :         // SUBROUTINE LOCAL VARIABLE DECLARATIONS:
    1505     3038121 :         if (!allocated(state.dataOutRptPredefined->tableEntry)) {
    1506         771 :             state.dataOutRptPredefined->tableEntry.allocate(sizeIncrement);
    1507         771 :             state.dataOutRptPredefined->sizeTableEntry = sizeIncrement;
    1508         771 :             state.dataOutRptPredefined->numTableEntry = 1;
    1509             :         } else {
    1510     3037350 :             ++state.dataOutRptPredefined->numTableEntry;
    1511             :             // if larger than current size grow the array
    1512     3037350 :             if (state.dataOutRptPredefined->numTableEntry > state.dataOutRptPredefined->sizeTableEntry) {
    1513        8170 :                 state.dataOutRptPredefined->tableEntry.redimension(
    1514        4085 :                     state.dataOutRptPredefined->sizeTableEntry *=
    1515       12255 :                     2); // Tuned Changed += sizeIncrement to *= 2 for reduced heap allocations (at some space cost)
    1516             :             }
    1517             :         }
    1518     3038121 :     }
    1519             : 
    1520       65732 :     void AddCompSizeTableEntry(
    1521             :         EnergyPlusData &state, std::string_view FieldType, std::string_view FieldName, std::string_view FieldDescription, Real64 const FieldValue)
    1522             :     {
    1523             :         // SUBROUTINE INFORMATION:
    1524             :         //       AUTHOR         Jason Glazer
    1525             :         //       DATE WRITTEN   July 2007
    1526             :         //       MODIFIED
    1527             :         //       RE-ENGINEERED  na
    1528             : 
    1529             :         // PURPOSE OF THIS SUBROUTINE:
    1530             :         //   Creates an entry for component size tables.
    1531             : 
    1532             :         // METHODOLOGY EMPLOYED:
    1533             :         //   Simple assignments to public variables.
    1534             : 
    1535             :         // REFERENCES:
    1536             :         // na
    1537             : 
    1538             :         // USE STATEMENTS:
    1539             : 
    1540             :         // Locals
    1541             :         // SUBROUTINE ARGUMENT DEFINITIONS:
    1542             : 
    1543             :         // SUBROUTINE PARAMETER DEFINITIONS:
    1544             :         // na
    1545             : 
    1546             :         // INTERFACE BLOCK SPECIFICATIONS:
    1547             :         // na
    1548             : 
    1549             :         // DERIVED TYPE DEFINITIONS:
    1550             :         // na
    1551             : 
    1552             :         // SUBROUTINE LOCAL VARIABLE DECLARATIONS:
    1553             : 
    1554       65732 :         if (!allocated(state.dataOutRptPredefined->CompSizeTableEntry)) {
    1555         633 :             state.dataOutRptPredefined->CompSizeTableEntry.allocate(sizeIncrement);
    1556         633 :             state.dataOutRptPredefined->sizeCompSizeTableEntry = sizeIncrement;
    1557         633 :             state.dataOutRptPredefined->numCompSizeTableEntry = 1;
    1558             :         } else {
    1559       65099 :             ++state.dataOutRptPredefined->numCompSizeTableEntry;
    1560             :             // if larger than current size grow the array
    1561       65099 :             if (state.dataOutRptPredefined->numCompSizeTableEntry > state.dataOutRptPredefined->sizeCompSizeTableEntry) {
    1562         624 :                 state.dataOutRptPredefined->CompSizeTableEntry.redimension(
    1563         312 :                     state.dataOutRptPredefined->sizeCompSizeTableEntry *=
    1564         936 :                     2); // Tuned Changed += sizeIncrement to *= 2 for reduced heap allocations (at some space cost)
    1565             :             }
    1566             :         }
    1567       65732 :         state.dataOutRptPredefined->CompSizeTableEntry(state.dataOutRptPredefined->numCompSizeTableEntry).typeField = FieldType;
    1568       65732 :         state.dataOutRptPredefined->CompSizeTableEntry(state.dataOutRptPredefined->numCompSizeTableEntry).nameField = FieldName;
    1569       65732 :         state.dataOutRptPredefined->CompSizeTableEntry(state.dataOutRptPredefined->numCompSizeTableEntry).description = FieldDescription;
    1570       65732 :         state.dataOutRptPredefined->CompSizeTableEntry(state.dataOutRptPredefined->numCompSizeTableEntry).valField = FieldValue;
    1571       65732 :     }
    1572             : 
    1573           0 :     void AddShadowRelateTableEntry(EnergyPlusData &state, int const castingField, int const receivingField, int const receivingKind)
    1574             :     {
    1575             :         // SUBROUTINE INFORMATION:
    1576             :         //       AUTHOR         Jason Glazer
    1577             :         //       DATE WRITTEN   July 2007
    1578             :         //       MODIFIED
    1579             :         //       RE-ENGINEERED  na
    1580             : 
    1581             :         // PURPOSE OF THIS SUBROUTINE:
    1582             :         //   Creates an entry for any shadow hierarchy tables that consist
    1583             :         //   of items and one or more subitems for each item.
    1584             : 
    1585             :         // METHODOLOGY EMPLOYED:
    1586             :         //   Simple assignments to public variables.
    1587             : 
    1588             :         // REFERENCES:
    1589             :         // na
    1590             : 
    1591             :         // USE STATEMENTS:
    1592             : 
    1593             :         // Locals
    1594             :         // SUBROUTINE ARGUMENT DEFINITIONS:
    1595             :         // CHARACTER(len=*),INTENT(IN)  :: castingField
    1596             :         // CHARACTER(len=*),INTENT(IN)  :: receivingField
    1597             : 
    1598             :         // SUBROUTINE PARAMETER DEFINITIONS:
    1599             :         // na
    1600             : 
    1601             :         // INTERFACE BLOCK SPECIFICATIONS:
    1602             :         // na
    1603             : 
    1604             :         // DERIVED TYPE DEFINITIONS:
    1605             :         // na
    1606             : 
    1607             :         // SUBROUTINE LOCAL VARIABLE DECLARATIONS:
    1608             : 
    1609           0 :         if (!allocated(state.dataOutRptPredefined->ShadowRelate)) {
    1610           0 :             state.dataOutRptPredefined->ShadowRelate.allocate(sizeIncrement);
    1611           0 :             state.dataOutRptPredefined->sizeShadowRelate = sizeIncrement;
    1612           0 :             state.dataOutRptPredefined->numShadowRelate = 1;
    1613             :         } else {
    1614           0 :             ++state.dataOutRptPredefined->numShadowRelate;
    1615             :             // if larger than current size grow the array
    1616           0 :             if (state.dataOutRptPredefined->numShadowRelate > state.dataOutRptPredefined->sizeShadowRelate) {
    1617           0 :                 state.dataOutRptPredefined->ShadowRelate.redimension(
    1618           0 :                     state.dataOutRptPredefined->sizeShadowRelate *=
    1619           0 :                     2); // Tuned Changed += sizeIncrement to *= 2 for reduced heap allocations (at some space cost)
    1620             :             }
    1621             :         }
    1622           0 :         state.dataOutRptPredefined->ShadowRelate(state.dataOutRptPredefined->numShadowRelate).castSurf = castingField;
    1623           0 :         state.dataOutRptPredefined->ShadowRelate(state.dataOutRptPredefined->numShadowRelate).recSurf = receivingField;
    1624           0 :         state.dataOutRptPredefined->ShadowRelate(state.dataOutRptPredefined->numShadowRelate).recKind = receivingKind;
    1625           0 :     }
    1626             : 
    1627       12745 :     int newPreDefReport(EnergyPlusData &state, std::string_view inReportName, std::string_view inReportAbrev, std::string_view inReportNamewithSpaces)
    1628             :     {
    1629             :         // SUBROUTINE INFORMATION:
    1630             :         //       AUTHOR         Jason Glazer
    1631             :         //       DATE WRITTEN   August 2006
    1632             :         //       MODIFIED
    1633             :         //       RE-ENGINEERED  na
    1634             : 
    1635             :         // PURPOSE OF THIS SUBROUTINE:
    1636             :         //   Creates a new index for the next predefined report
    1637             : 
    1638             :         // METHODOLOGY EMPLOYED:
    1639             :         // na
    1640             : 
    1641             :         // REFERENCES:
    1642             :         // na
    1643             : 
    1644             :         // USE STATEMENTS:
    1645             : 
    1646             :         // Return value
    1647             :         int newPreDefReport;
    1648             : 
    1649             :         // Locals
    1650             :         // SUBROUTINE ARGUMENT DEFINITIONS:
    1651             :         // na
    1652             : 
    1653             :         // SUBROUTINE PARAMETER DEFINITIONS:
    1654             : 
    1655             :         // INTERFACE BLOCK SPECIFICATIONS:
    1656             :         // na
    1657             : 
    1658             :         // DERIVED TYPE DEFINITIONS:
    1659             :         // na
    1660             : 
    1661             :         // SUBROUTINE LOCAL VARIABLE DECLARATIONS:
    1662       12745 :         if (!allocated(state.dataOutRptPredefined->reportName)) {
    1663         771 :             state.dataOutRptPredefined->reportName.allocate(sizeIncrement);
    1664         771 :             state.dataOutRptPredefined->sizeReportName = sizeIncrement;
    1665         771 :             state.dataOutRptPredefined->numReportName = 1;
    1666             :         } else {
    1667       11974 :             ++state.dataOutRptPredefined->numReportName;
    1668             :             // if larger than current size grow the array
    1669       11974 :             if (state.dataOutRptPredefined->numReportName > state.dataOutRptPredefined->sizeReportName) {
    1670           0 :                 state.dataOutRptPredefined->reportName.redimension(
    1671           0 :                     state.dataOutRptPredefined->sizeReportName *=
    1672           0 :                     2); // Tuned Changed += sizeIncrement to *= 2 for reduced heap allocations (at some space cost)
    1673             :             }
    1674             :         }
    1675             :         // initialize new record
    1676       12745 :         state.dataOutRptPredefined->reportName(state.dataOutRptPredefined->numReportName).name = inReportName;
    1677       12745 :         state.dataOutRptPredefined->reportName(state.dataOutRptPredefined->numReportName).abrev = inReportAbrev;
    1678       12745 :         state.dataOutRptPredefined->reportName(state.dataOutRptPredefined->numReportName).namewithspaces = inReportNamewithSpaces;
    1679       12745 :         state.dataOutRptPredefined->reportName(state.dataOutRptPredefined->numReportName).show = false;
    1680       12745 :         newPreDefReport = state.dataOutRptPredefined->numReportName;
    1681       12745 :         return newPreDefReport;
    1682             :     }
    1683             : 
    1684       64975 :     int newPreDefSubTable(EnergyPlusData &state, int const reportIndex, std::string_view subTableName)
    1685             :     {
    1686             :         // SUBROUTINE INFORMATION:
    1687             :         //       AUTHOR         Jason Glazer
    1688             :         //       DATE WRITTEN   August 2006
    1689             :         //       MODIFIED
    1690             :         //       RE-ENGINEERED  na
    1691             : 
    1692             :         // PURPOSE OF THIS SUBROUTINE:
    1693             :         //   Assigns the index for predefined sub-tables
    1694             : 
    1695             :         // METHODOLOGY EMPLOYED:
    1696             :         //   Simple assignments to public variables.
    1697             : 
    1698             :         // REFERENCES:
    1699             :         // na
    1700             : 
    1701             :         // USE STATEMENTS:
    1702             : 
    1703             :         // Return value
    1704             : 
    1705             :         // Locals
    1706             :         // SUBROUTINE ARGUMENT DEFINITIONS:
    1707             : 
    1708             :         // SUBROUTINE PARAMETER DEFINITIONS:
    1709             :         // na
    1710             : 
    1711             :         // INTERFACE BLOCK SPECIFICATIONS:
    1712             :         // na
    1713             : 
    1714             :         // DERIVED TYPE DEFINITIONS:
    1715             :         // na
    1716             : 
    1717             :         // SUBROUTINE LOCAL VARIABLE DECLARATIONS:
    1718       64975 :         if (!allocated(state.dataOutRptPredefined->subTable)) {
    1719         771 :             state.dataOutRptPredefined->subTable.allocate(sizeIncrement);
    1720         771 :             state.dataOutRptPredefined->sizeSubTable = sizeIncrement;
    1721         771 :             state.dataOutRptPredefined->numSubTable = 1;
    1722             :         } else {
    1723       64204 :             ++state.dataOutRptPredefined->numSubTable;
    1724             :             // if larger than current size then grow the array
    1725       64204 :             if (state.dataOutRptPredefined->numSubTable > state.dataOutRptPredefined->sizeSubTable) {
    1726           0 :                 state.dataOutRptPredefined->subTable.redimension(
    1727           0 :                     state.dataOutRptPredefined->sizeSubTable *=
    1728           0 :                     2); // Tuned Changed += sizeIncrement to *= 2 for reduced heap allocations (at some space cost)
    1729             :             }
    1730             :         }
    1731             :         // initialize new record)
    1732       64975 :         state.dataOutRptPredefined->subTable(state.dataOutRptPredefined->numSubTable).name = subTableName;
    1733       64975 :         state.dataOutRptPredefined->subTable(state.dataOutRptPredefined->numSubTable).indexReportName = reportIndex;
    1734       64975 :         return state.dataOutRptPredefined->numSubTable;
    1735             :     }
    1736             : 
    1737       11074 :     void addFootNoteSubTable(EnergyPlusData &state, int const subTableIndex, std::string_view footnoteText)
    1738             :     {
    1739             :         // SUBROUTINE INFORMATION:
    1740             :         //       AUTHOR         Jason Glazer
    1741             :         //       DATE WRITTEN   August 2008
    1742             :         //       MODIFIED
    1743             :         //       RE-ENGINEERED  na
    1744             : 
    1745             :         // PURPOSE OF THIS SUBROUTINE:
    1746             :         //   Adds a footnote to a subtable
    1747             : 
    1748             :         // METHODOLOGY EMPLOYED:
    1749             :         //   Simple assignments to public variables.
    1750             : 
    1751             :         // REFERENCES:
    1752             :         // na
    1753             : 
    1754             :         // USE STATEMENTS:
    1755             : 
    1756             :         // Locals
    1757             :         // SUBROUTINE ARGUMENT DEFINITIONS:
    1758             : 
    1759             :         // SUBROUTINE PARAMETER DEFINITIONS:
    1760             :         // na
    1761             : 
    1762             :         // INTERFACE BLOCK SPECIFICATIONS:
    1763             :         // na
    1764             : 
    1765             :         // DERIVED TYPE DEFINITIONS:
    1766             :         // na
    1767             : 
    1768             :         // SUBROUTINE LOCAL VARIABLE DECLARATIONS:
    1769       11074 :         if ((subTableIndex >= 0) && (subTableIndex <= state.dataOutRptPredefined->numSubTable)) {
    1770       11074 :             state.dataOutRptPredefined->subTable(subTableIndex).footnote = footnoteText;
    1771             :         }
    1772       11074 :     }
    1773             : 
    1774      528573 :     int newPreDefColumn(EnergyPlusData &state, int const subTableIndex, std::string_view columnHeading)
    1775             :     {
    1776             :         // SUBROUTINE INFORMATION:
    1777             :         //       AUTHOR         Jason Glazer
    1778             :         //       DATE WRITTEN   August 2006
    1779             :         //       MODIFIED
    1780             :         //       RE-ENGINEERED  na
    1781             : 
    1782             :         // PURPOSE OF THIS SUBROUTINE:
    1783             :         //   Assigns the index variables for all predefined reports
    1784             : 
    1785             :         // METHODOLOGY EMPLOYED:
    1786             :         //   Simple assignments to public variables.
    1787             : 
    1788             :         // REFERENCES:
    1789             :         // na
    1790             : 
    1791             :         // USE STATEMENTS:
    1792             : 
    1793             :         // Return value
    1794             :         int newPreDefColumn;
    1795             : 
    1796             :         // Locals
    1797             :         // SUBROUTINE ARGUMENT DEFINITIONS:
    1798             : 
    1799             :         // SUBROUTINE PARAMETER DEFINITIONS:
    1800             :         // na
    1801             : 
    1802             :         // INTERFACE BLOCK SPECIFICATIONS:
    1803             :         // na
    1804             : 
    1805             :         // DERIVED TYPE DEFINITIONS:
    1806             :         // na
    1807             : 
    1808             :         // SUBROUTINE LOCAL VARIABLE DECLARATIONS:
    1809      528573 :         if (!allocated(state.dataOutRptPredefined->columnTag)) {
    1810         771 :             state.dataOutRptPredefined->columnTag.allocate(sizeIncrement);
    1811         771 :             state.dataOutRptPredefined->sizeColumnTag = sizeIncrement;
    1812         771 :             state.dataOutRptPredefined->numColumnTag = 1;
    1813             :         } else {
    1814      527802 :             ++state.dataOutRptPredefined->numColumnTag;
    1815             :             // if larger than current size grow the array
    1816      527802 :             if (state.dataOutRptPredefined->numColumnTag > state.dataOutRptPredefined->sizeColumnTag) {
    1817        4626 :                 state.dataOutRptPredefined->columnTag.redimension(
    1818        2313 :                     state.dataOutRptPredefined->sizeColumnTag *=
    1819        6939 :                     2); // Tuned Changed += sizeIncrement to *= 2 for reduced heap allocations (at some space cost)
    1820             :             }
    1821             :         }
    1822             :         // initialize new record)
    1823      528573 :         state.dataOutRptPredefined->columnTag(state.dataOutRptPredefined->numColumnTag).heading = columnHeading;
    1824      528573 :         state.dataOutRptPredefined->columnTag(state.dataOutRptPredefined->numColumnTag).indexSubTable = subTableIndex;
    1825      528573 :         newPreDefColumn = state.dataOutRptPredefined->numColumnTag;
    1826      528573 :         return newPreDefColumn;
    1827             :     }
    1828             : 
    1829             : } // namespace OutputReportPredefined
    1830             : 
    1831        2313 : } // namespace EnergyPlus

Generated by: LCOV version 1.13