TYPE ConstructionData
CHARACTER(len=MaxNameLength) :: Name = ' ' ! Name of construction
INTEGER :: TotLayers = 0 ! Total number of layers for the construction; for windows
! this is the total of the glass, gas and shade layers
INTEGER :: TotSolidLayers = 0 ! Total number of solid (glass or shade) layers (windows only)
INTEGER :: TotGlassLayers = 0 ! Total number of glass layers (windows only)
INTEGER :: LayerPoint(MaxLayersInConstruct) = 0 ! Pointer array which refers back to
! the Material structure; LayerPoint(i)=j->Material(j)%Name,etc
LOGICAL :: IsUsed =.false. ! Marked true when the construction is used
REAL(r64) :: InsideAbsorpVis = 0.0d0 ! Inside Layer visible absorptance of an opaque surface; not used for windows.
REAL(r64) :: OutsideAbsorpVis = 0.0d0 ! Outside Layer visible absorptance of an opaque surface; not used for windows.
REAL(r64) :: InsideAbsorpSolar = 0.0d0 ! Inside Layer solar absorptance of an opaque surface; not used for windows.
REAL(r64) :: OutsideAbsorpSolar = 0.0d0 ! Outside Layer solar absorptance of an opaque surface; not used for windows.
REAL(r64) :: InsideAbsorpThermal = 0.0d0 ! Inside Layer Thermal absorptance for opaque surfaces or windows;
! for windows, applies to innermost glass layer
REAL(r64) :: OutsideAbsorpThermal = 0.0d0 ! Outside Layer Thermal absorptance
INTEGER :: OutsideRoughness =0 ! Outside Surface roughness index (6=very smooth, 5=smooth,
! 4=medium smooth, 3=medium rough, 2=rough, 1=very rough)
INTEGER :: DayltPropPtr =0 ! Pointer to Daylight Construction Properties
INTEGER :: W5FrameDivider = 0 ! FrameDivider number for window construction from Window5 data file;
! zero is construction not from Window5 file or Window5 construction has no frame.
! Conductive properties for the construction
REAL(r64) :: CTFCross(0:MaxCTFTerms-1) =0.0D0 ! Cross or Y terms of the CTF equation
REAL(r64) :: CTFFlux(MaxCTFTerms-1) =0.0D0 ! Flux history terms of the CTF equation
REAL(r64) :: CTFInside(0:MaxCTFTerms-1) =0.0D0 ! Inside or Z terms of the CTF equation
REAL(r64) :: CTFOutside(0:MaxCTFTerms-1) =0.0D0 ! Outside or X terms of the CTF equation
REAL(r64) :: CTFSourceIn(0:MaxCTFTerms-1) =0.0D0 ! Heat source/sink inside terms of CTF equation
REAL(r64) :: CTFSourceOut(0:MaxCTFTerms-1)=0.0D0 ! Heat source/sink outside terms of CTF equation
REAL(r64) :: CTFTimeStep ! Time increment for stable simulation of construct (could be greater than TimeStep)
! The next three series of terms are used to calculate the temperature at the location of a source/sink
! in the QTF formulation. This calculation is necessary to allow the proper simulation of a
! radiant system.
REAL(r64) :: CTFTSourceOut(0:MaxCTFTerms-1)=0.0D0 ! Outside terms of the CTF equation for interior temp
! calc@source location
REAL(r64) :: CTFTSourceIn(0:MaxCTFTerms-1) =0.0D0 ! Inside terms of the CTF equation for interior temp
! calc@source location
REAL(r64) :: CTFTSourceQ(0:MaxCTFTerms-1) =0.0D0 ! Source/sink terms of the CTF equation for interior temp
! calc@source location
! The next three series of terms are used to calculate the temperature at a location specified by the user.
! This location must be between two layers and is intended to allow the user to evaluate whether or not
! condensation is a possibility between material layers.
REAL(r64) :: CTFTUserOut(0:MaxCTFTerms-1) =0.0D0 ! Outside terms of the CTF equation for interior temp
! calc@user location
REAL(r64) :: CTFTUserIn(0:MaxCTFTerms-1) =0.0D0 ! Inside terms of the CTF equation for interior temp
! calc@user location
REAL(r64) :: CTFTUserSource(0:MaxCTFTerms-1)=0.0D0 ! Source/sink terms of the CTF equation for interior temp
! calc@user location
INTEGER :: NumHistories =0 ! CTFTimeStep/TimeStepZone or the number of temp/flux history series
! for the construction
INTEGER :: NumCTFTerms =0 ! Number of CTF terms for this construction (not including terms at current time)
REAL(r64) :: UValue = 0.0d0 ! Overall heat transfer coefficient for the construction
INTEGER :: SolutionDimensions =0 ! Number of dimensions in the solution (1 for normal constructions,
! 1 or 2 for constructions with sources or sinks)-->may allow 3-D later?
INTEGER :: SourceAfterLayer =0 ! Source/sink is present after this layer in the construction
INTEGER :: TempAfterLayer =0 ! User is requesting a temperature calculation after this layer in the construction
REAL(r64) :: ThicknessPerpend = 0.0d0 ! Thickness between planes of symmetry in the direction
! perpendicular to the main direction of heat transfer
! (same as half the distance between tubes)
! Moisture Transfer Functions term belong here as well
! BLAST detailed solar model parameters
REAL(r64) :: AbsDiffIn = 0.0d0 ! Inner absorptance coefficient for diffuse radiation
REAL(r64) :: AbsDiffOut = 0.0d0 ! Outer absorptance coefficient for diffuse radiation
! Variables for window constructions
REAL(r64) :: AbsDiff(MaxSolidWinLayers) = 0.0d0 ! Diffuse solar absorptance for each glass layer,
! bare glass or shade on
REAL(r64) :: BlAbsDiff(MaxSolidWinLayers,MaxSlatAngs) = 0.0d0 ! Diffuse solar absorptance for each glass layer vs.
! slat angle, blind on
REAL(r64) :: BlAbsDiffGnd(MaxSolidWinLayers,MaxSlatAngs) = 0.0d0 ! Diffuse ground solar absorptance for each glass layer
! vs. slat angle, blind on
REAL(r64) :: BlAbsDiffSky(MaxSolidWinLayers,MaxSlatAngs) = 0.0d0 ! Diffuse sky solar absorptance for each glass layer
! vs. slat angle, blind on
REAL(r64) :: AbsDiffBack(MaxSolidWinLayers) = 0.0d0 ! Diffuse back solar absorptance for each glass layer
REAL(r64) :: BlAbsDiffBack(MaxSolidWinLayers,MaxSlatAngs)= 0.0d0 ! Diffuse back solar absorptance for each glass layer,
! vs. slat angle, blind on
REAL(r64) :: AbsDiffShade = 0.0d0 ! Diffuse solar absorptance for shade
REAL(r64) :: AbsDiffBlind(MaxSlatAngs) = 0.0d0 ! Diffuse solar absorptance for blind, vs. slat angle
REAL(r64) :: AbsDiffBlindGnd(MaxSlatAngs) = 0.0d0 ! Diffuse ground solar absorptance for blind, vs. slat angle
REAL(r64) :: AbsDiffBlindSky(MaxSlatAngs) = 0.0d0 ! Diffuse sky solar absorptance for blind, vs. slat angle
REAL(r64) :: AbsDiffBackShade = 0.0d0 ! Diffuse back solar absorptance for shade
REAL(r64) :: AbsDiffBackBlind(MaxSlatAngs)= 0.0d0 ! Diffuse back solar absorptance for blind, vs. slat angle
REAL(r64) :: ShadeAbsorpThermal = 0.0d0 ! Diffuse back thermal absorptance of shade
REAL(r64) :: AbsBeamCoef(MaxSolidWinLayers,6) = 0.0d0 ! Coefficients of incidence-angle polynomial for solar
! absorptance for each solid glazing layer
REAL(r64) :: AbsBeamBackCoef(MaxSolidWinLayers,6) = 0.0d0 ! As for AbsBeamCoef but for back-incident solar
REAL(r64) :: AbsBeamShadeCoef(6) = 0.0d0 ! Coefficients of incidence-angle polynomial for solar
! absorptance of shade
REAL(r64) :: TransDiff = 0.0d0 ! Diffuse solar transmittance, bare glass or shade on
REAL(r64) :: BlTransDiff(MaxSlatAngs) = 0.0d0 ! Diffuse solar transmittance, blind present, vs. slat angle
REAL(r64) :: BlTransDiffGnd(MaxSlatAngs) = 0.0d0 ! Ground diffuse solar transmittance, blind present, vs. slat angle
REAL(r64) :: BlTransDiffSky(MaxSlatAngs) = 0.0d0 ! Sky diffuse solar transmittance, blind present, vs. slat angle
REAL(r64) :: TransDiffVis = 0.0d0 ! Diffuse visible transmittance, bare glass or shade on
REAL(r64) :: BlTransDiffVis(MaxSlatAngs) = 0.0d0 ! Diffuse visible transmittance, blind present, vs. slat angle
REAL(r64) :: ReflectSolDiffBack = 0.0d0 ! Diffuse back solar reflectance, bare glass or shade on
REAL(r64) :: BlReflectSolDiffBack(MaxSlatAngs) = 0.0d0 ! Diffuse back solar reflectance, blind present, vs. slat angle
REAL(r64) :: ReflectSolDiffFront = 0.0d0 ! Diffuse front solar reflectance, bare glass or shade on
REAL(r64) :: BlReflectSolDiffFront(MaxSlatAngs)= 0.0d0 ! Diffuse front solar reflectance, blind present, vs. slat angle
REAL(r64) :: ReflectVisDiffBack = 0.0d0 ! Diffuse back visible reflectance, bare glass or shade on
REAL(r64) :: BlReflectVisDiffBack(MaxSlatAngs) = 0.0d0 ! Diffuse back visible reflectance, blind present, vs. slat angle
REAL(r64) :: ReflectVisDiffFront = 0.0d0 ! Diffuse front visible reflectance, bare glass or shade on
REAL(r64) :: BlReflectVisDiffFront(MaxSlatAngs)= 0.0d0 ! Diffuse front visible reflectance, blind present, vs. slat angle
REAL(r64) :: TransSolBeamCoef(6) = 0.0d0 ! Coeffs of incidence-angle polynomial for beam sol trans,
! bare glass or shade on
REAL(r64) :: TransVisBeamCoef(6) = 0.0d0 ! Coeffs of incidence-angle polynomial for beam vis trans,
! bare glass or shade on
REAL(r64) :: ReflSolBeamFrontCoef(6) = 0.0d0 ! Coeffs of incidence-angle polynomial for beam sol front refl,
! bare glass or shade on
REAL(r64) :: ReflSolBeamBackCoef(6) = 0.0d0 ! Like ReflSolBeamFrontCoef, but for back-incident beam solar
REAL(r64) :: tBareSolCoef(5,6) = 0.0d0 ! Isolated glass solar transmittance coeffs of inc. angle polynomial
REAL(r64) :: tBareVisCoef(5,6) = 0.0d0 ! Isolated glass visible transmittance coeffs of inc. angle polynomial
REAL(r64) :: rfBareSolCoef(5,6) = 0.0d0 ! Isolated glass front solar reflectance coeffs of inc. angle polynomial
REAL(r64) :: rfBareVisCoef(5,6) = 0.0d0 ! Isolated glass front visible reflectance coeffs of inc. angle polynomial
REAL(r64) :: rbBareSolCoef(5,6) = 0.0d0 ! Isolated glass back solar reflectance coeffs of inc. angle polynomial
REAL(r64) :: rbBareVisCoef(5,6) = 0.0d0 ! Isolated glass back visible reflectance coeffs of inc. angle polynomial
REAL(r64) :: afBareSolCoef(5,6) = 0.0d0 ! Isolated glass front solar absorptance coeffs of inc. angle polynomial
REAL(r64) :: abBareSolCoef(5,6) = 0.0d0 ! Isolated glass back solar absorptance coeffs of inc. angle polynomial
REAL(r64) :: tBareSolDiff(5) = 0.0d0 ! Isolated glass diffuse solar transmittance
REAL(r64) :: tBareVisDiff(5) = 0.0d0 ! Isolated glass diffuse visible transmittance
REAL(r64) :: rfBareSolDiff(5) = 0.0d0 ! Isolated glass diffuse solar front reflectance
REAL(r64) :: rfBareVisDiff(5) = 0.0d0 ! Isolated glass diffuse visible front reflectance
REAL(r64) :: rbBareSolDiff(5) = 0.0d0 ! Isolated glass diffuse solar back reflectance
REAL(r64) :: rbBareVisDiff(5) = 0.0d0 ! Isolated glass diffuse visible back reflectance
REAL(r64) :: afBareSolDiff(5) = 0.0d0 ! Isolated glass diffuse solar front absorptance
REAL(r64) :: abBareSolDiff(5) = 0.0d0 ! Isolated glass diffuse solar back absorptance
LOGICAL :: FromWindow5DataFile =.false. ! True if this is a window construction extracted from the Window5 data file
REAL(r64) :: W5FileMullionWidth = 0.0d0 ! Width of mullion for construction from Window5 data file (m)
INTEGER :: W5FileMullionOrientation = 0 ! Orientation of mullion, if present, for Window5 data file construction,
REAL(r64) :: W5FileGlazingSysWidth = 0.0d0 ! Glass width for construction from Window5 data file (m)
REAL(r64) :: W5FileGlazingSysHeight = 0.0d0 ! Glass height for construction form Window5 data file (m)
REAL(r64) :: SummerSHGC = 0.0d0 ! Calculated ASHRAE SHGC for summer conditions
REAL(r64) :: VisTransNorm = 0.0d0 ! The normal visible transmittance
REAL(r64) :: SolTransNorm =0.0D0 ! the normal solar transmittance
LOGICAL :: SourceSinkPresent =.false. ! .TRUE. if there is a source/sink within this construction
LOGICAL :: TypeIsWindow =.false. ! True if a window construction, false otherwise
LOGICAL :: WindowTypeBSDF =.false. ! True for complex window, false otherwise
LOGICAL :: TypeIsEcoRoof =.false. !-- true for construction with ecoRoof outside, the flag
!-- is turned on when the outside layer is of type EcoRoof
LOGICAL :: TypeIsIRT =.false. !-- true for construction with IRT material
LOGICAL :: TypeIsCfactorWall =.false. !-- true for construction with Construction:CfactorUndergroundWall
LOGICAL :: TypeIsFfactorFloor =.false. !-- true for construction with Construction:FfactorGroundFloor
! Added TH 12/22/2008 for thermochromic windows
INTEGER :: TCFlag = 0 ! 0: this construction is not a thermochromic window construction
! 1: it is a TC window construction
INTEGER :: TCLayer = 0 ! Reference to the TC glazing material layer in the Material array
INTEGER :: TCMasterConst = 0 ! The master TC construction referenced by its slave constructions
INTEGER :: TCLayerID = 0 ! Which material layer is the TC glazing, counting all material layers.
INTEGER :: TCGlassID = 0 ! Which glass layer is the TC glazing, counting from glass layers only.
!For CFactor underground walls
REAL(r64) :: CFactor = 0.0d0
REAL(r64) :: Height = 0.0d0
!For FFactor slabs-on-grade or undeerground floors
REAL(r64) :: FFactor = 0.0d0
REAL(r64) :: Area = 0.0d0
REAL(r64) :: PerimeterExposed = 0.0d0
LOGICAL :: ReverseConstructionNumLayersWarning = .false.
LOGICAL :: ReverseConstructionLayersOrderWarning = .false.
!Complex Fenestration
TYPE(BSDFWindowInputStruct) :: BSDFInput ! nest structure with user input for complex fenestration
! EquivalentLayer Window
LOGICAL :: WindowTypeEQL =.false. ! True for equivalent layer window, false otherwise
INTEGER :: EQLConsPtr =0 ! Pointer to equivalent Layer window construction
REAL(r64) :: AbsDiffFrontEQL(CFSMAXNL) = 0.0d0 ! Diffuse layer system front absorptance for EQL window
REAL(r64) :: AbsDiffBackEQL(CFSMAXNL) = 0.0d0 ! Diffuse layer system back absorptance for EQL window
REAL(r64) :: TransDiffFrontEQL = 0.0d0 ! Diffuse system front transmittance for EQL window
REAL(r64) :: TransDiffBackEQL = 0.0d0 ! Diffuse system back transmittance for EQL window
END TYPE ConstructionData