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 InitSolarCalculations
! SUBROUTINE INFORMATION:
! AUTHOR George Walton
! DATE WRITTEN September 1977
! MODIFIED na
! RE-ENGINEERED Mar97, RKS, Initial EnergyPlus Version
! PURPOSE OF THIS SUBROUTINE:
! This routine controls the computation of the solar flux multipliers.
! METHODOLOGY EMPLOYED:
! All shadowing calculations have been grouped under this routine to
! allow segmentation separating it from the hourly loads calculation.
! REFERENCES:
! na
! USE STATEMENTS:
! na
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
LOGICAL,SAVE :: GetInputFlag=.true.
INTEGER, EXTERNAL :: GetNewUnitNumber
LOGICAL, SAVE :: firsttime=.true.
INTEGER :: write_stat
! FLOW:
#ifdef EP_Count_Calls
NumInitSolar_Calls=NumInitSolar_Calls+1
#endif
IF (BeginSimFlag) THEN
OutputFileShading=GetNewUnitNumber()
OPEN(OutputFileShading,FILE='eplusout.shd', Action='write',iostat=write_stat)
IF (write_stat /= 0) THEN
CALL ShowFatalError('InitSolarCalculations: Could not open file "eplustbl.shd" for output (write).')
ENDIF
IF (GetInputFlag) THEN
CALL GetShadowingInput
GetInputFlag=.false.
MAXHCV=MAX(12,MaxVerticesPerSurface+1)
ENDIF
if (firsttime) CALL DisplayString('Allocate Solar Module Arrays')
CALL AllocateModuleArrays
IF (SolarDistribution /= FullInteriorExterior) THEN
if (firsttime) CALL DisplayString('Computing Interior Solar Absorption Factors')
CALL ComputeIntSolarAbsorpFactors
ENDIF
if (firsttime) CALL DisplayString('Determining Shadowing Combinations')
CALL DetermineShadowingCombinations
if (firsttime) CALL DisplayString('Computing Window Shade Absorption Factors')
CALL ComputeWinShadeAbsorpFactors
IF(CalcSolRefl) THEN
CALL DisplayString('Initializing Solar Reflection Factors')
CALL InitSolReflRecSurf
ENDIF
if (firsttime) CALL DisplayString('Proceeding with Initializing Solar Calculations')
END IF
IF (BeginEnvrnFlag) THEN
CTHETA=0.0d0
SAREA=0.0d0
SurfSunLitArea=0.0d0
SurfSunLitFrac=0.0d0
SunlitFracHR=0.0d0
SunlitFrac=0.0d0
SunlitFracWithoutReveal=0.0d0
BackSurfaces = 0
OverlapAreas = 0.0d0
CosIncAngHR=0.0d0
CosIncAng=0.0d0
AnisoSkyMult = 1.0d0 !For isotropic sky; recalculated in AnisoSkyViewFactors if anisotropic radiance
! WithShdgIsoSky=0.0
! WoShdgIsoSky=0.0
! WithShdgHoriz=0.0
! WoShdgHoriz=0.0
! DifShdgRatioIsoSky=0.0
! DifShdgRatioHoriz=0.0
MultIsoSky=0.0d0
MultCircumSolar=0.0d0
MultHorizonZenith=0.0d0
WinTransSolar=0.0d0
WinBmSolar=0.0d0
WinBmBmSolar=0.0d0
WinBmDifSolar=0.0d0
WinDifSolar=0.0d0
WinDirSolTransAtIncAngle=0.0d0
WinHeatGain=0.0d0
WinHeatGainRep=0.0d0
WinHeatLossRep=0.0d0
WinGainConvGlazToZoneRep = 0.0D0
WinGainIRGlazToZoneRep = 0.0D0
WinLossSWZoneToOutWinRep = 0.0D0
WinGainFrameDividerToZoneRep = 0.0D0
WinGainConvGlazShadGapToZoneRep = 0.0D0
WinGainConvShadeToZoneRep = 0.0D0
OtherConvGainInsideFaceToZoneRep= 0.0D0
WinGainIRShadeToZoneRep = 0.0D0
WinGapConvHtFlowRep=0.0d0
WinShadingAbsorbedSolar=0.0d0
WinSysSolTransmittance=0.0d0
WinSysSolReflectance=0.0d0
WinSysSolAbsorptance=0.0d0
InsideGlassCondensationFlag=0
InsideFrameCondensationFlag=0
InsideDividerCondensationFlag=0
ZoneTransSolar=0.0d0
ZoneBmSolFrExtWinsRep = 0.0d0
ZoneBmSolFrIntWinsRep = 0.0d0
InitialZoneDifSolReflW = 0.0d0
ZoneDifSolFrExtWinsRep = 0.0d0
ZoneDifSolFrIntWinsRep = 0.0d0
ZoneWinHeatGain=0.0d0
ZoneWinHeatGainRep=0.0d0
ZoneWinHeatLossRep=0.0d0
ZoneOpaqSurfInsFaceCond=0.0d0
ZoneOpaqSurfInsFaceCondGainRep=0.0d0
ZoneOpaqSurfInsFaceCondLossRep=0.0d0
QRadSWOutIncident=0.0d0
QRadSWOutIncidentBeam=0.0d0
BmIncInsSurfIntensRep=0.0d0
BmIncInsSurfAmountRep=0.0d0
! DifIncInsSurfIntensRep=0.0
! DifIncInsSurfAmountRep=0.0
IntBmIncInsSurfIntensRep=0.0d0
IntBmIncInsSurfAmountRep=0.0d0
! IntDifIncInsSurfIntensRep=0.0
! IntDifIncInsSurfAmountRep=0.0
QRadSWOutIncidentSkyDiffuse=0.0d0
QRadSWOutIncidentGndDiffuse=0.0d0
QRadSWOutIncBmToDiffReflGnd=0.0d0
QRadSWOutIncSkyDiffReflGnd=0.0d0
QRadSWOutIncBmToBmReflObs=0.0d0
QRadSWOutIncBmToDiffReflObs=0.0d0
QRadSWOutIncSkyDiffReflObs=0.0d0
CosIncidenceAngle=0.0d0
QRadSWwinAbsTot=0.0d0
SWwinAbsTotalReport = 0.0d0
InitialDifSolInAbsReport = 0.0d0
InitialDifSolInTransReport = 0.0d0
SWInAbsTotalReport = 0.0d0
WindowRevealStatus=0
!energy
WinTransSolarEnergy=0.0d0
WinBmSolarEnergy=0.0d0
WinBmBmSolarEnergy=0.0d0
WinBmDifSolarEnergy=0.0d0
WinDifSolarEnergy=0.0d0
WinHeatGainRepEnergy=0.0d0
WinHeatLossRepEnergy=0.0d0
WinGapConvHtFlowRepEnergy=0.0d0
WinShadingAbsorbedSolarEnergy=0.0d0
ZoneTransSolarEnergy = 0.0d0
ZoneBmSolFrExtWinsRepEnergy = 0.0d0
ZoneBmSolFrIntWinsRepEnergy = 0.0d0
ZoneDifSolFrExtWinsRepEnergy = 0.0d0
ZoneDifSolFrIntWinsRepEnergy = 0.0d0
ZoneWinHeatGainRepEnergy=0.0d0
ZoneWinHeatLossRepEnergy=0.0d0
ZnOpqSurfInsFaceCondGnRepEnrg=0.0d0
ZnOpqSurfInsFaceCondLsRepEnrg=0.0d0
BmIncInsSurfAmountRepEnergy=0.0d0
! DifIncInsSurfAmountRepEnergy=0.0
IntBmIncInsSurfAmountRepEnergy=0.0d0
! IntDifIncInsSurfAmountRepEnergy=0.0
QRadSWwinAbsTotEnergy=0.0d0
ENDIF
firsttime=.false.
RETURN ! Normal subroutine end
END SUBROUTINE InitSolarCalculations