SUBROUTINE SizeDXCoil(DXCoilNum)
          ! SUBROUTINE INFORMATION:
          !       AUTHOR         Fred Buhl
          !       DATE WRITTEN   January 2002
          !                      Feb 2005 M. J. Witte, GARD Analytics, Inc.
          !                        Add new coil type COIL:DX:MultiMode:CoolingEmpirical:
          !                      July 2005 R. Raustad, FSEC
          !                        Add new coil type COIL:DX:HEATPUMPWATERHEATER
          !                      June 2007 L. Gu, FSEC
          !                        Add new coil type COIL:DX:MULTISPEED:COOLING and HEATING
          !                      January 2011, B. Griffithn NREL. add EMS overrides for autosized fields. 1`
          !                      August 2013 Daeho Kang, add component sizing table entries
          !       RE-ENGINEERED  na
          ! PURPOSE OF THIS SUBROUTINE:
          ! This subroutine is for sizing DX Coil components for which nominal capacity and air flow rate
          ! have not been specified in the input.
          ! METHODOLOGY EMPLOYED:
          ! Obtains cooling capacities and air flow rates from the zone or system sizing arrays.
          ! REFERENCES:
          ! na
          ! USE STATEMENTS:
  USE DataSizing
  USE CurveManager, ONLY: CurveValue
  USE General,      ONLY: RoundSigDigits, TrimSigDigits
  USE ReportSizingManager, ONLY: ReportSizingOutput
  USE OutputReportPredefined
  USE DataAirSystems, ONLY: PrimaryAirSystem
  USE StandardRatings,   ONLY: CalcDXCoilStandardRating
  USE General,             ONLY: RoundSigDigits
  IMPLICIT NONE    ! Enforce explicit typing of all variables in this routine
          ! SUBROUTINE ARGUMENT DEFINITIONS:
  Integer, Intent(IN) :: DXCoilNum
          ! SUBROUTINE PARAMETER DEFINITIONS:
  CHARACTER(len=*), PARAMETER ::  RoutineName='SizeDXCoil'
          ! INTERFACE BLOCK SPECIFICATIONS
          ! na
          ! DERIVED TYPE DEFINITIONS
          ! na
          ! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
  REAL(r64) :: rhoair
  REAL(r64) :: CpAir
  REAL(r64) :: MixTemp
  REAL(r64) :: MixHumRat
  REAL(r64) :: MixEnth
  REAL(r64) :: MixWetBulb
  REAL(r64) :: SupTemp
  REAL(r64) :: SupHumRat
  REAL(r64) :: SupEnth
  REAL(r64) :: OutTemp
  REAL(r64) :: OutAirFrac
  REAL(r64) :: VolFlowRate
  REAL(r64) :: CoolCapAtPeak
  REAL(r64) :: TotCapTempModFac
  REAL(r64) :: RatedVolFlowPerRatedTotCap !Rated Air Volume Flow Rate divided by Rated Total Capacity[m3/s-W)
  INTEGER :: TimeStepNumAtMax
  INTEGER :: DDNum
  INTEGER :: CapacityStageNum     ! Loop index for 1,Number of capacity stages
  INTEGER :: DehumidModeNum       ! Loop index for 1,Number of enhanced dehumidification modes
  INTEGER :: Mode  ! Operating mode for MultiMode DX coil; Always 1 for other coil types
  INTEGER :: NumOfSpeedCompanion  ! Number of speed for a companion cooling coil (Multispeed HO heating coil only
  CHARACTER(len=MaxNameLength) :: equipName
  LOGICAL :: OASysFlag            ! Logical flag determines if parent object set OA Sys coil property
  LOGICAL :: AirLoopSysFlag       ! Logical flag determines if parent object set air loop coil property
  REAL(r64) :: RatedAirVolFlowRateDes          ! Design rated air volume flow for reporting
  REAL(r64) :: RatedAirVolFlowRateUser         ! Hard-sized rated air volume flow for reporting
  REAL(r64) :: RatedAirVolFlowRate2Des         ! Design rated low speed air volume flow for reporting
  REAL(r64) :: RatedAirVolFlowRate2User        ! Hard-sized rated low speed air volume flow for reporting
  REAL(r64) :: RatedTotCapDes                  ! Design rated total capacity for reproting
  REAL(r64) :: RatedTotCapUser                 ! Hard-sized rated total capacity for reproting
  REAL(r64) :: RatedTotCap2Des                 ! Design rated low speed total capacity for reproting
  REAL(r64) :: RatedTotCap2User                ! Hard-sized rated low speed total capacity for reproting
  REAL(r64) :: RatedSHRDes                     ! Design ratd SHR for reporting
  REAL(r64) :: RatedSHRUser                    ! Hard-sized ratd SHR for reporting
  REAL(r64) :: RatedSHR2Des                    ! Design ratd low speed SHR for reporting
  REAL(r64) :: RatedSHR2User                   ! Hard-sized ratd low speed SHR for reporting
  REAL(r64) :: EvapCondAirFlowDes              ! Design evaporative condenser air flow for reporting
  REAL(r64) :: EvapCondAirFlowUser             ! Hard-sized evaporative condenser air flow for reporting
  REAL(r64) :: EvapCondAirFlow2Des             ! Design low speed evaporative condenser air flow for reporting
  REAL(r64) :: EvapCondAirFlow2User            ! Hard-sized low speed evaporative condenser air flow for reporting
  REAL(r64) :: EvapCondPumpElecNomPowerDes     ! Design evaporative condenser pump rated power consumption for reporting
  REAL(r64) :: EvapCondPumpElecNomPowerUser    ! Hard-sized evaporative condenser pump rated power consumption for reporting
  REAL(r64) :: EvapCondPumpElecNomPower2Des    ! Design low speed condenser pump rated power consumption for reporting
  REAL(r64) :: EvapCondPumpElecNomPower2User   ! Hard-sized low speed condenser pump rated power consumption for reporting
  REAL(r64) :: DefrostCapacityDes              ! Design defrost heater capacity for reporting
  REAL(r64) :: DefrostCapacityUser             ! Hard-sized defrost heater capacity for reporting
  REAL(r64) :: MSRatedAirVolFlowRateDes        ! Design multispeed rated air volume flow rate for reporting
  REAL(r64) :: MSRatedAirVolFlowRateUser       ! Hard-sized multispeed rated air volume flow rate for reporting
  REAL(r64) :: MSRatedTotCapDes                ! Design multispeed rated total capacity for reporting
  REAL(r64) :: MSRatedTotCapUser               ! Hard-sized multispeed rated total capacity for reporting
  REAL(r64) :: MSRatedSHRDes                   ! Design multispeed rated SHR for reporting
  REAL(r64) :: MSRatedSHRUser                  ! Hard-sized multispeed rated SHR for reporting
  REAL(r64) :: MSEvapCondAirFlowDes            ! Design evaporative condenser air flow for reporting
  REAL(r64) :: MSEvapCondAirFlowUser           ! Hard-sized evaporative condenser air flow for reporting
  REAL(r64) :: MSEvapCondAirFlow2Des           ! Design low speed evaporative condenser air flow for reporting
  REAL(r64) :: MSEvapCondAirFlow2User          ! Hard-sized low speed evaporative condenser air flow for reporting
  REAL(r64) :: MSEvapCondPumpElecNomPowerDes   ! Design evaporative condenser pump rated power consumption for reporting
  REAL(r64) :: MSEvapCondPumpElecNomPowerUser  ! Hard-sized evaporative condenser pump rated power consumption for reporting
  REAL(r64) :: MSEvapCondPumpElecNomPower2Des  ! Design low speed condenser pump rated power consumption for reporting
  REAL(r64) :: MSEvapCondPumpElecNomPower2User ! Hard-sized low speed condenser pump rated power consumption for reporting
  REAL(r64) :: MSDefrostCapacityDes            ! Design defrost heater capacity for reporting
  REAL(r64) :: MSDefrostCapacityUser           ! Hard-sized defrost heater capacity for reporting
  LOGICAL:: HardSizeNoDesRun                   ! Indicator to a hard-sized field with no design sizing data
  LOGICAL:: IsAutoSize                         ! Indicator to autosize for reporting
  LOGICAL:: IsCoolCoilCapAutosize              ! Indicator to cooling capacity autosize for reporting
  LOGICAL :: SizingDesRunThisAirSys            ! true if a particular air system had a Sizing:System object and system sizing done
  LOGICAL :: SizingDesRunThisZone              ! true if a particular zone had a Sizing:Zone object and zone sizing was done
    ! Initiate all reporting variables
  IF (SysSizingRunDone .OR. ZoneSizingRunDone) THEN
    HardSizeNoDesRun = .FALSE.
  ELSE
    HardSizeNoDesRun = .TRUE.
  ENDIF
  IF (CurSysNum > 0) THEN
    CALL CheckThisAirSystemForSizing(CurSysNum, SizingDesRunThisAirSys )
  ELSE
    SizingDesRunThisAirSys =  .FALSE.
  ENDIF
  IF (CurZoneEqNum > 0) THEN
    CALL CheckThisZoneForSizing(CurZoneEqNum, SizingDesRunThisZone)
  ELSE
    SizingDesRunThisZone =  .FALSE.
  ENDIF
  IsAutoSize = .FALSE.
  IsCoolCoilCapAutosize = .FALSE.
  RatedAirVolFlowRateDes = 0.0d0
  RatedAirVolFlowRateUser = 0.0d0
  RatedAirVolFlowRate2Des = 0.0d0
  RatedAirVolFlowRate2User = 0.0d0
  RatedTotCapDes = 0.0d0
  RatedTotCapUser = 0.0d0
  RatedTotCap2Des = 0.0d0
  RatedTotCap2User = 0.0d0
  RatedSHRDes = 0.0d0
  RatedSHRUser = 0.0d0
  RatedSHR2Des = 0.0d0
  RatedSHR2User = 0.0d0
  EvapCondAirFlowDes = 0.0d0
  EvapCondAirFlowUser = 0.0d0
  EvapCondAirFlow2Des = 0.0d0
  EvapCondAirFlow2User = 0.0d0
  EvapCondPumpElecNomPowerDes = 0.0d0
  EvapCondPumpElecNomPowerUser = 0.0d0
  EvapCondPumpElecNomPower2Des = 0.0d0
  EvapCondPumpElecNomPower2User = 0.0d0
  DefrostCapacityDes = 0.0d0
  DefrostCapacityUser = 0.0d0
  MSRatedAirVolFlowRateDes = 0.0d0
  MSRatedAirVolFlowRateUser = 0.0d0
  MSRatedTotCapDes = 0.0d0
  MSRatedTotCapUser = 0.0d0
  MSRatedSHRDes = 0.0d0
  MSRatedSHRUser = 0.0d0
  MSEvapCondAirFlowDes = 0.0d0
  MSEvapCondAirFlowUser = 0.0d0
  MSEvapCondAirFlow2Des = 0.0d0
  MSEvapCondAirFlow2User = 0.0d0
  MSEvapCondPumpElecNomPowerDes = 0.0d0
  MSEvapCondPumpElecNomPowerUser = 0.0d0
  MSEvapCondPumpElecNomPower2Des = 0.0d0
  MSEvapCondPumpElecNomPower2User = 0.0d0
  MSDefrostCapacityDes = 0.0d0
  MSDefrostCapacityUser = 0.0d0
!  EXTERNAL ReportSizingOutput
  ! NOTE: we are sizing COIL:DX:HeatingEmpirical on the COOLING load. Thus the cooling and
  ! and heating capacities of a DX heat pump system will be identical. In real life the ARI
  ! heating and cooling capacities are close but not identical.
  DO DehumidModeNum = 0, DXCoil(DXCoilNum)%NumDehumidModes
    DO CapacityStageNum = 1, DXCoil(DXCoilNum)%NumCapacityStages
      Mode = DehumidModeNum*2 + CapacityStageNum
      IF (DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) == AutoSize) THEN
        IsAutosize = .TRUE.
      END IF
        ! Sizing rated air volume flow rate
      IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingSingleSpeed .OR. &
          DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_HeatingEmpirical .OR. &
          DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed .OR. &
          DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl .OR. &
          DXCoil(DXCoilNum)%DXCoilType_Num == CoilVRF_Cooling .OR. &
          DXCoil(DXCoilNum)%DXCoilType_Num == CoilVRF_Heating) THEN
        IF (SizingDesRunThisAirSys) HardSizeNoDesRun = .FALSE.
        IF (CurSysNum > 0) THEN
            ! If hard-sized, check if system sizing data is available for system coil
          IF (.NOT. IsAutosize .AND. .NOT. SizingDesRunThisAirSys) THEN
            HardSizeNoDesRun = .TRUE.
            IF (DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) > 0.0d0) THEN
              IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) THEN
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                'User-Specified Rated Air Flow Rate [m3/s]', DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode))
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                'User-Specified Rated Air Flow Rate (non-bypassed) [m3/s]', &
                                DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode))
              ELSE IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                'User-Specified Rated High Speed Air Flow Rate [m3/s]', &
                                DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode))
              ELSE
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                'User-Specified Rated Air Flow Rate [m3/s]', DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode))
              END IF
            END IF
          ELSE ! autosize or hard-sized with system sizing data
            CALL CheckSysSizing(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name)
            IF (CurOASysNum > 0) THEN
              IF (OASysEqSizing(CurOASysNum)%AirFlow) THEN
                ! Parent object sets flow rate
                RatedAirVolFlowRateDes = OASysEqSizing(CurOASysNum)%AirVolFlow
              ELSE
                RatedAirVolFlowRateDes = FinalSysSizing(CurSysNum)%DesOutAirVolFlow
              END IF
            ELSE
              IF (UnitarySysEqSizing(CurSysNum)%AirFlow) THEN
                ! Parent object sets flow rate
                RatedAirVolFlowRateDes = UnitarySysEqSizing(CurSysNum)%AirVolFlow
              ELSE
                RatedAirVolFlowRateDes = FinalSysSizing(CurSysNum)%DesMainVolFlow
              END IF
            END IF
          END IF
        ELSE IF (CurZoneEqNum > 0) THEN
            ! If hard-sized, check if zone sizing data is available for zone coil
          IF (.NOT. IsAutosize .AND. .NOT. SizingDesRunThisZone) THEN
            HardSizeNoDesRun = .TRUE.
            IF (DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) > 0.0d0) THEN
              IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) THEN
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                'User-Specified Rated Air Flow Rate [m3/s]', DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode))
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                'User-Specified Rated Air Flow Rate (non-bypassed) [m3/s]', &
                                DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode))
              ELSE IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                'User-Specified Rated High Speed Air Flow Rate [m3/s]', &
                                DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode))
              ELSE
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                'User-Specified Rated Air Flow Rate [m3/s]', DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode))
              END IF
            END IF
          ELSE ! autosize or hard-sized with zone sizing data
            IF(ZoneEqSizing(CurZoneEqNum)%AirFlow)THEN
              ! Parent object sets flow rate
              RatedAirVolFlowRateDes = ZoneEqSizing(CurZoneEqNum)%AirVolFlow
            ELSE
              CALL CheckZoneSizing(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name)
              IF(ZoneCoolingOnlyFan)THEN
                RatedAirVolFlowRateDes = FinalZoneSizing(CurZoneEqNum)%DesCoolVolFlow
              ELSE
                RatedAirVolFlowRateDes =   &
                  MAX(FinalZoneSizing(CurZoneEqNum)%DesCoolVolFlow,FinalZoneSizing(CurZoneEqNum)%DesHeatVolFlow)
              END IF
            END IF ! IF(ZoneEqSizing(CurZoneEqNum)%AirFlow)THEN
          END IF
        END IF
        IF (RatedAirVolFlowRateDes < SmallAirVolFlow) THEN
          RatedAirVolFlowRateDes = 0.0d0
        END IF
        IF (DXCoil(DXCoilNum)%RatedAirVolFlowRateEMSOverrideON(Mode)) THEN
          RatedAirVolFlowRateDes = DXCoil(DXCoilNum)%RatedAirVolFlowRateEMSOverrideValue(Mode)
        END IF
      END IF
      IF(DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_HeatPumpWaterHeater) THEN
        IF(DXCoil(DXCoilNum)%RatedAirVolFlowRate(1) == AutoCalculate)THEN
          DXCoil(DXCoilNum)%RatedAirVolFlowRate(1) = DXCoil(DXCoilNum)%RatedTotCap2 * 0.00005035d0
          DXCoil(DXCoilNum)%AirVolFlowAutoSized = .TRUE.
        END IF
        IF(DXCoil(DXCoilNum)%RatedHPWHCondWaterFlow == AutoCalculate)THEN
          DXCoil(DXCoilNum)%RatedHPWHCondWaterFlow = DXCoil(DXCoilNum)%RatedTotCap2 * 0.00000004487d0
          DXCoil(DXCoilNum)%WaterVolFlowAutoSized = .TRUE.
!            Reporting autosize info for DX coils used with HPWHs will list the info out of order in the eio, report it later
!            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
!                                  'Rated Condenser Water Volume Flow Rate [m3/s]', DXCoil(DXCoilNum)%RatedHPWHCondWaterFlow)
        END IF
      ELSE
        IF (.NOT. HardSizeNoDesRun) THEN
          IF (.NOT. DXCoil(DXCoilNum)%AirVolFlowAutoSized .OR. .NOT. DXCoil(DXCoilNum)%WaterVolFlowAutoSized) THEN
            IF (IsAutosize) THEN ! Design Size values are available for both autosized and hard-sized
              DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) = RatedAirVolFlowRateDes
              IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) THEN
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                   TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                  'Design Size Rated Air Flow Rate [m3/s]', RatedAirVolFlowRateDes)
                ! For Multimode Coil, Rated flow must be adjusted for bypass fraction
                RatedAirVolFlowRateDes = RatedAirVolFlowRateDes * &
                                       (1-DXCoil(DXCoilNum)%BypassedFlowFrac(Mode))
                DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) = RatedAirVolFlowRateDes
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                   TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                  'Design Size Rated Air Flow Rate (non-bypassed) [m3/s]', RatedAirVolFlowRateDes)
              ELSE IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated High Speed Air Flow Rate [m3/s]',RatedAirVolFlowRateDes)
              ELSE
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated Air Flow Rate [m3/s]', RatedAirVolFlowRateDes)
              END IF
            ELSE  ! Hard size with sizing data
              IF (DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) > 0.0d0 .AND. RatedAirVolFlowRateDes > 0.d0) THEN
                RatedAirVolFlowRateUser = DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode)
                IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) THEN
                  CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                   TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                  'Design Size Rated Air Flow Rate [m3/s]', RatedAirVolFlowRateDes, &
                                  'User-Specified Rated Air Flow Rate [m3/s]', RatedAirVolFlowRateUser)
                  ! For Multimode Coil, Rated flow must be adjusted for bypass fraction
                  RatedAirVolFlowRateDes = RatedAirVolFlowRateDes * &
                                       (1-DXCoil(DXCoilNum)%BypassedFlowFrac(Mode))
                  CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                   TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                  'Design Size Rated Air Flow Rate (non-bypassed) [m3/s]', RatedAirVolFlowRateDes, &
                                  'User-Specified Rated Air Flow Rate (non-bypassed) [m3/s]', RatedAirVolFlowRateUser)
                ELSE IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
                  CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated High Speed Air Flow Rate [m3/s]',RatedAirVolFlowRateDes, &
                                  'User-Specified Rated High Speed Air Flow Rate [m3/s]',RatedAirVolFlowRateUser)
                ELSE
                  CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated Air Flow Rate [m3/s]', RatedAirVolFlowRateDes, &
                                  'User-Specified Rated Air Flow Rate [m3/s]', RatedAirVolFlowRateUser)
                END IF
                IF (DisplayExtraWarnings) THEN
                  IF ((ABS(RatedAirVolFlowRateDes - RatedAirVolFlowRateUser)/RatedAirVolFlowRateUser) &
                                   > AutoVsHardSizingThreshold) THEN
                    CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for '//TRIM(DXCoil(DXCoilNum)%DXCoilType) &
                                       //' '//TRIM(DXCoil(DXCoilNum)%Name))
                    CALL ShowContinueError('User-Specified Rated Air Volume Flow Rate of '// &
                                      TRIM(RoundSigDigits(RatedAirVolFlowRateUser,5))// ' [m3/s]')
                    CALL ShowContinueError('differs from Design Size Rated Air Volume Flow Rate of ' // &
                                      TRIM(RoundSigDigits(RatedAirVolFlowRateDes,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.')
                  ENDIF
                ENDIF
              END IF
            END IF
          END IF
        END IF
      END IF
      OASysFlag = .FALSE.
      AirLoopSysFlag = .FALSE.
      ! logicals used when parent sizes coil
      IF (CurOASysNum > 0)OASysFlag = OASysEqSizing(CurOASysNum)%Capacity
      IF (CurSysNum > 0)AirLoopSysFlag = UnitarySysEqSizing(CurSysNum)%Capacity
      IsAutosize = .FALSE.
      IF (DXCoil(DXCoilNum)%RatedTotCap(Mode) == AutoSize) THEN
        IsAutosize = .TRUE.
      END IF
        ! Sizing rated total capacity
      IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingSingleSpeed .OR. &
          DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed .OR. &
          DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl .OR. &
          DXCoil(DXCoilNum)%DXCoilType_Num == CoilVRF_Cooling) THEN
        IsCoolCoilCapAutosize = .TRUE.
        IF (SizingDesRunThisAirSys .OR. SizingDesRunThisZone) HardSizeNoDesRun = .FALSE.
        IF (CurSysNum > 0) THEN
            ! If hard-sized, check if system sizing data is available for system coil
          IF (.NOT. IsAutosize .AND. .NOT. SizingDesRunThisZone) THEN
            HardSizeNoDesRun = .TRUE.
            IF (DXCoil(DXCoilNum)%RatedTotCap(Mode) > 0.0d0) THEN
              IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) THEN
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                       TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                       'User-Specified Rated Total Cooling Capacity (gross) [W]', DXCoil(DXCoilNum)%RatedTotCap(Mode))
              ELSE IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                        'User-Specified Rated High Speed Total Cooling Capacity (gross) [W]', &
                        DXCoil(DXCoilNum)%RatedTotCap(Mode))
              ELSE
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                        'User-Specified Rated Total Cooling Capacity (gross) [W]', &
                        DXCoil(DXCoilNum)%RatedTotCap(Mode))
              END IF
            END IF
          ELSE ! autosize or hard-sized with system sizing data
            IF (OASysFlag) THEN
              RatedTotCapDes = OASysEqSizing(CurOASysNum)%DesCoolingLoad
            ELSE IF (AirLoopSysFlag) THEN
              RatedTotCapDes = UnitarySysEqSizing(CurSysNum)%DesCoolingLoad
            ELSE
              CALL CheckSysSizing(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name)
              VolFlowRate = DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode)
              IF (VolFlowRate >= SmallAirVolFlow) THEN
                IF (CurOASysNum > 0) THEN ! coil is in the OA stream
                  MixTemp = FinalSysSizing(CurSysNum)%CoolOutTemp
                  MixHumRat = FinalSysSizing(CurSysNum)%CoolOutHumRat
                  SupTemp = FinalSysSizing(CurSysNum)%PrecoolTemp
                  SupHumRat = FinalSysSizing(CurSysNum)%PrecoolHumRat
                ELSE ! coil is on the main air loop
                  SupTemp = FinalSysSizing(CurSysNum)%CoolSupTemp
                  SupHumRat = FinalSysSizing(CurSysNum)%CoolSupHumRat
                  IF (PrimaryAirSystem(CurSysNum)%NumOACoolCoils == 0) THEN ! there is no precooling of the OA stream
                    MixTemp = FinalSysSizing(CurSysNum)%CoolMixTemp
                    MixHumRat = FinalSysSizing(CurSysNum)%CoolMixHumRat
                  ELSE ! there is precooling of OA stream
                    IF (VolFlowRate > 0.0d0) THEN
                      OutAirFrac = FinalSysSizing(CurSysNum)%DesOutAirVolFlow / VolFlowRate
                    ELSE
                      OutAirFrac = 1.0d0
                    END IF
                    OutAirFrac = MIN(1.0d0,MAX(0.0d0,OutAirFrac))
                    MixTemp = OutAirFrac*FinalSysSizing(CurSysNum)%PrecoolTemp + &
                              (1.0d0-OutAirFrac)*FinalSysSizing(CurSysNum)%CoolRetTemp
                    MixHumRat = OutAirFrac*FinalSysSizing(CurSysNum)%PrecoolHumRat + &
                                (1.0d0-OutAirFrac)*FinalSysSizing(CurSysNum)%CoolRetHumRat
                  END IF
                END IF
                OutTemp = FinalSysSizing(CurSysNum)%CoolOutTemp
                rhoair = PsyRhoAirFnPbTdbW(StdBaroPress,MixTemp,MixHumRat,RoutineName)
                MixEnth = PsyHFnTdbW(MixTemp,MixHumRat,RoutineName)
                MixWetBulb = PsyTwbFnTdbWPb(MixTemp,MixHumRat,StdBaroPress,RoutineName)
                SupEnth = PsyHFnTdbW(SupTemp,SupHumRat,RoutineName)
                TotCapTempModFac = CurveValue(DXCoil(DXCoilNum)%CCapFTemp(Mode),MixWetBulb,OutTemp)
                CoolCapAtPeak = MAX(0.0d0, (rhoair * VolFlowRate * (MixEnth-SupEnth)))
                IF(TotCapTempModFac .GT. 0.0d0)THEN
                  RatedTotCapDes = CoolCapAtPeak / TotCapTempModFac
                ELSE
                  RatedTotCapDes = CoolCapAtPeak
                END IF
              ELSE
                RatedTotCapDes = 0.0d0
              END IF
            END IF ! IF(OASysFlag) THEN or ELSE IF(AirLoopSysFlag) THEN
            IF(RatedTotCapDes .GT. 0.0d0)THEN
              RatedVolFlowPerRatedTotCap = DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) / RatedTotCapDes
            ELSE
              RatedVolFlowPerRatedTotCap = 0.0d0
            END IF
            ! check capacity to make sure design volume flow per total capacity is within range
            IF (RatedVolFlowPerRatedTotCap .LT. MinRatedVolFlowPerRatedTotCap(DXCT)) THEN
              IF (.NOT. DXCoil(DXCoilNum)%RatedTotCapEMSOverrideOn(Mode) .AND. DisplayExtraWarnings)THEN
                CALL ShowWarningError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                CALL ShowContinueError('...Rated Total Cooling Capacity will be limited by the minimum rated volume flow per'// &
                                       ' rated total capacity ratio.')
                CALL ShowContinueError('...DX coil volume flow rate (m3/s) = '// &
                                        TrimSigDigits(DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode),6))
                CALL ShowContinueError('...Requested capacity (W) = '//TrimSigDigits(RatedTotCapDes,3))
                CALL ShowContinueError('...Requested flow/capacity ratio (m3/s/W) = '// &
                                          TrimSigDigits(RatedVolFlowPerRatedTotCap,3))
                CALL ShowContinueError('...Minimum flow/capacity ratio (m3/s/W) = '// &
                                          TrimSigDigits(MinRatedVolFlowPerRatedTotCap(DXCT),3))
              END IF
              RatedTotCapDes = DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) &
                                                    / MinRatedVolFlowPerRatedTotCap(DXCT)
              IF (.NOT. DXCoil(DXCoilNum)%RatedTotCapEMSOverrideOn(Mode) .AND. DisplayExtraWarnings)THEN
                CALL ShowContinueError('...Adjusted capacity (W) = '//TrimSigDigits(RatedTotCapDes,3))
              END IF
            ELSEIF (RatedVolFlowPerRatedTotCap .GT. MaxRatedVolFlowPerRatedTotCap(DXCT)) THEN
              IF (.NOT. DXCoil(DXCoilNum)%RatedTotCapEMSOverrideOn(Mode) .AND. DisplayExtraWarnings)THEN
                CALL ShowWarningError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                CALL ShowContinueError('...Rated Total Cooling Capacity will be limited by the maximum rated volume flow per'// &
                                       ' rated total capacity ratio.')
                CALL ShowContinueError('...DX coil volume flow rate (m3/s) = '// &
                                        TrimSigDigits(DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode),6))
                CALL ShowContinueError('...Requested capacity (W) = '//TrimSigDigits(RatedTotCapDes,3))
                CALL ShowContinueError('...Requested flow/capacity ratio (m3/s/W) = '// &
                                          TrimSigDigits(RatedVolFlowPerRatedTotCap,3))
                CALL ShowContinueError('...Maximum flow/capacity ratio (m3/s/W) = '// &
                                          TrimSigDigits(MaxRatedVolFlowPerRatedTotCap(DXCT),3))
              END IF
              RatedTotCapDes = DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) &
                                                    / MaxRatedVolFlowPerRatedTotCap(DXCT)
              IF (.NOT. DXCoil(DXCoilNum)%RatedTotCapEMSOverrideOn(Mode) .AND. DisplayExtraWarnings)THEN
                CALL ShowContinueError('...Adjusted capacity (W) = '//TrimSigDigits(RatedTotCapDes,3))
              END IF
            END IF
          END IF
        ELSE IF (CurZoneEqNum > 0) THEN
            ! If hard-sized, check if zone sizing data is available for system coil
          IF (.NOT. IsAutosize .AND. .NOT. SizingDesRunThisZone) THEN
            HardSizeNoDesRun = .TRUE.
            IF (DXCoil(DXCoilNum)%RatedTotCap(Mode) > 0.0d0) THEN
              IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) THEN
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                   TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                   'User-Specified Rated Total Cooling Capacity (gross) [W]', &
                                   DXCoil(DXCoilNum)%RatedTotCap(Mode))
              ELSE IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'User-Specified Rated High Speed Total Cooling Capacity (gross) [W]', &
                                  DXCoil(DXCoilNum)%RatedTotCap(Mode))
              ELSE
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'User-Specified Rated Total Cooling Capacity (gross) [W]', &
                                  DXCoil(DXCoilNum)%RatedTotCap(Mode))
              END IF
            END IF
          ELSE ! autosize or hard-sized with system sizing data
            IF (ZoneEqSizing(CurZoneEqNum)%Capacity) THEN ! Parent object calculated capacity
              DXCoil(DXCoilNum)%RatedTotCap(Mode) = ZoneEqSizing(CurZoneEqNum)%DesCoolingLoad
            ELSE
              CALL CheckZoneSizing(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name)
              VolFlowRate = DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode)
              IF (VolFlowRate >= SmallAirVolFlow) THEN
                IF(ZoneEqDXCoil)THEN
                  IF (ZoneEqSizing(CurZoneEqNum)%OAVolFlow > 0.0d0) THEN
                    MixTemp = FinalZoneSizing(CurZoneEqNum)%DesCoolCoilInTemp
                    MixHumRat = FinalZoneSizing(CurZoneEqNum)%DesCoolCoilInHumRat
                  ELSE
                    MixTemp = FinalZoneSizing(CurZoneEqNum)%ZoneRetTempAtCoolPeak
                    MixHumRat = FinalZoneSizing(CurZoneEqNum)%ZoneHumRatAtCoolPeak
                  END IF
                ELSE
                  MixTemp = FinalZoneSizing(CurZoneEqNum)%DesCoolCoilInTemp
                  MixHumRat = FinalZoneSizing(CurZoneEqNum)%DesCoolCoilInHumRat
                END IF
                SupTemp = FinalZoneSizing(CurZoneEqNum)%CoolDesTemp
                SupHumRat = FinalZoneSizing(CurZoneEqNum)%CoolDesHumRat
                TimeStepNumAtMax = FinalZoneSizing(CurZoneEqNum)%TimeStepNumAtCoolMax
                DDNum = FinalZoneSizing(CurZoneEqNum)%CoolDDNum
                IF (DDNum > 0 .and. TimeStepNumAtMax > 0) THEN
                  OutTemp = DesDayWeath(DDNum)%Temp(TimeStepNumAtMax)
                ELSE
                  OutTemp = 0.0d0
                ENDIF
                rhoair = PsyRhoAirFnPbTdbW(StdBaroPress,MixTemp,MixHumRat,RoutineName)
                MixEnth = PsyHFnTdbW(MixTemp,MixHumRat,RoutineName)
                MixWetBulb = PsyTwbFnTdbWPb(MixTemp,MixHumRat,StdBaroPress,RoutineName)
                SupEnth = PsyHFnTdbW(SupTemp,SupHumRat,RoutineName)
                TotCapTempModFac = CurveValue(DXCoil(DXCoilNum)%CCapFTemp(Mode),MixWetBulb,OutTemp)
                CoolCapAtPeak = MAX(0.0d0, (rhoair * VolFlowRate * (MixEnth-SupEnth)))
                IF(TotCapTempModFac .GT. 0.0d0)THEN
                  RatedTotCapDes = CoolCapAtPeak / TotCapTempModFac
                ELSE
                  RatedTotCapDes = CoolCapAtPeak
                END IF
              ELSE
                RatedTotCapDes = 0.0d0
              END IF
            END IF
          END IF ! End of desing sizing
            IF(RatedTotCapDes .GT. 0.0d0)THEN
              RatedVolFlowPerRatedTotCap = DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) / RatedTotCapDes
            ELSE
              RatedVolFlowPerRatedTotCap = 0.0d0
            END IF
            ! check capacity to make sure design volume flow per total capacity is within range
            IF (RatedVolFlowPerRatedTotCap .LT. MinRatedVolFlowPerRatedTotCap(DXCT)) THEN
              IF (.NOT. DXCoil(DXCoilNum)%RatedTotCapEMSOverrideOn(Mode) .AND. DisplayExtraWarnings)THEN
                CALL ShowWarningError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                CALL ShowContinueError('...Rated Total Cooling Capacity will be limited by the minimum rated volume flow per'// &
                                       ' rated total capacity ratio.')
                CALL ShowContinueError('...DX coil volume flow rate (m3/s) = '// &
                                        TrimSigDigits(DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode),6))
                CALL ShowContinueError('...Requested capacity (W) = '//TrimSigDigits(RatedTotCapDes,3))
                CALL ShowContinueError('...Requested flow/capacity ratio (m3/s/W) = '// &
                                          TrimSigDigits(RatedVolFlowPerRatedTotCap,3))
                CALL ShowContinueError('...Minimum flow/capacity ratio (m3/s/W) = '// &
                                          TrimSigDigits(MinRatedVolFlowPerRatedTotCap(DXCT),3))
              END IF
              RatedTotCapDes = DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) &
                                                   / MinRatedVolFlowPerRatedTotCap(DXCT)
              IF (.NOT. DXCoil(DXCoilNum)%RatedTotCapEMSOverrideOn(Mode) .AND. DisplayExtraWarnings)THEN
                CALL ShowContinueError('...Adjusted capacity (W) = '//TrimSigDigits(RatedTotCapDes,3))
              END IF
            ELSEIF (RatedVolFlowPerRatedTotCap .GT. MaxRatedVolFlowPerRatedTotCap(DXCT)) THEN
              IF (.NOT. DXCoil(DXCoilNum)%RatedTotCapEMSOverrideOn(Mode) .AND. DisplayExtraWarnings)THEN
                CALL ShowWarningError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                CALL ShowContinueError('...Rated Total Cooling Capacity will be limited by the maximum rated volume flow per'// &
                                       ' rated total capacity ratio.')
                CALL ShowContinueError('...DX coil volume flow rate (m3/s) = '// &
                                        TrimSigDigits(DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode),6))
                CALL ShowContinueError('...Requested capacity (W) = '//TrimSigDigits(RatedTotCapDes,3))
                CALL ShowContinueError('...Requested flow/capacity ratio (m3/s/W) = '// &
                                          TrimSigDigits(RatedVolFlowPerRatedTotCap,3))
                CALL ShowContinueError('...Maximum flow/capacity ratio (m3/s/W) = '// &
                                          TrimSigDigits(MaxRatedVolFlowPerRatedTotCap(DXCT),3))
              END IF
              RatedTotCapDes = DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) &
                                                   / MaxRatedVolFlowPerRatedTotCap(DXCT)
              IF (.NOT. DXCoil(DXCoilNum)%RatedTotCapEMSOverrideOn(Mode) .AND. DisplayExtraWarnings)THEN
                CALL ShowContinueError('...Adjusted capacity (W) = '//TrimSigDigits(RatedTotCapDes,3))
              END IF
            END IF
        END IF ! End of sys/zone coil type
        IF (.NOT. HardSizeNoDesRun) THEN
          IF (IsAutosize) THEN ! Design Size values are available for both autosized and hard-sized
              ! Set Design Size and User-Specified values
            IF (DXCoil(DXCoilNum)%RatedTotCapEMSOverrideOn(Mode)) THEN
              RatedTotCapDes = DXCoil(DXCoilNum)%RatedTotCapEMSOverrideValue(Mode)
            ENDIF
            DXCoil(DXCoilNum)%RatedTotCap(Mode) = RatedTotCapDes
            IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) THEN
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                   TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                  'Design Size Rated Total Cooling Capacity (gross) [W]', RatedTotCapDes)
            ELSE IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated High Speed Total Cooling Capacity (gross) [W]', RatedTotCapDes)
            ELSE
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated Total Cooling Capacity (gross) [W]', RatedTotCapDes)
            END IF
          ELSE  ! Hard size with sizing data
            IF (DXCoil(DXCoilNum)%RatedTotCap(Mode) > 0.0d0 .AND. RatedTotCapDes > 0.0d0) THEN
              RatedTotCapUser = DXCoil(DXCoilNum)%RatedTotCap(Mode)
              IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) THEN
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                   TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                  'Design Size Rated Total Cooling Capacity (gross) [W]', RatedTotCapDes, &
                                  'User-Specified Rated Total Cooling Capacity (gross) [W]', RatedTotCapUser)
              ELSE IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated High Speed Total Cooling Capacity (gross) [W]', RatedTotCapDes, &
                                  'User-Specified Rated High Speed Total Cooling Capacity (gross) [W]', RatedTotCapUser)
              ELSE
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated Total Cooling Capacity (gross) [W]', RatedTotCapDes, &
                                  'User-Specified Rated Total Cooling Capacity (gross) [W]', RatedTotCapUser)
              END IF
              IF (DisplayExtraWarnings) THEN
                IF ((ABS(RatedTotCapDes - RatedTotCapUser)/RatedTotCapUser) > AutoVsHardSizingThreshold) THEN
                  CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                     //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                  CALL ShowContinueError('User-Specified Total Cooling Capacity of '// &
                                      TRIM(RoundSigDigits(RatedTotCapUser,2))// ' [W]')
                  CALL ShowContinueError('differs from Design Size Total Cooling Capacity of ' // &
                                      TRIM(RoundSigDigits(RatedTotCapDes,2))// ' [W]')
                  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
        ! Heating coil capacity
      IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingSingleSpeed .OR. &
            DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed .OR. &
            DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl .OR. &
            DXCoil(DXCoilNum)%DXCoilType_Num == CoilVRF_Cooling) THEN
        DXCoolCap = DXCoil(DXCoilNum)%RatedTotCap(Mode)
      END IF
      IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_HeatingEmpirical .OR. &
         DXCoil(DXCoilNum)%DXCoilType_Num == CoilVRF_Heating) THEN
        IsAutosize = .FALSE.
        IF (DXCoil(DXCoilNum)%RatedTotCap(Mode) == AutoSize) THEN
          IsAutosize = .TRUE.
        END IF
    !    IF (.NOT. DXCoil(DXCoilNum)%AirVolFlowAutoSized .AND. .NOT. DXCoil(DXCoilNum)%WaterVolFlowAutoSized) THEN
        IF (SizingDesRunThisAirSys .OR. SizingDesRunThisZone) HardSizeNoDesRun = .FALSE.
        IF (.NOT. IsAutosize .AND. .NOT. SizingDesRunThisAirSys) THEN
          HardSizeNoDesRun = .TRUE.
          IF (DXCoil(DXCoilNum)%RatedTotCap(Mode) > 0.0d0) THEN
            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                              'User-Specified Rated Total Heating Capacity [W]', DXCoil(DXCoilNum)%RatedTotCap(Mode))
          END IF
        ELSE ! autosize or hard-sized with system sizing data
          IF (OASysFlag) THEN
            IF (UnitarySysEqSizing(CurSysNum)%DesHeatingLoad .GT. 0.0d0) THEN
              DXCoil(DXCoilNum)%RatedTotCap(Mode) = OASysEqSizing(CurOASysNum)%DesHeatingLoad
              RatedTotCapDes = DXCoil(DXCoilNum)%RatedTotCap(Mode)
            ELSE
              DXCoil(DXCoilNum)%RatedTotCap(Mode) = OASysEqSizing(CurOASysNum)%DesCoolingLoad * &
                                                  DXCoil(DXCoilNum)%HeatSizeRatio
              RatedTotCapDes = DXCoil(DXCoilNum)%RatedTotCap(Mode)
            END IF
          ELSE IF (AirLoopSysFlag) THEN
            IF(UnitarySysEqSizing(CurSysNum)%DesHeatingLoad .GT. 0.0d0)THEN
              DXCoil(DXCoilNum)%RatedTotCap(Mode) = UnitarySysEqSizing(CurSysNum)%DesHeatingLoad
            ELSE
              DXCoil(DXCoilNum)%RatedTotCap(Mode) = UnitarySysEqSizing(CurSysNum)%DesCoolingLoad * &
                                                    DXCoil(DXCoilNum)%HeatSizeRatio
            END IF
            RatedTotCapDes = DXCoil(DXCoilNum)%RatedTotCap(Mode)
          ELSE IF(DXCoil(DXCoilNum)%CoolingCoilPresent)THEN
            DXCoil(DXCoilNum)%RatedTotCap(Mode) = DXCoolCap * DXCoil(DXCoilNum)%HeatSizeRatio
            RatedTotCapDes = DXCoil(DXCoilNum)%RatedTotCap(Mode)
          ELSE
            IF (CurSysNum > 0) THEN
              CALL CheckSysSizing(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name)
              VolFlowRate = DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode)
              IF (VolFlowRate >= SmallAirVolFlow) THEN
                IF (CurOASysNum > 0) THEN ! coil is in the OA stream
                  MixTemp = FinalSysSizing(CurSysNum)%CoolOutTemp
                  MixHumRat = FinalSysSizing(CurSysNum)%CoolOutHumRat
                  SupTemp = FinalSysSizing(CurSysNum)%PrecoolTemp
                  SupHumRat = FinalSysSizing(CurSysNum)%PrecoolHumRat
                ELSE ! coil is on the main air loop
                  SupTemp = FinalSysSizing(CurSysNum)%CoolSupTemp
                  SupHumRat = FinalSysSizing(CurSysNum)%CoolSupHumRat
                  IF (PrimaryAirSystem(CurSysNum)%NumOACoolCoils == 0) THEN ! there is no precooling of the OA stream
                    MixTemp = FinalSysSizing(CurSysNum)%CoolMixTemp
                    MixHumRat = FinalSysSizing(CurSysNum)%CoolMixHumRat
                  ELSE ! there is precooling of OA stream
                    IF (VolFlowRate > 0.0d0) THEN
                      OutAirFrac = FinalSysSizing(CurSysNum)%DesOutAirVolFlow / VolFlowRate
                    ELSE
                      OutAirFrac = 1.0d0
                    END IF
                    OutAirFrac = MIN(1.0d0,MAX(0.0d0,OutAirFrac))
                    MixTemp = OutAirFrac*FinalSysSizing(CurSysNum)%PrecoolTemp + &
                              (1.0d0-OutAirFrac)*FinalSysSizing(CurSysNum)%CoolRetTemp
                    MixHumRat = OutAirFrac*FinalSysSizing(CurSysNum)%PrecoolHumRat + &
                                (1.0d0-OutAirFrac)*FinalSysSizing(CurSysNum)%CoolRetHumRat
                  END IF
                END IF
                OutTemp = FinalSysSizing(CurSysNum)%CoolOutTemp
                rhoair = PsyRhoAirFnPbTdbW(StdBaroPress,MixTemp,MixHumRat,RoutineName)
                MixEnth = PsyHFnTdbW(MixTemp,MixHumRat,RoutineName)
                MixWetBulb = PsyTwbFnTdbWPb(MixTemp,MixHumRat,StdBaroPress,RoutineName)
                SupEnth = PsyHFnTdbW(SupTemp,SupHumRat,RoutineName)
                TotCapTempModFac = CurveValue(DXCoil(DXCoilNum)%CCapFTemp(Mode),MixWetBulb,OutTemp)
                CoolCapAtPeak = MAX(0.0d0, (rhoair * VolFlowRate * (MixEnth-SupEnth)))
                IF(TotCapTempModFac .GT. 0.0d0)THEN
                  RatedTotCapDes = CoolCapAtPeak / TotCapTempModFac
                ELSE
                  RatedTotCapDes = CoolCapAtPeak
                END IF
              ELSE
                RatedTotCapDes = 0.0d0
              END IF
              IF(RatedTotCapDes .GT. 0.0d0)THEN
                RatedVolFlowPerRatedTotCap = DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) / RatedTotCapDes
              ELSE
                RatedVolFlowPerRatedTotCap = 0.0d0
              END IF
              ! check capacity to make sure design volume flow per total capacity is within range
              IF (RatedVolFlowPerRatedTotCap .LT. MinRatedVolFlowPerRatedTotCap(DXCT)) THEN
                IF(DisplayExtraWarnings)THEN
                  CALL ShowWarningError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                  CALL ShowContinueError('...Rated Total Heating Capacity will be limited by the minimum rated volume flow per'// &
                                           ' rated total capacity ratio.')
                  CALL ShowContinueError('...DX coil volume flow rate (m3/s) = '// &
                                            TrimSigDigits(DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode),6))
                  CALL ShowContinueError('...Requested capacity (W) = '//TrimSigDigits(RatedTotCapDes,3))
                  CALL ShowContinueError('...Requested flow/capacity ratio (m3/s/W) = '// &
                                           TrimSigDigits(RatedVolFlowPerRatedTotCap,3))
                  CALL ShowContinueError('...Minimum flow/capacity ratio (m3/s/W) = '// &
                                           TrimSigDigits(MinRatedVolFlowPerRatedTotCap(DXCT),3))
                END IF
                RatedTotCapDes = DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) &
                                                     / MinRatedVolFlowPerRatedTotCap(DXCT)
                IF(DisplayExtraWarnings)THEN
                  CALL ShowContinueError('...Adjusted capacity (W) = '//TrimSigDigits(RatedTotCapDes,3))
                END IF
              ELSEIF (RatedVolFlowPerRatedTotCap .GT. MaxRatedVolFlowPerRatedTotCap(DXCT)) THEN
                IF(DisplayExtraWarnings)THEN
                  CALL ShowWarningError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                  CALL ShowContinueError('...Rated Total Heating Capacity will be limited by the maximum rated volume flow per'// &
                                           ' rated total capacity ratio.')
                  CALL ShowContinueError('...DX coil volume flow rate (m3/s) = '// &
                                            TrimSigDigits(DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode),6))
                  CALL ShowContinueError('...Requested capacity (W) = '//TrimSigDigits(RatedTotCapDes,3))
                  CALL ShowContinueError('...Requested flow/capacity ratio (m3/s/W) = '// &
                                            TrimSigDigits(RatedVolFlowPerRatedTotCap,3))
                  CALL ShowContinueError('...Maximum flow/capacity ratio (m3/s/W) = '// &
                                            TrimSigDigits(MaxRatedVolFlowPerRatedTotCap(DXCT),3))
                END IF
                RatedTotCapDes = DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) &
                                                      / MaxRatedVolFlowPerRatedTotCap(DXCT)
                IF(DisplayExtraWarnings)THEN
                  CALL ShowContinueError('...Adjusted capacity (W) = '//TrimSigDigits(RatedTotCapDes,3))
                END IF
              END IF
          ELSEIF (CurZoneEqNum > 0) THEN
              CALL CheckZoneSizing(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name)
              VolFlowRate = DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode)
              IF (VolFlowRate >= SmallAirVolFlow) THEN
                IF(ZoneEqSizing(CurZoneEqNum)%Capacity)THEN
                  IF(ZoneEqSizing(CurZoneEqNum)%DesHeatingLoad .GT. 0.0d0)THEN
                    DXCoil(DXCoilNum)%RatedTotCap(Mode) = ZoneEqSizing(CurZoneEqNum)%DesHeatingLoad
                  ELSE
                    DXCoil(DXCoilNum)%RatedTotCap(Mode) = ZoneEqSizing(CurZoneEqNum)%DesCoolingLoad * &
                                                        DXCoil(DXCoilNum)%HeatSizeRatio
                  END IF
                  RatedTotCapDes = DXCoil(DXCoilNum)%RatedTotCap(Mode)
                ELSE
                  IF(ZoneEqDXCoil)THEN
                    IF (ZoneEqSizing(CurZoneEqNum)%OAVolFlow > 0.0d0) THEN
                      MixTemp = FinalZoneSizing(CurZoneEqNum)%DesCoolCoilInTemp
                      MixHumRat = FinalZoneSizing(CurZoneEqNum)%DesCoolCoilInHumRat
                    ELSE
                      MixTemp = FinalZoneSizing(CurZoneEqNum)%ZoneRetTempAtCoolPeak
                      MixHumRat = FinalZoneSizing(CurZoneEqNum)%ZoneHumRatAtCoolPeak
                    END IF
                  ELSE
                    MixTemp = FinalZoneSizing(CurZoneEqNum)%DesCoolCoilInTemp
                    MixHumRat = FinalZoneSizing(CurZoneEqNum)%DesCoolCoilInHumRat
                  END IF
                  SupTemp = FinalZoneSizing(CurZoneEqNum)%CoolDesTemp
                  SupHumRat = FinalZoneSizing(CurZoneEqNum)%CoolDesHumRat
                  TimeStepNumAtMax = FinalZoneSizing(CurZoneEqNum)%TimeStepNumAtCoolMax
                  DDNum = FinalZoneSizing(CurZoneEqNum)%CoolDDNum
                  IF (DDNum > 0 .and. TimeStepNumAtMax > 0) THEN
                    OutTemp = DesDayWeath(DDNum)%Temp(TimeStepNumAtMax)
                  ELSE
                    OutTemp = 0.0d0
                  ENDIF
                  rhoair = PsyRhoAirFnPbTdbW(StdBaroPress,MixTemp,MixHumRat,RoutineName)
                  MixEnth = PsyHFnTdbW(MixTemp,MixHumRat,RoutineName)
                  MixWetBulb = PsyTwbFnTdbWPb(MixTemp,MixHumRat,StdBaroPress,RoutineName)
                  SupEnth = PsyHFnTdbW(SupTemp,SupHumRat,RoutineName)
                  TotCapTempModFac = CurveValue(DXCoil(DXCoilNum)%CCapFTemp(Mode),MixWetBulb,OutTemp)
                  CoolCapAtPeak = MAX(0.0d0, (rhoair * VolFlowRate * (MixEnth-SupEnth)))
                  IF(TotCapTempModFac .GT. 0.0d0)THEN
                    RatedTotCapDes = CoolCapAtPeak / TotCapTempModFac
                  ELSE
                    RatedTotCapDes = CoolCapAtPeak
                  END IF
                ENDIF
              ELSE
                RatedTotCapDes = 0.0d0
              END IF
              IF(RatedTotCapDes .GT. 0.0d0)THEN
                RatedVolFlowPerRatedTotCap = DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) / RatedTotCapDes
              ELSE
                RatedVolFlowPerRatedTotCap = 0.0d0
              END IF
              ! check capacity to make sure design volume flow per total capacity is within range
              IF (RatedVolFlowPerRatedTotCap .LT. MinRatedVolFlowPerRatedTotCap(DXCT)) THEN
                IF(DisplayExtraWarnings)THEN
                  CALL ShowWarningError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                  CALL ShowContinueError('...Rated Total Heating Capacity will be limited by the minimum rated volume flow per'// &
                                             ' rated total capacity ratio.')
                  CALL ShowContinueError('...DX coil volume flow rate (m3/s) = '// &
                                              TrimSigDigits(DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode),6))
                  CALL ShowContinueError('...Requested capacity (W) = '//TrimSigDigits(RatedTotCapDes,3))
                  CALL ShowContinueError('...Requested flow/capacity ratio (m3/s/W) = '// &
                                              TrimSigDigits(RatedVolFlowPerRatedTotCap,3))
                  CALL ShowContinueError('...Minimum flow/capacity ratio (m3/s/W) = '// &
                                              TrimSigDigits(MinRatedVolFlowPerRatedTotCap(DXCT),3))
                END IF
                RatedTotCapDes = DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) &
                                                         / MinRatedVolFlowPerRatedTotCap(DXCT)
                IF(DisplayExtraWarnings)THEN
                  CALL ShowContinueError('...Adjusted capacity (W) = '//TrimSigDigits(RatedTotCapDes,3))
                END IF
              ELSE IF (RatedVolFlowPerRatedTotCap .GT. MaxRatedVolFlowPerRatedTotCap(DXCT)) THEN
                IF(DisplayExtraWarnings)THEN
                  CALL ShowWarningError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                  CALL ShowContinueError('...Rated Total Heating Capacity will be limited by the maximum rated volume flow per'// &
                                             ' rated total capacity ratio.')
                  CALL ShowContinueError('...DX coil volume flow rate (m3/s) = '// &
                                              TrimSigDigits(DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode),6))
                  CALL ShowContinueError('...Requested capacity (W) = '//TrimSigDigits(RatedTotCapDes,3))
                  CALL ShowContinueError('...Requested flow/capacity ratio (m3/s/W) = '// &
                                              TrimSigDigits(RatedVolFlowPerRatedTotCap,3))
                  CALL ShowContinueError('...Maximum flow/capacity ratio (m3/s/W) = '// &
                                              TrimSigDigits(MaxRatedVolFlowPerRatedTotCap(DXCT),3))
                END IF
                RatedTotCapDes = DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) &
                                                        / MaxRatedVolFlowPerRatedTotCap(DXCT)
                IF(DisplayExtraWarnings)THEN
                  CALL ShowContinueError('...Adjusted capacity (W) = '//TrimSigDigits(RatedTotCapDes,3))
                END IF
              END IF
            END IF ! zone or sys coil
          END IF
        END IF
        IF (.NOT. HardSizeNoDesRun) THEN ! .AND. .NOT. DXCoil(DXCoilNum)%CoolingCoilPresent) THEN
          IF (IsAutoSize) THEN
            IF (DXCoil(DXCoilNum)%CoolingCoilPresent) THEN
              RatedTotCapDes = DXCoolCap * DXCoil(DXCoilNum)%HeatSizeRatio
              DXCoil(DXCoilNum)%RatedTotCap(Mode) = RatedTotCapDes
            ELSE
              DXCoil(DXCoilNum)%RatedTotCap(Mode) = RatedTotCapDes
            END IF
            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated Total Heating Capacity [W]', RatedTotCapDes)
          ELSE
            IF (DXCoil(DXCoilNum)%RatedTotCap(Mode) > 0.0d0 .AND. RatedTotCapDes > 0.0d0) THEN
              RatedTotCapUser = DXCoil(DXCoilNum)%RatedTotCap(Mode)
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated Total Heating Capacity [W]', RatedTotCapDes, &
                                  'User-Specified Rated Total Heating Capacity [W]', RatedTotCapUser)
              IF (DisplayExtraWarnings) THEN
                IF ((ABS(RatedTotCapDes - RatedTotCapUser)/RatedTotCapUser) > AutoVsHardSizingThreshold) THEN
                  CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                  //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                  CALL ShowContinueError('User-Specified Total Heating Capacity of '// &
                                      TRIM(RoundSigDigits(RatedTotCapUser,2))// ' [W]')
                  CALL ShowContinueError('differs from Design Size Total Heating Capacity of ' // &
                                      TRIM(RoundSigDigits(RatedTotCapDes,2))// ' [W]')
                  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 of design sizing
        END IF ! End of zone/sys coil type  Rated Total Heating Capacity
      END IF ! heating coil
        ! Sizing RatedSHR
      IsAutosize = .FALSE.
      IF (DXCoil(DXCoilNum)%RatedSHR(Mode) == AutoSize) THEN
        IsAutosize = .TRUE.
      END IF
      IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingSingleSpeed .OR. &
        DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed .OR. &
        DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl .OR. &
        DXCoil(DXCoilNum)%DXCoilType_Num == CoilVRF_Cooling) THEN
        CpAir = PsyCpAirFnWTdb(RatedInletAirHumRat,RatedInletAirTemp,RoutineName)
        IF (SizingDesRunThisAirSys .OR. SizingDesRunThisZone) HardSizeNoDesRun = .FALSE.
        IF (CurSysNum > 0) THEN
          IF (.NOT. IsAutosize .AND. .NOT. SizingDesRunThisAirSys) THEN
            HardSizeNoDesRun = .TRUE.
            IF (DXCoil(DXCoilNum)%RatedSHR(Mode) > 0.0d0) THEN
              IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) THEN
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                   TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                  'User-Specified Rated Sensible Heat Ratio', DXCoil(DXCoilNum)%RatedSHR(Mode))
              ELSEIF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'User-Specified Rated High Speed Sensible Heat Ratio', DXCoil(DXCoilNum)%RatedSHR(Mode))
              ELSE
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'User-Specified Rated Sensible Heat Ratio', DXCoil(DXCoilNum)%RatedSHR(Mode))
              END IF
            END IF
          ELSE ! autosize or hard-sized with system sizing data
            CALL CheckSysSizing(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name)
          END IF
        ELSE IF (CurZoneEqNum > 0) THEN
          IF (.NOT. IsAutosize .AND. .NOT. SizingDesRunThisZone) THEN
            HardSizeNoDesRun = .TRUE.
            IF (DXCoil(DXCoilNum)%RatedSHR(Mode) > 0.0d0) THEN
              IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) THEN
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                   TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                  'User-Specified Rated Sensible Heat Ratio', DXCoil(DXCoilNum)%RatedSHR(Mode))
              ELSEIF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'User-Specified Rated High Speed Sensible Heat Ratio', DXCoil(DXCoilNum)%RatedSHR(Mode))
              ELSE
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name//':'// &
                                   DXCoil(DXCoilNum)%CoilPerformanceName(Mode), &
                                  'User-Specified Rated Sensible Heat Ratio', DXCoil(DXCoilNum)%RatedSHR(Mode))
              END IF
            END IF
          ELSE ! autosize or hard-sized with system sizing data
            CALL CheckZoneSizing(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name)
          END IF
        END IF ! End of Sys/Zone coil type
        IF (.NOT. HardSizeNoDesRun) THEN
          IF (DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) >= SmallAirVolFLow .AND. DXCoil(DXCoilNum)%RatedTotCap(Mode) > 0.0d0) THEN
        ! For autosizing the rated SHR, we set a minimum SHR of 0.676 and a maximum of 0.798. The min SHR occurs occurs at the
        ! minimum flow / capacity ratio = MinRatedVolFlowPerRatedTotCap = 0.00004027 [m3/s / W] = 300 [cfm/ton].
        ! The max SHR occurs at maximum flow / capacity ratio = MaxRatedVolFlowPerRatedTotCap = 0.00006041 [m3/s / W] = 450 [cfm/ton].
        ! For flow / capacity ratios between the min and max we linearly interpolate between min and max SHR. Thus rated SHR is a
        ! linear function of the rated flow / capacity ratio. This linear function (see below) is the result of a regression
        ! of flow/capacity ratio vs SHR for several actual coils.
            RatedVolFlowPerRatedTotCap = DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode) / DXCoil(DXCoilNum)%RatedTotCap(Mode)
            IF (DXCT == RegularDXCoil) THEN
              IF (RatedVolFlowPerRatedTotCap > MaxRatedVolFlowPerRatedTotCap(DXCT)) THEN
                RatedSHRDes = 0.431d0 + 6086.d0*MaxRatedVolFlowPerRatedTotCap(DXCT)
              ELSE IF (RatedVolFlowPerRatedTotCap < MinRatedVolFlowPerRatedTotCap(DXCT)) THEN
                RatedSHRDes = 0.431d0 + 6086.d0*MinRatedVolFlowPerRatedTotCap(DXCT)
              ELSE
                RatedSHRDes = 0.431d0 + 6086.d0*RatedVolFlowPerRatedTotCap
              END IF
            ELSE ! DOASDXCoil, or DXCT = 2
              IF (RatedVolFlowPerRatedTotCap > MaxRatedVolFlowPerRatedTotCap(DXCT)) THEN
                RatedSHRDes = 0.389d0 + 7684.d0*MaxRatedVolFlowPerRatedTotCap(DXCT)
              ELSE IF (RatedVolFlowPerRatedTotCap < MinRatedVolFlowPerRatedTotCap(DXCT)) THEN
                RatedSHRDes = 0.389d0 + 7684.d0*MinRatedVolFlowPerRatedTotCap(DXCT)
              ELSE
                RatedSHRDes = 0.389d0 + 7684.d0*RatedVolFlowPerRatedTotCap
              END IF
            ENDIF
          ELSE
            RatedSHRDes = 1.0d0
          END IF
          IF (DXCoil(DXCoilNum)%RatedSHREMSOverrideOn(Mode)) THEN
              RatedSHRDes = DXCoil(DXCoilNum)%RatedSHREMSOverrideValue(mode)
          END IF
          IF (IsAutosize) THEN ! Design Size values are available for both autosized and hard-sized
            DXCoil(DXCoilNum)%RatedSHR(Mode) = RatedSHRDes
            IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) THEN
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                   TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                  'Design Size Rated Sensible Heat Ratio', RatedSHRDes)
            ELSEIF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated High Speed Sensible Heat Ratio', RatedSHRDes)
            ELSE
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated Sensible Heat Ratio', RatedSHRDes)
            END IF
          ELSE  ! Hard size with sizing data
            IF (DXCoil(DXCoilNum)%RatedSHR(Mode) > 0.0d0 .AND. RatedSHRDes > 0.0d0) THEN
              RatedSHRUser = DXCoil(DXCoilNum)%RatedSHR(Mode)
              IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) THEN
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                   TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                  'Design Size Rated Sensible Heat Ratio', RatedSHRDes, &
                                  'User-Specified Rated Sensible Heat Ratio', RatedSHRUser)
                IF (DisplayExtraWarnings) THEN
                  IF ((ABS(RatedSHRDes - RatedSHRUser)/RatedSHRUser) > AutoVsHardSizingThreshold) THEN
                    CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                      //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                    CALL ShowContinueError('User-Specified Sensible Heat Ratio of ' //TRIM(RoundSigDigits(RatedSHRUser,3)))
                    CALL ShowContinueError('differs from Design Size Sensible Heat Ratio of ' //  &
                                      TRIM(RoundSigDigits(RatedSHRDes,3)))
                    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
              ELSE IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated High Speed Sensible Heat Ratio', RatedSHRDes, &
                                  'User-Specified Rated High Speed Sensible Heat Ratio', RatedSHRUser)
                IF (DisplayExtraWarnings) THEN
                  IF ((ABS(RatedSHRDes - RatedSHRUser)/RatedSHRUser) > AutoVsHardSizingThreshold) THEN
                    CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                    //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                    CALL ShowContinueError('User-Specified Rated High Speed Sensible Heat Ratio of ' // &
                                          TRIM(RoundSigDigits(RatedSHRUser,3)))
                    CALL ShowContinueError('differs from Design Size Rated High Speed Sensible Heat Ratio of ' //  &
                                          TRIM(RoundSigDigits(RatedSHRDes,3)))
                    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
              ELSE
                CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated Sensible Heat Ratio', RatedSHRDes, &
                                  'User-Specified Rated Sensible Heat Ratio', RatedSHRUser)
                IF (DisplayExtraWarnings) THEN
                  IF ((ABS(RatedSHRDes - RatedSHRUser)/RatedSHRUser) > AutoVsHardSizingThreshold) THEN
                    CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                      //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                    CALL ShowContinueError('User-Specified Sensible Heat Ratio of ' //TRIM(RoundSigDigits(RatedSHRUser,3)))
                    CALL ShowContinueError('differs from Design Size Sensible Heat Ratio of ' //  &
                                      TRIM(RoundSigDigits(RatedSHRDes,3)))
                    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 ! End of reproting
      END IF ! End of Rated SHR
        ! Sizing evaporator condenser air flow
      IsAutosize = .FALSE.
      IF (DXCoil(DXCoilNum)%EvapCondAirFlow(Mode) == AutoSize) THEN
        IsAutoSize = .TRUE.
      END IF
      IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingSingleSpeed .OR. &
        DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed .OR. &
        DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) THEN
        ! Auto size condenser air flow to Total Capacity * 0.000114 m3/s/w (850 cfm/ton)
        EvapCondAirFlowDes = DXCoil(DXCoilNum)%RatedTotCap(Mode)*0.000114d0
        ! Design data is always available
        IF (IsAutosize) THEN
          DXCoil(DXCoilNum)%EvapCondAirFlow(Mode) = EvapCondAirFlowDes
          IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) THEN
            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                   TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                  'Design Size Evaporative Condenser Air Flow Rate [m3/s]',EvapCondAirFlowDes)
          ELSE IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size High Speed Evaporative Condenser Air Flow Rate [m3/s]',EvapCondAirFlowDes)
          ELSE
            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Evaporative Condenser Air Flow Rate [m3/s]',EvapCondAirFlowDes)
          END IF
        ELSE ! Hard size with sizig data
          IF (DXCoil(DXCoilNum)%EvapCondAirFlow(Mode) > 0.0d0 .AND. EvapCondAirFlowDes > 0.0d0) THEN
            EvapCondAirFlowUser = DXCoil(DXCoilNum)%EvapCondAirFlow(Mode)
            IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) THEN
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                   TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                   'Design Size Evaporative Condenser Air Flow Rate [m3/s]', EvapCondAirFlowDes, &
                                   'User-Specified Evaporative Condenser Air Flow Rate [m3/s]', EvapCondAirFlowUser)
            ELSE IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size High Speed Evaporative Condenser Air Flow Rate [m3/s]', EvapCondAirFlowDes, &
                                  'User-Specified High Speed Evaporative Condenser Air Flow Rate [m3/s]', EvapCondAirFlowUser)
            ELSE
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Evaporative Condenser Air Flow Rate [m3/s]', EvapCondAirFlowDes, &
                                  'User-Specified Evaporative Condenser Air Flow Rate [m3/s]', EvapCondAirFlowUser)
            END IF
            IF (DisplayExtraWarnings) THEN
              IF ((ABS(EvapCondAirFlowDes - EvapCondAirFlowUser)/EvapCondAirFlowUser) > AutoVsHardSizingThreshold) THEN
                CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                       //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                CALL ShowContinueError('User-Specified Evaporative Condenser Air Flow Rate of '// &
                                      TRIM(RoundSigDigits(EvapCondAirFlowUser,5))// ' [m3/s]')
                CALL ShowContinueError('differs from Design Size Evaporative Condenser Air Flow Rate of ' // &
                                      TRIM(RoundSigDigits(EvapCondAirFlowDes,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
        ! Sizing evaporative condenser air flow 2
      IsAutosize = .FALSE.
      IF (DXCoil(DXCoilNum)%EvapCondAirFlow2 == AutoSize) THEN
        IsAutosize = .TRUE.
      END IF
      IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
          ! Auto size low speed condenser air flow to 1/3 Total Capacity * 0.000114 m3/s/w (850 cfm/ton)
        EvapCondAirFlow2Des = 0.3333d0*DXCoil(DXCoilNum)%RatedTotCap(Mode)*0.000114d0
          ! Design Size data is always available
        IF (IsAutoSize) THEN
          DXCoil(DXCoilNum)%EvapCondAirFlow2 = EvapCondAirFlow2Des
          CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                        'Design Size Low Speed Evaporative Condenser Air Flow Rate [m3/s]', &
                         DXCoil(DXCoilNum)%EvapCondAirFlow2)
        ELSE
          IF (DXCoil(DXCoilNum)%EvapCondAirFlow2 > 0.0d0 .AND. EvapCondAirFlow2Des > 0.0d0 ) THEN
            EvapCondAirFlow2User = DXCoil(DXCoilNum)%EvapCondAirFlow2
            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                        'Design Size Low Speed Evaporative Condenser Air Flow Rate [m3/s]', EvapCondAirFlow2Des, &
                        'User-Specified Low Speed Evaporative Condenser Air Flow Rate [m3/s]', EvapCondAirFlow2User)
            IF (DisplayExtraWarnings) THEN
              IF ((ABS(EvapCondAirFlow2Des - EvapCondAirFlow2User)/EvapCondAirFlow2User) > AutoVsHardSizingThreshold) THEN
                CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                          //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                CALL ShowContinueError('User-Specified Low Speed Evaporative Condenser Air Flow Rate of '// &
                                      TRIM(RoundSigDigits(EvapCondAirFlow2User,5))// ' [m3/s]')
                CALL ShowContinueError('differs from Design Size Low Speed Evaporative Condenser Air Flow Rate of ' // &
                                      TRIM(RoundSigDigits(EvapCondAirFlow2Des,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
        ! Sizing evaporative condenser pump electric nominal power
      IsAutosize = .FALSE.
      IF (DXCoil(DXCoilNum)%EvapCondPumpElecNomPower(Mode) == AutoSize) THEN
        IsAutosize = .TRUE.
      END IF
      IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingSingleSpeed .OR. &
        DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed .OR. &
        DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) THEN
         ! Auto size high speed evap condenser pump power to Total Capacity * 0.004266 w/w (15 w/ton)
        EvapCondPumpElecNomPowerDes = DXCoil(DXCoilNum)%RatedTotCap(Mode)*0.004266d0
        IF (IsAutoSize) THEN
          DXCoil(DXCoilNum)%EvapCondPumpElecNomPower(Mode) = EvapCondPumpElecNomPowerDes
          IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) THEN
            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                'Design Size Evaporative Condenser Pump Rated Power Consumption [W]', &
                                EvapCondPumpElecNomPowerDes)
          ELSE IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                'Design Size High Speed Evaporative Condenser Pump Rated Power Consumption [W]', &
                                EvapCondPumpElecNomPowerDes)
          ELSE
            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                'Design Size Evaporative Condenser Pump Rated Power Consumption [W]', &
                                EvapCondPumpElecNomPowerDes)
          END IF
        ELSE
          IF (DXCoil(DXCoilNum)%EvapCondPumpElecNomPower(Mode) > 0.0d0 .AND. EvapCondPumpElecNomPowerDes > 0.0d0 &
               .AND. .NOT. HardSizeNoDesRun ) THEN
            EvapCondPumpElecNomPowerUser = DXCoil(DXCoilNum)%EvapCondPumpElecNomPower(Mode)
            IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoStageWHumControl) THEN
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, TRIM(DXCoil(DXCoilNum)%Name)//':'// &
                                 TRIM(DXCoil(DXCoilNum)%CoilPerformanceName(Mode)), &
                                'Design Size Evaporative Condenser Pump Rated Power Consumption [W]', &
                                EvapCondPumpElecNomPowerDes, &
                                'User-Specified Evaporative Condenser Pump Rated Power Consumption [W]', &
                                EvapCondPumpElecNomPowerUser)
            ELSE IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                'Design Size High Speed Evaporative Condenser Pump Rated Power Consumption [W]', &
                                EvapCondPumpElecNomPowerDes, &
                                'User-Specified High Speed Evaporative Condenser Pump Rated Power Consumption [W]', &
                                EvapCondPumpElecNomPowerUser)
            ELSE
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                'Design Size Evaporative Condenser Pump Rated Power Consumption [W]', &
                                EvapCondPumpElecNomPowerDes, &
                                'User-Specified Evaporative Condenser Pump Rated Power Consumption [W]', &
                                EvapCondPumpElecNomPowerUser)
            END IF
            IF (DisplayExtraWarnings) THEN
              IF ((ABS(EvapCondPumpElecNomPowerDes - EvapCondPumpElecNomPowerUser)/EvapCondPumpElecNomPowerUser)  &
                                   > AutoVsHardSizingThreshold) THEN
                CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                      //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                CALL ShowContinueError('User-Specified Evaporative Condenser Pump Rated Power Consumption of '// &
                                      TRIM(RoundSigDigits(EvapCondPumpElecNomPowerUser,2))// ' [W]')
                CALL ShowContinueError('differs from Design Size Evaporative Condenser Pump Rated Power Consumption of ' // &
                                      TRIM(RoundSigDigits(EvapCondPumpElecNomPowerDes,2))// ' [W]')
                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
        ! Sizing low speed evaporative condenser pump electric nominal power
      IsAutosize = .FALSE.
      IF (DXCoil(DXCoilNum)%EvapCondPumpElecNomPower2 == AutoSize) THEN
        IsAutosize = .TRUE.
      END IF
      IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
          !Auto size low speed evap condenser pump power to 1/3 Total Capacity * 0.004266 w/w (15 w/ton)
        EvapCondPumpElecNomPower2Des = 0.3333d0*DXCoil(DXCoilNum)%RatedTotCap(Mode)*0.004266d0
        IF (IsAutosize) THEN
          DXCoil(DXCoilNum)%EvapCondPumpElecNomPower2 = EvapCondPumpElecNomPower2Des
          CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                              'Design Size Low Speed Evaporative Condenser Pump Rated Power Consumption [W]', &
                               EvapCondPumpElecNomPower2Des)
        ELSE
          IF (DXCoil(DXCoilNum)%EvapCondPumpElecNomPower2 > 0.0d0 .AND. EvapCondPumpElecNomPower2Des > 0.0d0 &
              .AND. .NOT. HardSizeNoDesRun ) THEN
            EvapCondPumpElecNomPower2User = DXCoil(DXCoilNum)%EvapCondPumpElecNomPower2
            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                              'Design Size Low Speed Evaporative Condenser Pump Rated Power Consumption [W]', &
                               EvapCondPumpElecNomPower2Des, &
                              'User-Specified Low Speed Evaporative Condenser Pump Rated Power Consumption [W]', &
                               EvapCondPumpElecNomPower2User)
            IF (DisplayExtraWarnings) THEN
              IF ((ABS(EvapCondPumpElecNomPower2Des - EvapCondPumpElecNomPower2User)/EvapCondPumpElecNomPower2User) &
                                                       > AutoVsHardSizingThreshold) THEN
                CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for '&
                                        //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                CALL ShowContinueError('User-Specified Low Speed Evaporative Condenser Pump Rated Power Consumption of '// &
                                      TRIM(RoundSigDigits(EvapCondPumpElecNomPower2User,2))// ' [W]')
                CALL ShowContinueError('differs from Design Size Low Speed Evaporative Condenser Pump Rated Power Consumption' &
                                      // ' of ' //   TRIM(RoundSigDigits(EvapCondPumpElecNomPower2Des,2))// ' [W]')
                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
        ! Sizing rated low speed air flow rate
      IsAutosize = .FALSE.
      IF (DXCoil(DXCoilNum)%RatedAirVolFlowRate2 == AutoSize) THEN
        IsAutoSize = .TRUE.
      END IF
      IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
        RatedAirVolFlowRate2Des = 0.3333d0*DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode)
          ! Design Size data is always available
        IF (IsAutosize) THEN
          DXCoil(DXCoilNum)%RatedAirVolFlowRate2 = RatedAirVolFlowRate2Des
          CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated Low Speed Air Flow Rate [m3/s]', RatedAirVolFlowRate2Des)
        ELSE
          IF (DXCoil(DXCoilNum)%RatedAirVolFlowRate2 > 0.0d0 .AND. RatedAirVolFlowRate2Des > 0.0d0 &
            .AND. .NOT. HardSizeNoDesRun) THEN
            RatedAirVolFlowRate2User = DXCoil(DXCoilNum)%RatedAirVolFlowRate2
            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated Low Speed Air Flow Rate [m3/s]', RatedAirVolFlowRate2Des, &
                                  'User-Specified Rated Low Speed Air Flow Rate [m3/s]', RatedAirVolFlowRate2User)
            IF (DisplayExtraWarnings) THEN
              IF ((ABS(RatedAirVolFlowRate2Des - RatedAirVolFlowRate2User)/RatedAirVolFlowRate2User) >   &
                      AutoVsHardSizingThreshold) THEN
                CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                      //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                CALL ShowContinueError('User-Specified Rated Low Speed Air Flow Rate of '// &
                                      TRIM(RoundSigDigits(RatedAirVolFlowRate2User,5))// ' [m3/s]')
                CALL ShowContinueError('differs from Design Size Rated Low Speed Air Flow Rate  of ' // &
                                      TRIM(RoundSigDigits(RatedAirVolFlowRate2Des,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
        ! Sizing rated low speed total cooling capacity
      IsAutosize = .FALSE.
      IF (DXCoil(DXCoilNum)%RatedTotCap2 == AutoSize) THEN
        IsAutoSize = .TRUE.
      END IF
      IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
        RatedTotCap2Des = 0.3333d0*DXCoil(DXCoilNum)%RatedTotCap(Mode)
          ! Design Size data is always available
        IF (IsAutosize) THEN
          DXCoil(DXCoilNum)%RatedTotCap2 = RatedTotCap2Des
          CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated Low Speed Total Cooling Capacity (gross) [W]', RatedTotCap2Des)
        ELSE
          IF (DXCoil(DXCoilNum)%RatedTotCap2 > 0.0d0 .AND. RatedTotCap2Des > 0.d0 &
              .AND. .NOT. HardSizeNoDesRun ) THEN
            RatedTotCap2User = DXCoil(DXCoilNum)%RatedTotCap2
            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated Low Speed Total Cooling Capacity (gross) [W]', RatedTotCap2Des, &
                                  'User-Specified Rated Low Speed Total Cooling Capacity (gross) [W]', RatedTotCap2User)
            IF (DisplayExtraWarnings) THEN
              IF ((ABS(RatedTotCap2Des - RatedTotCap2User)/RatedTotCap2User) > AutoVsHardSizingThreshold) THEN
                CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                      //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                CALL ShowContinueError('User-Specified Rated Low Speed Total Cooling Capacity (gross) of '// &
                                      TRIM(RoundSigDigits(RatedTotCap2User,2))// ' [W]')
                CALL ShowContinueError('differs from Design Size Rated Low Speed Total Cooling Capacity (gross) of ' // &
                                      TRIM(RoundSigDigits(RatedTotCap2Des,2))// ' [W]')
                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
      IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
        IF(DXCoil(DXCoilNum)%EvapCondAirFlow2 .GT. DXCoil(DXCoilNum)%EvapCondAirFlow(Mode)) THEN
          CALL ShowSevereError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name)//', '// &
                  'Evaporative Condenser low speed air flow must be less than or equal to high speed air flow.')
          CALL ShowContinueError('Instead, '//TRIM(RoundSigDigits(DXCoil(DXCoilNum)%EvapCondAirFlow2,2))//' > '//  &
                  TRIM(RoundSigDigits(DXCoil(DXCoilNum)%EvapCondAirFlow(Mode),2)))
          CALL ShowFatalError('Preceding conditions cause termination.')
        END IF
        IF(DXCoil(DXCoilNum)%EvapCondPumpElecNomPower2 .GT. DXCoil(DXCoilNum)%EvapCondPumpElecNomPower(Mode))THEN
          CALL ShowSevereError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name)//', '// &
                  'Evaporative Condenser low speed pump power must be less than or equal to high speed pump power.')
          CALL ShowContinueError('Instead, '//TRIM(RoundSigDigits(DXCoil(DXCoilNum)%EvapCondPumpElecNomPower2,2))//' > '//  &
                  TRIM(RoundSigDigits(DXCoil(DXCoilNum)%EvapCondPumpElecNomPower(Mode),2)))
          CALL ShowFatalError('Preceding conditions cause termination.')
        END IF
        IF(DXCoil(DXCoilNum)%RatedTotCap2 .GT. DXCoil(DXCoilNum)%RatedTotCap(Mode))THEN
          CALL ShowSevereError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name)//', '// &
                  'Rated Total Cooling Capacity, Low Speed must be less than or equal to '// &
                  'Rated Total Cooling Capacity, High Speed.')
          CALL ShowContinueError('Instead, '//TRIM(RoundSigDigits(DXCoil(DXCoilNum)%RatedTotCap2,2))//' > '//  &
                  TRIM(RoundSigDigits(DXCoil(DXCoilNum)%RatedTotCap(Mode),2)))
          CALL ShowFatalError('Preceding conditions cause termination.')
        END IF
        IF(DXCoil(DXCoilNum)%RatedAirVolFlowRate2 .GT. DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode))THEN
          CALL ShowFatalError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name)//', '// &
                  'Rated Air Volume Flow Rate, low speed must be less than or equal to '//&
                  'Rated Air Volume Flow Rate, high speed.')
          CALL ShowContinueError('Instead, '//TRIM(RoundSigDigits(DXCoil(DXCoilNum)%RatedAirVolFlowRate2,2))//' > '//  &
                  TRIM(RoundSigDigits(DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode),2)))
          CALL ShowFatalError('Preceding conditions cause termination.')
        END IF
      END IF
    !END IF
        ! Sizing rated low speed SHR2
      IsAutosize = .FALSE.
      IF (DXCoil(DXCoilNum)%RatedSHR2 == AutoSize) THEN
        IsAutoSize = .TRUE.
      END IF
      IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingTwoSpeed) THEN
        RatedSHR2Des = DXCoil(DXCoilNum)%RatedSHR(Mode)
          ! Design Size data is always available
        IF (IsAutosize) THEN
          DXCoil(DXCoilNum)%RatedSHR2 = RatedSHR2Des
          CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated Low Speed Sensible Heat Ratio', RatedSHR2Des)
        ELSE
          IF (DXCoil(DXCoilNum)%RatedSHR2 > 0.0d0 .AND. RatedSHR2Des > 0.0d0 .AND. .NOT. HardSizeNoDesRun) THEN
            RatedSHR2User = DXCoil(DXCoilNum)%RatedSHR2
            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                  'Design Size Rated Low Speed Sensible Heat Ratio', RatedSHR2Des, &
                                  'User-Specified Rated Low Speed Sensible Heat Ratio', RatedSHR2User)
            IF (DisplayExtraWarnings) THEN
              IF ((ABS(RatedSHR2Des - RatedSHR2User)/RatedSHR2User) > AutoVsHardSizingThreshold) THEN
                CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                      //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                CALL ShowContinueError('User-Specified Rated Low Speed Sensible Heat Ratio of '// &
                                      TRIM(RoundSigDigits(RatedSHR2User,3)))
                CALL ShowContinueError('differs from Design Size Rated Low Speed Sensible Heat Ratio of ' // &
                                      TRIM(RoundSigDigits(RatedSHR2Des,3)))
                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
        ! Sizing resistive defrost heater capacity
      IsAutosize = .FALSE.
      IF (DXCoil(DXCoilNum)%DefrostCapacity == AutoSize) THEN
        IsAutoSize = .TRUE.
      END IF
      IF (DXCoil(DXCoilNum)%DXCoilType_Num /= CoilVRF_Heating) THEN
      !IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_MultiSpeedHeating .OR. &
      !    DXCoil(DXCoilNum)%DXCoilType_Num == Coil_HeatingAirToAirVariableSpeed) THEN
        IF (DXCoil(DXCoilNum)%DefrostStrategy == Resistive) THEN
          DefrostCapacityDes = DXCoolCap
          IF (IsAutosize) THEN
            DXCoil(DXCoilNum)%DefrostCapacity = DefrostCapacityDes
            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                'Design Size Resistive Defrost Heater Capacity [W]', DefrostCapacityDes)
          ELSE
            IF (DXCoil(DXCoilNum)%DefrostCapacity > 0.0d0 .AND. DefrostCapacityDes > 0.0d0 .AND. .NOT. HardSizeNoDesRun) THEN
              DefrostCapacityUser = DXCoil(DXCoilNum)%DefrostCapacity
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                                'Design Size Resistive Defrost Heater Capacity [W]', DefrostCapacityDes, &
                                'User-Specified Resistive Defrost Heater Capacity [W]', DefrostCapacityUser)
              IF (DisplayExtraWarnings) THEN
                IF ((ABS(DefrostCapacityDes - DefrostCapacityUser)/DefrostCapacityUser) > AutoVsHardSizingThreshold) THEN
                  CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                       //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                  CALL ShowContinueError('User-Specified Resistive Defrost Heater Capacity of '// &
                                      TRIM(RoundSigDigits(DefrostCapacityUser,2))// ' [W]')
                  CALL ShowContinueError('differs from Design Size Resistive Defrost Heater Capacity of ' // &
                                      TRIM(RoundSigDigits(DefrostCapacityDes,2))// ' [W]')
                  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
        ELSE
          DXCoil(DXCoilNum)%DefrostCapacity = 0.0d0
        END IF
      END IF
    END DO ! End capacity stages loop
  END DO ! End dehumidification modes loop
    ! Autosizing for multispeed cooling coil
  IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_MultiSpeedCooling) THEN
    ! flow rate auto size
    DO Mode = DXCoil(DXCoilNum)%NumOfSpeeds,1,-1
        ! Sizing multispeed air volume flow rate
      IsAutosize = .FALSE.
      IF (DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) == AutoSize) THEN
        IsAutosize = .TRUE.
      END IF
      IF (Mode == DXCoil(DXCoilNum)%NumOfSpeeds) THEN
        IF (CurSysNum > 0) THEN
          IF (SizingDesRunThisAirSys ) HardSizeNoDesRun = .FALSE.
          IF (.NOT. IsAutosize .AND. .NOT. SizingDesRunThisAirSys) THEN
            HardSizeNoDesRun = .TRUE.
            IF (DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) > 0.0d0) THEN
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                        'Speed '//TRIM(TrimSigDigits(Mode))//' User-Specified Rated Air Flow Rate [m3/s]', &
                        DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode))
            END IF
          ELSE
            CALL CheckSysSizing(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name)
            IF (CurOASysNum > 0) THEN
              MSRatedAirVolFlowRateDes = FinalSysSizing(CurSysNum)%DesOutAirVolFlow
            ELSE
              MSRatedAirVolFlowRateDes = FinalSysSizing(CurSysNum)%DesMainVolFlow
            END IF
          END IF
        ELSE IF (CurZoneEqNum > 0) THEN
          IF (SizingDesRunThisZone) HardSizeNoDesRun = .FALSE.
          IF (.NOT. IsAutosize .AND. .NOT. SizingDesRunThisZone) THEN
            HardSizeNoDesRun = .TRUE.
            IF (DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) > 0.0d0) THEN
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                        'Speed '//TRIM(TrimSigDigits(Mode))//' User-Specified Rated Air Flow Rate [m3/s]', &
                        DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode))
            END IF
          ELSE
            CALL CheckZoneSizing(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name)
            MSRatedAirVolFlowRateDes = MAX(FinalZoneSizing(CurZoneEqNum)%DesCoolVolFlow, &
                                                      FinalZoneSizing(CurZoneEqNum)%DesHeatVolFlow)
          END IF
        END IF
        IF (MSRatedAirVolFlowRateDes < SmallAirVolFlow) THEN
          MSRatedAirVolFlowRateDes = 0.0d0
        END IF
      ELSE
        MSRatedAirVolFlowRateDes = DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(DXCoil(DXCoilNum)%NumOfSpeeds)* &
                                                       Mode/DXCoil(DXCoilNum)%NumOfSpeeds
      END IF
      IF (.NOT. HardSizeNoDesRun) THEN
        IF (IsAutosize) THEN
          DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) = MSRatedAirVolFlowRateDes
          CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                    'Speed '//TRIM(TrimSigDigits(Mode))//' Design Size Rated Air Flow Rate [m3/s]', &
                    MSRatedAirVolFlowRateDes)
        ELSE
          IF (DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) > 0.0d0 .AND. MSRatedAirVolFlowRateDes > 0.d0 &
             .AND. .NOT. HardSizeNoDesRun ) THEN
            MSRatedAirVolFlowRateUser = DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode)
            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                    'Speed '//TRIM(TrimSigDigits(Mode))//' Design Size Rated Air Flow Rate [m3/s]', &
                    MSRatedAirVolFlowRateDes, &
                    'Speed '//TRIM(TrimSigDigits(Mode))//' User-Specified Rated Air Flow Rate [m3/s]', &
                    MSRatedAirVolFlowRateUser)
            IF (DisplayExtraWarnings) THEN
              IF ((ABS(MSRatedAirVolFlowRateDes - MSRatedAirVolFlowRateUser)/MSRatedAirVolFlowRateUser) &
                                     > AutoVsHardSizingThreshold) THEN
                CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                      //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                CALL ShowContinueError('User-Specified Rated Air Volume Flow Rate of '// &
                                      TRIM(RoundSigDigits(MSRatedAirVolFlowRateUser,5))// ' [m3/s]')
                CALL ShowContinueError('differs from Design Size Rated Air Volume Flow Rate of ' // &
                                      TRIM(RoundSigDigits(MSRatedAirVolFlowRateDes,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 DO
      ! Ensure flow rate at lower speed must be lower or equal to the flow rate at higher speed. Otherwise, a severe error is isssued.
    DO Mode = 1,DXCoil(DXCoilNum)%NumOfSpeeds-1
      IF (DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) .GT. DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode+1)) THEN
        CALL ShowWarningError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name)//', '// &
          'Speed '//Trim(TrimSigDigits(Mode))//' Rated Air Flow Rate must be less than or equal to '//&
          'Speed '//Trim(TrimSigDigits(Mode+1))//' Rated Air Flow Rate.')
        CALL ShowContinueError('Instead, '//TRIM(RoundSigDigits(DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode),2))//' > '//  &
                  TRIM(RoundSigDigits(DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode+1),2)))
        CALL ShowFatalError('Preceding conditions cause termination.')
      END IF
    END DO
      ! Sizing multispeed rated total capacity
    DO Mode = DXCoil(DXCoilNum)%NumOfSpeeds,1,-1
      IsAutosize = .FALSE.
      IF (DXCoil(DXCoilNum)%MSRatedTotCap(Mode) == AutoSize) Then
        IsAutosize = .TRUE.
      END IF
      IF (Mode .eq. DXCoil(DXCoilNum)%NumOfSpeeds) THEN
        IF (CurSysNum > 0) THEN
          IF (SizingDesRunThisAirSys) HardSizeNoDesRun = .FALSE.
          IF (.NOT. IsAutosize .AND. .NOT. SizingDesRunThisAirSys) THEN
            HardSizeNoDesRun = .TRUE.
            IF (DXCoil(DXCoilNum)%MSRatedTotCap(Mode) > 0.0d0) THEN
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                    'Speed '//TRIM(TrimSigDigits(Mode))//' User-Specified Total Cooling Capacity [W]', &
                    DXCoil(DXCoilNum)%MSRatedTotCap(Mode))
            END IF
          ELSE ! autosize or hard-sized with system sizing data
            CALL CheckSysSizing(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name)
            VolFlowRate = DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode)
            IF (VolFlowRate >= SmallAirVolFlow) THEN
              IF (CurOASysNum > 0) THEN ! coil is in the OA stream
                MixTemp = FinalSysSizing(CurSysNum)%CoolOutTemp
                MixHumRat = FinalSysSizing(CurSysNum)%CoolOutHumRat
                SupTemp = FinalSysSizing(CurSysNum)%PrecoolTemp
                SupHumRat = FinalSysSizing(CurSysNum)%PrecoolHumRat
              ELSE ! coil is on the main air loop
                SupTemp = FinalSysSizing(CurSysNum)%CoolSupTemp
                SupHumRat = FinalSysSizing(CurSysNum)%CoolSupHumRat
                IF (PrimaryAirSystem(CurSysNum)%NumOACoolCoils == 0) THEN ! there is no precooling of the OA stream
                  MixTemp = FinalSysSizing(CurSysNum)%CoolMixTemp
                  MixHumRat = FinalSysSizing(CurSysNum)%CoolMixHumRat
                ELSE ! there is precooling of OA stream
                  IF (VolFlowRate > 0.0d0) THEN
                    OutAirFrac = FinalSysSizing(CurSysNum)%DesOutAirVolFlow / VolFlowRate
                  ELSE
                    OutAirFrac = 1.0d0
                  END IF
                  OutAirFrac = MIN(1.0d0,MAX(0.0d0,OutAirFrac))
                  MixTemp = OutAirFrac*FinalSysSizing(CurSysNum)%PrecoolTemp + &
                              (1.0d0-OutAirFrac)*FinalSysSizing(CurSysNum)%CoolRetTemp
                  MixHumRat = OutAirFrac*FinalSysSizing(CurSysNum)%PrecoolHumRat + &
                                (1.0d0-OutAirFrac)*FinalSysSizing(CurSysNum)%CoolRetHumRat
                END IF
              END IF
              OutTemp = FinalSysSizing(CurSysNum)%CoolOutTemp
              rhoair = PsyRhoAirFnPbTdbW(StdBaroPress,MixTemp,MixHumRat,RoutineName)
              MixEnth = PsyHFnTdbW(MixTemp,MixHumRat,RoutineName)
              MixWetBulb = PsyTwbFnTdbWPb(MixTemp,MixHumRat,StdBaroPress,RoutineName)
              SupEnth = PsyHFnTdbW(SupTemp,SupHumRat,RoutineName)
              TotCapTempModFac = CurveValue(DXCoil(DXCoilNum)%MSCCapFTemp(Mode),MixWetBulb,OutTemp)
              CoolCapAtPeak = MAX(0.0d0, (rhoair * VolFlowRate * (MixEnth-SupEnth)))
              IF(TotCapTempModFac .GT. 0.0d0)THEN
                MSRatedTotCapDes = CoolCapAtPeak / TotCapTempModFac
              ELSE
                MSRatedTotCapDes = CoolCapAtPeak
              END IF
              IF(MSRatedTotCapDes .GT. 0.0d0)THEN
                RatedVolFlowPerRatedTotCap = DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) / MSRatedTotCapDes
              ELSE
                RatedVolFlowPerRatedTotCap = 0.0d0
              END IF
              ! check capacity to make sure design volume flow per total capacity is within range
              IF (RatedVolFlowPerRatedTotCap .LT. MinRatedVolFlowPerRatedTotCap(DXCT)) THEN
                IF(DisplayExtraWarnings)THEN
                  CALL ShowWarningError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                  CALL ShowContinueError('...Rated Total Cooling Capacity will be limited by the minimum rated volume flow per'// &
                                         ' rated total capacity ratio.')
                  CALL ShowContinueError('...DX coil speed = '//TrimSigDigits(Mode,0))
                  CALL ShowContinueError('...DX coil volume flow rate (m3/s) = '// &
                                          TrimSigDigits(DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode),6))
                  CALL ShowContinueError('...Requested capacity (W) = '//TrimSigDigits(MSRatedTotCapDes,3))
                  CALL ShowContinueError('...Requested flow/capacity ratio (m3/s/W) = '// &
                                          TrimSigDigits(RatedVolFlowPerRatedTotCap,3))
                  CALL ShowContinueError('...Minimum flow/capacity ratio (m3/s/W) = '// &
                                          TrimSigDigits(MinRatedVolFlowPerRatedTotCap(DXCT),3))
                END IF
                MSRatedTotCapDes = DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) / MinRatedVolFlowPerRatedTotCap(DXCT)
                IF(DisplayExtraWarnings)THEN
                  CALL ShowContinueError('...Adjusted capacity (W) = '//TrimSigDigits(MSRatedTotCapDes,3))
                END IF
              ELSEIF (RatedVolFlowPerRatedTotCap .GT. MaxRatedVolFlowPerRatedTotCap(DXCT)) THEN
                IF(DisplayExtraWarnings)THEN
                  CALL ShowWarningError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                  CALL ShowContinueError('...Rated Total Cooling Capacity will be limited by the maximum rated volume flow per'// &
                                         ' rated total capacity ratio.')
                  CALL ShowContinueError('...DX coil speed = '//TrimSigDigits(Mode,0))
                  CALL ShowContinueError('...DX coil volume flow rate (m3/s) = '// &
                                          TrimSigDigits(DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode),6))
                  CALL ShowContinueError('...Requested capacity (W) = '//TrimSigDigits(MSRatedTotCapDes,3))
                  CALL ShowContinueError('...Requested flow/capacity ratio (m3/s/W) = '// &
                                          TrimSigDigits(RatedVolFlowPerRatedTotCap,3))
                  CALL ShowContinueError('...Maximum flow/capacity ratio (m3/s/W) = '// &
                                          TrimSigDigits(MaxRatedVolFlowPerRatedTotCap(DXCT),3))
                END IF
                MSRatedTotCapDes = DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) / MaxRatedVolFlowPerRatedTotCap(DXCT)
                IF(DisplayExtraWarnings)THEN
                  CALL ShowContinueError('...Adjusted capacity (W) = '//TrimSigDigits(MSRatedTotCapDes,3))
                END IF
              END IF
            ELSE
              MSRatedTotCapDes = 0.0d0
            END IF
          END IF
        ELSE IF (CurZoneEqNum > 0) THEN
          IF (SizingDesRunThisZone) HardSizeNoDesRun = .FALSE.
          IF (.NOT. IsAutosize .AND. .NOT. SizingDesRunThisZone) THEN
            HardSizeNoDesRun = .TRUE.
            IF (DXCoil(DXCoilNum)%MSRatedTotCap(Mode) > 0.0d0) THEN
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                    'Speed '//TRIM(TrimSigDigits(Mode))//' User-Specified Total Cooling Capacity [W]', &
                    DXCoil(DXCoilNum)%MSRatedTotCap(Mode))
            END IF
          ELSE ! autosize or hard-sized with system sizing data
            CALL CheckZoneSizing(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name)
            VolFlowRate = DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode)
            IF (VolFlowRate >= SmallAirVolFlow) THEN
              MixTemp = FinalZoneSizing(CurZoneEqNum)%DesCoolCoilInTemp
              MixHumRat = FinalZoneSizing(CurZoneEqNum)%DesCoolCoilInHumRat
              SupTemp = FinalZoneSizing(CurZoneEqNum)%CoolDesTemp
              SupHumRat = FinalZoneSizing(CurZoneEqNum)%CoolDesHumRat
              TimeStepNumAtMax = FinalZoneSizing(CurZoneEqNum)%TimeStepNumAtCoolMax
              DDNum = FinalZoneSizing(CurZoneEqNum)%CoolDDNum
              IF (DDNum > 0 .and. TimeStepNumAtMax > 0) THEN
                OutTemp = DesDayWeath(DDNum)%Temp(TimeStepNumAtMax)
              ELSE
                OutTemp = 0.0d0
              ENDIF
              rhoair = PsyRhoAirFnPbTdbW(StdBaroPress,MixTemp,MixHumRat,RoutineName)
              MixEnth = PsyHFnTdbW(MixTemp,MixHumRat,RoutineName)
              MixWetBulb = PsyTwbFnTdbWPb(MixTemp,MixHumRat,StdBaroPress,RoutineName)
              SupEnth = PsyHFnTdbW(SupTemp,SupHumRat,RoutineName)
              TotCapTempModFac = CurveValue(DXCoil(DXCoilNum)%MSCCapFTemp(Mode),MixWetBulb,OutTemp)
              CoolCapAtPeak = MAX(0.0d0, (rhoair * VolFlowRate * (MixEnth-SupEnth)))
              IF(TotCapTempModFac .GT. 0.0d0)THEN
                MSRatedTotCapDes = CoolCapAtPeak / TotCapTempModFac
              ELSE
                MSRatedTotCapDes = CoolCapAtPeak
              END IF
              IF(MSRatedTotCapDes .GT. 0.0d0)THEN
                RatedVolFlowPerRatedTotCap = DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) / MSRatedTotCapDes
              ELSE
                RatedVolFlowPerRatedTotCap = 0.0d0
              END IF
              ! check capacity to make sure design volume flow per total capacity is within range
              IF (RatedVolFlowPerRatedTotCap .LT. MinRatedVolFlowPerRatedTotCap(DXCT)) THEN
                IF(DisplayExtraWarnings)THEN
                  CALL ShowWarningError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                  CALL ShowContinueError('...Rated Total Cooling Capacity will be limited by the minimum rated volume flow per'// &
                                         ' rated total capacity ratio.')
                  CALL ShowContinueError('...DX coil speed = '//TrimSigDigits(Mode,0))
                  CALL ShowContinueError('...DX coil volume flow rate (m3/s) = '// &
                                          TrimSigDigits(DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode),6))
                  CALL ShowContinueError('...Requested capacity (W) = '//TrimSigDigits(MSRatedTotCapDes,3))
                  CALL ShowContinueError('...Requested flow/capacity ratio (m3/s/W) = '// &
                                          TrimSigDigits(RatedVolFlowPerRatedTotCap,3))
                  CALL ShowContinueError('...Minimum flow/capacity ratio (m3/s/W) = '// &
                                          TrimSigDigits(MinRatedVolFlowPerRatedTotCap(DXCT),3))
                END IF
                MSRatedTotCapDes =DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) &
                                                      / MinRatedVolFlowPerRatedTotCap(DXCT)
                IF(DisplayExtraWarnings)THEN
                  CALL ShowContinueError('...Adjusted capacity (W) = '//TrimSigDigits(MSRatedTotCapDes,3))
                END IF
              ELSE IF (RatedVolFlowPerRatedTotCap .GT. MaxRatedVolFlowPerRatedTotCap(DXCT)) THEN
                IF(DisplayExtraWarnings)THEN
                  CALL ShowWarningError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                  CALL ShowContinueError('...Rated Total Cooling Capacity will be limited by the maximum rated volume flow per'// &
                                         ' rated total capacity ratio.')
                  CALL ShowContinueError('...DX coil speed = '//TrimSigDigits(Mode,0))
                  CALL ShowContinueError('...DX coil volume flow rate (m3/s) = '// &
                                          TrimSigDigits(DXCoil(DXCoilNum)%RatedAirVolFlowRate(Mode),6))
                  CALL ShowContinueError('...Requested capacity (W) = '//TrimSigDigits(MSRatedTotCapDes,3))
                  CALL ShowContinueError('...Requested flow/capacity ratio (m3/s/W) = '// &
                                          TrimSigDigits(RatedVolFlowPerRatedTotCap,3))
                  CALL ShowContinueError('...Maximum flow/capacity ratio (m3/s/W) = '// &
                                          TrimSigDigits(MaxRatedVolFlowPerRatedTotCap(DXCT),3))
                END IF
                MSRatedTotCapDes =DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) &
                                                      /MaxRatedVolFlowPerRatedTotCap(DXCT)
                IF(DisplayExtraWarnings)THEN
                  CALL ShowContinueError('...Adjusted capacity (W) = '//TrimSigDigits(MSRatedTotCapDes,3))
                END IF
              END IF
            ELSE
              MSRatedTotCapDes = 0.0d0
            END IF
          END IF
        END IF
      ELSE
        MSRatedTotCapDes = DXCoil(DXCoilNum)%MSRatedTotCap(DXCoil(DXCoilNum)%NumOfSpeeds)* &
                                                         Mode/DXCoil(DXCoilNum)%NumOfSpeeds
      END IF
      IF (.NOT. HardSizeNoDesRun) THEN
        IF (IsAutosize) THEN
          DXCoil(DXCoilNum)%MSRatedTotCap(Mode) = MSRatedTotCapDes
          CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                 'Speed '//TRIM(TrimSigDigits(Mode))//' Design Size Rated Total Cooling Capacity [W]', MSRatedTotCapDes)
        ELSE
          IF (DXCoil(DXCoilNum)%MSRatedTotCap(Mode) > 0.0d0 .AND. MSRatedTotCapDes > 0.0d0 .AND. .NOT. HardSizeNoDesRun) THEN
            MSRatedTotCapUser = DXCoil(DXCoilNum)%MSRatedTotCap(Mode)
            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                 'Speed '//TRIM(TrimSigDigits(Mode))//' Design Size Rated Total Cooling Capacity [W]', MSRatedTotCapDes, &
                 'Speed '//TRIM(TrimSigDigits(Mode))//' User-Specified Rated Total Cooling Capacity [W]', MSRatedTotCapUser)
            IF (DisplayExtraWarnings) THEN
              IF ((ABS(MSRatedTotCapDes - MSRatedTotCapUser)/MSRatedTotCapUser) > AutoVsHardSizingThreshold) THEN
                CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                      //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                CALL ShowContinueError('User-Specified Rated Total Cooling Capacity of '// &
                                      TRIM(RoundSigDigits(MSRatedTotCapUser,2))// ' [W]')
                CALL ShowContinueError('differs from Design Size Rated Totla Cooling Capacity of ' // &
                                      TRIM(RoundSigDigits(MSRatedTotCapDes,2))// ' [W]')
                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 DO
       ! Ensure capacity at lower speed must be lower or equal to the capacity at higher speed.
    DO Mode = 1,DXCoil(DXCoilNum)%NumOfSpeeds-1
      IF (DXCoil(DXCoilNum)%MSRatedTotCap(Mode) .GT. DXCoil(DXCoilNum)%MSRatedTotCap(Mode+1)) THEN
        CALL ShowWarningError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name)//', '// &
          'Speed '//Trim(TrimSigDigits(Mode))//' Rated Total Cooling Capacity must be less than or equal to '//&
          'Speed '//Trim(TrimSigDigits(Mode+1))//' Rated Total Cooling Capacity.')
        CALL ShowContinueError('Instead, '//TRIM(RoundSigDigits(DXCoil(DXCoilNum)%MSRatedTotCap(Mode),2))//' > '//  &
                  TRIM(RoundSigDigits(DXCoil(DXCoilNum)%MSRatedTotCap(Mode+1),2)))
        CALL ShowFatalError('Preceding conditions cause termination.')
      END IF
    END DO
    ! Rated SHR
    DO Mode = DXCoil(DXCoilNum)%NumOfSpeeds,1,-1
      IsAutosize = .FALSE.
      IF (DXCoil(DXCoilNum)%MSRatedSHR(Mode) == AutoSize) THEN
        IsAutosize = .TRUE.
      END IF
      IF (Mode .eq. DXCoil(DXCoilNum)%NumOfSpeeds) THEN
        IF (CurSysNum > 0) THEN
          IF (SizingDesRunThisAirSys) HardSizeNoDesRun = .FALSE.
          IF (.NOT. IsAutosize .AND. .NOT. SizingDesRunThisAirSys) THEN
            HardSizeNoDesRun = .TRUE.
            IF (DXCoil(DXCoilNum)%MSRatedSHR(Mode) > 0.0d0) THEN
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                        'Speed '//TRIM(TrimSigDigits(Mode))//' User-Specified Rated Sensible Heat Ratio', &
                        DXCoil(DXCoilNum)%MSRatedSHR(Mode))
            END IF
          ELSE ! autosize or hard-sized with system sizing data
            CALL CheckSysSizing(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name)
          END IF
        ELSE IF (CurZoneEqNum > 0) THEN
          IF (SizingDesRunThisZone)  HardSizeNoDesRun = .FALSE.
          IF (.NOT. IsAutosize .AND. .NOT. SizingDesRunThisZone) THEN
            HardSizeNoDesRun = .TRUE.
            IF (DXCoil(DXCoilNum)%MSRatedSHR(Mode) > 0.0d0) THEN
             CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                        'Speed '//TRIM(TrimSigDigits(Mode))//' User-Specified Rated Sensible Heat Ratio', &
                        DXCoil(DXCoilNum)%MSRatedSHR(Mode))
            END IF
          ELSE ! autosize or hard-sized with system sizing data
            CALL CheckZoneSizing(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name)
          END IF
        END IF
        IF (DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) >= SmallAirVolFLow .AND.   &
            DXCoil(DXCoilNum)%MSRatedTotCap(Mode) > 0.0d0) THEN
    ! For autosizing the rated SHR, we set a minimum SHR of 0.676 and a maximum of 0.798. The min SHR occurs occurs at the
    ! minimum flow / capacity ratio = MinRatedVolFlowPerRatedTotCap = 0.00004027 [m3/s / W] = 300 [cfm/ton].
    ! The max SHR occurs at maximum flow / capacity ratio = MaxRatedVolFlowPerRatedTotCap = 0.00006041 [m3/s / W] = 450 [cfm/ton].
    ! For flow / capacity ratios between the min and max we linearly interpolate between min and max SHR. Thus rated SHR is a
    ! linear function of the rated flow / capacity ratio. This linear function (see below) is the result of a regression
    ! of flow/capacity ratio vs SHR for several actual coils.
          RatedVolFlowPerRatedTotCap = DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) / DXCoil(DXCoilNum)%MSRatedTotCap(Mode)
          IF (RatedVolFlowPerRatedTotCap > MaxRatedVolFlowPerRatedTotCap(DXCT)) THEN
            MSRatedSHRDes = 0.431d0 + 6086.d0*MaxRatedVolFlowPerRatedTotCap(DXCT)
          ELSE IF (RatedVolFlowPerRatedTotCap < MinRatedVolFlowPerRatedTotCap(DXCT)) THEN
            MSRatedSHRDes = 0.431d0 + 6086.d0*MinRatedVolFlowPerRatedTotCap(DXCT)
          ELSE
            MSRatedSHRDes = 0.431d0 + 6086.d0*RatedVolFlowPerRatedTotCap
          END IF
        ELSE
          MSRatedSHRDes = 1.0d0
        END IF
      ELSE
        MSRatedSHRDes = DXCoil(DXCoilNum)%MSRatedSHR(Mode+1)
      END IF
      IF (.NOT. HardSizeNoDesRun) THEN
        IF (IsAutosize) THEN
          DXCoil(DXCoilNum)%MSRatedSHR(Mode) = MSRatedSHRDes
          CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                'Speed '//TRIM(TrimSigDigits(Mode))//' Design Size Rated Sensible Heat Ratio', MSRatedSHRDes)
        ELSE
          IF (DXCoil(DXCoilNum)%MSRatedSHR(Mode) > 0.0d0 .AND. MSRatedSHRDes > 0.0d0 .AND. .NOT. HardSizeNoDesRun) THEN
            MSRatedSHRUser = DXCoil(DXCoilNum)%MSRatedSHR(Mode)
            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                 'Speed '//TRIM(TrimSigDigits(Mode))//' Design Size Rated Sensible Heat Ratio', MSRatedSHRDes, &
                 'Speed '//TRIM(TrimSigDigits(Mode))//' User-Specified Rated Sensible Heat Ratio', MSRatedSHRUser)
            IF (DisplayExtraWarnings) THEN
              IF ((ABS(MSRatedSHRDes - MSRatedSHRUser)/MSRatedSHRUser) > AutoVsHardSizingThreshold) THEN
                CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                      //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                CALL ShowContinueError('User-Specified Rated Sensible Heat Ratio of '// &
                                      TRIM(RoundSigDigits(MSRatedSHRUser,3)))
                CALL ShowContinueError('differs from Design Size Rated Sensible Heat Ratio of ' // &
                                      TRIM(RoundSigDigits(MSRatedSHRDes,3)))
                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 DO
      ! Rated Evapovative condenser airflow rates
    DO Mode = 1,DXCoil(DXCoilNum)%NumOfSpeeds
      IsAutosize = .FALSE.
      IF (DXCoil(DXCoilNum)%MSEvapCondAirFlow(Mode) == AutoSize) THEN
        IsAutoSize = .TRUE.
      END IF
        ! Auto size condenser air flow to Total Capacity * 0.000114 m3/s/w (850 cfm/ton)
      MSEvapCondAirFlowDes = DXCoil(DXCoilNum)%MSRatedTotCap(Mode)*0.000114d0
      IF (IsAutosize) THEN
        DXCoil(DXCoilNum)%MSEvapCondAirFlow(Mode) = MSEvapCondAirFlowDes
        CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
            'Speed '//TRIM(TrimSigDigits(Mode))//' Design Size Evaporative Condenser Air Flow Rate [m3/s]', MSEvapCondAirFlowDes)
      ELSE
        IF (DXCoil(DXCoilNum)%MSEvapCondAirFlow(Mode) > 0.0d0 .AND. MSEvapCondAirFlowDes > 0.0d0 .AND. .NOT. HardSizeNoDesRun) THEN
          MSEvapCondAirFlowUser = DXCoil(DXCoilNum)%MSEvapCondAirFlow(Mode)
          CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
             'Speed '//TRIM(TrimSigDigits(Mode))//' Design Size Evaporative Condenser Air Flow Rate [m3/s]', MSEvapCondAirFlowDes, &
             'Speed '//TRIM(TrimSigDigits(Mode))//' User-Specified Evaporative Condenser Air Flow Rate [m3/s]',  &
             MSEvapCondAirFlowUser)
          IF (DisplayExtraWarnings) THEN
            IF ((ABS(MSEvapCondAirFlowDes - MSEvapCondAirFlowUser)/MSEvapCondAirFlowUser) > AutoVsHardSizingThreshold) THEN
              CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                     //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
              CALL ShowContinueError('User-Specified Evaporative Condenser Air Flow Rate of '// &
                                      TRIM(RoundSigDigits(MSEvapCondAirFlowUser,5))// ' [m3/s]')
              CALL ShowContinueError('differs from Design Size Evaporative Condenser Air Flow Rate of ' // &
                                      TRIM(RoundSigDigits(MSEvapCondAirFlowDes,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 DO
     ! Ensure evaporative condesner airflow rate at lower speed must be lower or equal to one at higher speed.
    DO Mode = 1,DXCoil(DXCoilNum)%NumOfSpeeds-1
      IF (DXCoil(DXCoilNum)%MSEvapCondAirFlow(Mode) .GT. DXCoil(DXCoilNum)%MSEvapCondAirFlow(Mode+1)) THEN
        CALL ShowWarningError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name)//', '// &
          'Speed '//TRIM(TrimSigDigits(Mode))//' Evaporative Condenser Air Flow Rate must be less than or equal to '//&
          'Speed '//TRIM(TrimSigDigits(Mode+1))//' Evaporative Condenser Air Flow Rate.')
        CALL ShowContinueError('Instead, '//TRIM(RoundSigDigits(DXCoil(DXCoilNum)%MSEvapCondAirFlow(Mode),2))//' > '//  &
                  TRIM(RoundSigDigits(DXCoil(DXCoilNum)%MSEvapCondAirFlow(Mode+1),2)))
        CALL ShowFatalError('Preceding conditions cause termination.')
      END IF
    END DO
      ! Sizing multispeed rated evapovative condenser pump power
    DO Mode = 1,DXCoil(DXCoilNum)%NumOfSpeeds
      IsAutosize = .FALSE.
      IF (DXCoil(DXCoilNum)%MSEvapCondPumpElecNomPower(mode) == AutoSize) THEN
        IsAutosize = .TRUE.
      END IF
        ! Auto size low speed evap condenser pump power to 1/3 Total Capacity * 0.004266 w/w (15 w/ton)
      MSEvapCondPumpElecNomPowerDes = DXCoil(DXCoilNum)%MSRatedTotCap(Mode)*0.004266d0
        ! Design Size data is always available
      IF (IsAutosize) THEN
        DXCoil(DXCoilNum)%MSEvapCondPumpElecNomPower(Mode) = MSEvapCondPumpElecNomPowerDes
        CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
               'Speed '//TRIM(TrimSigDigits(Mode))//' Design Size Rated Evaporative Condenser Pump Power Consumption [W]', &
                MSEvapCondPumpElecNomPowerDes)
      ELSE
        IF (DXCoil(DXCoilNum)%MSEvapCondPumpElecNomPower(Mode) > 0.0d0 .AND. MSEvapCondPumpElecNomPowerDes > 0.0d0 &
              .AND. .NOT. HardSizeNoDesRun) THEN
          MSEvapCondPumpElecNomPowerUser = DXCoil(DXCoilNum)%MSEvapCondPumpElecNomPower(Mode)
          CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
               'Speed '//TRIM(TrimSigDigits(Mode))//' Design Size Rated Evaporative Condenser Pump Power Consumption [W]', &
                MSEvapCondPumpElecNomPowerDes, &
               'Speed '//TRIM(TrimSigDigits(Mode))//' User-Specified Rated Evaporative Condenser Pump Power Consumption [W]', &
                MSEvapCondPumpElecNomPowerUser)
          IF (DisplayExtraWarnings) THEN
            IF ((ABS(MSEvapCondPumpElecNomPowerDes - MSEvapCondPumpElecNomPowerUser)/MSEvapCondPumpElecNomPowerUser) &
                              > AutoVsHardSizingThreshold) THEN
              CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                     //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
              CALL ShowContinueError('User-Specified Evaporative Condenser Pump Rated Power Consumption of '// &
                                      TRIM(RoundSigDigits(MSEvapCondPumpElecNomPowerUser,2))// ' [W]')
              CALL ShowContinueError('differs from Design Size Evaporative Condenser Pump Rated Power Consumption of ' // &
                                      TRIM(RoundSigDigits(MSEvapCondPumpElecNomPowerDes,2))// ' [W]')
              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 DO
   ! Ensure evaporative condesner pump power at lower speed must be lower or equal to one at higher speed.
    DO Mode = 1,DXCoil(DXCoilNum)%NumOfSpeeds-1
      IF (DXCoil(DXCoilNum)%MSEvapCondPumpElecNomPower(Mode) .GT. DXCoil(DXCoilNum)%MSEvapCondPumpElecNomPower(Mode+1)) THEN
        CALL ShowWarningError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name)//', '// &
          'Speed '//TRIM(TrimSigDigits(Mode))//  &
             ' Rated Evaporative Condenser Pump Power Consumption must be less than or equal to '//&
          'Speed '//TRIM(TrimSigDigits(Mode+1))//  &
             ' Rated Evaporative Condenser Pump Power Consumption.')
        CALL ShowContinueError('Instead, '//TRIM(RoundSigDigits(DXCoil(DXCoilNum)%MSEvapCondPumpElecNomPower(Mode),2))//' > '//  &
                  TRIM(RoundSigDigits(DXCoil(DXCoilNum)%MSEvapCondPumpElecNomPower(Mode+1),2)))
        CALL ShowFatalError('Preceding conditions cause termination.')
      END IF
    END DO
  END IF
  ! Autosizing for multispeed heating coil
  IF (DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_MultiSpeedHeating) THEN
    ! flow rate auto size
    DO Mode = DXCoil(DXCoilNum)%NumOfSpeeds,1,-1
      IsAutosize = .FALSE.
      IF (DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) == AutoSize) THEN
        IsAutosize = .TRUE.
      END IF
        ! Sizing rated air flow rate
      IF (Mode == DXCoil(DXCoilNum)%NumOfSpeeds) THEN
        IF (CurSysNum > 0) THEN
          IF (SizingDesRunThisAirSys)  HardSizeNoDesRun = .FALSE.
          IF (.NOT. IsAutosize .AND. .NOT. SizingDesRunThisAirSys) THEN
            HardSizeNoDesRun = .TRUE.
            IF (DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) > 0.0d0) THEN
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                        'Speed '//TRIM(TrimSigDigits(Mode))//' User-Specified Rated Air Flow Rate [m3/s]', &
                        DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode))
            END IF
          ELSE
            CALL CheckSysSizing(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name)
            IF (CurOASysNum > 0) THEN
              MSRatedAirVolFlowRateDes = FinalSysSizing(CurSysNum)%DesOutAirVolFlow
            ELSE
              MSRatedAirVolFlowRateDes = FinalSysSizing(CurSysNum)%DesMainVolFlow
            END IF
          END IF
        ELSE IF (CurZoneEqNum > 0) THEN
          IF (.NOT. IsAutosize .AND. .NOT. SizingDesRunThisZone) THEN
            HardSizeNoDesRun = .TRUE.
            IF (DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) > 0.0d0) THEN
              CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                        'Speed '//TRIM(TrimSigDigits(Mode))//' User-Specified Rated Air Flow Rate [m3/s]', &
                        DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode))
            END IF
          ELSE
            CALL CheckZoneSizing(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name)
            MSRatedAirVolFlowRateDes =   &
               MAX(FinalZoneSizing(CurZoneEqNum)%DesCoolVolFlow,FinalZoneSizing(CurZoneEqNum)%DesHeatVolFlow)
          END IF
        END IF
        IF (MSRatedAirVolFlowRateDes < SmallAirVolFlow) THEN
          MSRatedAirVolFlowRateDes = 0.0d0
        END IF
      ELSE
        MSRatedAirVolFlowRateDes = DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(DXCoil(DXCoilNum)%NumOfSpeeds)* &
                                                          Mode/DXCoil(DXCoilNum)%NumOfSpeeds
      END IF
      IF (.NOT. HardSizeNoDesRun) THEN
        IF (IsAutoSize) THEN
          DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) = MSRatedAirVolFlowRateDes
          CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                        'Speed '//TRIM(TrimSigDigits(Mode))//' Design Size Rated Air Flow Rate [m3/s]', &
                        MSRatedAirVolFlowRateDes)
        ELSE
          IF (DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) > 0.0d0 .AND. MSRatedAirVolFlowRateDes > 0.0d0 &
                .AND. .NOT. HardSizeNoDesRun) THEN
            MSRatedAirVolFlowRateUser = DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode)
            CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                        'Speed '//TRIM(TrimSigDigits(Mode))//' Design Size Rated Air Flow Rate [m3/s]', &
                        MSRatedAirVolFlowRateDes, &
                        'Speed '//TRIM(TrimSigDigits(Mode))//' User-Specified Rated Air Flow Rate [m3/s]', &
                        MSRatedAirVolFlowRateUser)
            IF (DisplayExtraWarnings) THEN
              IF ((ABS(MSRatedAirVolFlowRateDes - MSRatedAirVolFlowRateUser)/MSRatedAirVolFlowRateUser)   &
                              > AutoVsHardSizingThreshold) THEN
                CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for '&
                                      //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
                CALL ShowContinueError('User-Specified Rated Air Volume Flow Rate of '// &
                                      TRIM(RoundSigDigits(MSRatedAirVolFlowRateUser,5))// ' [m3/s]')
                CALL ShowContinueError('differs from Design Size Rated Air Volume Flow Rate of ' // &
                                      TRIM(RoundSigDigits(MSRatedAirVolFlowRateDes,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 Do
   ! Ensure flow rate at lower speed must be lower or equal to the flow rate at higher speed. Otherwise, a severe error is isssued.
    Do Mode = 1,DXCoil(DXCoilNum)%NumOfSpeeds-1
      If (DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode) .GT. DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode+1)) Then
        CALL ShowWarningError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name)//', '// &
          'Speed '//Trim(TrimSigDigits(Mode))//' Rated Air Flow Rate must be less than or equal to '//&
          'Speed '//Trim(TrimSigDigits(Mode+1))//' Rated Air Flow Rate.')
        CALL ShowContinueError('Instead, '//TRIM(RoundSigDigits(DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode),2))//' > '//  &
                  TRIM(RoundSigDigits(DXCoil(DXCoilNum)%MSRatedAirVolFlowRate(Mode+1),2)))
        CALL ShowFatalError('Preceding conditions cause termination.')
      End If
    End Do
      ! Sizing rated total heating capacity
    DO Mode = DXCoil(DXCoilNum)%NumOfSpeeds,1,-1
      IsAutosize = .FALSE.
      IF (DXCoil(DXCoilNum)%MSRatedTotCap(Mode) == AutoSize) THEN
        IsAutosize = .TRUE.
      END IF
      IF (Mode .eq. DXCoil(DXCoilNum)%NumOfSpeeds) THEN
          ! Heating capacity is assumed to be equal to the cooling capacity
        NumOfSpeedCompanion = DXCoil(DXCoil(DXCoilNum)%CompanionUpstreamDXCoil)%NumOfSpeeds
        MSRatedTotCapDes = &
                       DXCoil(DXCoil(DXCoilNum)%CompanionUpstreamDXCoil)%MSRatedTotCap(NumOfSpeedCompanion)
      ELSE
        MSRatedTotCapDes = DXCoil(DXCoilNum)%MSRatedTotCap(DXCoil(DXCoilNum)%NumOfSpeeds)* &
                                                           Mode/DXCoil(DXCoilNum)%NumOfSpeeds
      END IF
      IF (IsAutosize) THEN
        DXCoil(DXCoilNum)%MSRatedTotCap(Mode) = MSRatedTotCapDes
        CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                 'Speed '//TRIM(TrimSigDigits(Mode))//' Design Size Rated Total Heating Capacity [W]', MSRatedTotCapDes)
      ELSE
        IF (DXCoil(DXCoilNum)%MSRatedTotCap(Mode) > 0.0d0 .AND. MSRatedTotCapDes > 0.0d0 .AND. .NOT. HardSizeNoDesRun ) THEN
          MSRatedTotCapUser = DXCoil(DXCoilNum)%MSRatedTotCap(Mode)
          CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                'Speed '//TRIM(TrimSigDigits(Mode))//' Design Size Rated Total Heating Capacity [W]', MSRatedTotCapDes, &
                'Speed '//TRIM(TrimSigDigits(Mode))//' User-Specified Rated Total Heating Capacity [W]', MSRatedTotCapUser)
          IF (DisplayExtraWarnings) THEN
            IF ((ABS(MSRatedTotCapDes - MSRatedTotCapUser)/MSRatedTotCapUser) > AutoVsHardSizingThreshold) THEN
              CALL ShowMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                    //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
              CALL ShowContinueError('User-Specified Rated Total Heating Capacity of '// &
                                    TRIM(RoundSigDigits(MSRatedTotCapUser,2))// ' [W]')
              CALL ShowContinueError('differs from Design Size Rated Total Heating Capacity of ' // &
                                    TRIM(RoundSigDigits(MSRatedTotCapDes,2))// ' [W]')
              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 DO
   ! Ensure capacity at lower speed must be lower or equal to the capacity at higher speed.
    DO Mode = 1,DXCoil(DXCoilNum)%NumOfSpeeds-1
      IF (DXCoil(DXCoilNum)%MSRatedTotCap(Mode) .GT. DXCoil(DXCoilNum)%MSRatedTotCap(Mode+1)) THEN
        CALL ShowWarningError('SizeDXCoil: '//TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name)//', '// &
          'Speed '//TRIM(TrimSigDigits(Mode))//' Rated Total Heating Capacity must be less than or equal to '//&
          'Speed '//TRIM(TrimSigDigits(Mode+1))//' Rated Total Heating Capacity.')
        CALL ShowContinueError('Instead, '//TRIM(RoundSigDigits(DXCoil(DXCoilNum)%MSRatedTotCap(Mode),2))//' > '//  &
                  TRIM(RoundSigDigits(DXCoil(DXCoilNum)%MSRatedTotCap(Mode+1),2)))
        CALL ShowFatalError('Preceding conditions cause termination.')
      END IF
    END DO
      ! Resistive Defrost Heater Capacity = capacity at the first stage
      ! Sizing defrost heater capacity
    IsAutosize = .FALSE.
    IF (DXCoil(DXCoilNum)%DefrostCapacity == AutoSize) THEN
      IsAutosize = .TRUE.
    END IF
    IF (DXCoil(DXCoilNum)%DefrostStrategy == Resistive) THEN
      DefrostCapacityDes = DXCoil(DXCoilNum)%MSRatedTotCap(1)
    ELSE
      DefrostCapacityDes = 0.0d0
    END IF
    IF (IsAutoSize) THEN
      DXCoil(DXCoilNum)%DefrostCapacity = DefrostCapacityDes
      CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                       'Design Size Resistive Defrost Heater Capacity', DefrostCapacityDes)
    ELSE
      IF (DXCoil(DXCoilNum)%DefrostCapacity > 0.0d0 .AND. DefrostCapacityDes > 0.0d0 .AND. .NOT. HardSizeNoDesRun) THEN
        DefrostCapacityUser = DXCoil(DXCoilNum)%DefrostCapacity
        CALL ReportSizingOutput(DXCoil(DXCoilNum)%DXCoilType, DXCoil(DXCoilNum)%Name, &
                       'Design Size Resistive Defrost Heater Capacity', DefrostCapacityDes, &
                       'User-Specified Resistive Defrost Heater Capacity', DefrostCapacityUser)
        IF (DisplayExtraWarnings) THEN
          IF ((ABS(DefrostCapacityDes - DefrostCapacityUser)/DefrostCapacityUser) > AutoVsHardSizingThreshold) THEN
            CALL ShowWarningMessage('SizeDxCoil: Potential issue with equipment sizing for ' &
                                    //TRIM(DXCoil(DXCoilNum)%DXCoilType)//' '//TRIM(DXCoil(DXCoilNum)%Name))
            CALL ShowContinueError('User-Specified Resistive Defrost Heater Capacity of '// &
                                      TRIM(RoundSigDigits(DefrostCapacityUser,2))// '[W]')
            CALL ShowContinueError('differs from Design Size Resistive Defrost Heater Capacity of ' // &
                                      TRIM(RoundSigDigits(DefrostCapacityDes,2))// '[W]')
            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
  ! Call routine that computes AHRI certified rating for single-speed DX Coils
  IF ((DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_CoolingSingleSpeed .AND. DXCoil(DXCoilNum)%CondenserType(1) == AirCooled) &
       .OR. DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_HeatingEmpirical) THEN
      CALL CalcDXCoilStandardRating(DXCoil(DXCoilNum)%Name,                          &
                                    DXCoil(DXCoilNum)%DXCoilType,                    &
                                    DXCoil(DXCoilNum)%DXCoilType_Num,                &
                                    1, &
                                    DXCoil(DXCoilNum)%RatedTotCap(1),                &
                                    DXCoil(DXCoilNum)%RatedCOP(1),                   &
                                    DXCoil(DXCoilNum)%CCapFFlow(1),                  &
                                    DXCoil(DXCoilNum)%CCapFTemp(1),                  &
                                    DXCoil(DXCoilNum)%EIRFFlow(1),                   &
                                    DXCoil(DXCoilNum)%EIRFTemp(1),                   &
                                    DXCoil(DXCoilNum)%PLFFPLR(1),                    &
                                    DXCoil(DXCoilNum)%RatedAirVolFlowRate(1),        &
                                    DXCoil(DXCoilNum)%FanPowerPerEvapAirFlowRate(1), &
                                    DXCoil(DXCoilNum)%RegionNum,                     &
                                    DXCoil(DXCoilNum)%MinOATCompressor,              &
                                    DXCoil(DXCoilNum)%OATempCompressorOn,            &
                                    DXCoil(DXCoilNum)%OATempCompressorOnOffBlank,    &
                                    DXCoil(DXCoilNum)%DefrostControl)
  END IF
  ! Call routine that computes AHRI certified rating for multi-speed DX cooling Coils
  IF ( DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_MultiSpeedCooling .OR.  &
       DXCoil(DXCoilNum)%DXCoilType_Num == CoilDX_MultiSpeedHeating ) THEN
      CALL CalcDXCoilStandardRating(DXCoil(DXCoilNum)%Name,                          &
                                    DXCoil(DXCoilNum)%DXCoilType,                    &
                                    DXCoil(DXCoilNum)%DXCoilType_Num,                &
                                    DXCoil(DXCoilNum)%NumOfSpeeds,                   &
                                    DXCoil(DXCoilNum)%MSRatedTotCap,                 &
                                    DXCoil(DXCoilNum)%MSRatedCOP,                    &
                                    DXCoil(DXCoilNum)%MSCCapFFlow,                   &
                                    DXCoil(DXCoilNum)%MSCCapFTemp,                   &
                                    DXCoil(DXCoilNum)%MSEIRFFlow,                    &
                                    DXCoil(DXCoilNum)%MSEIRFTemp,                    &
                                    DXCoil(DXCoilNum)%MSPLFFPLR,                     &
                                    DXCoil(DXCoilNum)%MSRatedAirVolFlowRate,         &
                                    DXCoil(DXCoilNum)%MSFanPowerPerEvapAirFlowRate,  &
                                    DXCoil(DXCoilNum)%RegionNum,                     &
                                    DXCoil(DXCoilNum)%MinOATCompressor,              &
                                    DXCoil(DXCoilNum)%OATempCompressorOn,            &
                                    DXCoil(DXCoilNum)%OATempCompressorOnOffBlank,    &
                                    DXCoil(DXCoilNum)%DefrostControl)
  END If
  !create predefined report entries
  equipName = DXCoil(DXCoilNum)%Name
  ! put tables for cooling and heating separate
  SELECT CASE (DXCoil(DXCoilNum)%DXCoilType_Num)
    CASE (CoilDX_CoolingSingleSpeed, &
          CoilDX_CoolingTwoSpeed, &
          CoilDX_CoolingTwoStageWHumControl, &
          CoilDX_MultiSpeedCooling)
      CALL PreDefTableEntry(pdchCoolCoilType,equipName,DXCoil(DXCoilNum)%DXCoilType)
      IF (DXCoil(DXCoilNum)%NumOfSpeeds .EQ. 0) Then
        IF (DXCoil(DXCoilNum)%NumCapacityStages .EQ. 1) THEN
          CALL PreDefTableEntry(pdchCoolCoilTotCap,equipName,DXCoil(DXCoilNum)%RatedTotCap(1))
          CALL PreDefTableEntry(pdchCoolCoilSensCap,equipName,DXCoil(DXCoilNum)%RatedTotCap(1) &
                    * DXCoil(DXCoilNum)%RatedSHR(1))
          CALL PreDefTableEntry(pdchCoolCoilLatCap,equipName,DXCoil(DXCoilNum)%RatedTotCap(1) &
                    - DXCoil(DXCoilNum)%RatedTotCap(1) * DXCoil(DXCoilNum)%RatedSHR(1))
          CALL PreDefTableEntry(pdchCoolCoilSHR,equipName,DXCoil(DXCoilNum)%RatedSHR(1))
          CALL PreDefTableEntry(pdchCoolCoilNomEff,equipName,DXCoil(DXCoilNum)%RatedCOP(1))
        ELSE
          CALL PreDefTableEntry(pdchCoolCoilTotCap,equipName,DXCoil(DXCoilNum)%RatedTotCap(2))
          CALL PreDefTableEntry(pdchCoolCoilSensCap,equipName,DXCoil(DXCoilNum)%RatedTotCap(2) &
                    * DXCoil(DXCoilNum)%RatedSHR(2))
          CALL PreDefTableEntry(pdchCoolCoilLatCap,equipName,DXCoil(DXCoilNum)%RatedTotCap(2) &
                    - DXCoil(DXCoilNum)%RatedTotCap(2) * DXCoil(DXCoilNum)%RatedSHR(2))
          CALL PreDefTableEntry(pdchCoolCoilSHR,equipName,DXCoil(DXCoilNum)%RatedSHR(2))
          CALL PreDefTableEntry(pdchCoolCoilNomEff,equipName,DXCoil(DXCoilNum)%RatedCOP(2))
        END IF
      ELSE
        DO Mode=1,DXCoil(DXCoilNum)%NumOfSpeeds
          CALL PreDefTableEntry(pdchCoolCoilTotCap,equipName,DXCoil(DXCoilNum)%MSRatedTotCap(Mode))
          CALL PreDefTableEntry(pdchCoolCoilSensCap,equipName,DXCoil(DXCoilNum)%MSRatedTotCap(Mode) &
                    * DXCoil(DXCoilNum)%MSRatedSHR(Mode))
          CALL PreDefTableEntry(pdchCoolCoilLatCap,equipName,DXCoil(DXCoilNum)%MSRatedTotCap(Mode) &
                    - DXCoil(DXCoilNum)%MSRatedTotCap(Mode) * DXCoil(DXCoilNum)%MSRatedSHR(Mode))
          CALL PreDefTableEntry(pdchCoolCoilSHR,equipName,DXCoil(DXCoilNum)%MSRatedSHR(Mode))
          CALL PreDefTableEntry(pdchCoolCoilNomEff,equipName,DXCoil(DXCoilNum)%MSRatedCOP(Mode))
        END DO
      END IF
      CALL addFootNoteSubTable(pdstCoolCoil, 'Nominal values are gross at rated conditions, i.e., the supply air fan' &
                                             //' heat and electric power NOT accounted for.')
    CASE (CoilDX_HeatingEmpirical, &
          CoilDX_MultiSpeedHeating, &
          CoilDX_HeatPumpWaterHeater)
      CALL PreDefTableEntry(pdchHeatCoilType,equipName,DXCoil(DXCoilNum)%DXCoilType)
      IF (DXCoil(DXCoilNum)%NumOfSpeeds .EQ. 0) Then
        IF (DXCoil(DXCoilNum)%NumCapacityStages .EQ. 1) THEN
          CALL PreDefTableEntry(pdchHeatCoilNomCap,equipName,DXCoil(DXCoilNum)%RatedTotCap(1))
          CALL PreDefTableEntry(pdchHeatCoilNomEff,equipName,DXCoil(DXCoilNum)%RatedCOP(1))
        ELSE
          CALL PreDefTableEntry(pdchHeatCoilNomCap,equipName,DXCoil(DXCoilNum)%RatedTotCap(2))
          CALL PreDefTableEntry(pdchHeatCoilNomEff,equipName,DXCoil(DXCoilNum)%RatedCOP(2))
        END IF
      ELSE
        DO Mode=1,DXCoil(DXCoilNum)%NumOfSpeeds
          CALL PreDefTableEntry(pdchHeatCoilNomCap,equipName,DXCoil(DXCoilNum)%MSRatedTotCap(Mode))
          CALL PreDefTableEntry(pdchHeatCoilNomEff,equipName,DXCoil(DXCoilNum)%MSRatedCOP(Mode))
        END DO
      END IF
      CALL addFootNoteSubTable(pdstHeatCoil, 'Nominal values are gross at rated conditions, i.e., the supply air fan' &
                                             //' heat and electric power NOT accounted for.')
  END SELECT
  RETURN
END SUBROUTINE SizeDXCoil