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.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | PVNum |
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 ReportPV(PVnum)
! SUBROUTINE INFORMATION:
! AUTHOR B. Griffith
! DATE WRITTEN Jan. 2004
! MODIFIED B. Griffith, Aug. 2008
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! collect statements that assign to variables tied to output variables
! METHODOLOGY EMPLOYED:
! <description>
! REFERENCES:
! na
! USE STATEMENTS:
! na
USE DataHeatBalance, ONLY: zone
USE DataSurfaces , ONLY: surface
USE DataHeatBalFanSys, only: QPVSysSource
USE TranspiredCollector, ONLY: SetUTSCQdotSource
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER, INTENT(IN) :: PVNum
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: thisZone ! working index for zones
PVArray(PVNum)%Report%DCEnergy = PVArray(PVNum)%Report%DCPower*(TimeStepSys*SecInHour)
! add check for multiplier. if surface is attached to a zone that is on a multiplier
! then PV production should be multiplied out as well
IF (surface(PVArray(PVNum)%SurfacePtr)%Zone /= 0) then ! might need to apply multiplier
thisZone = surface(PVArray(PVNum)%SurfacePtr)%Zone
PVArray(PVNum)%Report%DCEnergy = PVArray(PVNum)%Report%DCEnergy &
* (Zone(thisZone)%Multiplier * Zone(thisZone)%ListMultiplier)
PVArray(PVNum)%Report%DCPower = PVArray(PVNum)%Report%DCPower &
* (Zone(thisZone)%Multiplier * Zone(thisZone)%ListMultiplier)
ENDIF
SELECT CASE (PVArray(PVNum)%CellIntegrationMode)
! SurfaceSink is not multiplied...
CASE (iSurfaceOutsideFaceCellIntegration)
QPVSysSource(PVArray(PVNum)%SurfacePtr) = -1.0D0 * PVArray(PVNum)%SurfaceSink
CASE (iTranspiredCollectorCellIntegration)
CALL SetUTSCQdotSource(PVArray(PVNum)%UTSCPtr, -1.0D0 * PVArray(PVNum)%SurfaceSink )
CASE ( iExteriorVentedCavityCellIntegration)
CALL SetVentedModuleQdotSource(PVArray(PVNum)%ExtVentCavPtr, -1.0D0 * PVArray(PVNum)%SurfaceSink )
CASE (iPVTSolarCollectorCellIntegration)
! CALL SetPVTQdotSource(PVArray(PVNum)%ExtVentCavPtr, -1 * PVArray(PVNum)%SurfaceSink )
END SELECT
RETURN
END SUBROUTINE ReportPV