GetSurfaceData Subroutine

private subroutine GetSurfaceData(ErrorsFound)

proc~~getsurfacedata~~UsesGraph proc~getsurfacedata GetSurfaceData module~general General module~general->proc~getsurfacedata module~inputprocessor InputProcessor module~inputprocessor->proc~getsurfacedata module~vectors vectors module~vectors->proc~getsurfacedata module~dataipshortcuts DataIPShortCuts module~dataipshortcuts->proc~getsurfacedata module~dataipshortcuts->module~inputprocessor module~dataerrortracking DataErrorTracking module~dataerrortracking->proc~getsurfacedata module~schedulemanager ScheduleManager module~schedulemanager->proc~getsurfacedata module~dataprecisionglobals DataPrecisionGlobals module~dataprecisionglobals->module~general module~dataprecisionglobals->module~inputprocessor module~dataprecisionglobals->module~vectors module~dataprecisionglobals->module~dataipshortcuts module~dataprecisionglobals->module~dataerrortracking module~dataprecisionglobals->module~schedulemanager module~dataglobals DataGlobals module~dataprecisionglobals->module~dataglobals module~datasystemvariables DataSystemVariables module~dataprecisionglobals->module~datasystemvariables module~datasizing DataSizing module~dataprecisionglobals->module~datasizing module~datainterfaces DataInterfaces module~dataprecisionglobals->module~datainterfaces module~datavectortypes DataVectorTypes module~dataprecisionglobals->module~datavectortypes module~dataenvironment DataEnvironment module~dataprecisionglobals->module~dataenvironment module~datastringglobals DataStringGlobals module~datastringglobals->module~inputprocessor module~datastringglobals->module~datasystemvariables module~dataglobals->module~inputprocessor module~dataglobals->module~vectors module~dataglobals->module~dataipshortcuts module~dataglobals->module~schedulemanager module~dataglobals->module~datasizing module~dataglobals->module~dataenvironment module~datasystemvariables->module~inputprocessor module~datasizing->module~inputprocessor module~datainterfaces->module~inputprocessor module~datainterfaces->module~schedulemanager module~datavectortypes->module~vectors module~dataenvironment->module~schedulemanager
Help

Arguments

Type IntentOptional AttributesName
logical, intent(inout) :: ErrorsFound

Calls

proc~~getsurfacedata~~CallsGraph proc~getsurfacedata GetSurfaceData proc~createnewellareavector CreateNewellAreaVector proc~getsurfacedata->proc~createnewellareavector proc~determineazimuthandtilt DetermineAzimuthAndTilt proc~getsurfacedata->proc~determineazimuthandtilt interface~showseveremessage ShowSevereMessage proc~getsurfacedata->interface~showseveremessage proc~veclength VecLength proc~getsurfacedata->proc~veclength finditeminlist finditeminlist proc~getsurfacedata->finditeminlist proc~comparetwovectors CompareTwoVectors proc~getsurfacedata->proc~comparetwovectors roundsigdigits roundsigdigits proc~getsurfacedata->roundsigdigits proc~gethtsubsurfacedata GetHTSubSurfaceData proc~getsurfacedata->proc~gethtsubsurfacedata proc~assignreverseconstructionnumber AssignReverseConstructionNumber proc~getsurfacedata->proc~assignreverseconstructionnumber proc~getrectsubsurfaces GetRectSubSurfaces proc~getsurfacedata->proc~getrectsubsurfaces proc~getmovableinsulationdata GetMovableInsulationData proc~getsurfacedata->proc~getmovableinsulationdata proc~gethtsurfacedata GetHTSurfaceData proc~getsurfacedata->proc~gethtsurfacedata samestring samestring proc~getsurfacedata->samestring proc~getrectsurfaces GetRectSurfaces proc~getsurfacedata->proc~getrectsurfaces proc~getintmasssurfacedata GetIntMassSurfaceData proc~getsurfacedata->proc~getintmasssurfacedata interface~showcontinueerror ShowContinueError proc~getsurfacedata->interface~showcontinueerror proc~getattshdsurfacedata GetAttShdSurfaceData proc~getsurfacedata->proc~getattshdsurfacedata trimsigdigits trimsigdigits proc~getsurfacedata->trimsigdigits interface~showwarningerror ShowWarningError proc~getsurfacedata->interface~showwarningerror material material proc~getsurfacedata->material proc~getsimpleshdsurfacedata GetSimpleShdSurfaceData proc~getsurfacedata->proc~getsimpleshdsurfacedata surface surface proc~getsurfacedata->surface proc~addvariableslatblind AddVariableSlatBlind proc~getsurfacedata->proc~addvariableslatblind proc~setupshadesurfacesforsolarcalcs SetupShadeSurfacesForSolarCalcs proc~getsurfacedata->proc~setupshadesurfacesforsolarcalcs interface~showsevereerror ShowSevereError proc~getsurfacedata->interface~showsevereerror proc~getshadingsurfreflectancedata GetShadingSurfReflectanceData proc~getsurfacedata->proc~getshadingsurfreflectancedata interface~showfatalerror ShowFatalError proc~getsurfacedata->interface~showfatalerror interface~showwarningmessage ShowWarningMessage proc~getsurfacedata->interface~showwarningmessage blind blind proc~getsurfacedata->blind construct construct proc~getsurfacedata->construct proc~csurfaceclass cSurfaceClass proc~getsurfacedata->proc~csurfaceclass proc~getgeometryparameters GetGeometryParameters proc~getsurfacedata->proc~getgeometryparameters windowshadingcontrol windowshadingcontrol proc~getsurfacedata->windowshadingcontrol getnumobjectsfound getnumobjectsfound proc~getsurfacedata->getnumobjectsfound cextboundcondition cextboundcondition proc~getsurfacedata->cextboundcondition proc~getdetshdsurfacedata GetDetShdSurfaceData proc~getsurfacedata->proc~getdetshdsurfacedata proc~calcsurfacecentroid CalcSurfaceCentroid proc~getsurfacedata->proc~calcsurfacecentroid proc~getrectdetshdsurfacedata GetRectDetShdSurfaceData proc~getsurfacedata->proc~getrectdetshdsurfacedata nominalu nominalu proc~getsurfacedata->nominalu proc~getsurfaceheattransferalgorithmoverrides GetSurfaceHeatTransferAlgorithmOverrides proc~getsurfacedata->proc~getsurfaceheattransferalgorithmoverrides proc~gethtsurfextventedcavitydata GetHTSurfExtVentedCavityData proc~getsurfacedata->proc~gethtsurfextventedcavitydata proc~createnewellsurfacenormalvector CreateNewellSurfaceNormalVector proc~getsurfacedata->proc~createnewellsurfacenormalvector zone zone proc~getsurfacedata->zone surfacewindow surfacewindow proc~getsurfacedata->surfacewindow proc~vecnormalize VecNormalize proc~determineazimuthandtilt->proc~vecnormalize proc~vecsquaredlength VecSquaredLength proc~veclength->proc~vecsquaredlength proc~gethtsubsurfacedata->finditeminlist proc~gethtsubsurfacedata->interface~showcontinueerror proc~gethtsubsurfacedata->trimsigdigits proc~gethtsubsurfacedata->interface~showwarningerror proc~gethtsubsurfacedata->interface~showsevereerror proc~gethtsubsurfacedata->construct proc~checkwindowshadingcontrolframedivider CheckWindowShadingControlFrameDivider proc~gethtsubsurfacedata->proc~checkwindowshadingcontrolframedivider proc~getwindowshadingcontroldata GetWindowShadingControlData proc~gethtsubsurfacedata->proc~getwindowshadingcontroldata verifyname verifyname proc~gethtsubsurfacedata->verifyname calphafieldnames calphafieldnames proc~gethtsubsurfacedata->calphafieldnames calphaargs calphaargs proc~gethtsubsurfacedata->calphaargs proc~checksubsurfacemiscellaneous CheckSubSurfaceMiscellaneous proc~gethtsubsurfacedata->proc~checksubsurfacemiscellaneous lalphafieldblanks lalphafieldblanks proc~gethtsubsurfacedata->lalphafieldblanks rnumericargs rnumericargs proc~gethtsubsurfacedata->rnumericargs cnumericfieldnames cnumericfieldnames proc~gethtsubsurfacedata->cnumericfieldnames lnumericfieldblanks lnumericfieldblanks proc~gethtsubsurfacedata->lnumericfieldblanks getobjectitem getobjectitem proc~gethtsubsurfacedata->getobjectitem proc~getvertices GetVertices proc~gethtsubsurfacedata->proc~getvertices getobjectdefmaxargs getobjectdefmaxargs proc~gethtsubsurfacedata->getobjectdefmaxargs osc osc proc~gethtsubsurfacedata->osc proc~checkconvexity CheckConvexity proc~gethtsubsurfacedata->proc~checkconvexity proc~checkandsetconstructionproperties CheckAndSetConstructionProperties proc~assignreverseconstructionnumber->proc~checkandsetconstructionproperties proc~getrectsubsurfaces->finditeminlist proc~getrectsubsurfaces->interface~showcontinueerror proc~getrectsubsurfaces->trimsigdigits proc~getrectsubsurfaces->interface~showwarningerror proc~getrectsubsurfaces->interface~showsevereerror proc~getrectsubsurfaces->construct proc~getrectsubsurfaces->proc~checkwindowshadingcontrolframedivider proc~getrectsubsurfaces->verifyname proc~getrectsubsurfaces->calphafieldnames proc~getrectsubsurfaces->calphaargs proc~getrectsubsurfaces->proc~checksubsurfacemiscellaneous proc~getrectsubsurfaces->lalphafieldblanks proc~getrectsubsurfaces->rnumericargs proc~getrectsubsurfaces->cnumericfieldnames proc~getrectsubsurfaces->getobjectitem proc~makerelativerectangularvertices MakeRelativeRectangularVertices proc~getrectsubsurfaces->proc~makerelativerectangularvertices proc~getmovableinsulationdata->finditeminlist proc~getmovableinsulationdata->roundsigdigits proc~getmovableinsulationdata->samestring proc~getmovableinsulationdata->interface~showcontinueerror proc~getmovableinsulationdata->material proc~getmovableinsulationdata->interface~showsevereerror proc~getmovableinsulationdata->getnumobjectsfound proc~getmovableinsulationdata->calphafieldnames proc~getmovableinsulationdata->calphaargs proc~getmovableinsulationdata->getobjectitem getscheduleindex getscheduleindex proc~getmovableinsulationdata->getscheduleindex proc~gethtsurfacedata->finditeminlist proc~gethtsurfacedata->roundsigdigits proc~gethtsurfacedata->samestring proc~gethtsurfacedata->interface~showcontinueerror proc~gethtsurfacedata->trimsigdigits proc~gethtsurfacedata->interface~showwarningerror proc~gethtsurfacedata->interface~showsevereerror proc~gethtsurfacedata->construct proc~gethtsurfacedata->verifyname proc~gethtsurfacedata->calphafieldnames proc~gethtsurfacedata->calphaargs proc~gethtsurfacedata->lalphafieldblanks proc~gethtsurfacedata->rnumericargs proc~gethtsurfacedata->cnumericfieldnames proc~gethtsurfacedata->lnumericfieldblanks proc~gethtsurfacedata->getobjectitem proc~gethtsurfacedata->proc~getvertices proc~gethtsurfacedata->getobjectdefmaxargs proc~gethtsurfacedata->osc proc~gethtsurfacedata->proc~checkconvexity proc~getoscmdata GetOSCMData proc~gethtsurfacedata->proc~getoscmdata proc~getoscdata GetOSCData proc~gethtsurfacedata->proc~getoscdata proc~getrectsurfaces->finditeminlist proc~getrectsurfaces->roundsigdigits proc~getrectsurfaces->interface~showcontinueerror proc~getrectsurfaces->trimsigdigits proc~getrectsurfaces->interface~showwarningerror proc~getrectsurfaces->interface~showsevereerror proc~getrectsurfaces->construct proc~getrectsurfaces->zone proc~getrectsurfaces->verifyname proc~getrectsurfaces->calphafieldnames proc~getrectsurfaces->calphaargs proc~getrectsurfaces->rnumericargs proc~getrectsurfaces->getobjectitem proc~makerectangularvertices MakeRectangularVertices proc~getrectsurfaces->proc~makerectangularvertices proc~getintmasssurfacedata->finditeminlist proc~getintmasssurfacedata->interface~showcontinueerror proc~getintmasssurfacedata->interface~showsevereerror proc~getintmasssurfacedata->construct proc~getintmasssurfacedata->verifyname proc~getintmasssurfacedata->calphafieldnames proc~getintmasssurfacedata->calphaargs proc~getintmasssurfacedata->rnumericargs proc~getintmasssurfacedata->getobjectitem proc~getattshdsurfacedata->finditeminlist proc~getattshdsurfacedata->interface~showcontinueerror proc~getattshdsurfacedata->trimsigdigits proc~getattshdsurfacedata->interface~showwarningerror proc~getattshdsurfacedata->interface~showsevereerror proc~getattshdsurfacedata->verifyname proc~getattshdsurfacedata->calphafieldnames proc~getattshdsurfacedata->calphaargs proc~getattshdsurfacedata->lalphafieldblanks proc~getattshdsurfacedata->rnumericargs proc~getattshdsurfacedata->cnumericfieldnames proc~getattshdsurfacedata->lnumericfieldblanks proc~getattshdsurfacedata->getobjectitem proc~getattshdsurfacedata->proc~getvertices proc~getattshdsurfacedata->getobjectdefmaxargs proc~getattshdsurfacedata->proc~checkconvexity proc~getattshdsurfacedata->getscheduleindex getschedulemaxvalue getschedulemaxvalue proc~getattshdsurfacedata->getschedulemaxvalue getscheduleminvalue getscheduleminvalue proc~getattshdsurfacedata->getscheduleminvalue proc~makemirrorsurface MakeMirrorSurface proc~getattshdsurfacedata->proc~makemirrorsurface checkschedulevalueminmax checkschedulevalueminmax proc~getattshdsurfacedata->checkschedulevalueminmax proc~getsimpleshdsurfacedata->finditeminlist proc~getsimpleshdsurfacedata->roundsigdigits proc~getsimpleshdsurfacedata->interface~showcontinueerror proc~getsimpleshdsurfacedata->interface~showwarningerror proc~getsimpleshdsurfacedata->interface~showsevereerror proc~getsimpleshdsurfacedata->verifyname proc~getsimpleshdsurfacedata->calphafieldnames proc~getsimpleshdsurfacedata->calphaargs proc~getsimpleshdsurfacedata->rnumericargs proc~getsimpleshdsurfacedata->getobjectitem proc~getsimpleshdsurfacedata->proc~makerelativerectangularvertices proc~getsimpleshdsurfacedata->proc~makemirrorsurface proc~addvariableslatblind->finditeminlist proc~addvariableslatblind->roundsigdigits proc~showwarningerror ShowWarningError proc~addvariableslatblind->proc~showwarningerror proc~showcontinueerror ShowContinueError proc~addvariableslatblind->proc~showcontinueerror proc~showsevereerror ShowSevereError proc~addvariableslatblind->proc~showsevereerror proc~setupshadesurfacesforsolarcalcs->finditeminlist proc~setupshadesurfacesforsolarcalcs->samestring proc~setupshadesurfacesforsolarcalcs->surface proc~setupshadesurfacesforsolarcalcs->getnumobjectsfound proc~setupshadesurfacesforsolarcalcs->calphaargs proc~setupshadesurfacesforsolarcalcs->getobjectitem proc~getshadingsurfreflectancedata->finditeminlist proc~getshadingsurfreflectancedata->roundsigdigits proc~getshadingsurfreflectancedata->interface~showcontinueerror proc~getshadingsurfreflectancedata->interface~showwarningerror proc~getshadingsurfreflectancedata->interface~showsevereerror proc~getshadingsurfreflectancedata->construct proc~getshadingsurfreflectancedata->proc~csurfaceclass proc~getshadingsurfreflectancedata->getnumobjectsfound proc~getshadingsurfreflectancedata->calphafieldnames proc~getshadingsurfreflectancedata->calphaargs proc~getshadingsurfreflectancedata->rnumericargs proc~getshadingsurfreflectancedata->getobjectitem proc~getgeometryparameters->samestring proc~getgeometryparameters->interface~showcontinueerror proc~getgeometryparameters->interface~showwarningerror proc~getgeometryparameters->interface~showsevereerror proc~getgeometryparameters->getnumobjectsfound proc~getgeometryparameters->calphafieldnames proc~getgeometryparameters->getobjectitem finditem finditem proc~getgeometryparameters->finditem proc~getdetshdsurfacedata->interface~showcontinueerror proc~getdetshdsurfacedata->trimsigdigits proc~getdetshdsurfacedata->interface~showwarningerror proc~getdetshdsurfacedata->interface~showsevereerror proc~getdetshdsurfacedata->verifyname proc~getdetshdsurfacedata->calphafieldnames proc~getdetshdsurfacedata->calphaargs proc~getdetshdsurfacedata->lalphafieldblanks proc~getdetshdsurfacedata->rnumericargs proc~getdetshdsurfacedata->cnumericfieldnames proc~getdetshdsurfacedata->lnumericfieldblanks proc~getdetshdsurfacedata->getobjectitem proc~getdetshdsurfacedata->proc~getvertices proc~getdetshdsurfacedata->getobjectdefmaxargs proc~getdetshdsurfacedata->proc~checkconvexity proc~getdetshdsurfacedata->getscheduleindex proc~getdetshdsurfacedata->getschedulemaxvalue proc~getdetshdsurfacedata->getscheduleminvalue proc~getdetshdsurfacedata->proc~makemirrorsurface proc~getdetshdsurfacedata->checkschedulevalueminmax proc~calcsurfacecentroid->roundsigdigits proc~calcsurfacecentroid->interface~showcontinueerror proc~calcsurfacecentroid->interface~showwarningerror proc~calcsurfacecentroid->surface proc~areapolygon AreaPolygon proc~calcsurfacecentroid->proc~areapolygon proc~getrectdetshdsurfacedata->interface~showcontinueerror proc~getrectdetshdsurfacedata->trimsigdigits proc~getrectdetshdsurfacedata->interface~showwarningerror proc~getrectdetshdsurfacedata->interface~showsevereerror proc~getrectdetshdsurfacedata->verifyname proc~getrectdetshdsurfacedata->calphaargs proc~getrectdetshdsurfacedata->rnumericargs proc~getrectdetshdsurfacedata->getobjectitem proc~getrectdetshdsurfacedata->getobjectdefmaxargs proc~getrectdetshdsurfacedata->proc~makerectangularvertices proc~getrectdetshdsurfacedata->proc~makemirrorsurface proc~getsurfaceheattransferalgorithmoverrides->finditeminlist proc~getsurfaceheattransferalgorithmoverrides->roundsigdigits proc~getsurfaceheattransferalgorithmoverrides->interface~showcontinueerror proc~getsurfaceheattransferalgorithmoverrides->interface~showwarningerror proc~getsurfaceheattransferalgorithmoverrides->surface proc~getsurfaceheattransferalgorithmoverrides->interface~showsevereerror proc~getsurfaceheattransferalgorithmoverrides->construct proc~getsurfaceheattransferalgorithmoverrides->getnumobjectsfound proc~getsurfaceheattransferalgorithmoverrides->surfacewindow proc~getsurfaceheattransferalgorithmoverrides->calphafieldnames proc~getsurfaceheattransferalgorithmoverrides->calphaargs proc~getsurfaceheattransferalgorithmoverrides->getobjectitem heattransferalgosused heattransferalgosused proc~getsurfaceheattransferalgorithmoverrides->heattransferalgosused proc~gethtsurfextventedcavitydata->finditeminlist proc~gethtsurfextventedcavitydata->samestring proc~gethtsurfextventedcavitydata->interface~showcontinueerror proc~gethtsurfextventedcavitydata->trimsigdigits proc~gethtsurfextventedcavitydata->interface~showwarningerror proc~gethtsurfextventedcavitydata->surface proc~gethtsurfextventedcavitydata->interface~showsevereerror proc~gethtsurfextventedcavitydata->getnumobjectsfound proc~gethtsurfextventedcavitydata->verifyname proc~gethtsurfextventedcavitydata->calphafieldnames proc~gethtsurfextventedcavitydata->calphaargs proc~gethtsurfextventedcavitydata->lalphafieldblanks proc~gethtsurfextventedcavitydata->rnumericargs proc~gethtsurfextventedcavitydata->getobjectitem proc~gethtsurfextventedcavitydata->getobjectdefmaxargs interface~setupoutputvariable SetupOutputVariable proc~gethtsurfextventedcavitydata->interface~setupoutputvariable extventedcavity extventedcavity proc~gethtsurfextventedcavitydata->extventedcavity proc~createnewellsurfacenormalvector->proc~vecnormalize proc~vecnormalize->proc~veclength proc~checkwindowshadingcontrolframedivider->finditeminlist proc~checkwindowshadingcontrolframedivider->roundsigdigits proc~checkwindowshadingcontrolframedivider->interface~showcontinueerror proc~checkwindowshadingcontrolframedivider->interface~showwarningerror proc~checkwindowshadingcontrolframedivider->material proc~checkwindowshadingcontrolframedivider->interface~showsevereerror proc~checkwindowshadingcontrolframedivider->construct proc~checkwindowshadingcontrolframedivider->windowshadingcontrol proc~checkwindowshadingcontrolframedivider->calphafieldnames proc~checkwindowshadingcontrolframedivider->calphaargs proc~checkwindowshadingcontrolframedivider->lalphafieldblanks proc~createshadedwindowconstruction CreateShadedWindowConstruction proc~checkwindowshadingcontrolframedivider->proc~createshadedwindowconstruction framedivider framedivider proc~checkwindowshadingcontrolframedivider->framedivider proc~getwindowshadingcontroldata->finditeminlist proc~getwindowshadingcontroldata->interface~showcontinueerror proc~getwindowshadingcontroldata->interface~showwarningerror proc~getwindowshadingcontroldata->material proc~getwindowshadingcontroldata->interface~showsevereerror proc~getwindowshadingcontroldata->construct proc~getwindowshadingcontroldata->windowshadingcontrol proc~getwindowshadingcontroldata->getnumobjectsfound proc~getwindowshadingcontroldata->verifyname proc~getwindowshadingcontroldata->calphafieldnames proc~getwindowshadingcontroldata->calphaargs proc~getwindowshadingcontroldata->lalphafieldblanks proc~getwindowshadingcontroldata->rnumericargs proc~getwindowshadingcontroldata->getobjectitem proc~getwindowshadingcontroldata->getscheduleindex proc~checksubsurfacemiscellaneous->finditeminlist proc~checksubsurfacemiscellaneous->interface~showcontinueerror proc~checksubsurfacemiscellaneous->interface~showwarningerror proc~checksubsurfacemiscellaneous->material proc~checksubsurfacemiscellaneous->interface~showsevereerror proc~checksubsurfacemiscellaneous->construct proc~modifywindow ModifyWindow proc~checksubsurfacemiscellaneous->proc~modifywindow proc~getvertices->proc~createnewellareavector proc~getvertices->proc~determineazimuthandtilt proc~getvertices->proc~veclength proc~getvertices->roundsigdigits proc~getvertices->interface~showcontinueerror proc~getvertices->interface~showwarningerror proc~getvertices->interface~showfatalerror proc~getvertices->proc~createnewellsurfacenormalvector proc~getvertices->zone proc~reverseandrecalculate ReverseAndRecalculate proc~getvertices->proc~reverseandrecalculate proc~transformvertsbyaspect TransformVertsByAspect proc~getvertices->proc~transformvertsbyaspect proc~distance distance proc~getvertices->proc~distance proc~checkconvexity->roundsigdigits proc~checkconvexity->interface~showcontinueerror proc~checkconvexity->interface~showwarningerror proc~checkconvexity->interface~showsevereerror proc~checkconvexity->zone proc~createshadedwindowconstruction->finditeminlist proc~createshadedwindowconstruction->material proc~createshadedwindowconstruction->construct proc~createshadedwindowconstruction->windowshadingcontrol proc~createshadedwindowconstruction->nominalu nominalrfornominalucalculation nominalrfornominalucalculation proc~createshadedwindowconstruction->nominalrfornominalucalculation nominalrsave nominalrsave proc~createshadedwindowconstruction->nominalrsave nominalusave nominalusave proc~createshadedwindowconstruction->nominalusave constructsave constructsave proc~createshadedwindowconstruction->constructsave proc~modifywindow->proc~veclength proc~modifywindow->finditeminlist proc~modifywindow->roundsigdigits proc~modifywindow->interface~showcontinueerror proc~modifywindow->interface~showwarningerror proc~modifywindow->interface~showsevereerror proc~modifywindow->construct interface~showmessage ShowMessage proc~modifywindow->interface~showmessage proc~addwindow AddWindow proc~modifywindow->proc~addwindow proc~addwindow->proc~veclength proc~addwindow->finditeminlist proc~addwindow->roundsigdigits proc~addwindow->interface~showcontinueerror proc~addwindow->interface~showsevereerror proc~addwindow->construct proc~reverseandrecalculate->proc~determineazimuthandtilt proc~reverseandrecalculate->roundsigdigits proc~reverseandrecalculate->interface~showwarningerror proc~reverseandrecalculate->proc~createnewellsurfacenormalvector proc~transformvertsbyaspect->interface~showwarningerror proc~transformvertsbyaspect->calphafieldnames proc~getobjectitem GetObjectItem proc~transformvertsbyaspect->proc~getobjectitem proc~getnumobjectsfound GetNumObjectsFound proc~transformvertsbyaspect->proc~getnumobjectsfound proc~samestring SameString proc~getobjectitem->proc~samestring proc~getobjectitemfromfile GetObjectItemfromFile proc~getobjectitem->proc~getobjectitemfromfile proc~makeuppercase MakeUPPERCase proc~getobjectitem->proc~makeuppercase proc~processinput ProcessInput proc~getobjectitem->proc~processinput proc~showfatalerror ShowFatalError proc~getobjectitem->proc~showfatalerror proc~iptrimsigdigits IPTrimSigDigits proc~getobjectitem->proc~iptrimsigdigits proc~finditeminlist FindIteminList proc~getobjectitem->proc~finditeminlist proc~getobjectitem->proc~showwarningerror proc~finditeminsortedlist FindIteminSortedList proc~getobjectitem->proc~finditeminsortedlist proc~getnumobjectsfound->proc~makeuppercase proc~getnumobjectsfound->proc~finditeminlist proc~getnumobjectsfound->proc~showwarningerror proc~getnumobjectsfound->proc~finditeminsortedlist proc~samestring->proc~makeuppercase proc~processinput->calphafieldnames proc~processinput->calphaargs proc~processinput->lalphafieldblanks proc~processinput->rnumericargs proc~processinput->cnumericfieldnames proc~processinput->lnumericfieldblanks proc~processinput->proc~samestring proc~processinput->proc~makeuppercase proc~processinput->proc~showfatalerror proc~processinput->proc~iptrimsigdigits proc~processinput->proc~finditeminlist proc~processinput->proc~showwarningerror proc~processinput->proc~finditeminsortedlist setupandsort setupandsort proc~processinput->setupandsort proc~processinput->proc~showcontinueerror proc~processdatadicfile ProcessDataDicFile proc~processinput->proc~processdatadicfile matchversion matchversion proc~processinput->matchversion proc~displaystring DisplayString proc~processinput->proc~displaystring proc~getidfrecordsstats GetIDFRecordsStats proc~processinput->proc~getidfrecordsstats proc~processinput->proc~showsevereerror proc~processinputdatafile ProcessInputDataFile proc~processinput->proc~processinputdatafile proc~initsecretobjects InitSecretObjects proc~processinput->proc~initsecretobjects programpath programpath proc~processinput->programpath proc~showfatalerror->roundsigdigits proc~showfatalerror->proc~displaystring proc~showerrormessage ShowErrorMessage proc~showfatalerror->proc~showerrormessage createsqliteerrorrecord createsqliteerrorrecord proc~showfatalerror->createsqliteerrorrecord proc~abortenergyplus AbortEnergyPlus proc~showfatalerror->proc~abortenergyplus proc~showwarningerror->proc~showerrormessage matchcounts matchcounts proc~showwarningerror->matchcounts messagesearch messagesearch proc~showwarningerror->messagesearch proc~showwarningerror->createsqliteerrorrecord proc~finditeminsortedlist->proc~samestring proc~finditeminsortedlist->proc~makeuppercase proc~showcontinueerror->proc~showerrormessage updatesqliteerrorrecord updatesqliteerrorrecord proc~showcontinueerror->updatesqliteerrorrecord proc~processdatadicfile->proc~iptrimsigdigits proc~processdatadicfile->proc~showsevereerror proc~readinputline ReadInputLine proc~processdatadicfile->proc~readinputline proc~addsectiondef AddSectionDef proc~processdatadicfile->proc~addsectiondef proc~addobjectdefandparse AddObjectDefandParse proc~processdatadicfile->proc~addobjectdefandparse proc~showsevereerror->proc~showerrormessage proc~showsevereerror->matchcounts proc~showsevereerror->messagesearch proc~showsevereerror->createsqliteerrorrecord proc~processinputdatafile->proc~iptrimsigdigits proc~processinputdatafile->proc~showsevereerror proc~processinputdatafile->proc~readinputline proc~showmessage ShowMessage proc~processinputdatafile->proc~showmessage proc~validatesection ValidateSection proc~processinputdatafile->proc~validatesection proc~validateobjectandparse ValidateObjectandParse proc~processinputdatafile->proc~validateobjectandparse proc~showerrormessage->proc~showfatalerror proc~showerrormessage->proc~displaystring proc~readinputline->proc~makeuppercase proc~readinputline->proc~showfatalerror proc~readinputline->proc~iptrimsigdigits proc~readinputline->proc~showcontinueerror proc~readinputline->proc~showsevereerror proc~processnumber ProcessNumber proc~readinputline->proc~processnumber proc~processminmaxdefline ProcessMinMaxDefLine proc~readinputline->proc~processminmaxdefline proc~addsectiondef->proc~makeuppercase proc~addsectiondef->proc~finditeminlist proc~addsectiondef->proc~showwarningerror proc~addsectiondef->proc~showcontinueerror proc~addsectiondef->proc~showsevereerror proc~addobjectdefandparse->proc~makeuppercase proc~addobjectdefandparse->proc~iptrimsigdigits proc~addobjectdefandparse->proc~finditeminlist proc~addobjectdefandparse->proc~showwarningerror proc~addobjectdefandparse->proc~showcontinueerror proc~addobjectdefandparse->proc~showsevereerror proc~addobjectdefandparse->proc~readinputline proc~processminmaxdefline->proc~makeuppercase proc~processminmaxdefline->proc~iptrimsigdigits proc~processminmaxdefline->proc~showsevereerror proc~processminmaxdefline->proc~processnumber proc~showmessage->proc~showerrormessage proc~validatesection->proc~samestring proc~validatesection->proc~makeuppercase proc~validatesection->proc~finditeminlist proc~validatesection->proc~showwarningerror proc~validatesection->proc~finditeminsortedlist proc~validatesection->proc~showcontinueerror proc~addrecordfromsection AddRecordFromSection proc~validatesection->proc~addrecordfromsection proc~validateobjectandparse->proc~makeuppercase proc~validateobjectandparse->proc~iptrimsigdigits proc~validateobjectandparse->proc~finditeminlist proc~validateobjectandparse->proc~showwarningerror proc~validateobjectandparse->proc~finditeminsortedlist proc~validateobjectandparse->proc~showcontinueerror proc~validateobjectandparse->proc~showsevereerror proc~validateobjectandparse->proc~readinputline proc~validateobjectandparse->proc~processnumber proc~showauditerrormessage ShowAuditErrorMessage proc~validateobjectandparse->proc~showauditerrormessage proc~internalrangecheck InternalRangeCheck proc~validateobjectandparse->proc~internalrangecheck proc~dumpcurrentlinebuffer DumpCurrentLineBuffer proc~validateobjectandparse->proc~dumpcurrentlinebuffer proc~maketransition MakeTransition proc~validateobjectandparse->proc~maketransition proc~extendobjectdefinition ExtendObjectDefinition proc~validateobjectandparse->proc~extendobjectdefinition proc~addrecordfromsection->proc~iptrimsigdigits proc~addrecordfromsection->proc~showcontinueerror proc~addrecordfromsection->proc~showsevereerror proc~addrecordfromsection->proc~showauditerrormessage proc~addrecordfromsection->proc~internalrangecheck proc~internalrangecheck->proc~iptrimsigdigits proc~internalrangecheck->proc~showsevereerror proc~dumpcurrentlinebuffer->proc~iptrimsigdigits proc~dumpcurrentlinebuffer->proc~showmessage proc~maketransition->proc~samestring proc~maketransition->proc~makeuppercase proc~maketransition->proc~showfatalerror proc~maketransition->proc~finditeminlist proc~maketransition->proc~showsevereerror proc~extendobjectdefinition->proc~iptrimsigdigits proc~extendobjectdefinition->proc~displaystring proc~abortenergyplus->roundsigdigits proc~abortenergyplus->proc~displaystring proc~abortenergyplus->proc~showmessage proc~testairpathintegrity TestAirPathIntegrity proc~abortenergyplus->proc~testairpathintegrity updatesqlitesimulationrecord updatesqlitesimulationrecord proc~abortenergyplus->updatesqlitesimulationrecord checkmarkednodes checkmarkednodes proc~abortenergyplus->checkmarkednodes reportairloopconnections reportairloopconnections proc~abortenergyplus->reportairloopconnections proc~showrecurringerrors ShowRecurringErrors proc~abortenergyplus->proc~showrecurringerrors testcompsetinletoutletnodes testcompsetinletoutletnodes proc~abortenergyplus->testcompsetinletoutletnodes proc~summarizeerrors SummarizeErrors proc~abortenergyplus->proc~summarizeerrors reportsurfaceerrors reportsurfaceerrors proc~abortenergyplus->reportsurfaceerrors reportloopconnections reportloopconnections proc~abortenergyplus->reportloopconnections proc~closemiscopenfiles CloseMiscOpenFiles proc~abortenergyplus->proc~closemiscopenfiles setupnodevarsforreporting setupnodevarsforreporting proc~abortenergyplus->setupnodevarsforreporting closesocket closesocket proc~abortenergyplus->closesocket proc~closeoutopenfiles CloseOutOpenFiles proc~abortenergyplus->proc~closeoutopenfiles proc~reportsurfaces ReportSurfaces proc~abortenergyplus->proc~reportsurfaces testbranchintegrity testbranchintegrity proc~abortenergyplus->testbranchintegrity checkplantonabort checkplantonabort proc~abortenergyplus->checkplantonabort proc~epelapsedtime epElapsedTime proc~abortenergyplus->proc~epelapsedtime proc~epstoptime epStopTime proc~abortenergyplus->proc~epstoptime proc~epsummarytimes epSummaryTimes proc~abortenergyplus->proc~epsummarytimes checknodeconnections checknodeconnections proc~abortenergyplus->checknodeconnections proc~testairpathintegrity->proc~showcontinueerror proc~testairpathintegrity->proc~showsevereerror airtozonenodeinfo airtozonenodeinfo proc~testairpathintegrity->airtozonenodeinfo nodeid nodeid proc~testairpathintegrity->nodeid proc~showrecurringerrors->roundsigdigits proc~showrecurringerrors->updatesqliteerrorrecord proc~showrecurringerrors->createsqliteerrorrecord proc~showrecurringerrors->proc~showmessage removetrailingzeros removetrailingzeros proc~showrecurringerrors->removetrailingzeros recurringerrors recurringerrors proc~showrecurringerrors->recurringerrors proc~summarizeerrors->matchcounts proc~summarizeerrors->proc~showmessage summaries summaries proc~summarizeerrors->summaries moredetails moredetails proc~summarizeerrors->moredetails closedfsfile closedfsfile proc~closemiscopenfiles->closedfsfile closereportillummaps closereportillummaps proc~closemiscopenfiles->closereportillummaps proc~reportsurfaces->proc~showwarningerror proc~detailsforsurfaces DetailsForSurfaces proc~reportsurfaces->proc~detailsforsurfaces proc~setupschemecolors SetUpSchemeColors proc~reportsurfaces->proc~setupschemecolors proc~vrmlout VRMLOut proc~reportsurfaces->proc~vrmlout scanforreports scanforreports proc~reportsurfaces->scanforreports proc~dxfoutwireframe DXFOutWireFrame proc~reportsurfaces->proc~dxfoutwireframe proc~costinfoout CostInfoOut proc~reportsurfaces->proc~costinfoout proc~linesout LinesOut proc~reportsurfaces->proc~linesout proc~dxfout DXFOut proc~reportsurfaces->proc~dxfout proc~epstoptime->proc~showfatalerror tstop tstop proc~epstoptime->tstop proc~epsummarytimes->roundsigdigits proc~detailsforsurfaces->roundsigdigits proc~detailsforsurfaces->trimsigdigits proc~detailsforsurfaces->surface proc~detailsforsurfaces->construct proc~detailsforsurfaces->proc~csurfaceclass proc~detailsforsurfaces->nominalu proc~detailsforsurfaces->zone proc~detailsforsurfaces->surfacewindow proc~detailsforsurfaces->osc proc~detailsforsurfaces->framedivider getschedulename getschedulename proc~detailsforsurfaces->getschedulename oscm oscm proc~detailsforsurfaces->oscm proc~detailsforsurfaces->getschedulemaxvalue 2 2 proc~detailsforsurfaces->2 proc~computenominaluwithconvcoeffs ComputeNominalUwithConvCoeffs proc~detailsforsurfaces->proc~computenominaluwithconvcoeffs 3 3 proc~detailsforsurfaces->3 4 4 proc~detailsforsurfaces->4 userintconvectioncoeffs userintconvectioncoeffs proc~detailsforsurfaces->userintconvectioncoeffs userextconvectioncoeffs userextconvectioncoeffs proc~detailsforsurfaces->userextconvectioncoeffs proc~detailsforsurfaces->getscheduleminvalue proc~setupschemecolors->getobjectitem proc~setupschemecolors->getobjectdefmaxargs proc~setupschemecolors->proc~showwarningerror getobjectitemnum getobjectitemnum proc~setupschemecolors->getobjectitemnum proc~matchandsetcolortextstring MatchAndSetColorTextString proc~setupschemecolors->proc~matchandsetcolortextstring proc~vrmlout->surface proc~vrmlout->zone proc~vrmlout->proc~showfatalerror proc~vrmlout->proc~showwarningerror proc~vrmlout->proc~showcontinueerror proc~triangulate Triangulate proc~vrmlout->proc~triangulate proc~getnewunitnumber GetNewUnitNumber proc~vrmlout->proc~getnewunitnumber proc~dxfoutwireframe->trimsigdigits proc~dxfoutwireframe->surface proc~dxfoutwireframe->zone proc~dxfoutwireframe->surfacewindow proc~dxfoutwireframe->proc~showfatalerror proc~dxfoutwireframe->proc~getnewunitnumber zonedaylight zonedaylight proc~dxfoutwireframe->zonedaylight dxfcolorno dxfcolorno proc~dxfoutwireframe->dxfcolorno proc~costinfoout->surface proc~costinfoout->construct proc~costinfoout->proc~csurfaceclass proc~costinfoout->proc~showfatalerror proc~costinfoout->proc~getnewunitnumber proc~linesout->roundsigdigits proc~linesout->surface proc~linesout->proc~csurfaceclass proc~linesout->proc~showfatalerror proc~linesout->proc~showwarningerror proc~linesout->proc~showcontinueerror proc~linesout->proc~getnewunitnumber proc~dxfout->trimsigdigits proc~dxfout->surface proc~dxfout->zone proc~dxfout->surfacewindow proc~dxfout->proc~showfatalerror proc~dxfout->proc~showwarningerror proc~dxfout->proc~showcontinueerror proc~dxfout->proc~triangulate proc~dxfout->proc~getnewunitnumber proc~dxfout->zonedaylight proc~dxfout->dxfcolorno illummapcalc illummapcalc proc~dxfout->illummapcalc proc~computenominaluwithconvcoeffs->surface proc~matchandsetcolortextstring->finditem proc~triangulate->roundsigdigits proc~triangulate->proc~showwarningerror proc~triangulate->proc~showcontinueerror proc~triangulate->proc~showmessage csurfaceclass csurfaceclass proc~triangulate->csurfaceclass proc~generate_ears generate_ears proc~triangulate->proc~generate_ears proc~calcrfflrcoordinatetransformation CalcRfFlrCoordinateTransformation proc~triangulate->proc~calcrfflrcoordinatetransformation proc~calcwallcoordinatetransformation CalcWallCoordinateTransformation proc~triangulate->proc~calcwallcoordinatetransformation proc~polygon_contains_point_2d polygon_contains_point_2d proc~generate_ears->proc~polygon_contains_point_2d proc~angle_2dvector angle_2dvector proc~generate_ears->proc~angle_2dvector proc~checkandsetconstructionproperties->proc~showcontinueerror proc~checkandsetconstructionproperties->proc~showsevereerror proc~makerelativerectangularvertices->proc~createnewellareavector proc~makerelativerectangularvertices->proc~determineazimuthandtilt proc~makerelativerectangularvertices->proc~veclength proc~makerelativerectangularvertices->proc~createnewellsurfacenormalvector proc~makerelativerectangularvertices->proc~transformvertsbyaspect proc~makerelativerectangularvertices->proc~distance proc~getoscmdata->getnumobjectsfound proc~getoscmdata->verifyname proc~getoscmdata->calphaargs proc~getoscmdata->getobjectitem proc~getoscmdata->oscm interface~setupemsactuator SetupEMSActuator proc~getoscmdata->interface~setupemsactuator proc~getoscmdata->interface~setupoutputvariable proc~getoscdata->roundsigdigits proc~getoscdata->samestring proc~getoscdata->interface~showcontinueerror proc~getoscdata->interface~showsevereerror proc~getoscdata->getnumobjectsfound proc~getoscdata->verifyname proc~getoscdata->calphafieldnames proc~getoscdata->calphaargs proc~getoscdata->lalphafieldblanks proc~getoscdata->rnumericargs proc~getoscdata->lnumericfieldblanks proc~getoscdata->getobjectitem proc~getoscdata->osc proc~getoscdata->getscheduleindex proc~getoscdata->interface~setupoutputvariable proc~makerectangularvertices->proc~createnewellareavector proc~makerectangularvertices->proc~determineazimuthandtilt proc~makerectangularvertices->proc~veclength proc~makerectangularvertices->proc~createnewellsurfacenormalvector proc~makerectangularvertices->zone proc~makerectangularvertices->proc~transformvertsbyaspect proc~makerectangularvertices->proc~distance proc~makemirrorsurface->proc~createnewellareavector proc~makemirrorsurface->proc~determineazimuthandtilt proc~makemirrorsurface->proc~veclength proc~makemirrorsurface->proc~createnewellsurfacenormalvector proc~areapolygon->proc~vecnormalize
Help

Called By

proc~~getsurfacedata~~CalledByGraph proc~getsurfacedata GetSurfaceData proc~setupzonegeometry SetupZoneGeometry proc~setupzonegeometry->proc~getsurfacedata proc~getbuildingdata GetBuildingData proc~getbuildingdata->proc~setupzonegeometry proc~getheatbalanceinput GetHeatBalanceInput proc~getheatbalanceinput->proc~getbuildingdata proc~manageheatbalance ManageHeatBalance proc~manageheatbalance->proc~getheatbalanceinput proc~setupsimulation SetupSimulation proc~setupsimulation->proc~manageheatbalance proc~managesimulation ManageSimulation proc~managesimulation->proc~manageheatbalance proc~managesimulation->proc~setupsimulation proc~setupzonesizing SetupZoneSizing proc~setupzonesizing->proc~manageheatbalance proc~managesizing ManageSizing proc~managesizing->proc~manageheatbalance proc~managesizing->proc~setupzonesizing program~energyplus EnergyPlus program~energyplus->proc~managesimulation
Help

Source Code


Source Code

SUBROUTINE GetSurfaceData(ErrorsFound)

          ! SUBROUTINE INFORMATION:
          !       AUTHOR         Richard Liesen
          !       DATE WRITTEN   November 1997
          !       MODIFIED       April 1999, Linda Lawrie
          !                      Dec. 2000, FW (add "one-wall zone" checks)
          !       RE-ENGINEERED  May 2000, Linda Lawrie (breakout surface type gets)

          ! PURPOSE OF THIS SUBROUTINE:
          ! The purpose of this subroutine is to read in the surface information
          ! from the input data file and interpret and put in the derived type

          ! METHODOLOGY EMPLOYED:
          ! The order of surfaces does not matter and the surfaces are resorted into
          ! the hierarchical order:
          !  Detached Surfaces
          !  Base Surface for zone x
          !    Subsurfaces for base surface
          !  Base Surface for zone x
          !    etc
          !  Heat Transfer Surfaces and Shading surfaces are mixed in the list
          !  Pointers are set in the zones (First, Last)

          ! REFERENCES:
  !   This routine manages getting the input for the following Objects:
  ! SurfaceGeometry
  ! Surface:Shading:Detached
  ! Surface:HeatTransfer
  ! Surface:HeatTransfer:Sub
  ! Surface:Shading:Attached
  ! Surface:InternalMass

  !
  ! Vertex input:
  !  N3 , \field Number of Surface Vertices -- Number of (X,Y,Z) groups in this surface
  !       \note currently limited 3 or 4, later?
  !       \min 3
  !       \max 4
  !       \memo vertices are given in SurfaceGeometry coordinates -- if relative, all surface coordinates
  !       \memo are "relative" to the Zone Origin.  if WCS, then building and zone origins are used
  !       \memo for some internal calculations, but all coordinates are given in an "absolute" system.
  !  N4,  \field Vertex 1 X-coordinate
  !       \units m
  !       \type real
  !  N5 , \field Vertex 1 Y-coordinate
  !       \units m
  !       \type real
  !  N6 , \field Vertex 1 Z-coordinate
  !       \units m
  !       \type real
  !  N7,  \field Vertex 2 X-coordinate
  !       \units m
  !       \type real
  !  N8,  \field Vertex 2 Y-coordinate
  !       \units m
  !       \type real
  !  N9,  \field Vertex 2 Z-coordinate
  !       \units m
  !       \type real
  !  N10, \field Vertex 3 X-coordinate
  !       \units m
  !       \type real
  !  N11, \field Vertex 3 Y-coordinate
  !       \units m
  !       \type real
  !  N12, \field Vertex 3 Z-coordinate
  !       \units m
  !       \type real
  !  N13, \field Vertex 4 X-coordinate
  !       \units m
  !       \type real
  !  N14, \field Vertex 4 Y-coordinate
  !       \type real
  !       \units m
  !  N15; \field Vertex 4 Z-coordinate
  !       \units m
  !       \type real

  ! The vertices are stored in the surface derived type.
  !
  !      +(1)-------------------------(4)+
  !      |                               |
  !      |                               |
  !      |                               |
  !      +(2)-------------------------(3)+
  !
  !  The above diagram shows the actual coordinate points of a typical wall
  !  (you're on the outside looking toward the wall) as stored into
  !  Surface%Vertex(1:<number-of-sides>)
  !
  !
  !


          ! USE STATEMENTS:
  USE DataIPShortCuts
  USE InputProcessor, ONLY: GetNumObjectsFound, GetObjectItem, FindItemInList, SameString, VerifyName
  USE General, ONLY: TrimSigDigits,RoundSigDigits
  USE Vectors
  USE ScheduleManager, ONLY: GetScheduleMinValue, GetScheduleMaxValue
  USE DataErrorTracking

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

          ! SUBROUTINE ARGUMENT DEFINITIONS:
  LOGICAL, INTENT(INOUT) :: ErrorsFound ! If errors found in input

          ! SUBROUTINE PARAMETER DEFINITIONS:
  INTEGER, PARAMETER :: SurfaceClass_Moved=-1
  CHARACTER(len=*), PARAMETER :: RoutineName='GetSurfaceData: '

          ! INTERFACE BLOCK SPECIFICATIONS
          ! na

          ! DERIVED TYPE DEFINITIONS
          ! na

          ! SUBROUTINE LOCAL VARIABLE DECLARATIONS:

  INTEGER :: ConstrNum         ! Construction number
  INTEGER :: SubSurfNum        ! DO loop counter/index for sub-surface number
  INTEGER :: SurfNum           ! DO loop counter/index for surface number
  INTEGER :: ZoneNum           ! DO loop counter (zones)
  INTEGER :: Found             ! For matching interzone surfaces
  INTEGER :: ConstrNumFound    ! Construction number of matching interzone surface
  LOGICAL :: NonMatch=.false.  ! Error for non-matching interzone surfaces
  INTEGER :: Lay               ! Layer number
  INTEGER :: MovedSurfs        ! Number of Moved Surfaces (when sorting into hierarchical structure)
  LOGICAL :: SurfError=.false. ! General Surface Error, causes fatal error at end of routine
  INTEGER :: Loop
  INTEGER :: BaseSurfNum
  INTEGER :: TotLay            ! Total layers in a construction
  INTEGER :: TotLayFound       ! Total layers in the construction of a matching interzone surface
  INTEGER :: TotDetachedFixed  ! Total Shading:Site:Detailed entries
  INTEGER :: TotDetachedBldg   ! Total Shading:Building:Detailed entries
  INTEGER :: TotRectDetachedFixed  ! Total Shading:Site entries
  INTEGER :: TotRectDetachedBldg   ! Total Shading:Building entries
  INTEGER :: TotHTSurfs        ! Number of BuildingSurface:Detailed items to obtain
  INTEGER :: TotDetailedWalls  ! Number of Wall:Detailed items to obtain
  INTEGER :: TotDetailedRoofs  ! Number of RoofCeiling:Detailed items to obtain
  INTEGER :: TotDetailedFloors ! Number of Floor:Detailed items to obtain
  INTEGER :: TotHTSubs         ! Number of FenestrationSurface:Detailed items to obtain
  INTEGER :: TotShdSubs        ! Number of Shading:Zone:Detailed items to obtain
  INTEGER :: TotIntMass        ! Number of InternalMass items to obtain
  ! Simple Surfaces (Rectangular)
  INTEGER :: TotRectExtWalls   ! Number of Exterior Walls to obtain
  INTEGER :: TotRectIntWalls   ! Number of Adiabatic Walls to obtain
  INTEGER :: TotRectIZWalls    ! Number of Interzone Walls to obtain
  INTEGER :: TotRectUGWalls    ! Number of Underground to obtain
  INTEGER :: TotRectRoofs      ! Number of Roofs to obtain
  INTEGER :: TotRectCeilings   ! Number of Adiabatic Ceilings to obtain
  INTEGER :: TotRectIZCeilings ! Number of Interzone Ceilings to obtain
  INTEGER :: TotRectGCFloors   ! Number of Floors with Ground Contact to obtain
  INTEGER :: TotRectIntFloors  ! Number of Adiabatic Walls to obtain
  INTEGER :: TotRectIZFloors   ! Number of Interzone Floors to obtain
  INTEGER :: TotRectWindows
  INTEGER :: TotRectDoors
  INTEGER :: TotRectGlazedDoors
  INTEGER :: TotRectIZWindows
  INTEGER :: TotRectIZDoors
  INTEGER :: TotRectIZGlazedDoors
  INTEGER :: TotOverhangs
  INTEGER :: TotOverhangsProjection
  INTEGER :: TotFins
  INTEGER :: TotFinsProjection
  CHARACTER(len=20) ClassMsg
  CHARACTER(len=20) Msg2
  INTEGER :: OpaqueHTSurfs     ! Number of floors, walls and roofs in a zone
  INTEGER :: OpaqueHTSurfsWithWin ! Number of floors, walls and roofs with windows in a zone
  INTEGER :: InternalMassSurfs ! Number of internal mass surfaces in a zone
  LOGICAL :: RelWarning=.false.
  INTEGER :: ConstrNumSh       ! Shaded construction number for a window
  INTEGER :: LayNumOutside     ! Outside material numbers for a shaded construction
  INTEGER :: BlNum             ! Blind number
  LOGICAL :: WinShadingCtrlReferenced ! True if a WindowShadingControl is referenced by at least one window
  INTEGER :: ShadingCtrl       ! WindowShadingControl number
  INTEGER :: AddedSubSurfaces  ! Subsurfaces (windows) added when windows reference Window5 Data File
                               ! entries with two glazing systems
  INTEGER :: NeedToAddSurfaces ! Surfaces that will be added due to "unentered" other zone surface
  INTEGER :: NeedToAddSubSurfaces ! SubSurfaces that will be added due to "unentered" other zone surface
  INTEGER :: CurNewSurf
  INTEGER :: FirstTotalSurfaces
  INTEGER :: NVert
  INTEGER :: Vert
  INTEGER :: N
  REAL(r64) SurfWorldAz
  REAL(r64) :: surfTilt

  INTEGER :: MultFound, MultSurfNum
  CHARACTER(len=20) :: MultString
  LOGICAL,SAVE :: WarningDisplayed=.false.
  INTEGER, SAVE :: ErrCount1=0
  INTEGER, SAVE :: ErrCount2=0
  INTEGER, SAVE :: ErrCount3=0
  INTEGER, SAVE :: ErrCount4=0  ! counts of interzone area mismatches.
  LOGICAL :: SubSurfaceSevereDisplayed
 ! INTEGER :: Warning4Count=0  ! counts of nonmatched flat surface subsurface orientations
 ! INTEGER :: Warning5Count=0  ! counts of nonmatched flat surface subsurface orientations - could not be resolved
  LOGICAL :: errFlag

  INTEGER :: iTmp1
  INTEGER :: iTmp2
!unused  INTEGER :: SchID
  INTEGER :: BlNumNew
  INTEGER :: WinShadingControlPtr
  INTEGER :: ShadingType
!unused  REAL(r64) :: SchSlatAngle = 0.0D0
!unused  LOGICAL :: initmsg
  INTEGER :: errCount
  REAL(r64) :: diffp
!  TYPE (vector), ALLOCATABLE, DIMENSION(:) :: TestVertex
!  INTEGER :: Vrt
!  INTEGER :: testV
!  INTEGER :: testVsave
!  INTEGER :: countSides
!  INTEGER :: LLCVrt
!  REAL(r64) :: maxX
!  REAL(r64) :: maxY
!  REAL(r64) :: testX
!  REAL(r64) :: testY
  REAL(r64) :: surfAzimuth
!  LOGICAL :: Located
  LOGICAL :: sameSurfNormal
  LOGICAL :: izConstDiff  ! differences in construction for IZ surfaces
  LOGICAL :: izConstDiffMsg  ! display message about hb diffs only once.

          ! FLOW:
! Get the total number of surfaces to allocate derived type and for surface loops

  CALL GetGeometryParameters(ErrorsFound)

  IF (WorldCoordSystem) THEN
    IF (BuildingAzimuth /= 0.0d0) RelWarning=.true.
    DO ZoneNum=1,NumOfZones
      IF (Zone(ZoneNum)%RelNorth /= 0.0d0) RelWarning=.true.
    ENDDO
    IF (RelWarning .and. .not. WarningDisplayed) THEN
      CALL ShowWarningError(RoutineName//'World Coordinate System selected.  '// &
                            'Any non-zero Building/Zone North Axes or non-zero Zone Origins are ignored.')
      CALL ShowContinueError('These may be used in daylighting reference point coordinate calculations '//  &
         ' but not in normal geometry inputs.')
      WarningDisplayed=.true.
    ENDIF
    RelWarning=.false.
    DO ZoneNum=1,NumOfZones
      IF (Zone(ZoneNum)%OriginX /= 0.0d0) RelWarning=.true.
      IF (Zone(ZoneNum)%OriginY /= 0.0d0) RelWarning=.true.
      IF (Zone(ZoneNum)%OriginZ /= 0.0d0) RelWarning=.true.
    ENDDO
    IF (RelWarning .and. .not. WarningDisplayed) THEN
      CALL ShowWarningError(RoutineName//'World Coordinate System selected.  '// &
                            'Any non-zero Building/Zone North Axes or non-zero Zone Origins are ignored.')
      CALL ShowContinueError('These may be used in daylighting reference point coordinate calculations '//  &
         ' but not in normal geometry inputs.')
      WarningDisplayed=.true.
    ENDIF
  ENDIF


  TotDetachedFixed      =GetNumObjectsFound('Shading:Site:Detailed')
  TotDetachedBldg       =GetNumObjectsFound('Shading:Building:Detailed')
  TotRectDetachedFixed  =GetNumObjectsFound('Shading:Site')
  TotRectDetachedBldg   =GetNumObjectsFound('Shading:Building')
  TotHTSurfs            =GetNumObjectsFound('BuildingSurface:Detailed')
  TotDetailedWalls      =GetNumObjectsFound('Wall:Detailed')
  TotDetailedRoofs      =GetNumObjectsFound('RoofCeiling:Detailed')
  TotDetailedFloors     =GetNumObjectsFound('Floor:Detailed')
  TotHTSubs             =GetNumObjectsFound('FenestrationSurface:Detailed')
  TotShdSubs            =GetNumObjectsFound('Shading:Zone:Detailed')
  TotOverhangs          =GetNumObjectsFound('Shading:Overhang')
  TotOverhangsProjection=GetNumObjectsFound('Shading:Overhang:Projection')
  TotFins               =GetNumObjectsFound('Shading:Fin')
  TotFinsProjection     =GetNumObjectsFound('Shading:Fin:Projection')
  TotIntMass            =GetNumObjectsFound('InternalMass')
  TotRectWindows        =GetNumObjectsFound('Window')
  TotRectDoors          =GetNumObjectsFound('Door')
  TotRectGlazedDoors    =GetNumObjectsFound('GlazedDoor')
  TotRectIZWindows      =GetNumObjectsFound('Window:Interzone')
  TotRectIZDoors        =GetNumObjectsFound('Door:Interzone')
  TotRectIZGlazedDoors  =GetNumObjectsFound('GlazedDoor:Interzone')
  TotRectExtWalls       =GetNumObjectsFound('Wall:Exterior')
  TotRectIntWalls       =GetNumObjectsFound('Wall:Adiabatic')
  TotRectIZWalls        =GetNumObjectsFound('Wall:Interzone')
  TotRectUGWalls        =GetNumObjectsFound('Wall:Underground')
  TotRectRoofs          =GetNumObjectsFound('Roof')
  TotRectCeilings       =GetNumObjectsFound('Ceiling:Adiabatic')
  TotRectIZCeilings     =GetNumObjectsFound('Ceiling:Interzone')
  TotRectGCFloors       =GetNumObjectsFound('Floor:GroundContact')
  TotRectIntFloors      =GetNumObjectsFound('Floor:Adiabatic ')
  TotRectIZFloors       =GetNumObjectsFound('Floor:Interzone')

  TotOSC     =0

  TotSurfaces=(TotDetachedFixed+TotDetachedBldg+TotRectDetachedFixed+TotRectDetachedBldg)*2 + &
     TotHTSurfs + TotHTSubs + TotShdSubs*2 + TotIntMass +   &
     TotOverhangs*2 + TotOverhangsProjection*2 + TotFins*4 + TotFinsProjection*4 + &
     TotDetailedWalls + TotDetailedRoofs + TotDetailedFloors + &
     TotRectWindows + TotRectDoors + TotRectGlazedDoors + TotRectIZWindows + TotRectIZDoors + TotRectIZGlazedDoors + &
     TotRectExtWalls + TotRectIntWalls + TotRectIZWalls + TotRectUGWalls + &
     TotRectRoofs + TotRectCeilings + TotRectIZCeilings + &
     TotRectGCFloors + TotRectIntFloors + TotRectIZFloors

  ALLOCATE (SurfaceTmp(TotSurfaces))   ! Allocate the Surface derived type appropriately
    ! SurfaceTmp structure is allocated via derived type initialization.

  SurfNum=0
  AddedSubSurfaces=0
  AskForSurfacesReport=.true.

  CALL GetDetShdSurfaceData(ErrorsFound,SurfNum,TotDetachedFixed,TotDetachedBldg)

  CALL GetRectDetShdSurfaceData(ErrorsFound,SurfNum,TotRectDetachedFixed,TotRectDetachedBldg)

  CALL GetHTSurfaceData(ErrorsFound,SurfNum,TotHTSurfs,TotDetailedWalls,TotDetailedRoofs,TotDetailedFloors,  &
                 BaseSurfCls,BaseSurfIDs,NeedToAddSurfaces)

  CALL GetRectSurfaces(ErrorsFound,SurfNum,TotRectExtWalls,TotRectIntWalls,TotRectIZWalls,TotRectUGWalls,  &
      TotRectRoofs,TotRectCeilings,TotRectIZCeilings,TotRectGCFloors,TotRectIntFloors,TotRectIZFloors,     &
      BaseSurfIDs,NeedToAddSurfaces)

  CALL GetHTSubSurfaceData(ErrorsFound,SurfNum,TotHTSubs,SubSurfCls,SubSurfIDs,AddedSubSurfaces,NeedToAddSubSurfaces)

  CALL GetRectSubSurfaces(ErrorsFound,SurfNum,TotRectWindows,TotRectDoors,TotRectGlazedDoors,  &
      TotRectIZWindows,TotRectIZDoors,TotRectIZGlazedDoors,SubSurfIDs,AddedSubSurfaces,NeedToAddSubSurfaces)

  CALL GetAttShdSurfaceData(ErrorsFound,SurfNum,TotShdSubs)

  CALL GetSimpleShdSurfaceData(ErrorsFound,SurfNum,TotOverhangs,TotOverhangsProjection,TotFins,TotFinsProjection)

  CALL GetIntMassSurfaceData(ErrorsFound,SurfNum,TotIntMass)

  CALL GetMovableInsulationData(ErrorsFound)

  IF(CalcSolRefl) CALL GetShadingSurfReflectanceData(ErrorsFound)

  TotSurfaces=SurfNum + AddedSubSurfaces + NeedToAddSurfaces + NeedToAddSubSurfaces

  ! Have to make room for added surfaces, if needed
  FirstTotalSurfaces=SurfNum + AddedSubSurfaces
  IF (NeedToAddSurfaces+NeedToAddSubsurfaces > 0) THEN
    ALLOCATE(SurfaceTmpSave(TotSurfaces))
    SurfaceTmpSave(1:FirstTotalSurfaces)=SurfaceTmp
    DEALLOCATE(SurfaceTmp)
    ALLOCATE(SurfaceTmp(TotSurfaces))
    SurfaceTmp=SurfaceTmpSave
    DEALLOCATE(SurfaceTmpSave)
  ENDIF

  ALLOCATE (SurfaceWindow(TotSurfaces))

! add the "need to add" surfaces
  if (NeedtoAddSurfaces+NeedToAddSubSurfaces > 0)   &
!Debug    write(outputfiledebug,*) ' need to add ',NeedtoAddSurfaces+NeedToAddSubSurfaces
  CurNewSurf=FirstTotalSurfaces
  DO SurfNum=1,FirstTotalSurfaces
    IF (SurfaceTmp(SurfNum)%ExtBoundCond /= UnenteredAdjacentZoneSurface) CYCLE
    ! Need to add surface
    CurNewSurf=CurNewSurf+1
!Debug    write(outputfiledebug,*) ' adding surface=',curnewsurf
    SurfaceTmp(CurNewSurf)=SurfaceTmp(SurfNum)
    !  Basic parameters are the same for both surfaces.
    Found=FindItemInList(SurfaceTmp(SurfNum)%ExtBoundCondName,Zone%Name,NumOfZones)
    IF (Found == 0) CYCLE
    SurfaceTmp(CurNewSurf)%Zone=Found
    SurfaceTmp(CurNewSurf)%ZoneName=Zone(Found)%Name
    ! Reverse Construction
    SurfaceTmp(CurNewSurf)%Construction=AssignReverseConstructionNumber(SurfaceTmp(SurfNum)%Construction,SurfError)
    SurfaceTmp(CurNewSurf)%ConstructionStoredInputValue  = SurfaceTmp(CurNewSurf)%Construction
    ! Reverse Vertices
    NVert=SurfaceTmp(SurfNum)%Sides
    DO Vert=1,SurfaceTmp(SurfNum)%Sides
      SurfaceTmp(CurNewSurf)%Vertex(Vert)=SurfaceTmp(SurfNum)%Vertex(NVert)
      NVert=NVert-1
    ENDDO
    IF (SurfaceTmp(CurNewSurf)%Sides > 2) THEN
      CALL CreateNewellAreaVector(SurfaceTmp(CurNewSurf)%Vertex,SurfaceTmp(CurNewSurf)%Sides,  &
           SurfaceTmp(CurNewSurf)%NewellAreaVector)
      SurfaceTmp(CurNewSurf)%GrossArea=VecLength(SurfaceTmp(CurNewSurf)%NewellAreaVector)
      SurfaceTmp(CurNewSurf)%Area=SurfaceTmp(CurNewSurf)%GrossArea
      SurfaceTmp(CurNewSurf)%NetAreaShadowCalc = SurfaceTmp(CurNewSurf)%Area
      CALL CreateNewellSurfaceNormalVector(SurfaceTmp(CurNewSurf)%Vertex,SurfaceTmp(CurNewSurf)%Sides,  &
           SurfaceTmp(CurNewSurf)%NewellSurfaceNormalVector)
      CALL DetermineAzimuthAndTilt(SurfaceTmp(CurNewSurf)%Vertex,SurfaceTmp(CurNewSurf)%Sides,SurfWorldAz,SurfTilt,  &
                                   SurfaceTmp(CurNewSurf)%lcsx,SurfaceTmp(CurNewSurf)%lcsy,SurfaceTmp(CurNewSurf)%lcsz,  &
                                   SurfaceTmp(CurNewSurf)%GrossArea,SurfaceTmp(CurNewSurf)%NewellSurfaceNormalVector)
      SurfaceTmp(CurNewSurf)%Azimuth=SurfWorldAz
      SurfaceTmp(CurNewSurf)%Tilt=SurfTilt

      ! Sine and cosine of azimuth and tilt
      SurfaceTmp(CurNewSurf)%SinAzim = SIN(SurfWorldAz*DegToRadians)
      SurfaceTmp(CurNewSurf)%CosAzim = COS(SurfWorldAz*DegToRadians)
      SurfaceTmp(CurNewSurf)%SinTilt = SIN(SurfTilt*DegToRadians)
      SurfaceTmp(CurNewSurf)%CosTilt = COS(SurfTilt*DegToRadians)
      ! Outward normal unit vector (pointing away from room)
      SurfaceTmp(CurNewSurf)%OutNormVec = SurfaceTmp(CurNewSurf)%NewellSurfaceNormalVector
      DO N=1,3
        IF (ABS(SurfaceTmp(CurNewSurf)%OutNormVec(N)-1.0d0) < 1.d-06) SurfaceTmp(CurNewSurf)%OutNormVec(N) = +1.0d0
        IF (ABS(SurfaceTmp(CurNewSurf)%OutNormVec(N)+1.0d0) < 1.d-06) SurfaceTmp(CurNewSurf)%OutNormVec(N) = -1.0d0
        IF (ABS(SurfaceTmp(CurNewSurf)%OutNormVec(N))     < 1.d-06) SurfaceTmp(CurNewSurf)%OutNormVec(N) =  0.0d0
      ENDDO

      ! Can perform tests on this surface here
      SurfaceTmp(CurNewSurf)%ViewFactorSky=0.5d0*(1.d0+SurfaceTmp(CurNewSurf)%CosTilt)
      SurfaceTmp(CurNewSurf)%ViewFactorGround=0.5d0*(1.d0-SurfaceTmp(CurNewSurf)%CosTilt)

      ! The following IR view factors are modified in subr. SkyDifSolarShading if there are shadowing
      ! surfaces
      SurfaceTmp(CurNewSurf)%ViewFactorSkyIR = SurfaceTmp(CurNewSurf)%ViewFactorSky
      SurfaceTmp(CurNewSurf)%ViewFactorGroundIR = 0.5d0*(1.d0-SurfaceTmp(CurNewSurf)%CosTilt)
    ENDIF


    ! Change Name
    SurfaceTmp(CurNewSurf)%Name='iz-'//TRIM(SurfaceTmp(SurfNum)%Name)
!Debug   write(outputfiledebug,*) ' new surf name=',trim(SurfaceTmp(CurNewSurf)%Name)
!Debug   write(outputfiledebug,*) ' new surf in zone=',trim(surfacetmp(curnewsurf)%zoneName)
    SurfaceTmp(CurNewSurf)%ExtBoundCond=UnreconciledZoneSurface
    SurfaceTmp(SurfNum)%ExtBoundCond=UnreconciledZoneSurface
    SurfaceTmp(CurNewSurf)%ExtBoundCondName=SurfaceTmp(SurfNum)%Name
    SurfaceTmp(SurfNum)%ExtBoundCondName=SurfaceTmp(CurNewSurf)%Name
    IF (SurfaceTmp(CurNewSurf)%Class == SurfaceClass_Roof .or.   &
        SurfaceTmp(CurNewSurf)%Class == SurfaceClass_Wall .or.   &
        SurfaceTmp(CurNewSurf)%Class == SurfaceClass_Floor) THEN
        ! base surface
        IF (SurfaceTmp(SurfNum)%Class == SurfaceClass_Roof) THEN
          SurfaceTmp(CurNewSurf)%Class=SurfaceClass_Floor
!Debug          write(outputfiledebug,*) ' new surfaces is a floor'
        ELSE IF (SurfaceTmp(SurfNum)%Class == SurfaceClass_Floor) THEN
          SurfaceTmp(CurNewSurf)%Class=SurfaceClass_Roof
!Debug          write(outputfiledebug,*) ' new surfaces is a roof'
        ENDIF
        SurfaceTmp(CurNewSurf)%BaseSurf=CurNewSurf
        SurfaceTmp(CurnewSurf)%BaseSurfName=SurfaceTmp(CurNewSurf)%Name
!Debug        write(outputfiledebug,*) ' basesurf, extboundcondname=',trim(SurfaceTmp(CurNewSurf)%ExtBoundCondName)
    ELSE
        ! subsurface
      Found=FindIteminList('iz-'//SurfaceTmp(SurfNum)%BaseSurfName,SurfaceTmp%Name,FirstTotalSurfaces+CurNewSurf-1)
      IF (Found > 0) THEN
        SurfaceTmp(CurNewSurf)%BaseSurfName='iz-'//SurfaceTmp(SurfNum)%BaseSurfName
        SurfaceTmp(CurNewSurf)%BaseSurf=Found
        SurfaceTmp(Found)%Area =  &
               SurfaceTmp(Found)%Area - SurfaceTmp(CurNewSurf)%Area
        IF (SurfaceTmp(CurNewSurf)%Class == SurfaceClass_Window .OR.SurfaceTmp(CurNewSurf)%Class == SurfaceClass_GlassDoor) THEN
          SurfaceTmp(Found)%NetAreaShadowCalc =  &
          SurfaceTmp(Found)%NetAreaShadowCalc - SurfaceTmp(CurNewSurf)%Area/ &
            SurfaceTmp(CurNewSurf)%Multiplier
        ELSE ! Door, TDD:Diffuser, TDD:DOME
          SurfaceTmp(Found)%NetAreaShadowCalc =  &
          SurfaceTmp(Found)%NetAreaShadowCalc - SurfaceTmp(CurNewSurf)%Area
        ENDIF
        SurfaceTmp(CurNewSurf)%ExtBoundCond=SurfaceTmp(Found)%ExtBoundCond
        SurfaceTmp(CurNewSurf)%ExtBoundCondName=SurfaceTmp(SurfNum)%Name
        SurfaceTmp(CurNewSurf)%ExtSolar=SurfaceTmp(Found)%ExtSolar
        SurfaceTmp(CurNewSurf)%ExtWind=SurfaceTmp(Found)%ExtWind
        SurfaceTmp(CurNewSurf)%Zone=SurfaceTmp(Found)%Zone
        SurfaceTmp(CurNewSurf)%ZoneName=SurfaceTmp(Found)%ZoneName
        SurfaceTmp(CurNewSurf)%OSCPtr=SurfaceTmp(Found)%OSCPtr
!Debug        write(outputfiledebug,*) ' subsurf, extboundcondname=',trim(SurfaceTmp(CurNewSurf)%ExtBoundCondName)
!Debug        write(outputfiledebug,*) ' subsurf, basesurf=',trim('iz-'//SurfaceTmp(SurfNum)%BaseSurfName)
      ELSE
        CALL ShowSevereError(RoutineName//'Adding unentered subsurface, could not find base surface='// &
            TRIM('iz-'//SurfaceTmp(SurfNum)%BaseSurfName))
        SurfError=.true.
      ENDIF
    ENDIF

  ENDDO
!**********************************************************************************
! After all of the surfaces have been defined then the base surfaces for the
! sub-surfaces can be defined.  Loop through surfaces and match with the sub-surface
! names.
  DO SurfNum= 1, TotSurfaces
    IF (.not. SurfaceTmp(SurfNum)%HeatTransSurf) CYCLE

    ! why are we doing this again?  this should have already been done.
    IF (SameString(SurfaceTmp(SurfNum)%BaseSurfName,SurfaceTmp(SurfNum)%Name)) THEN
      Found=SurfNum
    ELSE
      Found=FindIteminList(SurfaceTmp(SurfNum)%BaseSurfName,SurfaceTmp%Name,TotSurfaces)
    ENDIF
    If (Found > 0) THEN
      SurfaceTmp(SurfNum)%BaseSurf=Found
      IF (SurfNum /= Found) THEN  ! for subsurfaces
        IF (SurfaceTmp(SurfNum)%HeatTransSurf) SurfaceTmp(Found)%NumSubSurfaces=SurfaceTmp(Found)%NumSubSurfaces+1
        IF (SurfaceTmp(SurfNum)%Class < SurfaceClass_Window .or.   &
            SurfaceTmp(SurfNum)%Class > SurfaceClass_TDD_Diffuser) THEN
          IF (SurfaceTmp(SurfNum)%Class == 0) THEN
            CALL ShowSevereError(RoutineName//'Invalid SubSurface detected, Surface='//TRIM(SurfaceTmp(SurfNum)%Name))
          ELSE
            CALL ShowSevereError(RoutineName//'Invalid SubSurface detected, Surface='//TRIM(SurfaceTmp(SurfNum)%Name)//  &
               ', class='//TRIM(BaseSurfCls(SurfaceTmp(SurfNum)%Class))//' invalid class for subsurface')
            SurfError=.true.
          ENDIF
        ENDIF
      ENDIF
    End If

  END DO  ! ...end of the Surface DO loop for finding BaseSurf
!**********************************************************************************

!**********************************************************************************
! orientation of flat subsurfaces (window/door/etc) need to match base surface
! CR8628
!  ALLOCATE(TestVertex(4)) ! subsurfaces we will look at have max of 4 vertices
  DO SurfNum=1,TotSurfaces
    IF (.not. SurfaceTmp(SurfNum)%HeatTransSurf) CYCLE
    ! If flat surface
    surfAzimuth = SurfaceTmp(SurfNum)%Azimuth
    surfTilt    = SurfaceTmp(SurfNum)%Tilt
    IF (ABS(surfTilt) <= 1.d-5 .or. ABS(surfTilt-180.d0) <= 1.d-5)  THEN
      ! see if there are any subsurfaces on roofs/floors
      DO itmp1=1,TotSurfaces
        IF (itmp1 == SurfNum) CYCLE
        IF (.not. SurfaceTmp(itmp1)%BaseSurf == SurfNum) CYCLE
        IF (.not. SurfaceTmp(itmp1)%HeatTransSurf) CYCLE
!          write(outputfiledebug,'(A)') 'roof/floor basesurface='//trim(SurfaceTmp(SurfNum)%Name)
!          write(outputfiledebug,'(A,3f7.2)') 'basesurface lc vectors=',SurfaceTmp(SurfNum)%lcsx
!          write(outputfiledebug,'(3f7.2)') SurfaceTmp(SurfNum)%lcsy
!          write(outputfiledebug,'(3f7.2)') SurfaceTmp(SurfNum)%lcsz
!          write(outputfiledebug,'(A,3f7.2)') 'basesurface surfnorm=',SurfaceTmp(SurfNum)%NewellSurfaceNormalVector
!          write(outputfiledebug,'(A)') 'subsurface='//trim(SurfaceTmp(itmp1)%Name)
!          write(outputfiledebug,'(A,3f7.2)') 'subsurface lc vectors=',SurfaceTmp(itmp1)%lcsx
!          write(outputfiledebug,'(3f7.2)') SurfaceTmp(itmp1)%lcsy
!          write(outputfiledebug,'(3f7.2)') SurfaceTmp(itmp1)%lcsz
!          write(outputfiledebug,'(A,3f7.2)') 'subsurface surfnorm=',SurfaceTmp(itmp1)%NewellSurfaceNormalVector
        IF (ABS(SurfaceTmp(itmp1)%Azimuth-surfAzimuth) <= 10.d0) CYCLE
        CALL CompareTwoVectors(SurfaceTmp(SurfNum)%NewellSurfaceNormalVector,SurfaceTmp(itmp1)%NewellSurfaceNormalVector,  &
           sameSurfNormal,.001d0)
        IF (sameSurfNormal) THEN  ! copy lcs vectors
          SurfaceTmp(itmp1)%lcsx=SurfaceTmp(SurfNum)%lcsx
          SurfaceTmp(itmp1)%lcsy=SurfaceTmp(SurfNum)%lcsy
          SurfaceTmp(itmp1)%lcsy=SurfaceTmp(SurfNum)%lcsy
          CYCLE
        ENDIF
!        IF (ABS(SurfaceTmp(itmp1)%Azimuth-360.0d0) < .01d0) THEN
!          SurfaceTmp(itmp1)%Azimuth=360.0d0-SurfaceTmp(itmp1)%Azimuth
!        ENDIF
!        IF (ABS(surfAzimuth-360.0d0) < .01d0) THEN
!          surfAzimuth=360.0d0-surfAzimuth
!          SurfaceTmp(SurfNum)%Azimuth=surfAzimuth
!        ENDIF
!        IF (ABS(SurfaceTmp(itmp1)%Azimuth-surfAzimuth) <= 10.d0) CYCLE
        ! have subsurface of base surface
        ! warning error
!        Warning4Count=Warning4Count+1
!        IF (Warning4Count == 1 .and. .not. DisplayExtraWarnings) THEN
!          CALL ShowSevereError(Routinename//'Some Outward Facing angles of subsurfaces differ '//  &
!                               'significantly from flat roof/floor base surface.')
!          CALL ShowContinueError('Fixes will be attempted to align subsurface with base surface.')
!          CALL ShowContinueError('...use Output:Diagnostics,DisplayExtraWarnings; '//  &
!                   'to show more details on individual surfaces.')
!        ENDIF
        IF (DisplayExtraWarnings) THEN
          CALL ShowSevereError(Routinename//'Outward facing angle ['//  &
               TRIM(RoundSigDigits(SurfaceTmp(itmp1)%Azimuth,3))// &
               '] of subsurface="'//TRIM(SurfaceTmp(itmp1)%Name)//  &
               '" significantly different than')
          CALL ShowContinueError('..facing angle ['//TRIM(RoundSigDigits(SurfaceTmp(SurfNum)%Azimuth,3))//  &
              '] of base surface='//TRIM(SurfaceTmp(SurfNum)%Name))
          CALL ShowContinueError('..surface class of base surface='//TRIM(cSurfaceClass(SurfaceTmp(SurfNum)%Class)))
!          CALL ShowContinueError('Fixes will be attempted to align subsurface with base surface.')
        ENDIF
!        Vrt=1
!        testV=2
!        testVsave=2
!        Located=.false.
!        DO CountSides=1,SurfaceTmp(itmp1)%Sides
!          DO Vrt=1,SurfaceTmp(itmp1)%Sides
!            TestVertex(Vrt)=SurfaceTmp(itmp1)%Vertex(testV)
!            testV=testV+1
!            if (testV > SurfaceTmp(itmp1)%Sides) testV=1
!          ENDDO
!          CALL CreateNewellSurfaceNormalVector(TestVertex,SurfaceTmp(itmp1)%Sides,  &
!                SurfaceTmp(itmp1)%NewellSurfaceNormalVector)
!          CALL DetermineAzimuthAndTilt(TestVertex,SurfaceTmp(itmp1)%Sides,SurfWorldAz,surfTilt,  &
!                                SurfaceTmp(itmp1)%lcsx,SurfaceTmp(itmp1)%lcsy,SurfaceTmp(itmp1)%lcsz,  &
!                                SurfaceTmp(itmp1)%GrossArea,SurfaceTmp(itmp1)%NewellSurfaceNormalVector)
!          IF (ABS(surfAzimuth-surfWorldAz) <= 1.d-5) THEN  ! found it
!            DO Vrt=1,SurfaceTmp(itmp1)%Sides
!              SurfaceTmp(itmp1)%Vertex(Vrt)=TestVertex(Vrt)
!            ENDDO
!            SurfaceTmp(itmp1)%Azimuth=SurfWorldAz
!            SurfaceTmp(itmp1)%Tilt=surfTilt
!            Located=.true.
!            EXIT
!          ENDIF
!          testV=testVsave+1
!          IF (testV > SurfaceTmp(itmp1)%Sides) EXIT
!        ENDDO
!        IF (.not. Located) THEN
!          Warning5Count=Warning5Count+1
!          ! another warning
!          IF (DisplayExtraWarnings) THEN
!            CALL ShowContinueError('Fix could not be accomplished.  Original orientation is retained.')
!          ENDIF
!          CALL CreateNewellSurfaceNormalVector(SurfaceTmp(itmp1)%Vertex,SurfaceTmp(itmp1)%Sides,  &
!                  SurfaceTmp(itmp1)%NewellSurfaceNormalVector)
!          CALL DetermineAzimuthAndTilt(SurfaceTmp(itmp1)%Vertex,SurfaceTmp(itmp1)%Sides,SurfWorldAz,surfTilt,  &
!                                SurfaceTmp(itmp1)%lcsx,SurfaceTmp(itmp1)%lcsy,SurfaceTmp(itmp1)%lcsz,  &
!                                SurfaceTmp(itmp1)%GrossArea,SurfaceTmp(itmp1)%NewellSurfaceNormalVector)
!          SurfaceTmp(itmp1)%Azimuth=SurfWorldAz
!          SurfaceTmp(itmp1)%Tilt=surfTilt
!        ENDIF
      ENDDO
    ENDIF
  ENDDO
!  IF (Warning5Count > 0) THEN
!    CALL ShowMessage(RoutineName//'There were '//trim(RoundSigDigits(Warning5Count))//  &
!       ' subsurfaces whose orientation (azimuth) could not be fixed to align with the base surface.')
!    CALL ShowMessage('Shadowing calculations may be inaccurate. Use Output:Diagnostics,DisplayExtraWarnings; for details.')
!  ENDIF
!  DEALLOCATE(TestVertex)

! The surfaces need to be hierarchical.  Input is allowed to be in any order.  In
! this section it is reordered into:

!    Detached shadowing surfaces
!    For each zone:
!      For each Wall
!        subsurfaces (windows, doors, shading) for that wall
!      For each Floor
!        subsurfaces for that floor
!      For each Roof
!        subsurfaces for that roof/ceiling
!      Internal Mass
!
!    After reordering, MovedSurfs should equal TotSurfaces

  MovedSurfs=0
  ALLOCATE (Surface(TotSurfaces))   ! Allocate the Surface derived type appropriately

  ! Move all Detached Surfaces to Front

  DO SurfNum=1,TotSurfaces
    IF (SurfaceTmp(SurfNum)%Class /= SurfaceClass_Detached_F .and.  &
        SurfaceTmp(SurfNum)%Class /= SurfaceClass_Detached_B .and.  &
        SurfaceTmp(SurfNum)%Class /= SurfaceClass_Shading) CYCLE

    !  A shading surface

    MovedSurfs=MovedSurfs+1
    Surface(MovedSurfs)=SurfaceTmp(SurfNum)
    SurfaceTmp(SurfNum)%Class=SurfaceClass_Moved !'Moved'
  ENDDO

  !  For each zone

  DO ZoneNum=1,NumOfZones

    !  For each Base Surface Type (Wall, Floor, Roof)

    DO Loop=1,3

      DO SurfNum=1,TotSurfaces

        IF (SurfaceTmp(SurfNum)%Zone == 0) CYCLE

        IF (.not. SameString(SurfaceTmp(SurfNum)%ZoneName,Zone(ZoneNum)%Name)) CYCLE
        IF (SurfaceTmp(SurfNum)%Class /= BaseSurfIDs(Loop)) CYCLE

        MovedSurfs=MovedSurfs+1
        Surface(MovedSurfs)=SurfaceTmp(SurfNum)
        SurfaceTmp(SurfNum)%Class=SurfaceClass_Moved ! 'Moved'
        SurfaceTmp(SurfNum)%BaseSurf=-1 ! Default has base surface = base surface
        BaseSurfNum=MovedSurfs
        Surface(MovedSurfs)%BaseSurf=BaseSurfNum

        !  Find all subsurfaces to this surface
        DO SubSurfNum=1,TotSurfaces

          IF (SurfaceTmp(SubSurfNum)%Zone == 0) CYCLE
          IF (SurfaceTmp(SubSurfNum)%BaseSurf /= SurfNum) CYCLE

          MovedSurfs=MovedSurfs+1
          Surface(MovedSurfs)=SurfaceTmp(SubSurfNum)
          SurfaceTmp(SubSurfNum)%Class=SurfaceClass_Moved ! 'Moved'
          Surface(MovedSurfs)%BaseSurf=BaseSurfNum
          SurfaceTmp(SubSurfNum)%BaseSurf=-1
        ENDDO
      ENDDO
    ENDDO

    DO SurfNum=1,TotSurfaces

      IF (SurfaceTmp(SurfNum)%ZoneName /= Zone(ZoneNum)%Name) CYCLE
      IF (SurfaceTmp(SurfNum)%Class /= SurfaceClass_IntMass) CYCLE

      MovedSurfs=MovedSurfs+1
      Surface(MovedSurfs)=SurfaceTmp(SurfNum)
      Surface(MovedSurfs)%BaseSurf=MovedSurfs
      SurfaceTmp(SurfNum)%Class=SurfaceClass_Moved ! 'Moved'
    ENDDO
  ENDDO

  IF (MovedSurfs /= TotSurfaces) THEN
    WRITE(ClassMsg,*) MovedSurfs
    ClassMsg=ADJUSTL(ClassMsg)
    WRITE(Msg2,*) TotSurfaces
    Msg2=ADJUSTL(Msg2)
    CALL ShowSevereError(RoutineName//'Reordered # of Surfaces ('//TRIM(ClassMsg)//  &
       ') not = Total # of Surfaces ('//TRIM(Msg2)//')')
    SurfError=.true.
    DO Loop=1,TotSurfaces
      IF (SurfaceTmp(Loop)%Class /= SurfaceClass_Moved) THEN
         IF (SurfaceTmp(Loop)%Class > 100) THEN
           CALL ShowSevereError(RoutineName//'Error in Surface= "'//TRIM(SurfaceTmp(Loop)%Name)//  &
               '" Class='//TRIM(cSurfaceClass(SurfaceTmp(Loop)%Class-100))// &
               ' indicated Zone="'//TRIM(SurfaceTmp(Loop)%ZoneName)//'"')
        ENDIF
      ENDIF
    ENDDO
    CALL ShowWarningError(RoutineName//'Remaining surface checks will use "reordered number of surfaces", '//  &
       'not number of original surfaces')
  ENDIF

  DEALLOCATE (SurfaceTmp)     ! DeAllocate the Temp Surface derived type


  !  For each Base Surface Type (Wall, Floor, Roof)

  DO Loop=1,3

    DO SurfNum=1,TotSurfaces

      IF (Surface(SurfNum)%Zone == 0) CYCLE

      IF (Surface(SurfNum)%Class /= BaseSurfIDs(Loop)) CYCLE

      !  Find all subsurfaces to this surface
      DO SubSurfNum=1,TotSurfaces

        IF (SurfNum == SubSurfNum) CYCLE
        IF (Surface(SubSurfNum)%Zone == 0) CYCLE
        IF (Surface(SubSurfNum)%BaseSurf /= SurfNum) CYCLE

        ! Check facing angle of Sub compared to base
        ! ignore problems of subsurfaces on roofs/ceilings/floors with azimuth
!          IF (Surface(SurfNum)%Class == SurfaceClass_Roof .or. Surface(SurfNum)%Class == SurfaceClass_Floor) CYCLE
!          write(outputfiledebug,'(A)') 'basesurface='//trim(surface(SurfNum)%Name)
!          write(outputfiledebug,'(A,3F7.2)') 'basesurface lc vectors=',Surface(SurfNum)%lcsx
!          write(outputfiledebug,'(3f7.2)') Surface(SurfNum)%lcsy
!          write(outputfiledebug,'(3f7.2)') Surface(SurfNum)%lcsz
!          write(outputfiledebug,'(A,3f7.2)') 'basesurface surfnorm=',Surface(SurfNum)%NewellSurfaceNormalVector
!          write(outputfiledebug,'(A)') 'subsurface='//trim(surface(SubSurfNum)%Name)
!          write(outputfiledebug,'(A,3F7.2)') 'subsurface lc vectors=',Surface(SubSurfNum)%lcsx
!          write(outputfiledebug,'(3f7.2)') Surface(SubSurfNum)%lcsy
!          write(outputfiledebug,'(3f7.2)') Surface(SubSurfNum)%lcsz
!          write(outputfiledebug,'(A,3f7.2)') 'subsurface surfnorm=',Surface(SubSurfNum)%NewellSurfaceNormalVector
        IF (ABS(Surface(SubSurfNum)%Azimuth-Surface(SurfNum)%Azimuth) <= 30.0d0) CYCLE
        CALL CompareTwoVectors(Surface(SurfNum)%NewellSurfaceNormalVector,Surface(SubSurfNum)%NewellSurfaceNormalVector,  &
           sameSurfNormal,.001d0)
        IF (sameSurfNormal) THEN  ! copy lcs vectors
          Surface(SubSurfNum)%lcsx=Surface(SurfNum)%lcsx
          Surface(SubSurfNum)%lcsy=Surface(SurfNum)%lcsy
          Surface(SubSurfNum)%lcsy=Surface(SurfNum)%lcsy
          CYCLE
        ENDIF
        IF (ABS(Surface(SubSurfNum)%Azimuth-360.0d0) < .01d0) THEN
          Surface(SubSurfNum)%Azimuth=360.0d0-Surface(SubSurfNum)%Azimuth
        ENDIF
        IF (ABS(Surface(SurfNum)%Azimuth-360.0d0) < .01d0) THEN
          Surface(SurfNum)%Azimuth=360.0d0-Surface(SurfNum)%Azimuth
        ENDIF
        IF (ABS(Surface(SubSurfNum)%Azimuth-Surface(SurfNum)%Azimuth) > 30.0d0) THEN
          IF (ABS(Surface(SurfNum)%SinTilt) > .17d0) THEN
            ErrCount1=ErrCount1+1
            IF (ErrCount1 == 1 .and. .not. DisplayExtraWarnings) THEN
              CALL ShowSevereError(Routinename//'Some Outward Facing angles of subsurfaces differ '//  &
                                   'significantly from base surface.')
              CALL ShowContinueError('...use Output:Diagnostics,DisplayExtraWarnings; '//  &
                       'to show more details on individual surfaces.')
            ENDIF
            IF (DisplayExtraWarnings) THEN
              CALL ShowSevereError(Routinename//'Outward facing angle ['//  &
                   TRIM(RoundSigDigits(Surface(SubSurfNum)%Azimuth,1))// &
                   '] of subsurface="'//TRIM(Surface(SubSurfNum)%Name)//  &
                   '" significantly different than')
              CALL ShowContinueError('..facing angle ['//TRIM(RoundSigDigits(Surface(SurfNum)%Azimuth,1))//  &
                  '] of base surface='//TRIM(Surface(SurfNum)%Name)//' Tilt='//TRIM(RoundSigDigits(Surface(SurfNum)%Tilt,1)))
              CALL ShowContinueError('..surface class of base surface='//TRIM(cSurfaceClass(Surface(SurfNum)%Class)))
            ENDIF
          ENDIF
!            SurfError=.true.
        ENDIF
      ENDDO
    ENDDO
  ENDDO

!**********************************************************************************
! Now, match up interzone surfaces
!
  NonMatch=.false.
  izConstDiffMsg=.false.
  DO SurfNum= 1, MovedSurfs !TotSurfaces
    !  Clean up Shading Surfaces, make sure they don't go through here.
    !  Shading surfaces have "Zone=0", should also have "BaseSurf=0"
    !  PGE: Revised so that shading surfaces can have BaseSurf /= 0 if they are daylighting shelves
    !       or other exterior reflecting surfaces.
    !IF (Surface(SurfNum)%Zone == 0) THEN
    !  Surface(SurfNum)%BaseSurf=0
    !  CYCLE
    !ENDIF
    IF (.not. Surface(SurfNum)%HeatTransSurf) CYCLE
    !   If other surface, match it up
    !  Both interzone and "internal" surfaces have this pointer set
    !  Internal surfaces point to themselves, Interzone to another
    IF (Surface(SurfNum)%ExtBoundCond == UnreconciledZoneSurface) THEN
      IF (Surface(SurfNum)%ExtBoundCondName /= '   ') THEN
        IF (Surface(SurfNum)%ExtBoundCondName == Surface(SurfNum)%Name) THEN
          Found=SurfNum
        ELSE
          Found=FindIteminList(Surface(SurfNum)%ExtBoundCondName,Surface%Name,MovedSurfs)
        ENDIF
        IF (Found /= 0) THEN
          Surface(SurfNum)%ExtBoundCond=Found
          ! Check that matching surface is also "OtherZoneSurface"
          IF (Surface(Found)%ExtBoundCond <= 0 .and. Surface(Found)%ExtBoundCond /= UnreconciledZoneSurface) THEN
            CALL ShowSevereError(RoutineName//'Potential "OtherZoneSurface" is not matched correctly:')

            CALL ShowContinueError('Surface='//TRIM(Surface(SurfNum)%Name)//', Zone='//TRIM(Surface(SurfNum)%ZoneName))
            CALL ShowContinueError('Nonmatched Other/InterZone Surface='//TRIM(Surface(Found)%Name)//', Zone='//  &
                                   TRIM(Surface(Found)%ZoneName))
            SurfError=.true.
          ENDIF
          ! Check that matching interzone surface has construction with reversed layers
          IF (Found /= SurfNum) THEN  ! Interzone surface
            ! Make sure different zones too (CR 4110)
            IF (Surface(SurfNum)%Zone == Surface(Found)%Zone) THEN
              ErrCount2=ErrCount2+1
              IF (ErrCount2 == 1 .and. .not. DisplayExtraWarnings) THEN
                CALL ShowWarningError(RoutineName//'CAUTION -- Interzone surfaces are occuring in the same zone(s).')
                CALL ShowContinueError('...use Output:Diagnostics,DisplayExtraWarnings; '//  &
                      'to show more details on individual occurrences.')
              ENDIF
              IF (DisplayExtraWarnings) THEN
                CALL ShowWarningError(RoutineName//'CAUTION -- Interzone surfaces are usually in different zones')
                CALL ShowContinueError('Surface='//TRIM(Surface(SurfNum)%Name)//', Zone='//TRIM(Surface(SurfNum)%ZoneName))
                CALL ShowContinueError('Surface='//TRIM(Surface(Found)%Name)//', Zone='//TRIM(Surface(Found)%ZoneName))
              ENDIF
            ENDIF
            ConstrNum = Surface(SurfNum)%Construction
            ConstrNumFound = Surface(Found)%Construction
            IF (ConstrNum <= 0 .or. ConstrNumFound <= 0) CYCLE
            IF (Construct(ConstrNum)%ReverseConstructionNumLayersWarning .and.   &
                Construct(ConstrNumFound)%ReverseConstructionNumLayersWarning) CYCLE
            IF (Construct(ConstrNum)%ReverseConstructionLayersOrderWarning .and.   &
                Construct(ConstrNumFound)%ReverseConstructionLayersOrderWarning) CYCLE
            TotLay = Construct(ConstrNum)%TotLayers
            TotLayFound = Construct(ConstrNumFound)%TotLayers
            IF(TotLay /= TotLayFound) THEN  ! Different number of layers
              ! match on like Uvalues (nominal)
              IF (ABS(NominalU(ConstrNum)-NominalU(ConstrNumFound)) > .001d0) THEN
                CALL ShowSevereError(RoutineName//'Construction '//TRIM(Construct(ConstrNum)%Name)// &
                                     ' of interzone surface '//TRIM(Surface(SurfNum)%Name)// &
                                     ' does not have the same number of layers as the construction '   &
                                     //TRIM(Construct(ConstrNumFound)%Name)//  &
                                     ' of adjacent surface '//TRIM(Surface(Found)%Name))
                IF (.not. Construct(ConstrNum)%ReverseConstructionNumLayersWarning .or.  &
                    .not. Construct(ConstrNumFound)%ReverseConstructionNumLayersWarning) THEN
                  CALL ShowContinueError('...this problem for this pair will not be reported again.')
                  Construct(ConstrNum)%ReverseConstructionNumLayersWarning=.true.
                  Construct(ConstrNumFound)%ReverseConstructionNumLayersWarning=.true.
                ENDIF
                SurfError=.true.
              ENDIF
            ELSE                            ! Same number of layers; check for reverse layers
              ! check layers as number of layers is the same
              izConstDiff=.false.
              ! ok if same nominal U
              DO Lay = 1,TotLay
                IF(Construct(ConstrNum)%LayerPoint(Lay) /=  &
                   Construct(ConstrNumFound)%LayerPoint(TotLay-Lay+1)) THEN
                   izConstDiff=.true.
                   EXIT  ! exit when diff
                  END IF
              END DO
              IF (izConstDiff .and. ABS(NominalU(ConstrNum)-NominalU(ConstrNumFound)) > .001d0) THEN
                CALL ShowSevereError(RoutineName//'Construction '//TRIM(Construct(ConstrNum)%Name)// &
                                    ' of interzone surface '//TRIM(Surface(SurfNum)%Name)// &
                                    ' does not have the same materials in the reverse order as the construction '   &
                                    //TRIM(Construct(ConstrNumFound)%Name)//  &
                                    ' of adjacent surface '//TRIM(Surface(Found)%Name))
                IF (.not. Construct(ConstrNum)%ReverseConstructionLayersOrderWarning .or.  &
                    .not. Construct(ConstrNumFound)%ReverseConstructionLayersOrderWarning) THEN
                  CALL ShowContinueError('...this problem for this pair will not be reported again.')
                  Construct(ConstrNum)%ReverseConstructionLayersOrderWarning=.true.
                  Construct(ConstrNumFound)%ReverseConstructionLayersOrderWarning=.true.
                ENDIF
                SurfError=.true.
              ELSEIF (izConstDiff) THEN
                CALL ShowWarningError(RoutineName//'Construction '//TRIM(Construct(ConstrNum)%Name)// &
                                         ' of interzone surface '//TRIM(Surface(SurfNum)%Name)// &
                                         ' does not have the same materials in the reverse order as the construction '   &
                                         //TRIM(Construct(ConstrNumFound)%Name)//  &
                                         ' of adjacent surface '//TRIM(Surface(Found)%Name))
                CALL ShowContinueError('...but Nominal U values are similar, diff=['//  &
                   trim(RoundSigDigits(ABS(NominalU(ConstrNum)-NominalU(ConstrNumFound)),4))//'] ... simulation proceeds.')
                IF (.not. izConstDiffMsg) THEN
                  CALL ShowContinueError('...if the two zones are expected to have significantly different temperatures, '//  &
                     'the proper "reverse" construction should be created.')
                  izConstDiffMsg=.true.
                ENDIF
                IF (.not. Construct(ConstrNum)%ReverseConstructionLayersOrderWarning .or.  &
                    .not. Construct(ConstrNumFound)%ReverseConstructionLayersOrderWarning) THEN
                  CALL ShowContinueError('...this problem for this pair will not be reported again.')
                  Construct(ConstrNum)%ReverseConstructionLayersOrderWarning=.true.
                  Construct(ConstrNumFound)%ReverseConstructionLayersOrderWarning=.true.
                ENDIF
              ENDIF
            END IF

            ! If significantly different areas -- this would not be good
            MultFound = Zone(Surface(Found)%Zone)%Multiplier * Zone(Surface(Found)%Zone)%ListMultiplier
            MultSurfNum = Zone(Surface(SurfNum)%Zone)%Multiplier * Zone(Surface(SurfNum)%Zone)%ListMultiplier
            IF (Surface(Found)%Area > 0.0d0) THEN
              IF (ABS((Surface(Found)%Area*MultFound - Surface(SurfNum)%Area*MultSurfNum)/  &
                       Surface(Found)%Area*MultFound) > .02d0) THEN  ! 2% difference in areas
                ErrCount4=ErrCount4+1
                IF (ErrCount4 == 1 .and. .not. DisplayExtraWarnings) THEN
                  CALL ShowWarningError(RoutineName//''//  &
                    'InterZone Surface Areas do not match as expected and might not satisfy conservation of energy:')
                  CALL ShowContinueError('...use Output:Diagnostics,DisplayExtraWarnings; '//  &
                       'to show more details on individual mismatches.')
                ENDIF
                IF (DisplayExtraWarnings) THEN
                  CALL ShowWarningError(RoutineName//''//  &
                    'InterZone Surface Areas do not match as expected and might not satisfy conservation of energy:')

                  IF (MultFound == 1 .and. MultSurfNum == 1) THEN
                    CALL ShowContinueError('  Area='//TRIM(TrimSigDigits(Surface(SurfNum)%Area,1))// &
                                           ' in Surface='//TRIM(Surface(SurfNum)%Name)// &
                                           ', Zone='//TRIM(Surface(SurfNum)%ZoneName))
                    CALL ShowContinueError('  Area='//TRIM(TrimSigDigits(Surface(Found)%Area,1))// &
                                           ' in Surface='//TRIM(Surface(Found)%Name)// &
                                           ', Zone='//TRIM(Surface(Found)%ZoneName))
                  ELSE ! Show multiplier info
                    WRITE(MultString,*) MultSurfNum
                    MultString=ADJUSTL(MultString)
                    CALL ShowContinueError('  Area='//TRIM(TrimSigDigits(Surface(SurfNum)%Area,1))// &
                                           ', Multipliers='//TRIM(MultString)// &
                                           ', Total Area='//TRIM(TrimSigDigits(Surface(SurfNum)%Area*MultSurfNum,1))// &
                                           ' in Surface='//TRIM(Surface(SurfNum)%Name)// &
                                           ' Zone='//TRIM(Surface(SurfNum)%ZoneName))
                    WRITE(MultString,*) MultFound
                    MultString=ADJUSTL(MultString)
                    CALL ShowContinueError('  Area='//TRIM(TrimSigDigits(Surface(Found)%Area,1))// &
                                           ', Multipliers='//TRIM(MultString)// &
                                           ', Total Area='//TRIM(TrimSigDigits(Surface(Found)%Area*MultFound,1))// &
                                           ' in Surface='//TRIM(Surface(Found)%Name)// &
                                           ' Zone='//TRIM(Surface(Found)%ZoneName))
                  ENDIF
                ENDIF
              ENDIF
            ENDIF
            ! Check opposites Azimuth and Tilt
            ! Tilt
            IF (ABS(ABS(Surface(Found)%Tilt+Surface(SurfNum)%Tilt)-180.d0) > 1.0d0) THEN
              CALL ShowWarningError(RoutineName//'InterZone Surface Tilts do not match as expected.')
              CALL ShowContinueError('  Tilt='//TRIM(TrimSigDigits(Surface(SurfNum)%Tilt,1))//  &
                                     ' in Surface='//TRIM(Surface(SurfNum)%Name)//', Zone='//TRIM(Surface(SurfNum)%ZoneName))
              CALL ShowContinueError('  Tilt='//TRIM(TrimSigDigits(Surface(Found)%Tilt,1))//  &
                                     ' in Surface='//TRIM(Surface(Found)%Name)//', Zone='//TRIM(Surface(Found)%ZoneName))
            ENDIF
            ! check surface class match.  interzone surface.
            IF ((Surface(SurfNum)%Class == SurfaceClass_Wall .and. Surface(Found)%Class /= SurfaceClass_Wall) .or.  &
                (Surface(SurfNum)%Class /= SurfaceClass_Wall .and. Surface(Found)%Class == SurfaceClass_Wall) ) THEN
              CALL ShowWarningError(RoutineName//'InterZone Surface Classes do not match as expected.')
              CALL ShowContinueError('Surface="'//trim(Surface(SurfNum)%Name)//'", surface class='//  &
                 TRIM(cSurfaceClass(Surface(SurfNum)%Class)))
              CALL ShowContinueError('Adjacent Surface="'//trim(Surface(Found)%Name)//'", surface class='//  &
                 TRIM(cSurfaceClass(Surface(Found)%Class)))
              CALL ShowContinueError('Other errors/warnings may follow about these surfaces.')
            ENDIF
            IF ((Surface(SurfNum)%Class == SurfaceClass_Roof .and. Surface(Found)%Class /= SurfaceClass_Floor) .or.  &
                (Surface(SurfNum)%Class /= SurfaceClass_Roof .and. Surface(Found)%Class == SurfaceClass_Floor) ) THEN
              CALL ShowWarningError(RoutineName//'InterZone Surface Classes do not match as expected.')
              CALL ShowContinueError('Surface="'//trim(Surface(SurfNum)%Name)//'", surface class='//  &
                 TRIM(cSurfaceClass(Surface(SurfNum)%Class)))
              CALL ShowContinueError('Adjacent Surface="'//trim(Surface(Found)%Name)//'", surface class='//  &
                 TRIM(cSurfaceClass(Surface(Found)%Class)))
              CALL ShowContinueError('Other errors/warnings may follow about these surfaces.')
            ENDIF
            IF (Surface(SurfNum)%Class /= SurfaceClass_Roof .and. Surface(SurfNum)%Class /= SurfaceClass_Floor) THEN
              ! Walls, Windows, Doors, Glass Doors
              IF (Surface(SurfNum)%Class /= SurfaceClass_Wall) THEN
                ! Surface is a Door, Window or Glass Door
                IF (Surface(SurfNum)%BaseSurf == 0) CYCLE   ! error detected elsewhere
                IF (Surface(Surface(SurfNum)%BaseSurf)%Class == SurfaceClass_Roof .or.   &
                    Surface(Surface(SurfNum)%BaseSurf)%Class == SurfaceClass_Floor) CYCLE
              ENDIF
              IF (ABS(ABS(Surface(SurfNum)%Azimuth-Surface(Found)%Azimuth)-180.d0) > 1.d0) THEN
                IF (ABS(Surface(SurfNum)%SinTilt) > .5d0 .or. DisplayExtraWarnings) THEN
                  ! if horizontal surfaces, then these are windows/doors/etc in those items.
                  CALL ShowWarningError(RoutineName//'InterZone Surface Azimuths do not match as expected.')
                  CALL ShowContinueError('  Azimuth='//TRIM(TrimSigDigits(Surface(SurfNum)%Azimuth,1))//  &
                                         ', Tilt='//TRIM(TrimSigDigits(Surface(SurfNum)%Tilt,1))//        &
                                         ', in Surface='//TRIM(Surface(SurfNum)%Name)//', Zone='//TRIM(Surface(SurfNum)%ZoneName))
                  CALL ShowContinueError('  Azimuth='//TRIM(TrimSigDigits(Surface(Found)%Azimuth,1))//  &
                                         ', Tilt='//TRIM(TrimSigDigits(Surface(Found)%Tilt,1))//        &
                                         ', in Surface='//TRIM(Surface(Found)%Name)//', Zone='//TRIM(Surface(Found)%ZoneName))
                  CALL ShowContinueError('..surface class of first surface='//TRIM(cSurfaceClass(Surface(SurfNum)%Class)))
                  CALL ShowContinueError('..surface class of second surface='//TRIM(cSurfaceClass(Surface(Found)%Class)))
                ENDIF
              ENDIF
            ELSE  ! Roofs, Floors
              ! should be looking at opposite tilts, not azimuth for roof/floor matches...
!              IF (ABS(ABS(Surface(SurfNum)%Azimuth+Surface(Found)%Azimuth)-360.) > 1.0d0) THEN
!                CALL ShowWarningError('InterZone Surface Azimuths do not match as expected.')
!                CALL ShowContinueError('  Azimuth='//TRIM(TrimSigDigits(Surface(SurfNum)%Azimuth,1))//  &
!                                       ' in Surface='//TRIM(Surface(SurfNum)%Name)//', Zone='//TRIM(Surface(SurfNum)%ZoneName))
!                CALL ShowContinueError('  Azimuth='//TRIM(TrimSigDigits(Surface(Found)%Azimuth,1))//  &
!                                       ' in Surface='//TRIM(Surface(Found)%Name)//', Zone='//TRIM(Surface(Found)%ZoneName))
!              ENDIF
            ENDIF

            ! Make sure exposures (Sun, Wind) are the same.....and are "not"
            IF (Surface(SurfNum)%ExtSolar .or. Surface(Found)%ExtSolar) THEN
              CALL ShowWarningError(RoutineName//'Interzone surfaces cannot be "SunExposed" -- removing SunExposed')
              CALL ShowContinueError('  Surface='//TRIM(Surface(SurfNum)%Name)//', Zone='//TRIM(Surface(SurfNum)%ZoneName))
              CALL ShowContinueError('  Surface='//TRIM(Surface(Found)%Name)//', Zone='//TRIM(Surface(Found)%ZoneName))
              Surface(SurfNum)%ExtSolar=.false.
              Surface(Found)%ExtSolar=.false.
            ENDIF
            IF (Surface(SurfNum)%ExtWind .or. Surface(Found)%ExtWind) THEN
              CALL ShowWarningError(RoutineName//'Interzone surfaces cannot be "WindExposed" -- removing WindExposed')
              CALL ShowContinueError('  Surface='//TRIM(Surface(SurfNum)%Name)//', Zone='//TRIM(Surface(SurfNum)%ZoneName))
              CALL ShowContinueError('  Surface='//TRIM(Surface(Found)%Name)//', Zone='//TRIM(Surface(Found)%ZoneName))
              Surface(SurfNum)%ExtWind=.false.
              Surface(Found)%ExtWind=.false.
            ENDIF
          END IF
          ! Set opposing surface back to this one (regardless of error)
          Surface(Found)%ExtBoundCond=SurfNum
          ! Check subsurfaces...  make sure base surface is also an interzone surface
          IF (Surface(SurfNum)%BaseSurf /= SurfNum) THEN  ! Subsurface
            IF (Surface(SurfNum)%ExtBoundCond /= SurfNum .and. Surface(SurfNum)%ExtBoundCondName /= '   ') THEN
              ! if not internal subsurface
              IF (Surface(Surface(SurfNum)%BaseSurf)%ExtBoundCond == Surface(SurfNum)%BaseSurf) THEN
                     ! base surface is not interzone surface
                CALL ShowSevereError(RoutineName//'SubSurface="'//TRIM(Surface(SurfNum)%Name)//'" is an interzone subsurface.')
                CALL ShowContinueError('..but the Base Surface is not an interzone surface, Surface="'//  &
                    TRIM(Surface(Surface(SurfNum)%BaseSurf)%Name)//'".')
                SurfError=.true.
              ENDIF
            ENDIF
          ENDIF
        Else
          !  Seems unlikely that an internal surface would be missing itself, so this message
          !  only indicates for adjacent (interzone) surfaces.
          CALL ShowSevereError(RoutineName//'Adjacent Surface not found: '//TRIM(Surface(SurfNum)%ExtBoundCondName)// &
                               ' adjacent to surface '//TRIM(Surface(SurfNum)%Name) )
          NonMatch=.true.
          SurfError=.true.
        End If
      ELSEIF (Surface(SurfNum)%BaseSurf /= SurfNum) THEN  ! Subsurface
        IF (Surface(Surface(SurfNum)%BaseSurf)%ExtBoundCond > 0 .and.    &       ! If Interzone surface, subsurface must be also.
            Surface(Surface(SurfNum)%BaseSurf)%ExtBoundCond /= Surface(SurfNum)%BaseSurf) THEN
          CALL ShowSevereError(RoutineName//'SubSurface on Interzone Surface must be an Interzone SubSurface.')
          CALL ShowContinueError('...OutsideFaceEnvironment is blank, in Surface='//TRIM(Surface(SurfNum)%Name))
          SurfError=.true.
        ELSE
          ErrCount3=ErrCount3+1
          IF (ErrCount3 == 1 .and. .not. DisplayExtraWarnings) THEN
            CALL ShowWarningError(RoutineName//'Blank name for Outside Boundary Condition Objects.')
            CALL ShowContinueError('...use Output:Diagnostics,DisplayExtraWarnings; to show more details on individual surfaces.')
          ENDIF
          IF (DisplayExtraWarnings) THEN
            CALL ShowWarningError(RoutineName//'Blank name for Outside Boundary Condition Object, in surface='//  &
                                  TRIM(Surface(SurfNum)%Name))
            CALL ShowContinueError('Resetting this surface to be an internal zone surface, zone='//TRIM(Surface(SurfNum)%ZoneName))
          ENDIF
          Surface(SurfNum)%ExtBoundCondName=Surface(SurfNum)%Name
          Surface(SurfNum)%ExtBoundCond=SurfNum
        ENDIF
      ELSE
        ErrCount3=ErrCount3+1
        IF (ErrCount3 == 1 .and. .not. DisplayExtraWarnings) THEN
          CALL ShowSevereError(RoutineName//'Blank name for Outside Boundary Condition Objects.')
          CALL ShowContinueError('...use Output:Diagnostics,DisplayExtraWarnings; to show more details on individual surfaces.')
        ENDIF
        IF (DisplayExtraWarnings) THEN
          CALL ShowWarningError(RoutineName//'Blank name for Outside Boundary Condition Object, in surface='//  &
                                TRIM(Surface(SurfNum)%Name))
          CALL ShowContinueError('Resetting this surface to be an internal zone (adiabatic) surface, zone='//  &
             TRIM(Surface(SurfNum)%ZoneName))
        ENDIF
        Surface(SurfNum)%ExtBoundCondName=Surface(SurfNum)%Name
        Surface(SurfNum)%ExtBoundCond=SurfNum
        SurfError=.true.
      ENDIF
    End If

  END DO  ! ...end of the Surface DO loop for finding BaseSurf
  If (NonMatch) THEN
    CALL ShowSevereError(RoutineName//'Non matching interzone surfaces found')
  End If

!**********************************************************************************
! Warn about interzone surfaces that have adiabatic windows/vice versa
  SubSurfaceSevereDisplayed=.false.
  DO SurfNum=1,TotSurfaces
    IF (.not. Surface(SurfNum)%HeatTransSurf) CYCLE
    IF (Surface(SurfNum)%BaseSurf == SurfNum) CYCLE  ! base surface
    ! not base surface.  Check it.
    IF (Surface(Surface(SurfNum)%BaseSurf)%ExtBoundCond <= 0) THEN  ! exterior or other base surface
      IF (Surface(SurfNum)%ExtBoundCond /= Surface(Surface(SurfNum)%BaseSurf)%ExtBoundCond) THEN ! should match base surface
        IF (Surface(SurfNum)%ExtBoundCond == SurfNum) THEN
          CALL ShowSevereError(RoutineName//'Subsurface="'//trim(Surface(SurfNum)%Name)//  &
             '" exterior condition [adiabatic surface] in a base surface="'//  &
             trim(Surface(Surface(SurfNum)%BaseSurf)%Name)//  &
             '" with exterior condition ['//  &
             trim(cExtBoundCondition(Surface(Surface(SurfNum)%BaseSurf)%ExtBoundCond))//']')
          SurfError=.true.
        ELSEIF (Surface(SurfNum)%ExtBoundCond > 0) THEN
          CALL ShowSevereError(RoutineName//'Subsurface="'//trim(Surface(SurfNum)%Name)//  &
             '" exterior condition [interzone surface] in a base surface="'//  &
             trim(Surface(Surface(SurfNum)%BaseSurf)%Name)//  &
             '" with exterior condition ['//  &
             trim(cExtBoundCondition(Surface(Surface(SurfNum)%BaseSurf)%ExtBoundCond))//']')
          SurfError=.true.
        ELSEIF (Surface(Surface(SurfNum)%BaseSurf)%ExtBoundCond == OtherSideCondModeledExt) THEN
          CALL ShowWarningError(RoutineName//'Subsurface="'//trim(Surface(SurfNum)%Name)//  &
           '" exterior condition ['//  &
           trim(cExtBoundCondition(Surface(SurfNum)%ExtBoundCond))//  &
           '] in a base surface="'//trim(Surface(Surface(SurfNum)%BaseSurf)%Name)//  &
           '" with exterior condition ['//  &
           trim(cExtBoundCondition(Surface(Surface(SurfNum)%BaseSurf)%ExtBoundCond))//']')
          CALL ShowContinueError('...SubSurface will not use the exterior condition model of the base surface.')
        ELSE
          CALL ShowSevereError(RoutineName//'Subsurface="'//trim(Surface(SurfNum)%Name)//  &
           '" exterior condition ['//  &
           trim(cExtBoundCondition(Surface(SurfNum)%ExtBoundCond))//  &
           '] in a base surface="'//trim(Surface(Surface(SurfNum)%BaseSurf)%Name)//  &
           '" with exterior condition ['//  &
           trim(cExtBoundCondition(Surface(Surface(SurfNum)%BaseSurf)%ExtBoundCond))//']')
          SurfError=.true.
        ENDIF
        IF (.not. SubSurfaceSevereDisplayed .and. SurfError) THEN
          CALL ShowContinueError('...calculations for heat balance would be compromised.')
          SubSurfaceSevereDisplayed=.true.
        ENDIF
      ENDIF
    ELSEIF (Surface(Surface(SurfNum)%BaseSurf)%BaseSurf == Surface(Surface(SurfNum)%BaseSurf)%ExtBoundCond) THEN
      ! adiabatic surface. make sure subsurfaces match
      IF (Surface(SurfNum)%ExtBoundCond /= SurfNum) THEN ! not adiabatic surface
        IF (Surface(SurfNum)%ExtBoundCond > 0) THEN
          CALL ShowSevereError(RoutineName//'Subsurface="'//trim(Surface(SurfNum)%Name)//  &
             '" exterior condition [interzone surface] in a base surface="'//  &
             trim(Surface(Surface(SurfNum)%BaseSurf)%Name)//  &
             '" with exterior condition [adiabatic surface]')
        ELSE
          CALL ShowSevereError(RoutineName//'Subsurface="'//trim(Surface(SurfNum)%Name)//  &
             '" exterior condition ['//  &
             trim(cExtBoundCondition(Surface(SurfNum)%ExtBoundCond))//  &
             '] in a base surface="'//trim(Surface(Surface(SurfNum)%BaseSurf)%Name)//  &
             '" with exterior condition [adiabatic surface]')
        ENDIF
        IF (.not. SubSurfaceSevereDisplayed) THEN
          CALL ShowContinueError('...calculations for heat balance would be compromised.')
          SubSurfaceSevereDisplayed=.true.
        ENDIF
        SurfError=.true.
      ENDIF
    ELSEIF (Surface(Surface(SurfNum)%BaseSurf)%ExtBoundCond > 0) THEN  ! interzone surface
      IF (Surface(SurfNum)%ExtBoundCond == SurfNum) THEN
        CALL ShowSevereError(RoutineName//'Subsurface="'//trim(Surface(SurfNum)%Name)//  &
           '" is an adiabatic surface in an Interzone base surface="'//trim(Surface(Surface(SurfNum)%BaseSurf)%Name)//'"')
        IF (.not. SubSurfaceSevereDisplayed) THEN
          CALL ShowContinueError('...calculations for heat balance would be compromised.')
          SubSurfaceSevereDisplayed=.true.
        ENDIF
!        SurfError=.true.
      ENDIF
    ENDIF
  ENDDO

!**********************************************************************************
!   Set up Zone Surface Pointers
  DO ZoneNum=1,NumOfZones
    DO SurfNum=1,MovedSurfs !TotSurfaces
      IF (Surface(SurfNum)%Zone == ZoneNum) THEN
        IF (Zone(ZoneNum)%SurfaceFirst == 0) THEN
          Zone(ZoneNum)%SurfaceFirst=SurfNum
          EXIT
        ENDIF
      ENDIF
    END DO
  END DO
  !  Surface First pointers are set, set last
  IF (NumOfZones > 0) THEN
    Zone(NumOfZones)%SurfaceLast=TotSurfaces
  ENDIF
  DO ZoneNum=1,NumOfZones-1
    Zone(ZoneNum)%SurfaceLast=Zone(ZoneNum+1)%SurfaceFirst-1
  END DO

  DO ZoneNum=1,NumOfZones
    IF (Zone(ZoneNum)%SurfaceFirst == 0) THEN
      CALL ShowSevereError(RoutineName//'Zone has no surfaces, Zone='//TRIM(Zone(ZoneNum)%Name))
      SurfError=.true.
    ENDIF
  ENDDO

! Set up Floor Areas for Zones
  IF (.not. SurfError) THEN
    DO ZoneNum=1,NumOfZones
      DO SurfNum=Zone(ZoneNum)%SurfaceFirst,Zone(ZoneNum)%SurfaceLast
        IF (Surface(SurfNum)%Class == SurfaceClass_Floor) THEN
          Zone(ZoneNum)%FloorArea=Zone(ZoneNum)%FloorArea+Surface(SurfNum)%Area
          Zone(ZoneNum)%HasFloor=.true.
        ENDIF
        IF (Surface(SurfNum)%Class == SurfaceClass_Roof) THEN
          Zone(ZoneNum)%HasRoof=.true.
        ENDIF
      END DO
    END DO
    errCount=0
    DO ZoneNum=1,NumOfZones
      Zone(ZoneNum)%CalcFloorArea = Zone(ZoneNum)%FloorArea
      IF (Zone(ZoneNum)%UserEnteredFloorArea /= AutoCalculate) THEN
      ! Check entered vs calculated
        IF (Zone(ZoneNum)%UserEnteredFloorArea > 0.0d0) THEN   ! User entered zone floor area,
                                                             ! produce message if not near calculated
          IF (Zone(ZoneNum)%CalcFloorArea > 0.0d0) THEN
            diffp=ABS(Zone(ZoneNum)%CalcFloorArea-Zone(ZoneNum)%UserEnteredFloorArea)/Zone(ZoneNum)%UserEnteredFloorArea
            IF (diffp  > .05d0) THEN
              ErrCount=ErrCount+1
              IF (ErrCount == 1 .and. .not. DisplayExtraWarnings) THEN
                CALL ShowWarningError(RoutineName//'Entered Zone Floor Areas differ from calculated Zone Floor Area(s).')
                CALL ShowContinueError('...use Output:Diagnostics,DisplayExtraWarnings; to show more details on individual zones.')
              ENDIF
              IF (DisplayExtraWarnings) THEN
                ! Warn user of using specified Zone Floor Area
                CALL ShowWarningError(RoutineName//'Entered Floor Area entered for Zone="'//TRIM(Zone(ZoneNum)%Name)// &
                            '" significantly different from calculated Floor Area')
                CALL ShowContinueError('Entered Zone Floor Area value='//  &
                            TRIM(RoundSigDigits(Zone(ZoneNum)%UserEnteredFloorArea,2))//  &
                            ', Calculated Zone Floor Area value='//TRIM(RoundSigDigits(Zone(ZoneNum)%CalcFloorArea,2))// &
                            ', entered Floor Area will be used in calculations.')
              ENDIF
            ENDIF
          ENDIF
          Zone(ZoneNum)%FloorArea = Zone(ZoneNum)%UserEnteredFloorArea
          Zone(ZoneNum)%HasFloor=.true.
        ENDIF
      ELSE
        Zone(ZoneNum)%FloorArea = Zone(ZoneNum)%CalcFloorArea  ! redundant, already done.
      ENDIF
    END DO
  ENDIF

  DO SurfNum=1,MovedSurfs !TotSurfaces
    IF (Surface(SurfNum)%Area < 1.d-06) THEN
      CALL ShowSevereError(RoutineName//'Zero or negative surface area['//trim(RoundSigDigits(Surface(SurfNum)%Area,5))//  &
         '], Surface='//Trim(Surface(SurfNum)%Name))
      SurfError=.true.
    ENDIF
    IF (Surface(SurfNum)%Area >= 1.d-06 .and. Surface(SurfNum)%Area < .001d0) THEN
      CALL ShowWarningError(RoutineName//'Very small surface area['//trim(RoundSigDigits(Surface(SurfNum)%Area,5))//  &
         '], Surface='//Trim(Surface(SurfNum)%Name))
    ENDIF
  END DO

  DO SurfNum=1,MovedSurfs !TotSurfaces
    ! GLASSDOORs and TDD:DIFFUSERs will be treated as windows in the subsequent heat transfer and daylighting
    ! calculations. Reset class to 'Window' after saving the original designation in SurfaceWindow.

    SurfaceWindow(SurfNum)%OriginalClass = Surface(SurfNum)%Class

    IF (Surface(SurfNum)%Class == SurfaceClass_GlassDoor &
      .OR. Surface(SurfNum)%Class == SurfaceClass_TDD_Diffuser) Surface(SurfNum)%Class = SurfaceClass_Window

    IF (Surface(SurfNum)%Class.EQ.SurfaceClass_TDD_Dome) THEN
      ! Reset the TDD:DOME subsurface to act as a base surface that can shade and be shaded
      ! NOTE: This must be set early so that subsequent shading calculations are done correctly
      Surface(SurfNum)%BaseSurf=SurfNum
    END IF
  END DO

  errFlag=.false.
  IF (.not. SurfError) THEN
    DO SurfNum=1,MovedSurfs !TotSurfaces
      ! Set ShadedConstruction numbers for windows whose shaded constructions were created
      ! when shading device was specified in the WindowShadingControl for the window
      IF(Surface(SurfNum)%ShadedConstruction /= 0) &
        SurfaceWindow(SurfNum)%ShadedConstruction = Surface(SurfNum)%ShadedConstruction

      ! no need to set the below -- it is the default
      ! Set variable that indicates if shading device has movable slats
!      SurfaceWindow(SurfNum)%MovableSlats = .FALSE.

      ! TH 2/9/2010. Fixed for CR 8010 for speed up purpose rather than fixing the problem
      WinShadingControlPtr = Surface(SurfNum)%WindowShadingControlPtr
      IF(WinShadingControlPtr /= 0) THEN
        IF(WindowShadingControl(WinShadingControlPtr)%SlatAngleControlForBlinds /= WSC_SAC_FixedSlatAngle) &
          SurfaceWindow(SurfNum)%MovableSlats = .TRUE.
        ! for a constant schedule of slat angle, it acts the same way as fixed angle
        ! TH 3/14/2011, CR 8347. Code was commented out due to the use of ExternalInterface (BCVTB)
        !IF(WindowShadingControl(WinShadingControlPtr)%SlatAngleControlForBlinds == WSC_SAC_ScheduledSlatAngle) THEN
          ! get schedule index
        !  SchID = WindowShadingControl(WinShadingControlPtr)%SlatAngleSchedule
        !  IF (SchID /= 0 ) THEN
        !    SchSlatAngle = GetScheduleMinValue(SchID)
        !    IF (SchSlatAngle == GetScheduleMaxValue(SchID)) THEN
        !      SurfaceWindow(SurfNum)%MovableSlats = .FALSE.
        !    ENDIF
        !  ENDIF
        !ENDIF
            ENDIF

      ConstrNumSh = SurfaceWindow(SurfNum)%ShadedConstruction
      IF(ConstrNumSh <= 0) CYCLE

      ShadingType = WindowShadingControl(WinShadingControlPtr)%ShadingType

      ! only for blinds
      IF(ShadingType == WSC_ST_ExteriorBlind .OR. ShadingType == WSC_ST_InteriorBlind &
        .OR. ShadingType == WSC_ST_BetweenGlassBlind ) THEN

        ! TH 1/7/2010. CR 7930
        ! The old code did not consider between-glass blind. Also there should not be two blinds - both interior and exterior
        ! Use the new generic code (assuming only one blind) as follows
        DO iTmp1 = 1, Construct(ConstrNumSh)%TotLayers
          iTmp2 = Construct(ConstrNumSh)%LayerPoint(iTmp1)
          IF(Material(iTmp2)%Group == WindowBlind) THEN
            BlNum = Material(iTmp2)%BlindDataPtr
            SurfaceWindow(SurfNum)%BlindNumber = BlNum
            ! TH 2/18/2010. CR 8010
            ! if it is a blind with movable slats, create one new blind and set it to VariableSlat if not done so yet.
            !  the new blind is created only once, it can be shared by multiple windows though.
            IF(SurfaceWindow(SurfNum)%MovableSlats .AND. Blind(BlNum)%SlatAngleType /= VariableSlats) THEN
              errFlag=.false.
              CALL AddVariableSlatBlind(BlNum,BlNumNew,errFlag)
              ! point to the new blind
              Material(iTmp2)%BlindDataPtr = BlNumNew
              ! window surface points to new blind
              SurfaceWindow(SurfNum)%BlindNumber = BlNumNew
            ENDIF
            EXIT
          END IF
        END DO

        IF (errFlag) THEN
          ErrorsFound=.true.
          CALL ShowContinueError('WindowProperty:ShadingControl '//  &
            TRIM(WindowShadingControl(WinShadingControlPtr)%Name)// &
            ' has errors, program will terminate.')
        ENDIF

        ! TH 5/17/2010. Fixed for CR 8121. Overwrite the blind slat angle with the constant scheduled value
        ! TH 3/14/2011. With fix for CR 8347, the following code is no longer needed.
        !IF (SurfaceWindow(SurfNum)%BlindNumber >0 .AND. WinShadingControlPtr >0 ) THEN
        !  IF (.NOT. SurfaceWindow(SurfNum)%MovableSlats .AND. &
        !    WindowShadingControl(WinShadingControlPtr)%SlatAngleControlForBlinds == WSC_SAC_ScheduledSlatAngle) THEN
        !    Blind(SurfaceWindow(SurfNum)%BlindNumber)%SlatAngle = SchSlatAngle
        !  ENDIF
        !ENDIF

      ENDIF

    END DO  ! End of surface loop

    ! Warning if a WindowShadingControl is not referenced by any window; user may think
    ! window shading is occurring when it really isn't
    DO ShadingCtrl = 1,TotWinShadingControl
      WinShadingCtrlReferenced = .FALSE.
      DO SurfNum = 1,TotSurfaces
        IF(Surface(SurfNum)%WindowShadingControlPtr == ShadingCtrl) WinShadingCtrlReferenced = .TRUE.
      END DO
      IF(.NOT.WinShadingCtrlReferenced) THEN
        CALL ShowWarningError(RoutineName//'WindowProperty:ShadingControl: "'//TRIM(WindowShadingControl(ShadingCtrl)%Name)// &
                    '" is not referenced by any window.')
      END IF
    END DO
  ENDIF

  ! Check for zones with not enough surfaces
  DO ZoneNum = 1,NumOfZones
    OpaqueHTSurfs = 0
    OpaqueHTSurfsWithWin = 0
    InternalMassSurfs = 0
    IF (Zone(ZoneNum)%SurfaceFirst == 0) CYCLE  ! Zone with no surfaces
    DO SurfNum = Zone(ZoneNum)%SurfaceFirst,Zone(ZoneNum)%SurfaceLast
      IF(Surface(SurfNum)%Class == SurfaceClass_Floor .OR. Surface(SurfNum)%Class == SurfaceClass_Wall .OR. &
         Surface(SurfNum)%Class == SurfaceClass_Roof) OpaqueHTSurfs = OpaqueHTSurfs + 1
      IF(Surface(SurfNum)%Class == SurfaceClass_IntMass) InternalMassSurfs = InternalMassSurfs + 1
      IF(Surface(SurfNum)%Class == SurfaceClass_Window) THEN
         ! Count base surface only once for multiple windows on a wall
         IF(SurfNum > 1 .AND. Surface(SurfNum-1)%Class /= SurfaceClass_Window) &
           OpaqueHTSurfsWithWin = OpaqueHTSurfsWithWin + 1
      END IF
    END DO
    IF(OpaqueHTSurfsWithWin == 1 .AND. OpaqueHTSurfs == 1 .AND. InternalMassSurfs == 0) THEN
      SurfError = .true.
      CALL ShowSevereError(RoutineName//'Zone '//Trim(Zone(ZoneNum)%Name)// &
        ' has only one floor, wall or roof, and this surface has a window.')
      CALL ShowContinueError('Add more floors, walls or roofs, or an internal mass surface.')
    END IF
    IF((OpaqueHTSurfs + InternalMassSurfs) < 6) THEN
      CALL ShowWarningError(RoutineName//'The total number of floors, walls, roofs and internal mass surfaces in Zone '// &
                            Trim(Zone(ZoneNum)%Name))
      CALL ShowContinueError('is < 6. This may cause an inaccurate zone heat balance calculation.')
    END IF
  END DO

    ! set up vertex of centroid for each surface.
  CALL CalcSurfaceCentroid

  CALL SetupShadeSurfacesForSolarCalcs  ! if shading surfaces are solar collectors or PV, then we need full solar calc.

  LayNumOutside=0
  DO SurfNum=1,TotSurfaces
    ! Check for EcoRoof and only 1 allowed to be used.
    IF (.not. Surface(SurfNum)%ExtEcoRoof) CYCLE
    IF (LayNumOutSide == 0) THEN
      LayNumOutSide=Construct(Surface(SurfNum)%Construction)%LayerPoint(1)
      CYCLE
    ENDIF
    IF (LayNumOutSide /= Construct(Surface(SurfNum)%Construction)%LayerPoint(1)) THEN
      CALL ShowSevereError(RoutineName//'Only one EcoRoof Material is currently allowed for all constructions.')
      CALL ShowContinueError('... first material='//TRIM(Material(LayNumOutSide)%Name))
      CALL ShowContinueError('... conflicting Construction='//TRIM(Construct(Surface(SurfNum)%Construction)%Name)//  &
                    ' uses material='//TRIM(Material(Construct(Surface(SurfNum)%Construction)%LayerPoint(1))%Name))
      ErrorsFound=.true.
    ENDIF
  ENDDO

  ! Set flag that determines whether a surface can be an exterior obstruction
  DO SurfNum = 1,TotSurfaces
    Surface(SurfNum)%ShadowSurfPossibleObstruction = .FALSE.
    ! Exclude non-exterior heat transfer surfaces (but not OtherSideCondModeledExt = -4 CR7640)
    IF(Surface(SurfNum)%HeatTransSurf .AND. Surface(SurfNum)%ExtBoundCond > 0 ) CYCLE
    IF(Surface(SurfNum)%HeatTransSurf .AND. Surface(SurfNum)%ExtBoundCond == Ground) CYCLE
    IF(Surface(SurfNum)%HeatTransSurf .AND. Surface(SurfNum)%ExtBoundCond == OtherSideCoefNoCalcExt) CYCLE
    IF(Surface(SurfNum)%HeatTransSurf .AND. Surface(SurfNum)%ExtBoundCond == OtherSideCoefCalcExt) CYCLE
    ! Exclude windows and doors, i.e., consider only their base surfaces as possible obstructions
    IF(Surface(SurfNum)%Class == SurfaceClass_Window .OR. Surface(SurfNum)%Class == SurfaceClass_Door) CYCLE
    ! Exclude duplicate shading surfaces
    ! TH 3/25/2010 CR 7872
    !  Shading surface names can start with Mir, a better way to use another flag
    !   to indicate whether a surface is a mirrored one.
    !IF(Surface(SurfNum)%Name(1:3) == 'Mir') CYCLE
    IF(Surface(SurfNum)%MirroredSurf) CYCLE

    Surface(SurfNum)%ShadowSurfPossibleObstruction = .TRUE.
  END DO

  ! Check for IRT surfaces in invalid places.
  iTmp1=0
  IF (ANY(Construct%TypeIsIRT)) THEN
    DO SurfNum = 1,TotSurfaces
      IF (.not. Surface(SurfNum)%HeatTransSurf) CYCLE  ! ignore shading surfaces
      IF (Surface(SurfNum)%ExtBoundCond > 0 .and. Surface(SurfNum)%ExtBoundCond /= SurfNum) CYCLE ! interzone, not adiabatic surface
      IF (.not. Construct(Surface(SurfNum)%Construction)%TypeIsIRT) CYCLE
      IF (.not. DisplayExtraWarnings) THEN
        iTmp1=iTmp1+1
      ELSE
        CALL ShowWarningError(RoutineName//'Surface="'//trim(Surface(SurfNum)%Name)//'" uses InfraredTransparent'//  &
           ' construction in a non-interzone surface. (illegal use)')
      ENDIF
    ENDDO
    IF (iTmp1 > 0) THEN
      CALL ShowWarningError(RoutineName//'Surfaces use InfraredTransparent constructions '//trim(TrimSigDigits(iTmp1))//  &
         ' in non-interzone surfaces. (illegal use)')
      CALL ShowContinueError('For explicit details on each use, use Output:Diagnostics,DisplayExtraWarnings;')
    ENDIF
  ENDIF

! Note, could do same for Window Area and detecting if Interzone Surface in Zone

  IF (Warning1Count > 0) THEN
    CALL ShowWarningMessage(RoutineName//'Window dimensions differ from Window 5/6 data file dimensions, '//  &
          trim(TrimSigDigits(Warning1Count))//' times.')
    CALL ShowContinueError('This will affect the frame heat transfer calculation if the frame in the Data File entry')
    CALL ShowContinueError('is not uniform, i.e., has sections with different geometry and/or thermal properties.')
    CALL ShowContinueError('For explicit details on each window, use Output:Diagnostics,DisplayExtraWarnings;')
  ENDIF
  IF (Warning2Count > 0) THEN
    CALL ShowWarningMessage(RoutineName//'Exterior Windows have been replaced with Window 5/6 two glazing systems, '//  &
          trim(TrimSigDigits(Warning2Count))//' times.')
    CALL ShowContinueError('Note that originally entered dimensions are overridden.')
    CALL ShowContinueError('For explicit details on each window, use Output:Diagnostics,DisplayExtraWarnings;')
  ENDIF
  IF (Warning3Count > 0) THEN
    CALL ShowWarningMessage(RoutineName//'Interior Windows have been replaced with Window 5/6 two glazing systems, '//  &
          trim(TrimSigDigits(Warning3Count))//' times.')
    CALL ShowContinueError('Note that originally entered dimensions are overridden.')
    CALL ShowContinueError('For explicit details on each window, use Output:Diagnostics,DisplayExtraWarnings;')
  ENDIF

  IF (TotalMultipliedWindows > 0) THEN
    CALL ShowWarningMessage(RoutineName//'There are '//trim(TrimSigDigits(TotalMultipliedWindows))//' window/glass door(s) '//  &
            'that may cause inaccurate shadowing due to Solar Distribution.')
    CALL ShowContinueError('For explicit details on each window, use Output:Diagnostics,DisplayExtraWarnings;')
    TotalWarningErrors=TotalWarningErrors+TotalMultipliedWindows
  ENDIF
  IF (TotalCoincidentVertices > 0) THEN
    CALL ShowWarningMessage(RoutineName//'There are '//trim(TrimSigDigits(TotalCoincidentVertices))//  &
       ' coincident/collinear vertices; These have been deleted unless the deletion would bring the number of surface sides < 3.')
    CALL ShowContinueError('For explicit details on each problem surface, use Output:Diagnostics,DisplayExtraWarnings;')
    TotalWarningErrors=TotalWarningErrors+TotalCoincidentVertices
  ENDIF
  IF (TotalDegenerateSurfaces > 0) THEN
    CALL ShowSevereMessage(RoutineName//'There are '//trim(TrimSigDigits(TotalDegenerateSurfaces))//  &
       ' degenerate surfaces; Degenerate surfaces are those with number of sides < 3.')
    CALL ShowContinueError('These surfaces should be deleted.')
    CALL ShowContinueError('For explicit details on each problem surface, use Output:Diagnostics,DisplayExtraWarnings;')
    TotalSevereErrors=TotalSevereErrors+TotalDegenerateSurfaces
  ENDIF

 CALL GetHTSurfExtVentedCavityData(ErrorsFound)

 CALL GetSurfaceHeatTransferAlgorithmOverrides(ErrorsFound)

 IF (SurfError .or. ErrorsFound) THEN
   ErrorsFound=.true.
   CALL ShowFatalError(RoutineName//'Errors discovered, program terminates.')
 ENDIF

 RETURN

END SUBROUTINE GetSurfaceData


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