Nodes of different colours represent the following:
Solid arrows point from a parent (sub)module to the submodule which is descended from it. Dashed arrows point from a module being used to the module or program unit using it. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
fw CASE(WindowGasMixture)
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
SUBROUTINE ReportGlass
! SUBROUTINE INFORMATION:
! AUTHOR Linda K. Lawrie
! DATE WRITTEN March 2000
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This routine gives a detailed report to the user about
! the calculation parameters for windows and their associated
! materials.
! METHODOLOGY EMPLOYED:
! na
! REFERENCES:
! na
! USE STATEMENTS:
USE General, ONLY: POLYF, ScanForReports, RoundSigDigits
! InterpBlind ! Blind profile angle interpolation function
USE WindowComplexManager, ONLY: CalcComplexWindowThermal, UpdateComplexWindows
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
! na
! SUBROUTINE PARAMETER DEFINITIONS:
CHARACTER(len=*),PARAMETER,DIMENSION(6) :: Roughness = (/'VeryRough ','Rough ','MediumRough ', &
'MediumSmooth','Smooth ','VerySmooth '/)
CHARACTER(len=*),PARAMETER,DIMENSION(0:4):: GasTypeName=(/'Custom ','Air ','Argon ','Krypton','Xenon '/)
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
LOGICAL :: DoReport=.false.
LOGICAL :: HasWindows=.false.
LOGICAL :: HasComplexWindows = .false.
LOGICAL :: HasEQLWindows = .false. ! equivalent layer window defined
INTEGER :: SurfConstr = 0
REAL(r64) :: TempVar = 0.0d0 ! just temporary usage for complex fenestration
INTEGER ThisNum
INTEGER Layer
INTEGER BlNum ! Blind number
INTEGER I
REAL(r64) NominalConductanceWinter ! Nominal center-of-glass conductance of a window construction
! for ASHRAE winter conditions (W/m2-K):
! Inside air temperature = 21.1C (70F)
! Outside air temperature = -17.8C (0F)
! Windspeed = 6.71 m/s (15 mph)
! No solar radiation
REAL(r64) NominalConductanceSummer ! Nominal center-of-glass conductance of a window construction
! for ASHRAE summer conditions (W/m2-K):
! Inside air temperature = 23.9C (75F)
! Outside air temperature = 35.0C (95F)
! Windspeed = 3.35 m/s (7.5 mph)
! 783 W/m2 (248 Btu/h-ft2) incident beam solar radiation normal to glazing
REAL(r64) SHGCWinter, SHGCSummer ! Center-of-glass solar heat gain coefficient for ASHRAE
! winter and summer conditions
REAL(r64) TransSolNorm ! Window construction solar transmittance at normal incidence
REAL(r64) TransVisNorm ! Window construction visible transmittance at normal incidence
INTEGER ErrFlag ! Error flag
CHARACTER(len=3) SolarDiffusing ! 'Yes' if glass is solar diffusing; otherwise 'No' (clear glass)
CHARACTER(len=MaxNameLength) :: SpectralDataName
CHARACTER(len=MaxNameLength) :: OpticalDataType
CHARACTER(len=MaxNameLength) :: SlateOrientation
CHARACTER(len=MaxNameLength) :: GapVentType
CALL ScanForReports('Constructions',DoReport,'Constructions')
! DO ThisNum=1,TotConstructs
! IF (.not. Construct(ThisNum)%TypeIsWindow) CYCLE
! HasWindows=.true.
! EXIT
! ENDDO
IF (ANY(Construct%TypeIsWindow)) HasWindows=.true.
IF (ANY(Construct%WindowTypeBSDF)) HasComplexWindows=.true. ! Yes, this is a bit different than actually using them.
IF (ANY(Construct%WindowTypeEQL)) HasEQLWindows=.true. ! for reporting purpose only
! DO ThisNum=1,TotSurfaces
! SurfConstr = Surface(ThisNum)%Construction
! IF (SurfConstr /= 0) THEN
! IF (Construct(SurfConstr)%WindowTypeBSDF) THEN
! HasComplexWindows=.true.
! EXIT
! END IF
! END IF
! ENDDO
IF (DoReport .and. (HasWindows .or. HasComplexWindows .OR. HasEQLWindows)) THEN
!
!
! Write Descriptions
Write(OutputFileInits,'(A)') '! <WindowConstruction>,Construction Name,Index,#Layers,'// &
'Roughness,Conductance {W/m2-K},SHGC,'// &
'Solar Transmittance at Normal Incidence,Visible Transmittance at Normal Incidence'
IF( (TotSimpleWindow > 0) .OR. (W5GlsMat > 0) .OR. (W5GlsMatAlt > 0) ) &
Write(OutputFileInits, '(A)') '! <WindowMaterial:Glazing>, Material Name, Optical Data Type, Spectral Data Set Name, '// &
'Thickness {m}, Solar Transmittance,Front Solar Reflectance, Back Solar Reflectance, ' //&
'Visible Transmittance, Front Visible Reflectance,Back Visible Reflectance,' // &
'Infrared Transmittance, Front Thermal Emissivity, Back Thermal Emissivity,' // &
'Conductivity {W/m-K},Dirt Factor,Solar Diffusing'
IF ( (W5GasMat > 0) .OR. (W5GasMatMixture > 0) ) &
Write(OutputFileInits,'(A)') '! <WindowMaterial:Gas>,Material Name,GasType,Thickness {m}'
IF(TotShades .GT. 0) &
Write(OutputFileInits,'(A)') '! <WindowMaterial:Shade>,Material Name,Thickness {m},Conductivity {W/m-K},'// &
'Thermal Absorptance,Transmittance,Visible Transmittance,Shade Reflectance'
IF(TotScreens .GT. 0) &
Write(OutputFileInits,'(A)') '! <WindowMaterial:Screen>,Material Name,Thickness {m},Conductivity {W/m-K},'// &
'Thermal Absorptance,Transmittance,Reflectance,Visible Reflectance,'// &
'Diffuse Reflectance,Diffuse Visible Reflectance,'// &
'Screen Material Diameter To Spacing Ratio,Screen To GlassDistance {m}'
IF(TotBlinds .GT. 0) &
Write(OutputFileInits,'(A)') '! <WindowMaterial:Blind>,Material Name,Slat Width {m},Slat Separation {m},'// &
'Slat Thickness {m},Slat Angle {deg},Slat Beam Solar Transmittance,'// &
'Slat Beam Solar Front Reflectance,Blind To Glass Distance {m}'
IF (HasComplexWindows) Write(OutputFileInits,'(A)') '! <WindowConstruction:Complex>,Construction Name,Index,#Layers,'// &
'U-factor {W/m2-K},SHGC'
IF (HasEQLWindows) &
Write(OutputFileInits,'(A)') '! <Construction:WindowEquivalentLayer>,Construction Name,Index,#Layers,'// &
'U-factor {W/m2-K},SHGC, Solar Transmittance at Normal Incidence'
IF( W5GlsMatEQL .GT. 0) &
Write(OutputFileInits, '(A)') '! <WindowMaterial:Glazing:EquivalentLayer>, '// &
'Material Name, Optical Data Type, Spectral Data Set Name, '// &
'Front Side Beam-Beam Solar Transmittance, Back Side Beam-Beam Solar Transmittance, '//&
'Front Side Beam-Beam Solar Reflectance, Back Side Beam-Beam Solar Reflectance, '//&
'Front Side Beam-Diffuse Solar Transmittance, Back Side Beam-Diffuse Solar Transmittance, , '//&
'Front Side Beam-Diffuse Solar Reflectance, Back Side Beam-Diffuse Solar Reflectance, '//&
'Diffuse-Diffuse Solar Transmittance, Front Side Diffuse-Diffuse Solar Reflectance, '//&
'Back Side Diffuse-Diffuse Solar Reflectance, Infrared Transmittance, '//&
'Front Side Infrared Emissivity, Back Side Infrared Emissivity'
IF( TotShadesEQL .GT. 0) &
Write(OutputFileInits, '(A)') '! <WindowMaterial:Shade:EquivalentLayer>, '// &
'Material Name, '// &
'Front Side Beam-Beam Solar Transmittance, Back Side Beam-Beam Solar Transmittance, '//&
'Front Side Beam-Diffuse Solar Transmittance, Back Side Beam-Diffuse Solar Transmittance, , '//&
'Front Side Beam-Diffuse Solar Reflectance, Back Side Beam-Diffuse Solar Reflectance, '//&
'Infrared Transmittance, Front Side Infrared Emissivity, Back Side Infrared Emissivity'
IF( TotDrapesEQL .GT. 0) &
Write(OutputFileInits, '(A)') '! <WindowMaterial:Drape:EquivalentLayer>, '// &
'Material Name, '// &
'Front Side Beam-Beam Solar Transmittance, Back Side Beam-Beam Solar Transmittance, '//&
'Front Side Beam-Diffuse Solar Transmittance, Back Side Beam-Diffuse Solar Transmittance, , '//&
'Front Side Beam-Diffuse Solar Reflectance, Back Side Beam-Diffuse Solar Reflectance, '//&
'Infrared Transmittance, Front Side Infrared Emissivity, Back Side Infrared Emissivity, '//&
'Width of Pleated Fabric, Length of Pleated Fabric'
IF( TotBlindsEQL .GT. 0) &
Write(OutputFileInits, '(A)') '! <WindowMaterial:Blind:EquivalentLayer>, '// &
'Material Name, '// &
'Slat Orientation, Slat Width, Slat Separation, Slat Crown, Slat Angle, '//&
'Front Side Slate Beam-Diffuse Solar Transmittance, Back Side Slate Beam-Diffuse Solar Transmittance, '//&
'Front Side Slate Beam-Diffuse Solar Reflectance, Back Side Slate Beam-Diffuse Solar Reflectance, '//&
'Slat Diffuse-Diffuse Solar Transmittance, Front Side Slat Diffuse-Diffuse Solar Reflectance, '//&
'Back Side Slat Diffuse-Diffuse Solar Reflectance, Infrared Transmittance, '//&
'Front Side Infrared Emissivity, Back Side Infrared Emissivity, Slat Angle Control'
IF( TotScreensEQL .GT. 0) &
Write(OutputFileInits, '(A)') '! <WindowMaterial:Screen:EquivalentLayer>, '// &
'Material Name, '// &
'Screen Beam-Beam Solar Transmittance, Screen Beam-Diffuse Solar Transmittance, '//&
'Screen Beam-Diffuse Solar Reflectance, Screen Infrared Transmittance, '//&
'Screen Infrared Emissivity, Screen Wire Spacing, Screen Wire Diameter'
IF( W5GapMatEQL .GT. 0) &
Write(OutputFileInits,'(A)') &
'! <WindowMaterial:Gap:EquivalentLayer>, Material Name, GasType, Gap Thickness {m}, Gap Vent Type'
DO ThisNum=1,TotConstructs
IF (Construct(ThisNum)%WindowTypeBSDF) THEN
I = ThisNum
CALL CalcComplexWindowThermal(0, I, TempVar, TempVar, TempVar, TempVar, winterCondition)
CALL CalcComplexWindowThermal(0, I, TempVar, TempVar, TempVar, TempVar, summerCondition)
Write(OutputFileInits,800) trim(Construct(ThisNum)%Name), trim(RoundSigDigits(ThisNum)), &
trim(RoundSigDigits(Construct(ThisNum)%TotSolidLayers)), &
trim(RoundSigDigits(NominalU(ThisNum),3)), &
trim(RoundSigDigits(Construct(ThisNum)%SummerSHGC,3))
ELSE IF (Construct(ThisNum)%TypeIsWindow) THEN
! Calculate for ASHRAE winter and summer conditions:
! (1) nominal center-of-glass conductance, including inside and outside air films,
! (2) solar heat gain coefficient (SHGC),
! (3) solar transmittance at normal incidence, and (4) visible transmittance at normal incidence.
IF (Construct(ThisNum)%WindowTypeEQL) THEN
! for equivalent layer Window already calculated
! NominalU(ThisNum)=NominalConductanceWinter
! Save the SHGC for later use in tabular report IVRS
! Construct(ThisNum)%SummerSHGC = SHGCSummer
Construct(ThisNum)%VisTransNorm =0.0d0 ! TODO list
Write(OutputFileInits,799) trim(Construct(ThisNum)%Name), trim(RoundSigDigits(ThisNum)), &
trim(RoundSigDigits(Construct(ThisNum)%TotSolidLayers)), &
trim(RoundSigDigits(NominalU(ThisNum),3)), &
trim(RoundSigDigits(Construct(ThisNum)%SummerSHGC,3)), &
trim(RoundSigDigits(Construct(ThisNum)%SolTransNorm,3))
ELSE
CALL CalcNominalWindowCond(ThisNum,1,NominalConductanceWinter,SHGCWinter,TransSolNorm,TransVisNorm,ErrFlag)
IF(ErrFlag == 1) THEN
CALL ShowWarningError('Window construction '//TRIM(Construct(ThisNum)%Name)// &
' has an interior or exterior blind')
CALL ShowContinueError('but the corresponding construction without the blind cannot be found.')
CALL ShowContinueError('The ReportGlass entry for this construction will not be printed in eplusout.eio.')
CYCLE
END IF
! Skip constructions with between-glass shade/blind until method is worked out to determine
! nominal conductance and SHGC.
IF(ErrFlag == 2) THEN
CALL ShowWarningError('Window construction '//TRIM(Construct(ThisNum)%Name)// &
' has a between-glass shade or blind')
CALL ShowContinueError('The ReportGlass entry for this construction will not be printed in eplusout.eio.')
CYCLE
END IF
NominalU(ThisNum)=NominalConductanceWinter
IF (.NOT. Construct(ThisNum)%WindowTypeEQL) THEN
CALL CalcNominalWindowCond(ThisNum,2,NominalConductanceSummer,SHGCSummer,TransSolNorm,TransVisNorm,ErrFlag)
ENDIF
! Save the SHGC for later use in tabular report IVRS
Construct(ThisNum)%SummerSHGC = SHGCSummer
Construct(ThisNum)%VisTransNorm = TransVisNorm
Write(OutputFileInits,700) TRIM(Construct(ThisNum)%Name),trim(RoundSigDigits(ThisNum)), &
trim(RoundSigDigits(Construct(ThisNum)%TotLayers)), &
trim(Roughness(Construct(ThisNum)%OutsideRoughness)), &
trim(RoundSigDigits(NominalConductanceWinter,3)), &
trim(RoundSigDigits(SHGCSummer,3)), &
trim(RoundSigDigits(TransSolNorm,3)), &
trim(RoundSigDigits(TransVisNorm,3))
ENDIF
! Write(OutputFileConstrainParams, 705) TRIM(Construct(ThisNum)%Name), SHGCSummer ,TransVisNorm
700 FORMAT(' WindowConstruction',8(',',A))
702 FORMAT(' WindowMaterial:Gas',3(',',A))
703 FORMAT(' WindowMaterial:Shade,',7(',',A))
704 FORMAT(' WindowMaterial:Blind',8(',',A))
706 FORMAT(' WindowMaterial:Screen',11(',',A))
707 FORMAT(' WindowMaterial:Glazing',16(',',A))
708 FORMAT(' WindowMaterial:Glazing:EquivalentLayer',17(',',A))
709 FORMAT(' WindowMaterial:Shade:EquivalentLayer',10(',',A))
710 FORMAT(' WindowMaterial:Drape:EquivalentLayer',11(',',A))
711 FORMAT(' WindowMaterial:Screen:EquivalentLayer',11(',',A))
712 FORMAT(' WindowMaterial:Blind:EquivalentLayer',16(',',A))
713 FORMAT(' WindowMaterial:Gap:EquivalentLayer',4(',',A))
799 FORMAT(' Construction:WindowEquivalentLayer',6(',',A))
DO I=1,Construct(ThisNum)%TotLayers
Layer=Construct(ThisNum)%LayerPoint(I)
SELECT CASE (Material(Layer)%Group)
CASE (WindowGas)
Write(OutputFileInits,702) TRIM(Material(Layer)%Name),TRIM(GasTypeName(Material(Layer)%GasType(1))), &
trim(RoundSigDigits(Material(Layer)%Thickness,3))
!!fw CASE(WindowGasMixture)
CASE (Shade)
Write(OutputFileInits,703) TRIM(Material(Layer)%Name), &
trim(RoundSigDigits(Material(Layer)%Thickness,3)), &
trim(RoundSigDigits(Material(Layer)%Conductivity,3)), &
trim(RoundSigDigits(Material(Layer)%AbsorpThermal,3)), &
trim(RoundSigDigits(Material(Layer)%Trans,3)), &
trim(RoundSigDigits(Material(Layer)%TransVis,3)), &
trim(RoundSigDigits(Material(Layer)%ReflectShade,3))
CASE (WindowBlind)
BlNum = Material(Layer)%BlindDataPtr
Write(OutputFileInits,704) TRIM(Material(Layer)%Name), &
trim(RoundSigDigits(Blind(BlNum)%SlatWidth,4)), &
trim(RoundSigDigits(Blind(BlNum)%SlatSeparation,4)), &
trim(RoundSigDigits(Blind(BlNum)%SlatThickness,4)), &
trim(RoundSigDigits(Blind(BlNum)%SlatAngle,3)), &
trim(RoundSigDigits(Blind(BlNum)%SlatTransSolBeamDiff,3)), &
trim(RoundSigDigits(Blind(BlNum)%SlatFrontReflSolBeamDiff,3)), &
trim(RoundSigDigits(Blind(BlNum)%BlindToGlassDist,3))
CASE (Screen)
IF(Material(Layer)%ScreenDataPtr .GT. 0)&
Write(OutputFileInits,706) TRIM(Material(Layer)%Name), &
trim(RoundSigDigits(Material(Layer)%Thickness,5)), &
trim(RoundSigDigits(Material(Layer)%Conductivity,3)), &
trim(RoundSigDigits(Material(Layer)%AbsorpThermal,3)), &
trim(RoundSigDigits(SurfaceScreens(Material(Layer)%ScreenDataPtr)%BmBmTrans,3)), &
trim(RoundSigDigits(SurfaceScreens(Material(Layer)%ScreenDataPtr)%ReflectSolBeamFront,3)), &
trim(RoundSigDigits(SurfaceScreens(Material(Layer)%ScreenDataPtr)%ReflectVisBeamFront,3)), &
trim(RoundSigDigits(SurfaceScreens(Material(Layer)%ScreenDataPtr)%DifReflect,3)), &
trim(RoundSigDigits(SurfaceScreens(Material(Layer)%ScreenDataPtr)%DifReflectVis,3)), &
trim(RoundSigDigits(SurfaceScreens(Material(Layer)%ScreenDataPtr)%ScreenDiameterToSpacingRatio,3)), &
trim(RoundSigDigits(Material(Layer)%WinShadeToGlassDist,3))
CASE (WindowGlass, WindowSimpleGlazing)
SolarDiffusing = 'No'
IF(Material(Layer)%SolarDiffusing) SolarDiffusing = 'Yes'
OpticalDataType = 'SpectralAverage'
SpectralDataName = ' '
IF (Material(Layer)%GlassSpectralDataPtr > 0) THEN
OpticalDataType = 'Spectral'
SpectralDataName = SpectralData(Material(Layer)%GlassSpectralDataPtr)%Name
ENDIF
Write(OutputFileInits,707) TRIM(Material(Layer)%Name),TRIM(OpticalDataType), Trim(SpectralDataName), &
trim(RoundSigDigits(Material(Layer)%Thickness,5)), &
trim(RoundSigDigits(Material(Layer)%Trans,5)), &
trim(RoundSigDigits(Material(Layer)%ReflectSolBeamFront,5)), &
trim(RoundSigDigits(Material(Layer)%ReflectSolBeamBack,5)), &
trim(RoundSigDigits(Material(Layer)%TransVis,5)), &
trim(RoundSigDigits(Material(Layer)%ReflectVisBeamFront,5)), &
trim(RoundSigDigits(Material(Layer)%ReflectVisBeamBack,5)), &
trim(RoundSigDigits(Material(Layer)%TransThermal,5)), &
trim(RoundSigDigits(Material(Layer)%AbsorpThermalFront,5)), &
trim(RoundSigDigits(Material(Layer)%AbsorpThermalBack,5)), &
trim(RoundSigDigits(Material(Layer)%Conductivity,5)), &
trim(RoundSigDigits(Material(Layer)%GlassTransDirtFactor,5)), &
trim(SolarDiffusing)
CASE (GlassEquivalentLayer)
OpticalDataType = 'SpectralAverage'
SpectralDataName = ' '
Write(OutputFileInits,708) TRIM(Material(Layer)%Name), &
trim(OpticalDataType), trim(SpectralDataName), &
trim(RoundSigDigits(Material(Layer)%TausFrontBeamBeam,5)), &
trim(RoundSigDigits(Material(Layer)%TausBackBeamBeam,5)), &
trim(RoundSigDigits(Material(Layer)%ReflFrontBeamBeam,5)), &
trim(RoundSigDigits(Material(Layer)%ReflBackBeamBeam,5)), &
trim(RoundSigDigits(Material(Layer)%TausFrontBeamDiff,5)), &
trim(RoundSigDigits(Material(Layer)%TausBackBeamDiff,5)), &
trim(RoundSigDigits(Material(Layer)%ReflFrontBeamDiff,5)), &
trim(RoundSigDigits(Material(Layer)%ReflBackBeamDiff,5)), &
trim(RoundSigDigits(Material(Layer)%TausDiffDiff,5)), &
trim(RoundSigDigits(Material(Layer)%ReflFrontDiffDiff,5)), &
trim(RoundSigDigits(Material(Layer)%ReflBackDiffDiff,5)), &
trim(RoundSigDigits(Material(Layer)%TausThermal,5)), &
trim(RoundSigDigits(Material(Layer)%EmissThermalFront,5)), &
trim(RoundSigDigits(Material(Layer)%EmissThermalBack,5))
CASE (ShadeEquivalentLayer)
Write(OutputFileInits,709) TRIM(Material(Layer)%Name), &
trim(RoundSigDigits(Material(Layer)%TausFrontBeamBeam,4)), &
trim(RoundSigDigits(Material(Layer)%TausBackBeamBeam,4)), &
trim(RoundSigDigits(Material(Layer)%TausFrontBeamDiff,4)), &
trim(RoundSigDigits(Material(Layer)%TausBackBeamDiff,4)), &
trim(RoundSigDigits(Material(Layer)%ReflFrontBeamDiff,4)), &
trim(RoundSigDigits(Material(Layer)%ReflBackBeamDiff,4)), &
trim(RoundSigDigits(Material(Layer)%TausThermal,4)), &
trim(RoundSigDigits(Material(Layer)%EmissThermalFront,4)), &
trim(RoundSigDigits(Material(Layer)%EmissThermalBack,4))
CASE (DrapeEquivalentLayer)
Write(OutputFileInits,710) TRIM(Material(Layer)%Name), &
trim(RoundSigDigits(Material(Layer)%TausFrontBeamBeam,4)), &
trim(RoundSigDigits(Material(Layer)%TausFrontBeamDiff,4)), &
trim(RoundSigDigits(Material(Layer)%TausBackBeamDiff,4)), &
trim(RoundSigDigits(Material(Layer)%ReflFrontBeamDiff,4)), &
trim(RoundSigDigits(Material(Layer)%ReflBackBeamDiff,4)), &
trim(RoundSigDigits(Material(Layer)%TausThermal,4)), &
trim(RoundSigDigits(Material(Layer)%EmissThermalFront,4)), &
trim(RoundSigDigits(Material(Layer)%EmissThermalBack,4)), &
trim(RoundSigDigits(Material(Layer)%PleatedDrapeWidth,5)), &
trim(RoundSigDigits(Material(Layer)%PleatedDrapeLength,5))
CASE (ScreenEquivalentLayer)
Write(OutputFileInits,711) TRIM(Material(Layer)%Name), &
trim(RoundSigDigits(Material(Layer)%TausFrontBeamBeam,4)), &
trim(RoundSigDigits(Material(Layer)%TausFrontBeamDiff,4)), &
trim(RoundSigDigits(Material(Layer)%TausBackBeamDiff,4)), &
trim(RoundSigDigits(Material(Layer)%ReflFrontBeamDiff,4)), &
trim(RoundSigDigits(Material(Layer)%ReflBackBeamDiff,4)), &
trim(RoundSigDigits(Material(Layer)%TausThermal,4)), &
trim(RoundSigDigits(Material(Layer)%EmissThermalFront,4)), &
trim(RoundSigDigits(Material(Layer)%EmissThermalBack,4)), &
trim(RoundSigDigits(Material(Layer)%ScreenWireSpacing,5)), &
trim(RoundSigDigits(Material(Layer)%ScreenWireDiameter,5))
CASE (BlindEquivalentLayer)
SlateOrientation = 'Horizontal'
IF (Material(Layer)%SlatOrientation == Vertical) THEN
SlateOrientation = 'Vertical'
ENDIF
Write(OutputFileInits,712) TRIM(Material(Layer)%Name), &
trim(SlateOrientation), &
trim(RoundSigDigits(Material(Layer)%SlatWidth,5)), &
trim(RoundSigDigits(Material(Layer)%SlatSeparation,5)), &
trim(RoundSigDigits(Material(Layer)%SlatCrown,5)), &
trim(RoundSigDigits(Material(Layer)%SlatAngle,5)), &
trim(RoundSigDigits(Material(Layer)%TausFrontBeamDiff,5)), &
trim(RoundSigDigits(Material(Layer)%TausBackBeamDiff,5)), &
trim(RoundSigDigits(Material(Layer)%ReflFrontBeamDiff,5)), &
trim(RoundSigDigits(Material(Layer)%ReflBackBeamDiff,5)), &
trim(RoundSigDigits(Material(Layer)%TausDiffDiff,5)), &
trim(RoundSigDigits(Material(Layer)%ReflFrontDiffDiff,5)), &
trim(RoundSigDigits(Material(Layer)%ReflBackDiffDiff,5)), &
trim(RoundSigDigits(Material(Layer)%TausThermal,5)), &
trim(RoundSigDigits(Material(Layer)%EmissThermalFront,5)), &
trim(RoundSigDigits(Material(Layer)%EmissThermalBack,5))
CASE (GapEquivalentLayer)
GapVentType = 'Sealed'
IF (Material(Layer)%GapVentType == 2) THEN
GapVentType = 'VentedIndoor'
ELSEIF(Material(Layer)%GapVentType == 3) THEN
GapVentType = 'VentedOutdoor'
ENDIF
Write(OutputFileInits,713) TRIM(Material(Layer)%Name), &
trim(GasTypeName(Material(Layer)%GasType(1))), &
trim(RoundSigDigits(Material(Layer)%Thickness,3)), &
trim(GapVentType)
END SELECT
ENDDO
ENDIF
ENDDO
ELSEIF (HasWindows) THEN
DO ThisNum=1,TotConstructs
IF (.not. Construct(ThisNum)%TypeIsWindow) CYCLE
IF (Construct(ThisNum)%WindowTypeEQL) CYCLE ! skip if equivalent layer window
! Calculate for ASHRAE winter and summer conditions: (1)nominal center-of-glass conductance,
! (2) solar heat gain coefficient (SHGC), including inside and outside air films,
! (3) solar transmittance at normal incidence, and (4) visible transmittance at normal incidence.
CALL CalcNominalWindowCond(ThisNum,1,NominalConductanceWinter,SHGCWinter,TransSolNorm,TransVisNorm,ErrFlag)
IF(ErrFlag == 1 .OR. ErrFlag == 2) CYCLE
NominalU(ThisNum)=NominalConductanceWinter
ENDDO
ENDIF
!IF (HasComplexWindows) THEN
!DO ThisNum=1,TotSurfaces
! SurfConstr = Surface(ThisNum)%Construction
! IF (SurfConstr /= 0) THEN
! IF (Construct(SurfConstr)%WindowTypeBSDF) THEN
! Write(OutputFileInits,'(A)') '! <WindowConstructionComplex>,Construction Name,Index,#Layers,'// &
! 'U-factor {W/m2-K},SHGC'
! CALL CalcComplexWindowThermal(ThisNum, TempVar, TempVar, TempVar, TempVar, winterCondition)
! CALL CalcComplexWindowThermal(ThisNum, TempVar, TempVar, TempVar, TempVar, summerCondition)
!
! Write(OutputFileInits,800) trim(Construct(SurfConstr)%Name), trim(RoundSigDigits(SurfConstr)), &
! trim(RoundSigDigits(Construct(SurfConstr)%TotSolidLayers)), &
! trim(RoundSigDigits(NominalU(SurfConstr),3)), &
! trim(RoundSigDigits(Construct(SurfConstr)%SummerSHGC,3))
! END IF
! END IF
!ENDDO
800 FORMAT(' WindowConstruction:Complex',5(',',A))
!END IF
RETURN
END SUBROUTINE ReportGlass