Skip to content

Commit

Permalink
Fix NREL#10895 - Use unique TableLookup names to avoid duplicates
Browse files Browse the repository at this point in the history
```bash
diff -u testfiles/HVACTemplate-5ZonePTAC-DOAS-TwoHX-ori/eplusout.expidf testfiles/HVACTemplate-5ZonePTAC-DOAS-TwoHX/eplusout.expidf
```

```diff
--- testfiles/HVACTemplate-5ZonePTAC-DOAS-TwoHX-ori/eplusout.expidf	2025-01-23 10:15:14.389466278 +0100
+++ testfiles/HVACTemplate-5ZonePTAC-DOAS-TwoHX/eplusout.expidf	2025-01-23 10:17:46.386621036 +0100
@@ -3469,13 +3469,13 @@
   ,                                                        !- Initial Defrost Time Fraction {dimensionless}
   ,                                                        !- Rate of Defrost Time Fraction Increase {1/K}
   No,                                                      !- Economizer Lockout
-  DOAS SenEffectivenessTable,                              !- Sensible Effectiveness of Heating Air Flow Curve Name
+  DOAS Cooling Coil Heat Exchanger SenEffectivenessTable,  !- Sensible Effectiveness of Heating Air Flow Curve Name
   ,                                                        !- Latent Effectiveness of Heating Air Flow Curve Name
-  DOAS SenEffectivenessTable,                              !- Sensible Effectiveness of Cooling Air Flow Curve Name
+  DOAS Cooling Coil Heat Exchanger SenEffectivenessTable,  !- Sensible Effectiveness of Cooling Air Flow Curve Name
   ;                                                        !- Latent Effectiveness of Cooling Air Flow Curve Name

 Table:IndependentVariable,
-  DOAS airFlowRatio,                                       !- Name
+  DOAS Cooling Coil Heat Exchanger airFlowRatio,           !- Name
   Linear,                                                  !- Interpolation Method
   Linear,                                                  !- Extrapolation Method
   0.0,                                                     !- Minimum Value
@@ -3489,12 +3489,12 @@
   1.0;                                                     !- Value 2

 Table:IndependentVariableList,
-  DOAS effIndVarList,                                      !- Name
-  DOAS airFlowRatio;                                       !- Independent Variable 1 Name
+  DOAS Cooling Coil Heat Exchanger effIndVarList,          !- Name
+  DOAS Cooling Coil Heat Exchanger airFlowRatio;           !- Independent Variable 1 Name

 Table:Lookup,
-  DOAS SenEffectivenessTable,                              !- Name
-  DOAS effIndVarList,                                      !- Independent Variable List Name
+  DOAS Cooling Coil Heat Exchanger SenEffectivenessTable,  !- Name
+  DOAS Cooling Coil Heat Exchanger effIndVarList,          !- Independent Variable List Name
   DivisorOnly,                                             !- Normalization Method
   0.699999988,                                             !- Normalization Divisor
   0.0,                                                     !- Minimum Output
@@ -3719,13 +3719,13 @@
   0.083,                                                   !- Initial Defrost Time Fraction
   0.012,                                                   !- Rate of Defrost Time Fraction Increase
   Yes,                                                     !- Economizer Lockout
-  DOAS SenEffectivenessTable,                              !- Sensible Effectiveness of Heating Air Flow Curve Name
-  DOAS LatEffectivenessTable,                              !- Latent Effectiveness of Heating Air Flow Curve Name
-  DOAS SenEffectivenessTable,                              !- Sensible Effectiveness of Cooling Air Flow Curve Name
-  DOAS LatEffectivenessTable;                              !- Latent Effectiveness of Cooling Air Flow Curve Name
+  DOAS Heat Recovery SenEffectivenessTable,                !- Sensible Effectiveness of Heating Air Flow Curve Name
+  DOAS Heat Recovery LatEffectivenessTable,                !- Latent Effectiveness of Heating Air Flow Curve Name
+  DOAS Heat Recovery SenEffectivenessTable,                !- Sensible Effectiveness of Cooling Air Flow Curve Name
+  DOAS Heat Recovery LatEffectivenessTable;                !- Latent Effectiveness of Cooling Air Flow Curve Name

 Table:IndependentVariable,
-  DOAS airFlowRatio,                                       !- Name
+  DOAS Heat Recovery airFlowRatio,                         !- Name
   Linear,                                                  !- Interpolation Method
   Linear,                                                  !- Extrapolation Method
   0.0,                                                     !- Minimum Value
@@ -3739,12 +3739,12 @@
   1.0;                                                     !- Value 2

 Table:IndependentVariableList,
-  DOAS effIndVarList,                                      !- Name
-  DOAS airFlowRatio;                                       !- Independent Variable 1 Name
+  DOAS Heat Recovery effIndVarList,                        !- Name
+  DOAS Heat Recovery airFlowRatio;                         !- Independent Variable 1 Name

 Table:Lookup,
-  DOAS SenEffectivenessTable,                              !- Name
-  DOAS effIndVarList,                                      !- Independent Variable List Name
+  DOAS Heat Recovery SenEffectivenessTable,                !- Name
+  DOAS Heat Recovery effIndVarList,                        !- Independent Variable List Name
   DivisorOnly,                                             !- Normalization Method
   0.699999988,                                             !- Normalization Divisor
   0.0,                                                     !- Minimum Output
@@ -3757,8 +3757,8 @@
   0.699999988;                                             !- Value 2

 Table:Lookup,
-  DOAS LatEffectivenessTable,                              !- Name
-  DOAS effIndVarList,                                      !- Independent Variable List Name
+  DOAS Heat Recovery LatEffectivenessTable,                !- Name
+  DOAS Heat Recovery effIndVarList,                        !- Independent Variable List Name
   DivisorOnly,                                             !- Normalization Method
   0.649999976,                                             !- Normalization Divisor
   0.0,                                                     !- Minimum Output
```
  • Loading branch information
jmarrec committed Jan 23, 2025
1 parent 1bd4f1b commit 9ca681b
Showing 1 changed file with 51 additions and 44 deletions.
95 changes: 51 additions & 44 deletions src/ExpandObjects/epfilter.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2116,7 +2116,7 @@ END FUNCTION DoesGroundHeatTransferExist

!----------------------------------------------------------------------------------

SUBROUTINE AddEffectCurveHelper(fieldIdx, Eff75, Eff100, prefix)
SUBROUTINE AddEffectCurveHelper(fieldIdx, Eff75, Eff100, prefix, isSensible)
! SUBROUTINE INFORMATION:
! AUTHOR Yujie Xu
! DATE WRITTEN December 2023
Expand All @@ -2140,7 +2140,8 @@ SUBROUTINE AddEffectCurveHelper(fieldIdx, Eff75, Eff100, prefix)
INTEGER,INTENT(IN) :: fieldIdx
REAL,INTENT(IN) :: Eff75
REAL,INTENT(IN) :: Eff100
CHARACTER(len=*),INTENT(IN) :: prefix ! "Sen" (Sensible) or "Lat" (Latent)
CHARACTER(len=*),INTENT(IN) :: prefix
LOGICAL,INTENT(IN) :: isSensible

! SUBROUTINE PARAMETER DEFINITIONS:
! na
Expand All @@ -2154,8 +2155,12 @@ SUBROUTINE AddEffectCurveHelper(fieldIdx, Eff75, Eff100, prefix)
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
! na
CALL CreateNewObj('Table:Lookup')
CALL AddToObjFld('Name', fieldIdx,' '//prefix//'EffectivenessTable')
CALL AddToObjFld('Independent Variable List Name', fieldIdx,' effIndVarList')
IF (isSensible) THEN
CALL AddToObjFld('Name', fieldIdx,''//prefix//' SenEffectivenessTable')
ELSE
CALL AddToObjFld('Name', fieldIdx,''//prefix//' LatEffectivenessTable')
END IF
CALL AddToObjFld('Independent Variable List Name', fieldIdx, ''//prefix//' effIndVarList')
CALL AddToObjStr('Normalization Method', 'DivisorOnly')
CALL AddToObjStr('Normalization Divisor', RealToStr(Eff100))
CALL AddToObjStr('Minimum Output', '0.0')
Expand All @@ -2168,7 +2173,7 @@ SUBROUTINE AddEffectCurveHelper(fieldIdx, Eff75, Eff100, prefix)
CALL AddToObjStr('Value 2', RealToStr(Eff100),.TRUE.)
END SUBROUTINE

SUBROUTINE AddEffectCurveIndVar(fieldIdx)
SUBROUTINE AddEffectCurveIndVar(fieldIdx, prefix)
! SUBROUTINE INFORMATION:
! AUTHOR Yujie Xu
! DATE WRITTEN December 2023
Expand All @@ -2190,6 +2195,7 @@ SUBROUTINE AddEffectCurveIndVar(fieldIdx)
! SUBROUTINE ARGUMENT DEFINITIONS:
! the index of the name of the object, so that the generated table etc. can have unique names
INTEGER,INTENT(IN) :: fieldIdx
CHARACTER(len=*),INTENT(IN) :: prefix

! SUBROUTINE PARAMETER DEFINITIONS:
! na
Expand All @@ -2204,7 +2210,7 @@ SUBROUTINE AddEffectCurveIndVar(fieldIdx)
! na

CALL CreateNewObj('Table:IndependentVariable')
CALL AddToObjFld('Name', fieldIdx,' airFlowRatio')
CALL AddToObjFld('Name', fieldIdx,''//prefix//' airFlowRatio')
CALL AddToObjStr('Interpolation Method', 'Linear')
CALL AddToObjStr('Extrapolation Method', 'Linear')
CALL AddToObjStr('Minimum Value', '0.0')
Expand All @@ -2217,11 +2223,11 @@ SUBROUTINE AddEffectCurveIndVar(fieldIdx)
CALL AddToObjStr('Value 1', '0.75')
CALL AddToObjStr('Value 2', '1.0',.TRUE.)
CALL CreateNewObj('Table:IndependentVariableList')
CALL AddToObjFld('Name', fieldIdx,' effIndVarList')
CALL AddToObjFld('Independent Variable 1 Name', fieldIdx,' airFlowRatio',.TRUE.)
CALL AddToObjFld('Name', fieldIdx,''//prefix//' effIndVarList')
CALL AddToObjFld('Independent Variable 1 Name', fieldIdx,''//prefix//' airFlowRatio',.TRUE.)
END SUBROUTINE

SUBROUTINE AddSenEffectCurve(fieldIdx, htRecSens75, htRecSens100)
SUBROUTINE AddSenEffectCurve(fieldIdx, htRecSens75, htRecSens100, suffix)
! SUBROUTINE INFORMATION:
! AUTHOR Yujie Xu
! DATE WRITTEN December 2023
Expand All @@ -2245,6 +2251,7 @@ SUBROUTINE AddSenEffectCurve(fieldIdx, htRecSens75, htRecSens100)
INTEGER,INTENT(IN) :: fieldIdx
REAL,INTENT(IN) :: htRecSens75
REAL,INTENT(IN) :: htRecSens100
CHARACTER(len=*), INTENT(IN) :: suffix

! SUBROUTINE PARAMETER DEFINITIONS:
! na
Expand All @@ -2258,17 +2265,17 @@ SUBROUTINE AddSenEffectCurve(fieldIdx, htRecSens75, htRecSens100)
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
! na

CALL AddToObjFld('Sensible Effectiveness of Heating Air Flow Curve Name', fieldIdx,' SenEffectivenessTable')
CALL AddToObjFld('Sensible Effectiveness of Heating Air Flow Curve Name', fieldIdx,''//suffix//' SenEffectivenessTable')
CALL AddToObjStr('Latent Effectiveness of Heating Air Flow Curve Name', '')
CALL AddToObjFld('Sensible Effectiveness of Cooling Air Flow Curve Name', fieldIdx,' SenEffectivenessTable')
CALL AddToObjFld('Sensible Effectiveness of Cooling Air Flow Curve Name', fieldIdx,''//suffix//' SenEffectivenessTable')
CALL AddToObjStr('Latent Effectiveness of Cooling Air Flow Curve Name', '',.TRUE.)
! create curve objects for the heat exchanger start
CALL AddEffectCurveIndVar(fieldIdx)
CALL AddEffectCurveHelper(fieldIdx, htRecSens75, htRecSens100, 'Sen')
CALL AddEffectCurveIndVar(fieldIdx, suffix)
CALL AddEffectCurveHelper(fieldIdx, htRecSens75, htRecSens100, suffix, .TRUE.)
! create curve objects for the heat exchanger end
END SUBROUTINE

SUBROUTINE AddSenLatEffectCurve(fieldIdx, htRecSens75, htRecSens100, htRecLat75, htRecLat100)
SUBROUTINE AddSenLatEffectCurve(fieldIdx, htRecSens75, htRecSens100, htRecLat75, htRecLat100, suffix)
! SUBROUTINE INFORMATION:
! AUTHOR Yujie Xu
! DATE WRITTEN December 2023
Expand All @@ -2294,6 +2301,7 @@ SUBROUTINE AddSenLatEffectCurve(fieldIdx, htRecSens75, htRecSens100, htRecLat75,
REAL,INTENT(IN) :: htRecSens100
REAL,INTENT(IN) :: htRecLat75
REAL,INTENT(IN) :: htRecLat100
CHARACTER(len=*), INTENT(IN) :: suffix

! SUBROUTINE PARAMETER DEFINITIONS:
! na
Expand All @@ -2307,15 +2315,14 @@ SUBROUTINE AddSenLatEffectCurve(fieldIdx, htRecSens75, htRecSens100, htRecLat75,
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
! na

CALL AddToObjFld('Sensible Effectiveness of Heating Air Flow Curve Name', fieldIdx,' SenEffectivenessTable')
CALL AddToObjFld('Latent Effectiveness of Heating Air Flow Curve Name', fieldIdx,' LatEffectivenessTable')
CALL AddToObjFld('Sensible Effectiveness of Cooling Air Flow Curve Name', fieldIdx,' SenEffectivenessTable')
CALL AddToObjFld('Latent Effectiveness of Cooling Air Flow Curve Name', fieldIdx,' LatEffectivenessTable',.TRUE.)
CALL AddToObjFld('Sensible Effectiveness of Heating Air Flow Curve Name', fieldIdx,''//suffix//' SenEffectivenessTable')
CALL AddToObjFld('Latent Effectiveness of Heating Air Flow Curve Name', fieldIdx,''//suffix//' LatEffectivenessTable')
CALL AddToObjFld('Sensible Effectiveness of Cooling Air Flow Curve Name', fieldIdx,''//suffix//' SenEffectivenessTable')
CALL AddToObjFld('Latent Effectiveness of Cooling Air Flow Curve Name', fieldIdx,''//suffix//' LatEffectivenessTable',.TRUE.)
! create curve objects for the heat exchanger start
CALL AddEffectCurveIndVar(fieldIdx)
CALL AddEffectCurveHelper(fieldIdx, htRecSens75, htRecSens100, 'Sen')
CALL AddEffectCurveHelper(fieldIdx, htRecLat75, htRecLat100, 'Lat')
! create curve objects for the heat exchanger end
CALL AddEffectCurveIndVar(fieldIdx, suffix)
CALL AddEffectCurveHelper(fieldIdx, htRecSens75, htRecSens100, suffix, .TRUE.)
CALL AddEffectCurveHelper(fieldIdx, htRecLat75, htRecLat100, suffix, .FALSE.) ! create curve objects for the heat exchanger end
END SUBROUTINE

!----------------------------------------------------------------------------------
Expand Down Expand Up @@ -11599,7 +11606,7 @@ SUBROUTINE CreateNewVAV
CALL AddToObjStr('Initial Defrost Time Fraction','0.167')
CALL AddToObjStr('Rate of Defrost Time Fraction Increase','0.024')
CALL AddToObjStr('Economizer Lockout','')
CALL AddSenEffectCurve(base + vsAirHandlerNameOff, htRecSens75, htRecSens100)
CALL AddSenEffectCurve(base + vsAirHandlerNameOff, htRecSens75, htRecSens100, ' Heat Recovery')
ELSEIF (heatRecovery .EQ. htrecEnth) THEN
!HEAT EXCHANGER:AIR TO AIR:GENERIC ~ line 708
htRecSens75 = StringToReal(FldVal(base + vsHeatRecSenEffOff)) + 0.05
Expand Down Expand Up @@ -11631,7 +11638,7 @@ SUBROUTINE CreateNewVAV
CALL AddToObjStr('Initial Defrost Time Fraction','')
CALL AddToObjStr('Rate of Defrost Time Fraction Increase','')
CALL AddToObjStr('Economizer Lockout','')
CALL AddSenLatEffectCurve(base + vsAirHandlerNameOff, htRecSens75, htRecSens100, htRecLat75, htRecLat100)
CALL AddSenLatEffectCurve(base + vsAirHandlerNameOff, htRecSens75, htRecSens100, htRecLat75, htRecLat100, ' Heat Recovery')
END IF
!SET POINT MANAGER:SCHEDULED ~ line 734
IF (heatRecovery .NE. htrecNone) THEN
Expand Down Expand Up @@ -13142,7 +13149,7 @@ SUBROUTINE CreateNewVAV
CALL AddToObjStr('Initial Defrost Time Fraction','0.167')
CALL AddToObjStr('Rate of Defrost Time Fraction Increase','0.024')
CALL AddToObjStr('Economizer Lockout','')
CALL AddSenEffectCurve(base + pvavsAirHandlerNameOff, htRecSens75, htRecSens100)
CALL AddSenEffectCurve(base + pvavsAirHandlerNameOff, htRecSens75, htRecSens100, ' Heat Recovery')
ELSEIF (heatRecovery .EQ. htrecEnth) THEN
htRecSens75 = StringToReal(FldVal(base + pvavsHeatRecSenEffOff)) + 0.05
htRecSens100 = StringToReal(FldVal(base + pvavsHeatRecSenEffOff))
Expand Down Expand Up @@ -13173,7 +13180,7 @@ SUBROUTINE CreateNewVAV
CALL AddToObjStr('Initial Defrost Time Fraction','')
CALL AddToObjStr('Rate of Defrost Time Fraction Increase','')
CALL AddToObjStr('Economizer Lockout','')
CALL AddSenLatEffectCurve(base + pvavsAirHandlerNameOff, htRecSens75, htRecSens100, htRecLat75, htRecLat100)
CALL AddSenLatEffectCurve(base + pvavsAirHandlerNameOff, htRecSens75, htRecSens100, htRecLat75, htRecLat100, ' Heat Recovery')
END IF
IF (heatRecovery .NE. htrecNone) THEN
IF (isEconoLowLimitBlank) THEN
Expand Down Expand Up @@ -14696,7 +14703,7 @@ SUBROUTINE CreateNewUnitary
CALL AddToObjStr('Initial Defrost Time Fraction','0.167')
CALL AddToObjStr('Rate of Defrost Time Fraction Increase','0.024')
CALL AddToObjStr('Economizer Lockout','')
CALL AddSenEffectCurve(base + usAirHandlerNameOff, htRecSens75, htRecSens100)
CALL AddSenEffectCurve(base + usAirHandlerNameOff, htRecSens75, htRecSens100, ' Heat Recovery')
END IF
IF (isHeatRecEnthalpy) THEN
htRecSens75 = StringToReal(FldVal(base + usHeatRecSenEffOff)) + 0.05
Expand Down Expand Up @@ -14727,7 +14734,7 @@ SUBROUTINE CreateNewUnitary
CALL AddToObjStr('Initial Defrost Time Fraction','')
CALL AddToObjStr('Rate of Defrost Time Fraction Increase','')
CALL AddToObjStr('Economizer Lockout','')
CALL AddSenLatEffectCurve(base + usAirHandlerNameOff, htRecSens75, htRecSens100, htRecLat75, htRecLat100)
CALL AddSenLatEffectCurve(base + usAirHandlerNameOff, htRecSens75, htRecSens100, htRecLat75, htRecLat100, ' Heat Recovery')
END IF
IF (.NOT. isHeatRecNone) THEN
IF (isEconoLowLimitBlank) THEN
Expand Down Expand Up @@ -15631,7 +15638,7 @@ SUBROUTINE CreateNewUnitary
CALL AddToObjStr('Initial Defrost Time Fraction','0.167')
CALL AddToObjStr('Rate of Defrost Time Fraction Increase','0.024')
CALL AddToObjStr('Economizer Lockout','')
CALL AddSenEffectCurve(base + uhpsAirHandlerNameOff, htRecSens75, htRecSens100)
CALL AddSenEffectCurve(base + uhpsAirHandlerNameOff, htRecSens75, htRecSens100, ' Heat Recovery')
END IF
IF (isHeatRecEnthalpy) THEN
htRecSens75 = StringToReal(FldVal(base + uhpsHeatRecSenEffOff)) + 0.05
Expand Down Expand Up @@ -15663,7 +15670,7 @@ SUBROUTINE CreateNewUnitary
CALL AddToObjStr('Initial Defrost Time Fraction','')
CALL AddToObjStr('Rate of Defrost Time Fraction Increase','')
CALL AddToObjStr('Economizer Lockout','')
CALL AddSenLatEffectCurve(base + uhpsAirHandlerNameOff, htRecSens75, htRecSens100, htRecLat75, htRecLat100)
CALL AddSenLatEffectCurve(base + uhpsAirHandlerNameOff, htRecSens75, htRecSens100, htRecLat75, htRecLat100, ' Heat Recovery')
END IF
IF (.NOT. isHeatRecNone) THEN
IF (isEconoLowLimitBlank) THEN
Expand Down Expand Up @@ -16937,7 +16944,7 @@ SUBROUTINE CreateNewUnitary
CALL AddToObjStr('Rate of Defrost Time Fraction Increase {1/K}','')
! MJW ???? - Not sure
CALL AddToObjStr('Economizer Lockout','No')
CALL AddSenEffectCurve(base + ussAirHandlerNameOff, 0.75, 0.7)
CALL AddSenEffectCurve(base + ussAirHandlerNameOff, 0.75, 0.7, ' Cooling Coil Heat Exchanger')
!***Coil:Cooling:Water
CALL CreateNewObj('Coil:Cooling:Water')
CALL AddToObjFld('Name', base + ussAirHandlerNameOff,' Cooling Coil')
Expand Down Expand Up @@ -16985,7 +16992,7 @@ SUBROUTINE CreateNewUnitary
CALL AddToObjStr('Rate of Defrost Time Fraction Increase {1/K}','')
! MJW ???? - Not sure
CALL AddToObjStr('Economizer Lockout','No')
CALL AddSenEffectCurve(base + ussAirHandlerNameOff, 0.75, 0.7)
CALL AddSenEffectCurve(base + ussAirHandlerNameOff, 0.75, 0.7, ' Cooling Coil Heat Exchanger')
!***Coil:Cooling:DX:SingleSpeed
CALL CreateNewObj('Coil:Cooling:DX:SingleSpeed')
CALL AddToObjFld('Name', base + ussAirHandlerNameOff,' Cooling Coil')
Expand Down Expand Up @@ -18201,7 +18208,7 @@ SUBROUTINE CreateNewUnitary
CALL AddToObjStr('Initial Defrost Time Fraction','0.167')
CALL AddToObjStr('Rate of Defrost Time Fraction Increase','0.024')
CALL AddToObjStr('Economizer Lockout','')
CALL AddSenEffectCurve(base + ussAirHandlerNameOff, htRecSens75, htRecSens100)
CALL AddSenEffectCurve(base + ussAirHandlerNameOff, htRecSens75, htRecSens100,' Heat Recovery')
END IF
IF (isHeatRecEnthalpy) THEN
htRecSens75 = StringToReal(FldVal(base + ussHeatRecSenEffOff)) + 0.05
Expand Down Expand Up @@ -18233,7 +18240,7 @@ SUBROUTINE CreateNewUnitary
CALL AddToObjStr('Initial Defrost Time Fraction','')
CALL AddToObjStr('Rate of Defrost Time Fraction Increase','')
CALL AddToObjStr('Economizer Lockout','')
CALL AddSenLatEffectCurve(base + ussAirHandlerNameOff, htRecSens75, htRecSens100, htRecLat75, htRecLat100)
CALL AddSenLatEffectCurve(base + ussAirHandlerNameOff, htRecSens75, htRecSens100, htRecLat75, htRecLat100, ' Heat Recovery')
END IF
IF (.NOT. isHeatRecNone) THEN
IF (isEconoLowLimitBlank) THEN
Expand Down Expand Up @@ -19906,7 +19913,7 @@ SUBROUTINE CreateNewConstVol
CALL AddToObjStr('Rate of Defrost Time Fraction Increase {1/K}','')
! MJW ???? - Not sure
CALL AddToObjStr('Economizer Lockout','No')
CALL AddSenEffectCurve(base + cvsAirHandlerNameOff, 0.75, 0.7)
CALL AddSenEffectCurve(base + cvsAirHandlerNameOff, 0.75, 0.7,' Cooling Coil Heat Exchanger')
!***Coil:Cooling:Water
CALL CreateNewObj('Coil:Cooling:Water')
CALL AddToObjFld('Name', base + cvsAirHandlerNameOff,' Cooling Coil')
Expand Down Expand Up @@ -20471,7 +20478,7 @@ SUBROUTINE CreateNewConstVol
CALL AddToObjStr('Initial Defrost Time Fraction','0.083')
CALL AddToObjStr('Rate of Defrost Time Fraction Increase','0.012')
CALL AddToObjStr('Economizer Lockout','Yes')
CALL AddSenEffectCurve(base + cvsAirHandlerNameOff, htRecSens75, htRecSens100)
CALL AddSenEffectCurve(base + cvsAirHandlerNameOff, htRecSens75, htRecSens100,' Heat Recovery')
ELSEIF (heatRecovery .EQ. htrecEnth) THEN
htRecSens75 = StringToReal(FldVal(base + cvsHeatRecSenEffOff)) + 0.05
htRecSens100 = StringToReal(FldVal(base + cvsHeatRecSenEffOff))
Expand Down Expand Up @@ -20502,7 +20509,7 @@ SUBROUTINE CreateNewConstVol
CALL AddToObjStr('Initial Defrost Time Fraction','0.083')
CALL AddToObjStr('Rate of Defrost Time Fraction Increase','0.012')
CALL AddToObjStr('Economizer Lockout','Yes')
CALL AddSenLatEffectCurve(base + cvsAirHandlerNameOff, htRecSens75, htRecSens100, htRecLat75, htRecLat100)
CALL AddSenLatEffectCurve(base + cvsAirHandlerNameOff, htRecSens75, htRecSens100, htRecLat75, htRecLat100, ' Heat Recovery')
END IF
IF (heatRecovery .NE. htrecNone) THEN
IF (isEconoLowLimitBlank) THEN
Expand Down Expand Up @@ -22677,7 +22684,7 @@ SUBROUTINE CreateNewDualDuct
CALL AddToObjStr('Initial Defrost Time Fraction','0.167')
CALL AddToObjStr('Rate of Defrost Time Fraction Increase','0.024')
CALL AddToObjStr('Economizer Lockout','')
CALL AddSenEffectCurve(base + ddsAirHandlerNameOff, htRecSens75, htRecSens100)
CALL AddSenEffectCurve(base + ddsAirHandlerNameOff, htRecSens75, htRecSens100,' Heat Recovery')
ELSEIF (heatRecovery .EQ. htrecEnth) THEN
!HEAT EXCHANGER:AIR TO AIR:GENERIC ~ line 708
htRecSens75 = StringToReal(FldVal(base + ddsHeatRecSenEffOff)) + 0.05
Expand Down Expand Up @@ -22708,7 +22715,7 @@ SUBROUTINE CreateNewDualDuct
CALL AddToObjStr('Initial Defrost Time Fraction','')
CALL AddToObjStr('Rate of Defrost Time Fraction Increase','')
CALL AddToObjStr('Economizer Lockout','')
CALL AddSenLatEffectCurve(base + ddsAirHandlerNameOff, htRecSens75, htRecSens100, htRecLat75, htRecLat100)
CALL AddSenLatEffectCurve(base + ddsAirHandlerNameOff, htRecSens75, htRecSens100, htRecLat75, htRecLat100, ' Heat Recovery')
END IF
!SET POINT MANAGER:SCHEDULED ~ line 734
IF (heatRecovery .NE. htrecNone) THEN
Expand Down Expand Up @@ -24254,7 +24261,7 @@ SUBROUTINE CreateFanCoil
CALL AddToObjStr('Rate of Defrost Time Fraction Increase {1/K}','')
! MJW ???? - Not sure
CALL AddToObjStr('Economizer Lockout','No')
CALL AddSenEffectCurve(base + fczNameOff, 0.75, 0.7)
CALL AddSenEffectCurve(base + fczNameOff, 0.75, 0.7,' Cooling Coil Heat Exchanger')
CALL CreateNewObj('Coil:Cooling:Water')
CALL AddToObjFld('Name', base + fczNameOff,' Cooling Coil')
CALL AddToObjFld('Availability Schedule Name', base + fczCoolAvailSchedNameOff,'')
Expand Down Expand Up @@ -32448,7 +32455,7 @@ SUBROUTINE CreateDOAS
CALL AddToObjStr('Rate of Defrost Time Fraction Increase {1/K}','')
! MJW ???? - Not sure
CALL AddToObjStr('Economizer Lockout','No')
CALL AddSenEffectCurve(base + doasNameOff, 0.75, 0.7)
CALL AddSenEffectCurve(base + doasNameOff, 0.75, 0.7,' Cooling Coil Heat Exchanger')
!***Coil:Cooling:Water
CALL CreateNewObj('Coil:Cooling:Water')
CALL AddToObjFld('Name', base + doasNameOff,' Cooling Coil')
Expand Down Expand Up @@ -32535,7 +32542,7 @@ SUBROUTINE CreateDOAS
CALL AddToObjStr('Rate of Defrost Time Fraction Increase {1/K}','')
! MJW ???? - Not sure
CALL AddToObjStr('Economizer Lockout','No')
CALL AddSenEffectCurve(base + doasNameOff, 0.75, 0.7)
CALL AddSenEffectCurve(base + doasNameOff, 0.75, 0.7,' Cooling Coil Heat Exchanger')
!***Coil:Cooling:DX:SingleSpeed
CALL CreateNewObj('Coil:Cooling:DX:SingleSpeed')
CALL AddToObjFld('Name', base + doasNameOff,' Cooling Coil')
Expand Down Expand Up @@ -32969,7 +32976,7 @@ SUBROUTINE CreateDOAS
CALL AddToObjStr('Initial Defrost Time Fraction','0.083')
CALL AddToObjStr('Rate of Defrost Time Fraction Increase','0.012')
CALL AddToObjStr('Economizer Lockout','Yes')
CALL AddSenEffectCurve(base + doasNameOff, htRecSens75, htRecSens100)
CALL AddSenEffectCurve(base + doasNameOff, htRecSens75, htRecSens100, ' Heat Recovery')
ELSEIF (heatRecovery .EQ. htrecEnth) THEN
htRecSens75 = StringToReal(FldVal(base + doasHeatRecSenEffOff)) + 0.05
htRecSens100 = StringToReal(FldVal(base + doasHeatRecSenEffOff))
Expand Down Expand Up @@ -33000,7 +33007,7 @@ SUBROUTINE CreateDOAS
CALL AddToObjStr('Initial Defrost Time Fraction','0.083')
CALL AddToObjStr('Rate of Defrost Time Fraction Increase','0.012')
CALL AddToObjStr('Economizer Lockout','Yes')
CALL AddSenLatEffectCurve(base + doasNameOff, htRecSens75, htRecSens100, htRecLat75, htRecLat100)
CALL AddSenLatEffectCurve(base + doasNameOff, htRecSens75, htRecSens100, htRecLat75, htRecLat100, ' Heat Recovery')
END IF
IF (heatRecovery .NE. htrecNone) THEN
!***SetpointManager:MixedAir for Heat Recovery Outlet - Reference heating coil setpoint
Expand Down

0 comments on commit 9ca681b

Please sign in to comment.