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) | :: | StandAloneERVNum | 
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 SizeStandAloneERV(StandAloneERVNum)
          ! SUBROUTINE INFORMATION:
          !       AUTHOR         Richard Raustad
          !       DATE WRITTEN   October 2007
          !       MODIFIED       August 2013 Daeho Kang, add component sizing table entries
          !       RE-ENGINEERED  na
          ! PURPOSE OF THIS SUBROUTINE:
          ! This subroutine is for sizing Stand Alone ERV Components for which flow rates have not been
          ! specified in the input.
          ! METHODOLOGY EMPLOYED:
          ! Obtains flow rates from the zone or system sizing arrays.
          ! REFERENCES:
          ! na
          ! USE STATEMENTS:
  USE DataSizing,        ONLY: AutoSize, CurZoneEqNum, FinalZoneSizing, AutoVsHardSizingThreshold
  USE DataHeatBalance,   ONLY: Zone, People, TotPeople
  USE DataZoneEquipment, ONLY: ZoneEquipConfig
  USE InputProcessor,    ONLY: SameString
  USE ScheduleManager,   ONLY: GetScheduleMaxValue
  USE HeatRecovery,      ONLY: SetHeatExchangerData
  USE Fans,              ONLY: SetFanData
  USE MixedAir,          ONLY: SetOAControllerData
  USE ReportSizingManager, ONLY: ReportSizingOutput
  USE General,             ONLY: RoundSigDigits
  IMPLICIT NONE    ! Enforce explicit typing of all variables in this routine
          ! SUBROUTINE ARGUMENT DEFINITIONS:
  INTEGER, INTENT(IN) :: StandAloneERVNum
          ! SUBROUTINE PARAMETER DEFINITIONS:
          ! na
          ! INTERFACE BLOCK SPECIFICATIONS
          ! na
          ! DERIVED TYPE DEFINITIONS
          ! na
          ! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
  INTEGER                      :: ZoneNum           ! Index to zone object
  INTEGER                      :: ActualZoneNum     ! Actual zone node number
  CHARACTER(len=MaxNameLength) :: ZoneName          ! Name of zone
  INTEGER                      :: PeopleNum         ! Index to people object
  REAL(r64)                    :: NumberOfPeople    ! Maximum number of people in zone
  INTEGER                      :: PeopleSchPtr      ! Pointer to people schedule
  REAL(r64)                    :: MaxPeopleSch      ! maximum people schedule value
  REAL(r64)                    :: FloorArea         ! Floor area of zone (m2)
  LOGICAL                      :: ErrorsFound       ! Used for warning messages
  LOGICAL                      :: IsAutosize        ! Indicator to autosize
  REAL(r64)                    :: SupplyAirVolFlowDes        ! Autosized supply air flow for reporting
  REAL(r64)                    :: SupplyAirVolFlowUser       ! Hardsized supply air flow for reporting
  REAL(r64)                    :: DesignSAFanVolFlowRateDes  ! Autosized supply air fan flow for reporting
  REAL(r64)                    :: DesignSAFanVolFlowRateUser ! Hardsized supply air fan flow for reporting
  REAL(r64)                    :: ExhaustAirVolFlowDes       ! Autosized exhaust air flow for reporting
  REAL(r64)                    :: ExhaustAirVolFlowUser      ! Hardsized exhaust air flow for reporting
  REAL(r64)                    :: DesignEAFanVolFlowRateDes  ! Autosized exhaust fan flow for reporting
  REAL(r64)                    :: DesignEAFanVolFlowRateUser ! Hardsized exhaust fan flow for reporting
  IsAutosize = .FALSE.
  SupplyAirVolFlowDes = 0.0d0
  SupplyAirVolFlowUser = 0.0d0
  DesignSAFanVolFlowRateDes = 0.0d0
  DesignSAFanVolFlowRateUser = 0.0d0
  ExhaustAirVolFlowDes = 0.0d0
  ExhaustAirVolFlowUser = 0.0d0
  DesignEAFanVolFlowRateDes = 0.0d0
  DesignEAFanVolFlowRateUser = 0.0d0
  IF (StandAloneERV(StandAloneERVNum)%SupplyAirVolFlow == AutoSize) THEN
    IsAutosize = .TRUE.
  END IF
  IF (CurZoneEqNum > 0) THEN
!      Sizing objects are not required for stand alone ERV
!      CALL CheckZoneSizing('ZoneHVAC:EnergyRecoveryVentilator',StandAloneERV(StandAloneERVNum)%Name)
    ZoneName = ZoneEquipConfig(CurZoneEqNum)%ZoneName
    ActualZoneNum = ZoneEquipConfig(CurZoneEqNum)%ActualZoneNum
    FloorArea = 0.0d0
    IF(SameString(ZoneName,Zone(CurZoneEqNum)%Name))THEN
      FloorArea = Zone(CurZoneEqNum)%FloorArea
    ELSE
      DO ZoneNum = 1, NumOfZones
        IF(.NOT. SameString(ZoneName,Zone(CurZoneEqNum)%Name))CYCLE
          FloorArea = Zone(ZoneNum)%FloorArea
        EXIT
      END DO
    END IF
    NumberOfPeople = 0.0d0
    MaxPeopleSch = 0.0d0
    DO PeopleNum = 1, TotPeople
      IF(ActualZoneNum .NE. People(PeopleNum)%ZonePtr)CYCLE
        NumberOfPeople = People(PeopleNum)%NumberOfPeople
        PeopleSchPtr = People(PeopleNum)%NumberOfPeoplePtr
        MaxPeopleSch = GetScheduleMaxValue(PeopleSchPtr)
      EXIT
    END DO
    SupplyAirVolFlowDes = &
                         FloorArea * StandAloneERV(StandAloneERVNum)%AirVolFlowPerFloorArea + &
                         MaxPeopleSch * NumberOfPeople * StandAloneERV(StandAloneERVNum)%AirVolFlowPerOccupant
    IF (SupplyAirVolFlowDes < SmallAirVolFlow) THEN
      SupplyAirVolFlowDes = 0.0d0
    END IF
    IF (IsAutosize) THEN
      StandAloneERV(StandAloneERVNum)%SupplyAirVolFlow = SupplyAirVolFlowDes
      CALL ReportSizingOutput('ZoneHVAC:EnergyRecoveryVentilator',StandAloneERV(StandAloneERVNum)%Name, &
                              'Design Size Supply Air Flow Rate [m3/s]',SupplyAirVolFlowDes)
      CALL SetHeatExchangerData(StandAloneERV(StandAloneERVNum)%HeatExchangerIndex,ErrorsFound, &
                                StandAloneERV(StandAloneERVNum)%HeatExchangerName, &
                                SupplyAirVolFlowDes)
      CALL ReportSizingOutput(cHXTypes(StandAloneERV(StandAloneERVNum)%HeatExchangerTypeNum), &
                              StandAloneERV(StandAloneERVNum)%HeatExchangerName, &
                             'Design Size Supply Air Flow Rate [m3/s]',SupplyAirVolFlowDes)
      CALL SetFanData(StandAloneERV(StandAloneERVNum)%SupplyAirFanIndex, ErrorsFound, &
                      StandAloneERV(StandAloneERVNum)%SupplyAirFanName, &
                      StandAloneERV(StandAloneERVNum)%SupplyAirVolFlow* &
                      StandAloneERV(StandAloneERVNum)%HighRHOAFlowRatio, &
                      0.0d0)
      StandAloneERV(StandAloneERVNum)%DesignSAFanVolFlowRate = SupplyAirVolFlowDes * &
                                                               StandAloneERV(StandAloneERVNum)%HighRHOAFlowRatio
      CALL ReportSizingOutput(TRIM(cFanTypes(StandAloneERV(StandAloneERVNum)%SupplyAirFanType_Num)), &
                              StandAloneERV(StandAloneERVNum)%SupplyAirFanName, &
                             'Design Size Maximum Supply Air Flow Rate [m3/s]', SupplyAirVolFlowDes * &
                              StandAloneERV(StandAloneERVNum)%HighRHOAFlowRatio)
!      ERV fan type must be Fan:OnOff, min flow rate is assumed 0. Do not report min flow sizing.
!      CALL ReportSizingOutput(TRIM(cFanTypes(StandAloneERV(StandAloneERVNum)%SupplyAirFanType_Num)), &
!                              StandAloneERV(StandAloneERVNum)%SupplyAirFanName, &
!                               'Min Flow Rate [m3/s]', 0.0)
      IF(StandAloneERV(StandAloneERVNum)%ControllerNameDefined)THEN
        CALL SetOAControllerData(StandAloneERV(StandAloneERVNum)%ControllerIndex,ErrorsFound, &
                               MaxOA=SupplyAirVolFlowDes * StandAloneERV(StandAloneERVNum)%HighRHOAFlowRatio)
!        MaxOA is not an input for CONTROLLER:STAND ALONE ERV, do not report sizing
!        CALL ReportSizingOutput('ZoneHVAC:EnergyRecoveryVentilator:Controller',StandAloneERV(StandAloneERVNum)%ControllerName,&
!                                'maximum outside air flow rate [m3/s]',StandAloneERV(StandAloneERVNum)%SupplyAirVolFlow)
        CALL SetOAControllerData(StandAloneERV(StandAloneERVNum)%ControllerIndex,ErrorsFound, MinOA=SupplyAirVolFlowDes)
!        MinOA is not an input for CONTROLLER:STAND ALONE ERV, do not report sizing
!        CALL ReportSizingOutput('ZoneHVAC:EnergyRecoveryVentilator:Controller',StandAloneERV(StandAloneERVNum)%ControllerName,&
!                                'minimum outside air flow rate [m3/s]',StandAloneERV(StandAloneERVNum)%SupplyAirVolFlow)
      END IF
    ELSE
      IF (StandAloneERV(StandAloneERVNum)%SupplyAirVolFlow > 0.0d0 .AND. SupplyAirVolFlowDes > 0.0d0) THEN
        SupplyAirVolFlowUser = StandAloneERV(StandAloneERVNum)%SupplyAirVolFlow
        IF (StandAloneERV(StandAloneERVNum)%SupplyAirVolFlow > 0.0d0) THEN
          CALL ReportSizingOutput('ZoneHVAC:EnergyRecoveryVentilator',StandAloneERV(StandAloneERVNum)%Name, &
                              'Design Size Supply Air Flow Rate [m3/s]',SupplyAirVolFlowDes, &
                              'User-Specified Supply Air Flow Rate [m3/s]',SupplyAirVolFlowUser)
          IF (DisplayExtraWarnings) THEN
            IF ((ABS(SupplyAirVolFlowDes - SupplyAirVolFlowUser)/SupplyAirVolFlowUser) > AutoVsHardSizingThreshold) THEN
              CALL ShowMessage('SizeStandAloneERV: Potential issue with equipment sizing for ZoneHVAC:EnergyRecoveryVentilator =' &
                           //TRIM(StandAloneERV(StandAloneERVNum)%Name))
              CALL ShowContinueError('User-Specified Supply Air Flow Rate of '// &
                                      TRIM(RoundSigDigits(SupplyAirVolFlowUser,5))// ' [m3/s]')
              CALL ShowContinueError('differs from Design Size Supply Air Flow Rate of ' // &
                                      TRIM(RoundSigDigits(SupplyAirVolFlowDes,5))// ' [m3/s]')
              CALL ShowContinueError('This may, or may not, indicate mismatched component sizes.')
              CALL ShowContinueError('Verify that the value entered is intended and is consistent with other components.')
            END IF
          ENDIF
          CALL ReportSizingOutput(cHXTypes(StandAloneERV(StandAloneERVNum)%HeatExchangerTypeNum), &
                              StandAloneERV(StandAloneERVNum)%HeatExchangerName, &
                             'Design Size Supply Air Flow Rate [m3/s]',SupplyAirVolFlowDes, &
                             'User-Specified Supply Air Flow Rate [m3/s]',SupplyAirVolFlowUser)
          IF (DisplayExtraWarnings) THEN
            IF ((ABS(SupplyAirVolFlowDes - SupplyAirVolFlowUser)/SupplyAirVolFlowUser) > AutoVsHardSizingThreshold) THEN
              CALL ShowMessage('SizeStandAloneERV: Potential issue with equipment sizing for ZoneHVAC:EnergyRecoveryVentilator ' &
                                 //   TRIM(cHXTypes(StandAloneERV(StandAloneERVNum)%HeatExchangerTypeNum))//' '//  &
                                  TRIM(StandAloneERV(StandAloneERVNum)%HeatExchangerName))
              CALL ShowContinueError('User-Specified Supply Air Flow Rate of '// &
                                      TRIM(RoundSigDigits(SupplyAirVolFlowUser,5))// ' [m3/s]')
              CALL ShowContinueError('differs from Design Size Supply Air Flow Rate of ' // &
                                      TRIM(RoundSigDigits(SupplyAirVolFlowDes,5))// ' [m3/s]')
              CALL ShowContinueError('This may, or may not, indicate mismatched component sizes.')
              CALL ShowContinueError('Verify that the value entered is intended and is consistent with other components.')
            END IF
          ENDIF
          CALL ReportSizingOutput(TRIM(cFanTypes(StandAloneERV(StandAloneERVNum)%SupplyAirFanType_Num)), &
                              StandAloneERV(StandAloneERVNum)%SupplyAirFanName, &
                             'Design Size Maximum Supply Air Flow Rate [m3/s]', SupplyAirVolFlowDes * &
                              StandAloneERV(StandAloneERVNum)%HighRHOAFlowRatio, &
                             'User-Specified Maximum Supply Air Flow Rate [m3/s]', SupplyAirVolFlowUser)
          IF (DisplayExtraWarnings) THEN
            IF ((ABS(SupplyAirVolFlowDes - SupplyAirVolFlowUser)/SupplyAirVolFlowUser) > AutoVsHardSizingThreshold) THEN
              CALL ShowMessage('SizeStandAloneERV: Potential issue with equipment sizing for ZoneHVAC:EnergyRecoveryVentilator ' &
                                  // TRIM(cFanTypes(StandAloneERV(StandAloneERVNum)%SupplyAirFanType_Num))//' '// &
                                  TRIM(StandAloneERV(StandAloneERVNum)%SupplyAirFanName))
              CALL ShowContinueError('User-Specified Maximum Supply Air Flow Rate of '// &
                                      TRIM(RoundSigDigits(SupplyAirVolFlowUser,5))// ' [m3/s]')
              CALL ShowContinueError('differs from Design Size Maximum Supply Air Flow Rate of ' // &
                                      TRIM(RoundSigDigits(SupplyAirVolFlowDes,5))// ' [m3/s]')
              CALL ShowContinueError('This may, or may not, indicate mismatched component sizes.')
              CALL ShowContinueError('Verify that the value entered is intended and is consistent with other components.')
            END IF
          ENDIF
        END IF
      END IF
    END IF
  END IF
  IsAutosize = .FALSE.
  IF (StandAloneERV(StandAloneERVNum)%DesignSAFanVolFlowRate == AutoSize) THEN
    IsAutosize = .TRUE.
  END IF
  CALL SetFanData(StandAloneERV(StandAloneERVNum)%SupplyAirFanIndex, ErrorsFound, &
                    StandAloneERV(StandAloneERVNum)%SupplyAirFanName, &
                    StandAloneERV(StandAloneERVNum)%SupplyAirVolFlow* &
                    StandAloneERV(StandAloneERVNum)%HighRHOAFlowRatio, &
                    0.0d0)
  DesignSAFanVolFlowRateDes = StandAloneERV(StandAloneERVNum)%SupplyAirVolFlow * &
                              StandAloneERV(StandAloneERVNum)%HighRHOAFlowRatio
  IF (IsAutosize) THEN
    StandAloneERV(StandAloneERVNum)%DesignSAFanVolFlowRate = DesignSAFanVolFlowRateDes
    CALL ReportSizingOutput(cFanTypes(StandAloneERV(StandAloneERVNum)%SupplyAirFanType_Num), &
                              StandAloneERV(StandAloneERVNum)%SupplyAirFanName, &
                             'Design Size Maximum Supply Air Flow Rate [m3/s]', DesignSAFanVolFlowRateDes)
  ELSE
    IF (StandAloneERV(StandAloneERVNum)%DesignSAFanVolFlowRate > 0.0d0 .AND. DesignSAFanVolFlowRateDes > 0.0d0) THEN
      DesignSAFanVolFlowRateUser = StandAloneERV(StandAloneERVNum)%DesignSAFanVolFlowRate
      CALL ReportSizingOutput(cFanTypes(StandAloneERV(StandAloneERVNum)%SupplyAirFanType_Num), &
                              StandAloneERV(StandAloneERVNum)%SupplyAirFanName, &
                             'Design Size Maximum Supply Air Flow Rate [m3/s]', DesignSAFanVolFlowRateDes, &
                             'User-Specified Maximum Supply Air Flow Rate [m3/s]', DesignSAFanVolFlowRateUser)
      IF (DisplayExtraWarnings) THEN
        IF ((ABS(DesignSAFanVolFlowRateDes - DesignSAFanVolFlowRateUser)/DesignSAFanVolFlowRateUser) &
                                 > AutoVsHardSizingThreshold) THEN
          CALL ShowMessage('SizeStandAloneERV: Potential issue with equipment sizing for ZoneHVAC:EnergyRecoveryVentilator '//  &
                                  TRIM(cFanTypes(StandAloneERV(StandAloneERVNum)%SupplyAirFanType_Num))//' '// &
                                  TRIM(StandAloneERV(StandAloneERVNum)%SupplyAirFanName))
          CALL ShowContinueError('User-Specified Maximum Supply Air Flow Rate of '// &
                                      TRIM(RoundSigDigits(DesignSAFanVolFlowRateUser,5))//' [m3/s]')
          CALL ShowContinueError('differs from Design Size Maximum Supply Air Flow Rate of ' // &
                                      TRIM(RoundSigDigits(DesignSAFanVolFlowRateDes,5))//' [m3/s]')
          CALL ShowContinueError('This may, or may not, indicate mismatched component sizes.')
          CALL ShowContinueError('Verify that the value entered is intended and is consistent with other components.')
        END IF
      ENDIF
    END IF
  END IF
  IsAutosize = .FALSE.
  IF (StandAloneERV(StandAloneERVNum)%ExhaustAirVolFlow == AutoSize) THEN
    IsAutosize = .TRUE.
  END IF
  IF (CurZoneEqNum > 0) THEN
!      Sizing objects are not required for stand alone ERV
!      CALL CheckZoneSizing('ZoneHVAC:EnergyRecoveryVentilator',StandAloneERV(StandAloneERVNum)%Name)
    ZoneName = ZoneEquipConfig(CurZoneEqNum)%ZoneName
    ActualZoneNum = ZoneEquipConfig(CurZoneEqNum)%ActualZoneNum
    FloorArea = 0.0d0
    IF(SameString(ZoneName,Zone(CurZoneEqNum)%Name))THEN
      FloorArea = Zone(CurZoneEqNum)%FloorArea
    ELSE
      DO ZoneNum = 1, NumOfZones
        IF(.NOT. SameString(ZoneName,Zone(CurZoneEqNum)%Name))CYCLE
          FloorArea = Zone(ZoneNum)%FloorArea
        EXIT
      END DO
    END IF
    NumberOfPeople = 0.0d0
    MaxPeopleSch = 0.0d0
    DO PeopleNum = 1, TotPeople
      IF(ActualZoneNum .NE. People(PeopleNum)%ZonePtr)CYCLE
        NumberOfPeople = People(PeopleNum)%NumberOfPeople
        PeopleSchPtr = People(PeopleNum)%NumberOfPeoplePtr
        MaxPeopleSch = GetScheduleMaxValue(PeopleSchPtr)
      EXIT
    END DO
    ExhaustAirVolFlowDes = &
                      FloorArea * StandAloneERV(StandAloneERVNum)%AirVolFlowPerFloorArea + &
                      MaxPeopleSch * NumberOfPeople * StandAloneERV(StandAloneERVNum)%AirVolFlowPerOccupant
    IF (ExhaustAirVolFlowDes < SmallAirVolFlow) THEN
      ExhaustAirVolFlowDes = 0.0d0
    END IF
    IF (ExhaustAirVolFlowDes > StandAloneERV(StandAloneERVNum)%SupplyAirVolFlow) THEN
      ExhaustAirVolFlowDes = StandAloneERV(StandAloneERVNum)%SupplyAirVolFlow
    END IF
    IF (IsAutosize) THEN
      StandAloneERV(StandAloneERVNum)%ExhaustAirVolFlow = ExhaustAirVolFlowDes
      StandAloneERV(StandAloneERVNum)%DesignEAFanVolFlowRate = ExhaustAirVolFlowDes * &
                                                               StandAloneERV(StandAloneERVNum)%HighRHOAFlowRatio
      CALL ReportSizingOutput('ZoneHVAC:EnergyRecoveryVentilator',StandAloneERV(StandAloneERVNum)%Name, &
                            'Design Size Exhaust Air Flow Rate [m3/s]',ExhaustAirVolFlowDes)
      CALL SetHeatExchangerData(StandAloneERV(StandAloneERVNum)%HeatExchangerIndex,ErrorsFound, &
                                StandAloneERV(StandAloneERVNum)%HeatExchangerName, &
                                SecondaryAirVolFlow=ExhaustAirVolFlowDes)
      CALL ReportSizingOutput(cHXTypes(StandAloneERV(StandAloneERVNum)%HeatExchangerTypeNum), &
                              StandAloneERV(StandAloneERVNum)%HeatExchangerName, &
                             'Design Size Exhaust Air Flow Rate [m3/s]',ExhaustAirVolFlowDes)
      CALL SetFanData(StandAloneERV(StandAloneERVNum)%ExhaustAirFanIndex, ErrorsFound, &
                      StandAloneERV(StandAloneERVNum)%ExhaustAirFanName, &
                      StandAloneERV(StandAloneERVNum)%ExhaustAirVolFlow* &
                      StandAloneERV(StandAloneERVNum)%HighRHOAFlowRatio, &
                      0.0d0)
      CALL ReportSizingOutput(TRIM(cFanTypes(StandAloneERV(StandAloneERVNum)%ExhaustAirFanType_Num)), &
                              StandAloneERV(StandAloneERVNum)%ExhaustAirFanName, &
                             'Design Size Maximum Exhaust Air Flow Rate [m3/s]', ExhaustAirVolFlowDes* &
                              StandAloneERV(StandAloneERVNum)%HighRHOAFlowRatio)
!      ERV fan type must be Fan:OnOff, min flow rate is assumed 0. Do not report min flow sizing.
!      CALL ReportSizingOutput(TRIM(cFanTypes(StandAloneERV(StandAloneERVNum)%ExhaustAirFanType_Num)), &
!                              StandAloneERV(StandAloneERVNum)%ExhaustAirFanName, &
!                               'Min Flow Rate [m3/s]', 0.0)
    ELSE
      IF (StandAloneERV(StandAloneERVNum)%ExhaustAirVolFlow > 0.0d0 .AND. ExhaustAirVolFlowDes > 0.0d0) THEN
        ExhaustAirVolFlowUser = StandAloneERV(StandAloneERVNum)%ExhaustAirVolFlow
        CALL ReportSizingOutput('ZoneHVAC:EnergyRecoveryVentilator',StandAloneERV(StandAloneERVNum)%Name, &
                            'Design Size Exhaust Air Flow Rate [m3/s]',ExhaustAirVolFlowDes, &
                            'User-Specified Exhaust Air Flow Rate [m3/s]',ExhaustAirVolFlowUser)
        IF (DisplayExtraWarnings) THEN
          IF ((ABS(ExhaustAirVolFlowDes - ExhaustAirVolFlowUser)/ExhaustAirVolFlowUser) > AutoVsHardSizingThreshold) THEN
            CALL ShowMessage('SizeStandAloneERV: Potential issue with equipment sizing for ZoneHVAC:EnergyRecoveryVentilator ' &
                                       //TRIM(StandAloneERV(StandAloneERVNum)%Name))
            CALL ShowContinueError('User-Specified Exhaust Air Flow Rate of '// &
                                      TRIM(RoundSigDigits(ExhaustAirVolFlowUser,5))// ' [m3/s]')
            CALL ShowContinueError('differs from Design Size Exhaust Air Flow Rate of ' // &
                                      TRIM(RoundSigDigits(ExhaustAirVolFlowDes,5))// ' [m3/s]')
            CALL ShowContinueError('This may, or may not, indicate mismatched component sizes.')
            CALL ShowContinueError('Verify that the value entered is intended and is consistent with other components.')
          END IF
        ENDIF
        CALL ReportSizingOutput(cHXTypes(StandAloneERV(StandAloneERVNum)%HeatExchangerTypeNum), &
                              StandAloneERV(StandAloneERVNum)%HeatExchangerName, &
                             'Design Size Exhaust Air Flow Rate [m3/s]',ExhaustAirVolFlowDes, &
                             'User-Specified Exhaust Air Flow Rate [m3/s]',ExhaustAirVolFlowUser)
        IF (DisplayExtraWarnings) THEN
          IF ((ABS(ExhaustAirVolFlowDes - ExhaustAirVolFlowUser)/ExhaustAirVolFlowUser) > AutoVsHardSizingThreshold) THEN
            CALL ShowMessage('SizeStandAloneERV: Potential issue with equipment sizing for ZoneHVAC:EnergyRecoveryVentilator '//  &
                                  TRIM(cHXTypes(StandAloneERV(StandAloneERVNum)%HeatExchangerTypeNum))//' '//  &
                                  TRIM(StandAloneERV(StandAloneERVNum)%HeatExchangerName))
            CALL ShowContinueError('User-Specified Exhaust Air Flow Rate of '// &
                                      TRIM(RoundSigDigits(ExhaustAirVolFlowUser,5))// ' [m3/s]')
            CALL ShowContinueError('differs from Design Size Exhaust Air Flow Rate of ' // &
                                      TRIM(RoundSigDigits(ExhaustAirVolFlowDes,5))// ' [m3/s]')
            CALL ShowContinueError('This may, or may not, indicate mismatched component sizes.')
            CALL ShowContinueError('Verify that the value entered is intended and is consistent with other components.')
          END IF
        ENDIF
        CALL ReportSizingOutput(cFanTypes(StandAloneERV(StandAloneERVNum)%ExhaustAirFanType_Num), &
                              StandAloneERV(StandAloneERVNum)%ExhaustAirFanName, &
                             'Design Size Maximum Exhaust Air Flow Rate [m3/s]', ExhaustAirVolFlowDes* &
                              StandAloneERV(StandAloneERVNum)%HighRHOAFlowRatio, &
                             'User-Specified Maximum Exhaust Air Flow Rate [m3/s]', ExhaustAirVolFlowUser)
        IF (DisplayExtraWarnings) THEN
          IF ((ABS(ExhaustAirVolFlowDes - ExhaustAirVolFlowUser)/ExhaustAirVolFlowUser) > AutoVsHardSizingThreshold) THEN
            CALL ShowMessage('SizeStandAloneERV: Potential issue with equipment sizing for ZoneHVAC:EnergyRecoveryVentilator '//  &
                                  TRIM(cFanTypes(StandAloneERV(StandAloneERVNum)%SupplyAirFanType_Num))//' '// &
                                  TRIM(StandAloneERV(StandAloneERVNum)%ExhaustAirFanName))
            CALL ShowContinueError('User-Specified Maximum Exhaust Air Flow Rate of '// &
                                        TRIM(RoundSigDigits(ExhaustAirVolFlowUser,5))// ' [m3/s]')
            CALL ShowContinueError('differs from Design Size Maximum Exhaust Air Flow Rate of ' // &
                                      TRIM(RoundSigDigits(ExhaustAirVolFlowDes,5))// ' [m3/s]')
            CALL ShowContinueError('This may, or may not, indicate mismatched component sizes.')
            CALL ShowContinueError('Verify that the value entered is intended and is consistent with other components.')
          END IF
        ENDIF
      END IF
    END IF
  END IF
  IsAutosize = .FALSE.
  IF (StandAloneERV(StandAloneERVNum)%DesignEAFanVolFlowRate == AutoSize) THEN
    IsAutosize = .TRUE.
  END IF
  CALL SetFanData(StandAloneERV(StandAloneERVNum)%ExhaustAirFanIndex, ErrorsFound, &
                      StandAloneERV(StandAloneERVNum)%ExhaustAirFanName, &
                      StandAloneERV(StandAloneERVNum)%ExhaustAirVolFlow* &
                      StandAloneERV(StandAloneERVNum)%HighRHOAFlowRatio, &
                      0.0d0)
  DesignEAFanVolFlowRateDes = StandAloneERV(StandAloneERVNum)%ExhaustAirVolFlow* &
                              StandAloneERV(StandAloneERVNum)%HighRHOAFlowRatio
  IF (IsAutosize) THEN
    StandAloneERV(StandAloneERVNum)%DesignEAFanVolFlowRate =  DesignEAFanVolFlowRateDes
    CALL ReportSizingOutput(TRIM(cFanTypes(StandAloneERV(StandAloneERVNum)%ExhaustAirFanType_Num)), &
                              StandAloneERV(StandAloneERVNum)%ExhaustAirFanName, &
                             'Design Size Maximum Exhaust Air Flow Rate [m3/s]', DesignEAFanVolFlowRateDes)
  ELSE
    IF (StandAloneERV(StandAloneERVNum)%DesignEAFanVolFlowRate > 0.0d0 .AND. DesignEAFanVolFlowRateDes > 0.0d0) THEN
      DesignEAFanVolFlowRateUser = StandAloneERV(StandAloneERVNum)%DesignEAFanVolFlowRate
      CALL ReportSizingOutput(TRIM(cFanTypes(StandAloneERV(StandAloneERVNum)%ExhaustAirFanType_Num)), &
                              StandAloneERV(StandAloneERVNum)%ExhaustAirFanName, &
                             'Design Size Maximum Exhaust Air Flow Rate [m3/s]', DesignEAFanVolFlowRateDes, &
                             'User-Specified Maximum Exhaust Air Flow Rate [m3/s]', DesignEAFanVolFlowRateUser)
      IF (DisplayExtraWarnings) THEN
        IF ((ABS(DesignEAFanVolFlowRateDes - DesignEAFanVolFlowRateUser)/DesignEAFanVolFlowRateUser) &
                                   > AutoVsHardSizingThreshold) THEN
          CALL ShowMessage('SizeStandAloneERV: Potential issue with equipment sizing for ZoneHVAC:EnergyRecoveryVentilator '//  &
                                  TRIM(cFanTypes(StandAloneERV(StandAloneERVNum)%SupplyAirFanType_Num))//' '// &
                                  TRIM(StandAloneERV(StandAloneERVNum)%SupplyAirFanName))
          CALL ShowContinueError('User-Specified Maximum Exhaust Air Flow Rate of '// &
                                      TRIM(RoundSigDigits(DesignEAFanVolFlowRateUser,5))// ' [m3/s]')
          CALL ShowContinueError('differs from Design Size Maximum Exhaust Air Flow Rate of ' // &
                                      TRIM(RoundSigDigits(DesignEAFanVolFlowRateDes,5))// ' [m3/s]')
          CALL ShowContinueError('This may, or may not, indicate mismatched component sizes.')
          CALL ShowContinueError('Verify that the value entered is intended and is consistent with other components.')
        END IF
      ENDIF
    END IF
  END IF
  RETURN
END SUBROUTINE SizeStandAloneERV