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(inout) | :: | PVTnum | |||
logical, | intent(in) | :: | FirstHVACIteration | |||
integer, | intent(in) | :: | CalledFrom | |||
character(len=*), | intent(in), | optional | :: | PVTName | ||
logical, | intent(in), | optional | :: | InitLoopEquip |
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 SimPVTcollectors(PVTNum, FirstHVACIteration, CalledFrom, PVTName, InitLoopEquip )
! SUBROUTINE INFORMATION:
! AUTHOR <author>
! DATE WRITTEN <date_written>
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! <description>
! METHODOLOGY EMPLOYED:
! <description>
! REFERENCES:
! na
! USE STATEMENTS:
USE InputProcessor, ONLY:FindItemInList
USE General, ONLY: TrimSigDigits
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER, INTENT(INOUT) :: PVTnum ! index to PVT array.
LOGICAL, INTENT(IN) :: FirstHVACIteration
INTEGER, INTENT(IN) :: CalledFrom
CHARACTER(len=*), OPTIONAL, INTENT (IN) :: PVTName
LOGICAL, OPTIONAL, INTENT(IN) :: InitLoopEquip
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
LOGICAL,SAVE :: GetInputFlag = .true. ! First time, input is "gotten"
IF (GetInputFlag) THEN
CALL GetPVTcollectorsInput
GetInputFlag=.false.
ENDIF
IF (PRESENT(PVTName)) THEN
IF ( PVTNum == 0) THEN
PVTnum = FindItemInList(PVTName,PVT%Name,NumPVT)
IF (PVTnum == 0) THEN
CALL ShowFatalError('SimPVTcollectors: Unit not found='//TRIM(PVTName))
ENDIF
ELSE
IF (PVTnum > NumPVT .OR. PVTnum < 1 ) THEN
CALL ShowFatalError('SimPVTcollectors: Invalid PVT index passed = '// &
TRIM(TrimSigDigits(PVTnum))// &
', Number of PVT units='//TRIM(TrimSigDigits(NumPVT))// &
', Entered Unit name='//TRIM(PVTName))
ENDIF
IF (CheckEquipName(PVTnum)) THEN
IF (PVTName /= PVT(PVTnum)%Name) THEN
CALL ShowFatalError('SimPVTcollectors: Invalid PVT index passed = '// &
TRIM(TrimSigDigits(PVTnum))// &
', Unit name='//TRIM(PVTName)// &
', stored name for that index='//TRIM(PVT(PVTnum)%Name))
ENDIF
CheckEquipName(PVTnum)=.false.
ENDIF
ENDIF
ELSE
IF (PVTnum > NumPVT .OR. PVTnum < 1 ) THEN
CALL ShowFatalError('SimPVTcollectors: Invalid PVT index passed = '// &
TRIM(TrimSigDigits(PVTnum))// &
', Number of PVT units='//TRIM(TrimSigDigits(NumPVT))// &
', Entered Unit name='//TRIM(PVTName))
ENDIF
ENDIF ! compName present
IF (PRESENT(InitLoopEquip)) THEN
IF (InitLoopEquip) THEN
CALL InitPVTcollectors( PVTnum, FirstHVACIteration )
RETURN
ENDIF
ENDIF
!check where called from and what type of collector this is, return if not right for calling order for speed
IF ((PVT(PVTnum)%WorkingFluidType == AirWorkingFluid) .AND. (CalledFrom == CalledFromPlantLoopEquipMgr) ) RETURN
IF ((PVT(PVTnum)%WorkingFluidType == LiquidWorkingFluid) .AND. (CalledFrom == CalledFromOutsideAirSystem) ) RETURN
CALL InitPVTcollectors( PVTnum, FirstHVACIteration )
CALL ControlPVTcollector( PVTnum )
CALL CalcPVTcollectors( PVTnum )
CALL UpdatePVTcollectors( PVTnum )
RETURN
END SUBROUTINE SimPVTcollectors