diff --git a/cmake/BuildFlags.cmake b/cmake/BuildFlags.cmake index 5e71a93df..cc01cca57 100644 --- a/cmake/BuildFlags.cmake +++ b/cmake/BuildFlags.cmake @@ -72,11 +72,9 @@ target_compile_options(cse_common_interface INTERFACE # /MTd # Creates a debug multithreaded executable file using LIBCMTD.lib. (set through CMAKE_MSVC_RUNTIME_LIBRARY) > > - $<$: - -Wall - > - $<$: + $<$: -Wall + -Wno-invalid-offsetof # "offsetof" is essential to CSE, though it's use isn't guaranteed to be safe for non-POD structures in C++ implementations. See https://stackoverflow.com/questions/1129894/why-cant-you-use-offsetof-on-non-pod-structures-in-c. > ) diff --git a/src/CNFIELDS.DEF b/src/CNFIELDS.DEF index 3a6690686..b26b1f2e2 100644 --- a/src/CNFIELDS.DEF +++ b/src/CNFIELDS.DEF @@ -16,7 +16,7 @@ column uses include 7-89: datatype, limits, and units are put in srfd.c [fdtab.c], 1-91. - +*/ /* This file is preprocessed for each product; it is believed that fields information may vary freely amoung products. diff --git a/src/cuparse.cpp b/src/cuparse.cpp index a5206d25b..33736273d 100644 --- a/src/cuparse.cpp +++ b/src/cuparse.cpp @@ -148,87 +148,87 @@ OPTBL opTbl[] = /*prec cs v1 v2 text cupars- cupars- cueval.h ei.h: ei.h: etc: cutok.h: */ - 0, 0, 0, 0, "", // 0 unused - 34, CSUNI, PSINOT, 0, "!", // CUTNOT 01 ! - PROP, CSCUT, 0, 0, "\"text\"", // CUTQUOT 02 (") string literal. quoted text in cuToktx[]. - perr, CSU, 0, 0, "#", // CUTNS 03 # - perr, CSU, 0, 0, "$", // CUTDOL 04 $ - 32, CSBII, PSIMOD, 0, "%", // CUTPRC 05 % - 19, CSBII, PSIBAN, 0, "&", // CUTAMP 06 & - 36, CSBIF, PSFINCHES, 0, "'", // CUTSQ 07 ' feet-inches - PROP, CSGRP, CUTRPR, ')', "(", // CUTLPR 08 ( - PRRGR, CSU, 0, 0, ")", // CUTRPR 09 ) - 32, CSBIN, PSIMUL, PSFMUL, "*", // CUTAST 10 * - 34, CSUNN, 0, 0, "+", // CUTPLS 11 unary + (code changes to CUTBPLS if binary) - PRCOM, CSCUT, 0, 0, ",", // CUTCOM 12 , - 34, CSUNN, PSINEG, PSFNEG, "-", // CUTMIN 13 unary - (code changes to CUTBMIN if binary) - perr, CSU, 0, 0, ".", // CUTPER 14 . - 32, CSBIN, PSIDIV, PSFDIV, "/", // CUTSLS 15 / - 12, CSU, 0, 0, ":", // CUTCLN 16 : - PRSEM, CSU, 0, 0, ";", // CUTSEM 17 ; - 25, CSCMP, PSILT, PSFLT, "<", // CUTLT 18 < - PRASS, CSU, 0, 0, "=", // CUTEQ 19 = assignment - 25, CSCMP, PSIGT, PSFGT, ">", // CUTGT 20 > - 13, CSCUT, 0, 0, "?", // CUTQM 21 ? - PROP, CSCUT, 0, 0, "@", // CUTAT 22 @ probe + {0, 0, 0, 0, ""}, // 0 unused + {34, CSUNI, PSINOT, 0, "!"}, // CUTNOT 01 ! + {PROP, CSCUT, 0, 0, "\"text\""}, // CUTQUOT 02 (") string literal. quoted text in cuToktx[]. + {perr, CSU, 0, 0, "#"}, // CUTNS 03 # + {perr, CSU, 0, 0, "$"}, // CUTDOL 04 $ + {32, CSBII, PSIMOD, 0, "%"}, // CUTPRC 05 % + {19, CSBII, PSIBAN, 0, "&"}, // CUTAMP 06 & + {36, CSBIF, PSFINCHES, 0, "'"}, // CUTSQ 07 ' feet-inches + {PROP, CSGRP, CUTRPR, ')', "("}, // CUTLPR 08 ( + {PRRGR, CSU, 0, 0, ")"}, // CUTRPR 09 ) + {32, CSBIN, PSIMUL, PSFMUL, "*"}, // CUTAST 10 * + {34, CSUNN, 0, 0, "+"}, // CUTPLS 11 unary + (code changes to CUTBPLS if binary) + {PRCOM, CSCUT, 0, 0, ","}, // CUTCOM 12 , + {34, CSUNN, PSINEG, PSFNEG, "-"}, // CUTMIN 13 unary - (code changes to CUTBMIN if binary) + {perr, CSU, 0, 0, "."}, // CUTPER 14 . + {32, CSBIN, PSIDIV, PSFDIV, "/"}, // CUTSLS 15 / + {12, CSU, 0, 0, ":"}, // CUTCLN 16 : + {PRSEM, CSU, 0, 0, ";"}, // CUTSEM 17 ; + {25, CSCMP, PSILT, PSFLT, "<"}, // CUTLT 18 < + {PRASS, CSU, 0, 0, "="}, // CUTEQ 19 = assignment + {25, CSCMP, PSIGT, PSFGT, ">"}, // CUTGT 20 > + {13, CSCUT, 0, 0, "?"}, // CUTQM 21 ? + {PROP, CSCUT, 0, 0, "@"}, // CUTAT 22 @ probe // single chars [ .. ` have tok type ascii - '[' + 23 - PROP, CSGRP, CUTRB, ']', "[", // CUTLB 23 [ grouping - perr, CSU, 0, 0, "\\", // CUTBS 24 \ */ - PRRGR, CSU, 0, 0, "]", // CUTRB 25 ] - 18, CSBII, PSIXOR, 0, "^", // CUTCF 26 ^ xor - perr, CSU, 0, 0, "_", // CUTUL 27 _ - perr, CSU, 0, 0, "`", // CUTGV 28 ` + {PROP, CSGRP, CUTRB, ']', "["}, // CUTLB 23 [ grouping + {perr, CSU, 0, 0, "\\"}, // CUTBS 24 \ */ + {PRRGR, CSU, 0, 0, "]"}, // CUTRB 25 ] + {18, CSBII, PSIXOR, 0, "^"}, // CUTCF 26 ^ xor + {perr, CSU, 0, 0, "_"}, // CUTUL 27 _ + {perr, CSU, 0, 0, "`"}, // CUTGV 28 ` // single chars { ... ~ have tok type ascii - '{' + 29 - perr, CSU, 0, 0, "{", // CUTLCB 29 { - 17, CSBII, PSIBOR, 0, "|", // CUTVB 30 | - perr, CSU, 0, 0, "}", // CUTRCB 31 } - 34, CSUNI, PSIONC, 0, "~", // CUTTIL 32 ~ one's compl + {perr, CSU, 0, 0, "{"}, // CUTLCB 29 { + {17, CSBII, PSIBOR, 0, "|"}, // CUTVB 30 | + {perr, CSU, 0, 0, "}"}, // CUTRCB 31 } + {34, CSUNI, PSIONC, 0, "~"}, // CUTTIL 32 ~ one's compl // additional specials and multi-char tokens - PROP, CSCUT, 0, 0, "identifier", // CUTID 33 identifier not yet declared, text in cuToktx. - PROP, CSCUT, 0, 0, "integer number", // CUTSI 34 integer (syntax) numbr, value: cuIntval, cuFlval - PROP, CSCUT, 0, 0, "number", // CUTFLOAT 35 (.) floating point constant, value in cuFlval. - perr, CSU, 0, 0, "", // 36 available - 24, CSCMP, PSIEQ, PSFEQ, "==", // CUTEQL 37 == equality comparison - 24, CSCMP, PSINE, PSFNE, "!=", // CUTNE 38 != - 25, CSCMP, PSIGE, PSFGE, ">=", // CUTGE 39 >= - 25, CSCMP, PSILE, PSFLE, "<=", // CUTLE 40 <= - 28, CSBII, PSIRSH, 0, ">>", // CUTRSH 41 >> - 28, CSBII, PSILSH, 0, "<<", // CUTLSH 42 >> - 16, CSLEO, PSJZP, 0, "&&", // CUTLAN 43 && logical and - 15, CSLEO, PSJNZP, 1, "||", // CUTLOR 44 || logical or + {PROP, CSCUT, 0, 0, "identifier"}, // CUTID 33 identifier not yet declared, text in cuToktx. + {PROP, CSCUT, 0, 0, "integer number"}, // CUTSI 34 integer (syntax) numbr, value: cuIntval, cuFlval + {PROP, CSCUT, 0, 0, "number"}, // CUTFLOAT 35 (.) floating point constant, value in cuFlval. + {perr, CSU, 0, 0, ""}, // 36 available + {24, CSCMP, PSIEQ, PSFEQ, "=="}, // CUTEQL 37 == equality comparison + {24, CSCMP, PSINE, PSFNE, "!="}, // CUTNE 38 != + {25, CSCMP, PSIGE, PSFGE, ">="}, // CUTGE 39 >= + {25, CSCMP, PSILE, PSFLE, "<="}, // CUTLE 40 <= + {28, CSBII, PSIRSH, 0, ">>"}, // CUTRSH 41 >> + {28, CSBII, PSILSH, 0, "<<"}, // CUTLSH 42 >> + {16, CSLEO, PSJZP, 0, "&&"}, // CUTLAN 43 && logical and + {15, CSLEO, PSJNZP, 1, "||"}, // CUTLOR 44 || logical or // spares desirable here - PREOF, CSU, 0, 0, "end of file", // CUTEOF 45 hard end-of-file - 31, CSBIN, PSIADD, PSFADD, "+", // CUTBPLS 46 + used if expr determines + to be binary - 31, CSBIN, PSISUB, PSFSUB, "-", // CUTBMIN 47 - binary ditto - 0, 0, 0, 0, "", // spare 48 - 0, 0, 0, 0, "", // spare 49 + {PREOF, CSU, 0, 0, "end of file"}, // CUTEOF 45 hard end-of-file + {31, CSBIN, PSIADD, PSFADD, "+"}, // CUTBPLS 46 + used if expr determines + to be binary + {31, CSBIN, PSISUB, PSFSUB, "-"}, // CUTBMIN 47 - binary ditto + {0, 0, 0, 0, ""}, // spare 48 + {0, 0, 0, 0, ""}, // spare 49 // identifiers already in sym tbl at toke() call (also see CUTID above): - PRVRB, CSU, 0, 0, "verb", // CUTVRB 50 verb (begins statement) - PROP, CSCUT, 0, 0, "system function", // CUTSF 51 system (pre-defined) function - PROP, CSCUT, 0, 0, "system variable", // CUTSV 52 system vbl (if implemented) - 34, CSCUT, 0, 0, "month", // CUTMONTH 53 month names, cuparse.cpp - PROP, CSCUT, 0, 0, "user function", // CUTUF 54 user-defined function - PROP, CSCUT, 0, 0, "user variable", // CUTUV 55 already-declared user variable - PREOF, CSU, 0, 0, "$EOF", // CUTDEOF 56 $eof reserved word - PROP, CSCUT, 0, 0, "defined", // CUTDEF 57 defined(x) (preprocessor) - perr, CSU, 0, 0, "end comment", // CUTECMT 58 for specific errmsg - PRDEFA, CSU, 0, 0, "default", // CUTDEFA 59 default (choose(), etc) - PRDEFA, CSU, 0, 0, "function", // CUTWDFCN 60 word "function" - PRDEFA, CSU, 0, 0, "variable", // CUTWDVAR 61 word "variable" - PRTY, CSU, TYSI, sizeof(SI), "integer", // CUTINT 62 type words - PRTY, CSU, TYFL, sizeof(float), "float", // CUTFL 63 - PRTY, CSU, TYSTR, sizeof(char *), "string", // CUTSTR 64 - PRTY, CSU, TYSI, sizeof(SI), "day of year", // CUTDOY 65 day of year as integer 2-91 - PRVRBL, CSU, 0, 0, "like", // CUTLIKE 66 word for cul.cpp - PRVRBL, CSU, 0, 0, "usetype", // CUTTYPE 67 word for cul.cpp - PRVRBL, CSU, 0, 0, "deftype", // CUTDEFTY 68 word for cul.cpp - PRVRBL, CSU, 0, 0, "require", // CUTRQ 69 word for cul.cpp - PRVRBL, CSU, 0, 0, "freeze", // CUTFRZ 70 word for cul.cpp - PRVRBL, CSU, 0, 0, "copy", // CUTCOPY 71 word for cul.cpp - PRVRBL, CSU, 0, 0, "alter", // CUTALTER 72 word for cul.cpp - PRVRBL, CSU, 0, 0, "delete", // CUTDELETE 73 word for cul.cpp - PRVRBL, CSU, 0, 0, "unset", // CUTUNSET 74 word for cul.cpp - PRVRBL, CSU, 0, 0, "autoSize", // CUTAUSZ 75 word for cul.cpp 6-95 + {PRVRB, CSU, 0, 0, "verb"}, // CUTVRB 50 verb (begins statement) + {PROP, CSCUT, 0, 0, "system function"}, // CUTSF 51 system (pre-defined) function + {PROP, CSCUT, 0, 0, "system variable"}, // CUTSV 52 system vbl (if implemented) + {34, CSCUT, 0, 0, "month"}, // CUTMONTH 53 month names, cuparse.cpp + {PROP, CSCUT, 0, 0, "user function"}, // CUTUF 54 user-defined function + {PROP, CSCUT, 0, 0, "user variable"}, // CUTUV 55 already-declared user variable + {PREOF, CSU, 0, 0, "$EOF"}, // CUTDEOF 56 $eof reserved word + {PROP, CSCUT, 0, 0, "defined"}, // CUTDEF 57 defined(x) (preprocessor) + {perr, CSU, 0, 0, "end comment"}, // CUTECMT 58 for specific errmsg + {PRDEFA, CSU, 0, 0, "default"}, // CUTDEFA 59 default (choose(), etc) + {PRDEFA, CSU, 0, 0, "function"}, // CUTWDFCN 60 word "function" + {PRDEFA, CSU, 0, 0, "variable"}, // CUTWDVAR 61 word "variable" + {PRTY, CSU, TYSI, sizeof(SI), "integer"}, // CUTINT 62 type words + {PRTY, CSU, TYFL, sizeof(float), "float"}, // CUTFL 63 + {PRTY, CSU, TYSTR, sizeof(char *), "string"}, // CUTSTR 64 + {PRTY, CSU, TYSI, sizeof(SI), "day of year"}, // CUTDOY 65 day of year as integer 2-91 + {PRVRBL, CSU, 0, 0, "like"}, // CUTLIKE 66 word for cul.cpp + {PRVRBL, CSU, 0, 0, "usetype"}, // CUTTYPE 67 word for cul.cpp + {PRVRBL, CSU, 0, 0, "deftype"}, // CUTDEFTY 68 word for cul.cpp + {PRVRBL, CSU, 0, 0, "require"}, // CUTRQ 69 word for cul.cpp + {PRVRBL, CSU, 0, 0, "freeze"}, // CUTFRZ 70 word for cul.cpp + {PRVRBL, CSU, 0, 0, "copy"}, // CUTCOPY 71 word for cul.cpp + {PRVRBL, CSU, 0, 0, "alter"}, // CUTALTER 72 word for cul.cpp + {PRVRBL, CSU, 0, 0, "delete"}, // CUTDELETE 73 word for cul.cpp + {PRVRBL, CSU, 0, 0, "unset"}, // CUTUNSET 74 word for cul.cpp + {PRVRBL, CSU, 0, 0, "autoSize"}, // CUTAUSZ 75 word for cul.cpp 6-95 }; //----------- SYMBOL TABLE initialization data and definitions ------------*/ @@ -540,12 +540,12 @@ static struct ITSYMS { SI tokTy; SI casi; STBK* tbl; USI entlen; } itSyms[] = { - CUTSF, 1, itSfs, sizeof( SFST), - CUTSV, 1, itSvs, sizeof( SVST), - CUTMONTH, 1, itMos, sizeof( MOST), - -1, /* <---get tokTy from 2nd member of block */ - 1, itRws, sizeof( RWST), - 0, + {CUTSF, 1, itSfs, sizeof( SFST)}, + {CUTSV, 1, itSvs, sizeof( SVST)}, + {CUTMONTH, 1, itMos, sizeof( MOST)}, + {-1, /* <---get tokTy from 2nd member of block */ + 1, itRws, sizeof( RWST)}, + {0}, }; /*--------- finally, the SYMBOL TABLE */ @@ -605,7 +605,7 @@ LOCAL SYTBH symtab = { NULL, 0 }; When argument subexpressions to an operator have been completely parsed and type checks and conversions are done, their frames are merged with each other and the frame for the preceding code (and the operator's code is emitted). parSp points to top entry, containing current values. */ - PARSTK parStk[ 500] = { 0 }; // parse stack buffer + PARSTK parStk[ 500] = {{0} }; // parse stack buffer PARSTK* parSp = parStk; // parse stack stack pointer /*--- CODE OUTPUT variables */ diff --git a/src/dhwcalc.cpp b/src/dhwcalc.cpp index 282d4f985..2a616f27b 100644 --- a/src/dhwcalc.cpp +++ b/src/dhwcalc.cpp @@ -3817,43 +3817,43 @@ RC HPWHLINK::hw_DoSubhrTick( // calcs for 1 tick double minYr = double((int(Top.jDayST - 1) * 24 + Top.iHrST) * 60) + minHrD; CSVItem CI[] = - { "minHr", minHrD, UNNONE, 4, - "minDay", minDay, UNNONE, 4, - "minYr", minYr, UNNONE, 7, - "tDbO", Top.tDbOSh, UNTEMP, 5, - "tEnv", hw_tEx, UNTEMP, 5, - "tSrcAir", hw_tASHPSrc > 0.f ? hw_tASHPSrc : CSVItem::ci_UNSET, - UNTEMP, 5, - "vMxUse", tk.wtk_whUse, UNLVOLUME2, 5, - "fMixUse", hw_fMixUse, UNNONE, 5, - "fMixRL", hw_fMixRL, UNNONE, 5, - "vUse", drawUse, UNLVOLUME2, 5, - "vLoss", drawLoss, UNLVOLUME2, 5, - "vRL", drawRL, UNLVOLUME2, 5, - "vRC", drawRC, UNLVOLUME2, 5, - "vTot", drawForTick, UNLVOLUME2, 5, - "tMains", tMains > 0. ? tMains : CSVItem::ci_UNSET, - UNTEMP, 5, - "tDWHR", tk.wtk_tInletX, UNTEMP, 5, - "tRL", drawRL > 0. ? tRL: CSVItem::ci_UNSET, - UNTEMP, 5, - "tRC", drawRC > 0. ? tRC : CSVItem::ci_UNSET, - UNTEMP, 5, - "tIn", tInlet > 0. ? tInlet : CSVItem::ci_UNSET, - UNTEMP, 5, - "tSP", DegCtoF(hw_pHPWH->getSetpoint()), - UNTEMP, 5, - "tOut", hw_tOut > 0. ? DegCtoF(hw_tOut) : CSVItem::ci_UNSET, - UNTEMP, 5, - "tUse", tMix > 0.f ? tMix : CSVItem::ci_UNSET, - UNTEMP, 5, - "qTX", tk.wtk_qTX, UNENERGY3, 5, - "qEnv", KWH_TO_BTU(hw_pHPWH->getEnergyRemovedFromEnvironment()), - UNENERGY3, 5, - "qLoss", KWH_TO_BTU(hw_pHPWH->getStandbyLosses()), - UNENERGY3, 5, - "XBU", HPWHxBU, UNENERGY3, 5, - NULL + { {"minHr", minHrD, UNNONE, 4}, + {"minDay", minDay, UNNONE, 4}, + {"minYr", minYr, UNNONE, 7}, + {"tDbO", Top.tDbOSh, UNTEMP, 5}, + {"tEnv", hw_tEx, UNTEMP, 5}, + {"tSrcAir", hw_tASHPSrc > 0.f ? hw_tASHPSrc : CSVItem::ci_UNSET, + UNTEMP, 5}, + {"vMxUse", tk.wtk_whUse, UNLVOLUME2, 5}, + {"fMixUse", hw_fMixUse, UNNONE, 5}, + {"fMixRL", hw_fMixRL, UNNONE, 5}, + {"vUse", drawUse, UNLVOLUME2, 5}, + {"vLoss", drawLoss, UNLVOLUME2, 5}, + {"vRL", drawRL, UNLVOLUME2, 5}, + {"vRC", drawRC, UNLVOLUME2, 5}, + {"vTot", drawForTick, UNLVOLUME2, 5}, + {"tMains", tMains > 0. ? tMains : CSVItem::ci_UNSET, + UNTEMP, 5}, + {"tDWHR", tk.wtk_tInletX, UNTEMP, 5}, + {"tRL", drawRL > 0. ? tRL: CSVItem::ci_UNSET, + UNTEMP, 5}, + {"tRC", drawRC > 0. ? tRC : CSVItem::ci_UNSET, + UNTEMP, 5}, + {"tIn", tInlet > 0. ? tInlet : CSVItem::ci_UNSET, + UNTEMP, 5}, + {"tSP", DegCtoF(hw_pHPWH->getSetpoint()), + UNTEMP, 5}, + {"tOut", hw_tOut > 0. ? DegCtoF(hw_tOut) : CSVItem::ci_UNSET, + UNTEMP, 5}, + {"tUse", tMix > 0.f ? tMix : CSVItem::ci_UNSET, + UNTEMP, 5}, + {"qTX", tk.wtk_qTX, UNENERGY3, 5}, + {"qEnv", KWH_TO_BTU(hw_pHPWH->getEnergyRemovedFromEnvironment()), + UNENERGY3, 5}, + {"qLoss", KWH_TO_BTU(hw_pHPWH->getStandbyLosses()), + UNENERGY3, 5}, + {"XBU", HPWHxBU, UNENERGY3, 5}, + {NULL} }; CSVGen csvGen(CI); @@ -4726,17 +4726,17 @@ struct DRMAP int drStatusHPWH; // corresponding HPWH drStatus }; static const DRMAP drMap[] = -{ C_DHWDRSIG_ON, HPWH::DR_ALLOW, - C_DHWDRSIG_TOO, HPWH::DR_TOO, - C_DHWDRSIG_TOOLOR, HPWH::DR_TOO | HPWH::DR_LOR, - C_DHWDRSIG_TOOLOC, HPWH::DR_TOO | HPWH::DR_LOC, - C_DHWDRSIG_TOT, HPWH::DR_TOT, - C_DHWDRSIG_TOTLOR, HPWH::DR_TOT | HPWH::DR_LOR, - C_DHWDRSIG_TOTLOC, HPWH::DR_TOT | HPWH::DR_LOC, - C_DHWDRSIG_LOC, HPWH::DR_LOC, - C_DHWDRSIG_LOR, HPWH::DR_LOR, - C_DHWDRSIG_LOCLOR, HPWH::DR_LOC | HPWH::DR_LOR, - -1, -1 +{ {C_DHWDRSIG_ON, HPWH::DR_ALLOW}, + {C_DHWDRSIG_TOO, HPWH::DR_TOO}, + {C_DHWDRSIG_TOOLOR, HPWH::DR_TOO | HPWH::DR_LOR}, + {C_DHWDRSIG_TOOLOC, HPWH::DR_TOO | HPWH::DR_LOC}, + {C_DHWDRSIG_TOT, HPWH::DR_TOT}, + {C_DHWDRSIG_TOTLOR, HPWH::DR_TOT | HPWH::DR_LOR}, + {C_DHWDRSIG_TOTLOC, HPWH::DR_TOT | HPWH::DR_LOC}, + {C_DHWDRSIG_LOC, HPWH::DR_LOC}, + {C_DHWDRSIG_LOR, HPWH::DR_LOR}, + {C_DHWDRSIG_LOCLOR, HPWH::DR_LOC | HPWH::DR_LOR}, + {-1, -1} }; //----------------------------------------------------------------------------- /* static*/ void DHWHEATER::wh_DRMapValidate() // one-time DRMAP checks diff --git a/src/solar.cpp b/src/solar.cpp index 9b4965688..e57296f55 100644 --- a/src/solar.cpp +++ b/src/solar.cpp @@ -81,34 +81,34 @@ static struct float C; // coefficient C (dimless) } ASHRAEData[ 2][ 13] = {{ // ASHRAE HOF 1997 table 8, p. 29.14 - 448.8f, -11.2f, -20.0f, 390.f, 0.142f, 0.058f, - 444.2f, -13.9f, -10.8f, 385.f, 0.144f, 0.060f, - 437.7f, -7.5f, 0.0f, 376.f, 0.156f, 0.071f, - 429.9f, 1.1f, 11.6f, 360.f, 0.180f, 0.097f, - 423.6f, 3.3f, 20.0f, 350.f, 0.196f, 0.121f, - 420.2f, -1.4f, 23.45f, 345.f, 0.205f, 0.134f, - 420.3f, -6.2f, 20.6f, 344.f, 0.207f, 0.136f, - 424.1f, -2.4f, 12.3f, 351.f, 0.201f, 0.122f, - 430.7f, 7.5f, 0.0f, 365.f, 0.177f, 0.092f, - 437.3f, 15.4f, -10.5f, 378.f, 0.160f, 0.073f, - 445.3f, 13.8f, -19.8f, 387.f, 0.149f, 0.063f, - 449.1f, 1.6f, -23.45f, 391.f, 0.142f, 0.057f, - 448.8f, -11.2f, -20.0f, 390.f, 0.142f, 0.058f // jan repeated re (future) interpolation + {448.8f, -11.2f, -20.0f, 390.f, 0.142f, 0.058f}, + {444.2f, -13.9f, -10.8f, 385.f, 0.144f, 0.060f}, + {437.7f, -7.5f, 0.0f, 376.f, 0.156f, 0.071f}, + {429.9f, 1.1f, 11.6f, 360.f, 0.180f, 0.097f}, + {423.6f, 3.3f, 20.0f, 350.f, 0.196f, 0.121f}, + {420.2f, -1.4f, 23.45f, 345.f, 0.205f, 0.134f}, + {420.3f, -6.2f, 20.6f, 344.f, 0.207f, 0.136f}, + {424.1f, -2.4f, 12.3f, 351.f, 0.201f, 0.122f}, + {430.7f, 7.5f, 0.0f, 365.f, 0.177f, 0.092f}, + {437.3f, 15.4f, -10.5f, 378.f, 0.160f, 0.073f}, + {445.3f, 13.8f, -19.8f, 387.f, 0.149f, 0.063f}, + {449.1f, 1.6f, -23.45f, 391.f, 0.142f, 0.057f}, + {448.8f, -11.2f, -20.0f, 390.f, 0.142f, 0.058f} // jan repeated re (future) interpolation }, { // updated ASHRAE HOF 2005 table 7, p. 31.14 - 448.8f, -11.2f, -20.0f, 381.f, 0.141f, 0.103f, - 444.2f, -13.9f, -10.8f, 376.f, 0.142f, 0.104f, - 437.7f, -7.5f, 0.0f, 369.f, 0.149f, 0.109f, - 429.9f, 1.1f, 11.6f, 358.f, 0.164f, 0.120f, - 423.6f, 3.3f, 20.0f, 351.f, 0.177f, 0.130f, - 420.2f, -1.4f, 23.45f, 346.f, 0.185f, 0.137f, - 420.3f, -6.2f, 20.6f, 346.f, 0.186f, 0.138f, - 424.1f, -2.4f, 12.3f, 351.f, 0.182f, 0.134f, - 430.7f, 7.5f, 0.0f, 360.f, 0.165f, 0.121f, - 437.3f, 15.4f, -10.5f, 370.f, 0.152f, 0.111f, - 445.3f, 13.8f, -19.8f, 377.f, 0.144f, 0.106f, - 449.1f, 1.6f, -23.45f, 382.f, 0.141f, 0.103f, - 448.8f, -11.2f, -20.0f, 381.f, 0.141f, 0.103f // jan repeated re (future) interpolation + {448.8f, -11.2f, -20.0f, 381.f, 0.141f, 0.103f}, + {444.2f, -13.9f, -10.8f, 376.f, 0.142f, 0.104f}, + {437.7f, -7.5f, 0.0f, 369.f, 0.149f, 0.109f}, + {429.9f, 1.1f, 11.6f, 358.f, 0.164f, 0.120f}, + {423.6f, 3.3f, 20.0f, 351.f, 0.177f, 0.130f}, + {420.2f, -1.4f, 23.45f, 346.f, 0.185f, 0.137f}, + {420.3f, -6.2f, 20.6f, 346.f, 0.186f, 0.138f}, + {424.1f, -2.4f, 12.3f, 351.f, 0.182f, 0.134f}, + {430.7f, 7.5f, 0.0f, 360.f, 0.165f, 0.121f}, + {437.3f, 15.4f, -10.5f, 370.f, 0.152f, 0.111f}, + {445.3f, 13.8f, -19.8f, 377.f, 0.144f, 0.106f}, + {449.1f, 1.6f, -23.45f, 382.f, 0.141f, 0.103f}, + {448.8f, -11.2f, -20.0f, 381.f, 0.141f, 0.103f} // jan repeated re (future) interpolation }}; // ASHRAEData //===========================================================================