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) | :: | EvapCoolNum |
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 SizeEvapCooler(EvapCoolNum)
! SUBROUTINE INFORMATION:
! AUTHOR B. Griffith
! DATE WRITTEN March 2009
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Size calculations for Evap coolers
! currently just for secondary side of Research Special Indirect evap cooler
! METHODOLOGY EMPLOYED:
! <description>
! REFERENCES:
! na
! USE STATEMENTS:
USE DataSizing
USE DataAirSystems, ONLY: PrimaryAirSystem
USE InputProcessor, ONLY: SameString
USE ReportSizingManager, ONLY: ReportSizingOutput
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER, INTENT(IN) :: EvapCoolNum
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
LOGICAL :: CoolerOnOApath = .FALSE.
LOGICAL :: CoolerOnMainAirLoop = .FALSE.
!unused0509 INTEGER :: OAsysIndex = 0
INTEGER :: AirSysBranchLoop = 0
!unused0509 INTEGER :: OAsysLoop = 0
!unuse0509 INTEGER :: OAcompLoop = 0
INTEGER :: BranchComp = 0
!inits
CoolerOnOApath = .FALSE.
CoolerOnMainAirLoop = .FALSE.
IF (EvapCond(EvapCoolNum)%IndirectVolFlowRate == Autosize) Then
IF (CurSysNum > 0) THEN !central system
!where is this cooler located, is it on OA system or main loop?
! search for this component in Air loop branches.
DO AirSysBranchLoop =1, PrimaryAirSystem(CurSysNum)%NumBranches
DO BranchComp =1, PrimaryAirSystem(CurSysNum)%Branch(AirSysBranchLoop)%TotalComponents
IF (SameString(PrimaryAirSystem(CurSysNum)%Branch(AirSysBranchLoop)%comp(BranchComp)%Name, &
EvapCond(EvapCoolNum)%EvapCoolerName )) THEN
CoolerOnMainAirLoop = .TRUE.
ENDIF
ENDDO
ENDDO
! would like search for this componenent in some OutsideAirSys structure
! but thats not so easy becuase of circular USE with MixedAir.f90
! So assume if its not on main air path, its on OA path (for now)
IF (.NOT. CoolerOnMainAirLoop) CoolerOnOApath = .TRUE.
IF (CoolerOnMainAirLoop) THEN
EvapCond(EvapCoolNum)%IndirectVolFlowRate =FinalSysSizing(CurSysNum)%DesMainVolFlow
ELSEIF (CoolerOnOApath) THEN
EvapCond(EvapCoolNum)%IndirectVolFlowRate =MAX(FinalSysSizing(CurSysNum)%DesOutAirVolFlow, &
0.5D0*FinalSysSizing(CurSysNum)%DesMainVolFlow)
ENDIF
ELSE !zone equipment
! we have no zone equipment evap coolers yet
ENDIF
CALL ReportSizingOutput('EvaporativeCooler:Indirect:ResearchSpecial', EvapCond(EvapCoolNum)%EvapCoolerName, &
'Secondary Fan Flow Rate [m3/s]', EvapCond(EvapCoolNum)%IndirectVolFlowRate)
ENDIF
RETURN
END SUBROUTINE SizeEvapCooler