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.
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 ReportHeatBalance ! Heat Balance Reporting Manager
! SUBROUTINE INFORMATION:
! AUTHOR Rick Strand
! DATE WRITTEN July 1997
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine is the main driver for reporting within the heat
! balance.
! METHODOLOGY EMPLOYED:
! Uses the status flags to trigger record keeping events.
! REFERENCES:
! na
! USE STATEMENTS:
USE OutputReportTabular, ONLY: UpdateTabularReports
USE ScheduleManager, ONLY: ReportScheduleValues
USE NodeInputManager, ONLY: CalcMoreNodeInfo
USE EconomicTariff, ONLY: UpdateUtilityBills !added for computing annual utility costs
USE DataSystemVariables, ONLY: ReportDuringWarmup, UpdateDataDuringWarmupExternalInterface ! added for FMI
USE DataReportingFlags
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
! na
! SUBROUTINE PARAMETER DEFINITIONS:
CHARACTER(len=*), PARAMETER :: EndOfHeaderFormat = "('End of Data Dictionary')" ! End of data dictionary marker
CHARACTER(len=*), PARAMETER :: EnvironmentStampFormat = "(a,',',a,3(',',f7.2),',',f7.2)" ! Format descriptor for environ stamp
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
! LOGICAL, SAVE :: PrintEnvrnStamp=.false.
! FLOW:
! Time step level reporting:
CALL ReportScheduleValues
IF (.NOT. WarmupFlag .AND. DoOutputReporting) THEN
CALL CalcMoreNodeInfo
CALL UpdateDataandReport(ZoneTSReporting)
CALL UpdateTabularReports(ZoneTSReporting)
CALL UpdateUtilityBills
ELSEIF (.not. KickOffSimulation .and. DoOutputReporting .and. ReportDuringWarmup) THEN
IF (BeginDayFlag .and. .not. PrintEnvrnStampWarmupPrinted) THEN
PrintEnvrnStampWarmup=.true.
PrintEnvrnStampWarmupPrinted=.true.
ENDIF
IF (.not. BeginDayFlag) PrintEnvrnStampWarmupPrinted=.false.
IF (PrintEnvrnStampWarmup) THEN
IF (PrintEndDataDictionary .AND. DoOutputReporting) THEN
WRITE (OutputFileStandard,EndOfHeaderFormat)
WRITE (OutputFileMeters,EndOfHeaderFormat)
PrintEndDataDictionary = .FALSE.
ENDIF
IF (DoOutputReporting) THEN
WRITE (OutputFileStandard,EnvironmentStampFormat) '1', &
'Warmup {'//trim(cWarmupDay)//'} '//Trim(EnvironmentName),Latitude,Longitude,TimeZoneNumber,Elevation
WRITE (OutputFileMeters,EnvironmentStampFormat) '1', &
'Warmup {'//trim(cWarmupDay)//'} '//Trim(EnvironmentName),Latitude,Longitude,TimeZoneNumber,Elevation
PrintEnvrnStampWarmup=.FALSE.
END IF
END IF
CALL CalcMoreNodeInfo
CALL UpdateDataandReport(ZoneTSReporting)
ELSEIF (UpdateDataDuringWarmupExternalInterface) THEN ! added for FMI
CALL UpdateDataandReport(ZoneTSReporting)
END IF
! There is no hourly reporting in the heat balance.
! There is no daily reporting in the heat balance.
! There is no simulation level record keeping in the heat balance.
RETURN
END SUBROUTINE ReportHeatBalance