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 | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | SystemType | |||
character(len=*), | intent(in) | :: | SystemName | |||
real(kind=r64), | intent(inout) | :: | BranchFlow | |||
real(kind=r64), | intent(in) | :: | BranchFanFlow | |||
logical, | intent(inout) | :: | ErrFound |
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 CheckSystemBranchFlow(SystemType,SystemName,BranchFlow,BranchFanFlow,ErrFound)
! SUBROUTINE INFORMATION:
! AUTHOR Richard Raustad, FSEC
! DATE WRITTEN August 2013
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine is used to check the branch flow rate with respect to system flow rate
! METHODOLOGY EMPLOYED:
! Obtains branch and branch fan flow rate.
!
! REFERENCES:
! na
! USE STATEMENTS:
USE DataSizing
USE DataHVACGlobals, ONLY: SmallAirVolFlow
USE General, ONLY: TrimSigDigits
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
CHARACTER(len=*), INTENT(IN) :: SystemType ! type of air loop equipment
CHARACTER(len=*), INTENT(IN) :: SystemName ! name of air loop equipment
REAL(r64),INTENT(INOUT) :: BranchFlow ! branch volumetric flow rate [m3/s]
REAL(r64), INTENT(IN) :: BranchFanFlow ! branch flow rate [m3/s]
LOGICAL, INTENT(INOUT) :: ErrFound ! logical error flag
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: BranchNum ! Index to branch on air loop
INTEGER :: SizeBranch ! size of branch list
LOGICAL :: OASysFlag ! TRUE when outdoor air system exists
CHARACTER(len=MaxNameLength) :: BranchName ! name of air loop branch
IF (GetBranchInputFlag) THEN
GetBranchInputFlag=.false.
CALL GetBranchInput
ENDIF
SizeBranch = SIZE(Branch)
BranchNum = GetAirBranchIndex(TRIM(SystemType),TRIM(SystemName))
BranchName = ' '
BranchFlow = 0.0d0
ErrFound = .FALSE.
OASysFlag = .FALSE.
IF(BranchNum .GT. 0 .AND. BranchNum .LE. SizeBranch)THEN
BranchFlow = Branch(BranchNum)%MaxFlowRate
BranchName = Branch(BranchNum)%Name
ELSE
ErrFound = .TRUE.
CALL ShowSevereError('CheckSystemBranchFlow: Branch index not found = '//TrimSigDigits(BranchNum,0))
CALL ShowContinueError('Branch search for system type and name = '//TRIM(SystemType)//' "'//TRIM(SystemName)//'"')
END IF
IF(BranchFanFlow .GT. 0.0d0 .AND. .NOT. ErrFound)THEN
IF(BranchFlow .NE. Autosize)THEN
CALL CheckBranchForOASys(TRIM(SystemType),TRIM(SystemName), OASysFlag, ErrFound)
IF(ABS(BranchFlow-BranchFanFlow) .GT. SmallAirVolFlow .AND. OASysFlag)THEN
CALL ShowWarningError('Branch maximum flow rate differs from system flow rate.')
CALL ShowContinueError('Branch = '//TRIM(BranchName)//' has volume flow rate = '// &
TRIM(TrimSigDigits(BranchFlow,6))//' m3/s.')
CALL ShowContinueError('System = '//TRIM(SystemType)//' "'//TRIM(SystemName)//'" has volume flow rate = '// &
TRIM(TrimSigDigits(BranchFanFlow,6))//' m3/s.')
CALL ShowContinueError('A branch flow rate that is different from the system flow rate can cause'// &
' discrepancies with outdoor air control.')
END IF
END IF
END IF
RETURN
END SUBROUTINE CheckSystemBranchFlow