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 ReportDetailedIceStorage
! SUBROUTINE INFORMATION:
! AUTHOR Rick Strand
! DATE WRITTEN February 2006
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine reports all of the output necessary for the model.
! METHODOLOGY EMPLOYED:
! Just take what has already been calculated or calculate the appropriate
! output value based on simulation data.
! REFERENCES:
! na
! USE STATEMENTS:
! na
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
REAL(r64), PARAMETER :: LowLoadLimit = 0.1d0 ! Load below which device can be assumed off [W]
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
! na
! FLOW:
! Determine what is going on based on load and the inlet and outlet temperature comparison
IF (DetIceStor(IceNum)%CompLoad < LowLoadLimit) THEN ! No load condition
DetIceStor(IceNum)%IceFracChange = 0.0d0
DetIceStor(IceNum)%DischargingRate = 0.0d0
DetIceStor(IceNum)%DischargingEnergy = 0.0d0
DetIceStor(IceNum)%ChargingRate = 0.0d0
DetIceStor(IceNum)%ChargingEnergy = 0.0d0
DetIceStor(IceNum)%ParasiticElecRate = 0.0d0
DetIceStor(IceNum)%ParasiticElecEnergy = 0.0d0
ELSE ! There is a load, determine whether we are charging or discharging based on inlet and outlet temperature
IF (DetIceStor(IceNum)%InletTemp < DetIceStor(IceNum)%OutletTemp) THEN ! Charging Mode
DetIceStor(IceNum)%ChargingRate = DetIceStor(IceNum)%CompLoad
DetIceStor(IceNum)%ChargingEnergy = DetIceStor(IceNum)%CompLoad * (TimeStepSys*SecInHour)
DetIceStor(IceNum)%IceFracChange = DetIceStor(IceNum)%CompLoad * TimeStepSys / DetIceStor(IceNum)%NomCapacity
DetIceStor(IceNum)%DischargingRate = 0.0d0
DetIceStor(IceNum)%DischargingEnergy = 0.0d0
DetIceStor(IceNum)%ParasiticElecRate = DetIceStor(IceNum)%ChargeParaElecLoad * DetIceStor(IceNum)%CompLoad
DetIceStor(IceNum)%ParasiticElecEnergy = DetIceStor(IceNum)%ChargeParaElecLoad * DetIceStor(IceNum)%ChargingEnergy
ELSE ! (DetIceStor(IceNum)%InletTemp < DetIceStor(IceNum)%OutletTemp) Discharging Mode
DetIceStor(IceNum)%DischargingRate = DetIceStor(IceNum)%CompLoad
DetIceStor(IceNum)%DischargingEnergy = DetIceStor(IceNum)%CompLoad * (TimeStepSys*SecInHour)
DetIceStor(IceNum)%IceFracChange =-DetIceStor(IceNum)%CompLoad * TimeStepSys / DetIceStor(IceNum)%NomCapacity
DetIceStor(IceNum)%ChargingRate = 0.0d0
DetIceStor(IceNum)%ChargingEnergy = 0.0d0
DetIceStor(IceNum)%ParasiticElecRate = DetIceStor(IceNum)%DischargeParaElecLoad * DetIceStor(IceNum)%CompLoad
DetIceStor(IceNum)%ParasiticElecEnergy = DetIceStor(IceNum)%DischargeParaElecLoad * DetIceStor(IceNum)%ChargingEnergy
END IF
END IF
RETURN
END SUBROUTINE ReportDetailedIceStorage