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 SumZoneImpacts
          ! SUBROUTINE INFORMATION:
          !       AUTHOR         Therese Stovall, ORNL
          !       DATE WRITTEN   Spring 2010
          !       RE-ENGINEERED  na
          ! PURPOSE OF THIS SUBROUTINE:
          ! Find the total impact of all refrigeration systems on each zone.
          ! METHODOLOGY EMPLOYED:
          ! Calculate the energy from refrigerated case credits arising from interaction between the zone and:
          !   refrigerated cases and walk-ins
          !   heat rejection from zone-located compressor-racks and zone-located air-cooled condensers
          !   heat absorbed by suction piping, secondary loop distribution piping, and
          !   secondary receiver shells
          ! REFERENCES:
          ! USE STATEMENTS:
  IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
          ! SUBROUTINE ARGUMENT DEFINITIONS:
          ! SUBROUTINE PARAMETER DEFINITIONS:
          ! INTERFACE BLOCK SPECIFICATIONS:
          ! na
          ! DERIVED TYPE DEFINITIONS:
          ! na
          ! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
  INTEGER     :: ZoneNum = 0         ! used calculating total refrigeration interactions for zone
  IF(UseSysTimeStep) THEN  ! air chillers
    DO ZoneNum = 1,NumOfZones
        CoilSysCredit(ZoneNum)%ReportH20RemovedKgPerS_FromZoneRate = &
               - CoilSysCredit(ZoneNum)%LatKgPerS_ToZoneRate
        CoilSysCredit(ZoneNum)%ReportLatCreditToZoneRate = &
              - CoilSysCredit(ZoneNum)%LatCreditToZoneRate
        CoilSysCredit(ZoneNum)%ReportLatCreditToZoneEnergy = &
             - CoilSysCredit(ZoneNum)%LatCreditToZoneEnergy
       ! Sensible rate can be positive or negative, split into separate output variables and
       !   always report positive value
       IF(CoilSysCredit(ZoneNum)%SenCreditToZoneRate <= 0.0d0) THEN
         CoilSysCredit(ZoneNum)%ReportSenCoolingToZoneRate = &
              - CoilSysCredit(ZoneNum)%SenCreditToZoneRate
         CoilSysCredit(ZoneNum)%ReportSenCoolingToZoneEnergy = &
               - CoilSysCredit(ZoneNum)%SenCreditToZoneEnergy
         CoilSysCredit(ZoneNum)%ReportHeatingToZoneRate = 0.0d0
         CoilSysCredit(ZoneNum)%ReportHeatingToZoneEnergy = 0.0d0
       ELSE
         CoilSysCredit(ZoneNum)%ReportSenCoolingToZoneRate = 0.0d0
         CoilSysCredit(ZoneNum)%ReportSenCoolingToZoneEnergy =0.0d0
         CoilSysCredit(ZoneNum)%ReportHeatingToZoneRate = &
               CoilSysCredit(ZoneNum)%SenCreditToZoneRate
         CoilSysCredit(ZoneNum)%ReportHeatingToZoneEnergy = &
               - CoilSysCredit(ZoneNum)%SenCreditToZoneEnergy
       END IF
        CoilSysCredit(ZoneNum)%ReportTotCoolingToZoneRate = &
              CoilSysCredit(ZoneNum)%ReportLatCreditToZoneRate + &
              CoilSysCredit(ZoneNum)%ReportSenCoolingToZoneRate
        CoilSysCredit(ZoneNum)%ReportTotCoolingToZoneEnergy = &
              CoilSysCredit(ZoneNum)%ReportLatCreditToZoneEnergy + &
              CoilSysCredit(ZoneNum)%ReportSenCoolingToZoneEnergy
    END DO
  END IF !UseSysTimeStep signals run for air chillers
  !Can arrive here when load call to refrigeration looks for cases/walkin systems and usetimestep is .false.
  IF((.NOT. UseSysTimeStep).AND.((NumSimulationCases > 0).OR.( NumSimulationWalkIns > 0)))THEN
    DO ZoneNum = 1,NumOfZones
       CaseWIZoneReport(ZoneNum)%SenCaseCreditToZoneEnergy = &
                  RefrigCaseCredit(ZoneNum)%SenCaseCreditToZone * &
                  TimeStepZone * SecInHour
       ! Latent always negative
       CaseWIZoneReport(ZoneNum)%LatCoolingToZoneRate   = &
                  - RefrigCaseCredit(ZoneNum)%LatCaseCreditToZone
       CaseWIZoneReport(ZoneNum)%LatCoolingToZoneEnergy = &
                  CaseWIZoneReport(ZoneNum)%LatCoolingToZoneRate * &
                  TimeStepZone * SecInHour
       ! Sensible rate can be positive or negative, split into separate output variables and
       !   always report positive value
       IF(RefrigCaseCredit(ZoneNum)%SenCaseCreditToZone <= 0.0d0) THEN
         CaseWIZoneReport(ZoneNum)%SenCoolingToZoneRate = &
                  - RefrigCaseCredit(ZoneNum)%SenCaseCreditToZone
         CaseWIZoneReport(ZoneNum)%SenCoolingToZoneEnergy  = &
                  - RefrigCaseCredit(ZoneNum)%SenCaseCreditToZone * &
                  TimeStepZone * SecInHour
         CaseWIZoneReport(ZoneNum)%HeatingToZoneRate   = 0.0d0
         CaseWIZoneReport(ZoneNum)%HeatingToZoneEnergy = 0.0d0
       ELSE
         CaseWIZoneReport(ZoneNum)%SenCoolingToZoneRate =  0.0d0
         CaseWIZoneReport(ZoneNum)%SenCoolingToZoneEnergy  =  0.0d0
         CaseWIZoneReport(ZoneNum)%HeatingToZoneRate   = &
                  RefrigCaseCredit(ZoneNum)%SenCaseCreditToZone
         CaseWIZoneReport(ZoneNum)%HeatingToZoneEnergy = &
                  RefrigCaseCredit(ZoneNum)%SenCaseCreditToZone * &
                  TimeStepZone * SecInHour
       END IF
       CaseWIZoneReport(ZoneNum)%TotCoolingToZoneRate   = &
                CaseWIZoneReport(ZoneNum)%SenCoolingToZoneRate + &
                CaseWIZoneReport(ZoneNum)%LatCoolingToZoneRate
       CaseWIZoneReport(ZoneNum)%TotCoolingToZoneEnergy = &
                CaseWIZoneReport(ZoneNum)%SenCoolingToZoneEnergy + &
                CaseWIZoneReport(ZoneNum)%LatCoolingToZoneEnergy
       CaseWIZoneReport(ZoneNum)%TotHtXferToZoneRate = &
                 RefrigCaseCredit(ZoneNum)%SenCaseCreditToZone + &
                 RefrigCaseCredit(ZoneNum)%LatCaseCreditToZone
       CaseWIZoneReport(ZoneNum)%TotHtXferToZoneEnergy = &
                 CaseWIZoneReport(ZoneNum)%TotHtXferToZoneRate* &
                 TimeStepZone * SecInHour
    END DO ! over zones for cases and walkins
  END IF
RETURN
END SUBROUTINE SumZoneImpacts