diff --git a/src/Transition/CMakeLists.txt b/src/Transition/CMakeLists.txt index 313f81673df..59cbb5a2802 100644 --- a/src/Transition/CMakeLists.txt +++ b/src/Transition/CMakeLists.txt @@ -60,7 +60,7 @@ list( APPEND VERSIONS 8_9_0 ) list( APPEND VERSIONS 9_0_0 ) list( APPEND VERSIONS 9_1_0 ) list( APPEND VERSIONS 9_2_0 ) -list( APPEND VERSIONS 9_2_0b ) +list( APPEND VERSIONS 9_3_0 ) if(APPLE) if( "${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU" ) @@ -150,6 +150,7 @@ install(FILES "InputRulesFiles/Rules8-8-0-to-8-9-0.md" DESTINATION "PreProcess/I install(FILES "InputRulesFiles/Rules8-9-0-to-9-0-0.md" DESTINATION "PreProcess/IDFVersionUpdater") install(FILES "InputRulesFiles/Rules9-0-0-to-9-1-0.md" DESTINATION "PreProcess/IDFVersionUpdater") install(FILES "InputRulesFiles/Rules9-1-0-to-9-2-0.md" DESTINATION "PreProcess/IDFVersionUpdater") +install(FILES "InputRulesFiles/Rules9-2-0-to-9-3-0.md" DESTINATION "PreProcess/IDFVersionUpdater") # output changes file first introduced with v8.5.0, so no older ones exist install(FILES "OutputRulesFiles/OutputChanges8-4-0-to-8-5-0.md" DESTINATION "PreProcess/IDFVersionUpdater") @@ -160,6 +161,7 @@ install(FILES "OutputRulesFiles/OutputChanges8-8-0-to-8-9-0.md" DESTINATION "Pre install(FILES "OutputRulesFiles/OutputChanges8-9-0-to-9-0-0.md" DESTINATION "PreProcess/IDFVersionUpdater") install(FILES "OutputRulesFiles/OutputChanges9-0-0-to-9-1-0.md" DESTINATION "PreProcess/IDFVersionUpdater") install(FILES "OutputRulesFiles/OutputChanges9-1-0-to-9-2-0.md" DESTINATION "PreProcess/IDFVersionUpdater") +install(FILES "OutputRulesFiles/OutputChanges9-2-0-to-9-3-0.md" DESTINATION "PreProcess/IDFVersionUpdater") install(FILES "SupportFiles/Report Variables 7-2-0-006 to 8-0-0.csv" DESTINATION "PreProcess/IDFVersionUpdater/") install(FILES "SupportFiles/Report Variables 8-0-0-007 to 8-1-0.csv" DESTINATION "PreProcess/IDFVersionUpdater/") @@ -174,3 +176,4 @@ install(FILES "SupportFiles/Report Variables 8-8-0 to 8-9-0.csv" DESTINATION "Pr install(FILES "SupportFiles/Report Variables 8-9-0 to 9-0-0.csv" DESTINATION "PreProcess/IDFVersionUpdater/") install(FILES "SupportFiles/Report Variables 9-0-0 to 9-1-0.csv" DESTINATION "PreProcess/IDFVersionUpdater/") install(FILES "SupportFiles/Report Variables 9-1-0 to 9-2-0.csv" DESTINATION "PreProcess/IDFVersionUpdater/") +install(FILES "SupportFiles/Report Variables 9-2-0 to 9-3-0.csv" DESTINATION "PreProcess/IDFVersionUpdater/") diff --git a/src/Transition/CreateNewIDFUsingRulesV9_2_0.f90 b/src/Transition/CreateNewIDFUsingRulesV9_2_0.f90 index 7a85b25391a..cbb7743e609 100644 --- a/src/Transition/CreateNewIDFUsingRulesV9_2_0.f90 +++ b/src/Transition/CreateNewIDFUsingRulesV9_2_0.f90 @@ -153,18 +153,7 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile CHARACTER(len=20) :: zeqNumStr CHARACTER(len=7) :: zeqHeatingOrCooling LOGICAL :: writeScheduleTypeObj = .true. - - ! For AirTerminal:SingleDuct:Uncontrolled transition - CHARACTER(len=MaxNameLength), ALLOCATABLE, DIMENSION(:) :: ATSDUNodeNames - CHARACTER(len=MaxNameLength), ALLOCATABLE, DIMENSION(:) :: MatchingATSDUAirFlowNodeNames - INTEGER TotATSDUObjs - INTEGER TotAFNDistNodeObjs - INTEGER atCount - INTEGER nodeCount - INTEGER TotNodeListOjbs - INTEGER nodeListCount - INTEGER nodeCountA - LOGICAL :: nodeFound = .false. + If (FirstTime) THEN ! do things that might be applicable only to this new version FirstTime=.false. @@ -329,32 +318,7 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile CALL DisplayString('Processing IDF -- RunPeriod preprocessing complete.') ! End Pre-process RunPeriod - ! Begin Pre-process AirTerminal:SingleDuct:Uncontrolled - ! Clean up from any previous passes, then re-allocate - IF(ALLOCATED(ATSDUNodeNames)) DEALLOCATE(ATSDUNodeNames) - IF(ALLOCATED(MatchingATSDUAirFlowNodeNames)) DEALLOCATE(MatchingATSDUAirFlowNodeNames) - TotATSDUObjs = GetNumObjectsFound('AIRTERMINAL:SINGLEDUCT:UNCONTROLLED') - IF (TotATSDUObjs > 0) ALLOCATE(ATSDUNodeNames(TotATSDUObjs)) - TotAFNDistNodeObjs = GetNumObjectsFound('AIRFLOWNETWORK:DISTRIBUTION:NODE') - IF (TotAFNDistNodeObjs > 0) ALLOCATE(MatchingATSDUAirFlowNodeNames(TotATSDUObjs)) - - DO atCount=1, TotATSDUObjs - CALL GetObjectItem('AIRTERMINAL:SINGLEDUCT:UNCONTROLLED',atCount,Alphas,NumAlphas,Numbers,NumNumbers,Status) - ! Store Zone Supply Air Node Name to search and replace later in AirLoopHVAC:ZoneSplitter and AirLoopHVAC:SupplyPlenum objects - ATSDUNodeNames(atCount) = Alphas(3) - IF (TotATSDUObjs > 0) THEN - ! Find and Store name of corresponding AIRFLOWNETWORK:DISTRIBUTION:NODE object to search for later in AIRFLOWNETWORK:DISTRIBUTION:LINKAGE objects - DO nodeCount=1, TotAFNDistNodeObjs - CALL GetObjectItem('AIRFLOWNETWORK:DISTRIBUTION:NODE',nodeCount,Alphas,NumAlphas,Numbers,NumNumbers,Status) - IF (SameString(TRIM(Alphas(2)), TRIM(ATSDUNodeNames(atCount)))) THEN - MatchingATSDUAirFlowNodeNames(atCount) = Alphas(1) - EXIT - END IF - ENDDO - END IF - ENDDO - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! P R O C E S S I N G ! @@ -474,309 +438,6 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile ! NoDiff = .false. ! If your original object starts with A, insert the rules here - CASE('AIRTERMINAL:SINGLEDUCT:UNCONTROLLED') - ! ZoneHVAC:EquipmentList already has a transition rule of its own, so add this object type change there - CALL GetNewObjectDefInIDD('AirTerminal:SingleDuct:ConstantVolume:NoReheat',NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - nodiff=.false. - OutArgs(1:2)=InArgs(1:2) - OutArgs(3) = TRIM(InArgs(3)) // ' ATInlet' - OutArgs(4) = InArgs(3) - OutArgs(5:7)=InArgs(4:6) - - CALL WriteOutIDFLines(DifLfn,'AirTerminal:SingleDuct:ConstantVolume:NoReheat',7,OutArgs,NwFldNames,NwFldUnits) - NoDiff=.false. - Written=.true. - - CALL GetNewObjectDefInIDD('ZoneHVAC:AirDistributionUnit',PNumArgs,PAOrN,PReqFld,PObjMinFlds,PFldNames,PFldDefaults,PFldUnits) - POutArgs(1) = TRIM(InArgs(1)) // ' ADU' - POutArgs(2) = InArgs(3) - POutArgs(3) = 'AirTerminal:SingleDuct:ConstantVolume:NoReheat' - POutArgs(4) = InArgs(1) - POutArgs(5) = Blank - POutArgs(6) = Blank - POutArgs(7) = InArgs(7) - CALL WriteOutIDFLines(DifLfn,'ZoneHVAC:AirDistributionUnit',PNumArgs,POutArgs,PFldNames,PFldUnits) - - ! This is part of the transition for AirTerminal:SingleDuct:Uncontrolled - CASE('AIRLOOPHVAC:ZONESPLITTER') - IF(TotATSDUObjs > 0) THEN - CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - OutArgs(1:2) = InArgs(1:2) - ! Loop through outlet node names looking for a match to an AirTerminal:SingleDuct:Uncontrolled node name - DO nodeCountA=3, CurArgs - nodeFound = .false. - ! Is the node referenced directly here? - DO atCount=1, TotATSDUObjs - IF (SameString(TRIM(InArgs(nodeCountA)), TRIM(ATSDUNodeNames(atCount)))) THEN - nodeFound = .true. - EXIT - END IF - ENDDO - IF (.not. nodeFound) THEN - ! Is the node referenced via a NodeList here? - TotNodeListOjbs = GetNumObjectsFound('NODELIST') - DO nodeListCount=1, TotNodeListOjbs - CALL GetObjectItem('NODELIST',nodeListCount,Alphas,NumAlphas,Numbers,NumNumbers,Status) - ! Does this NodeList name match the AirloopHVAC field? - IF (SameString(TRIM(InArgs(nodeCountA)), TRIM(Alphas(1)))) THEN - DO nodeCount=2, CurArgs - DO atCount=1, TotATSDUObjs - IF (SameString(TRIM(Alphas(nodeCount)), TRIM(ATSDUNodeNames(atCount)))) THEN - nodeFound = .true. - EXIT - END IF - ENDDO - IF (nodeFound) EXIT - ENDDO - ELSE - CYCLE - END IF - IF (nodeFound) THEN - ! Make a new nodelist object - POutArgs(1) = TRIM(Alphas(1)) // ' ATInlet' - IF (nodeCount > 2) THEN - POutArgs(2:nodeCount-1) = Alphas(2:nodeCount-1) - END IF - POutArgs(nodeCount) = TRIM(Alphas(nodeCount)) // ' ATInlet' - IF (NumAlphas > nodeCount) THEN - POutArgs(nodeCount+1:NumAlphas) = Alphas(nodeCount+1:NumAlphas) - END IF - CALL GetNewObjectDefInIDD('NodeList',PNumArgs,PAOrN,PReqFld,PObjMinFlds,PFldNames,PFldDefaults,PFldUnits) - CALL WriteOutIDFLines(DifLfn,'NodeList',NumAlphas,POutArgs,PFldNames,PFldUnits) - EXIT - END IF - ENDDO - END IF - IF (nodeFound) THEN - OutArgs(nodeCountA) = TRIM(InArgs(nodeCountA)) // ' ATInlet' - ELSE - OutArgs(nodeCountA) = InArgs(nodeCountA) - END IF - ENDDO - NoDiff = .false. - ELSE - CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - OutArgs(1:CurArgs)=InArgs(1:CurArgs) - NoDiff=.true. - ENDIF - - ! This is still part of the transition for AirTerminal:SingleDuct:Uncontrolled - CASE('AIRLOOPHVAC:SUPPLYPLENUM') - IF(TotATSDUObjs > 0) THEN - CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - OutArgs(1:4) = InArgs(1:4) - ! Loop through outlet node names looking for a match to an AirTerminal:SingleDuct:Uncontrolled node name - DO nodeCountA=5, CurArgs - nodeFound = .false. - ! Is the node referenced directly here? - DO atCount=1, TotATSDUObjs - IF (SameString(TRIM(InArgs(nodeCountA)), TRIM(ATSDUNodeNames(atCount)))) THEN - nodeFound = .true. - EXIT - END IF - ENDDO - IF (.not. nodeFound) THEN - ! Is the node referenced via a NodeList here? - TotNodeListOjbs = GetNumObjectsFound('NODELIST') - DO nodeListCount=1, TotNodeListOjbs - CALL GetObjectItem('NODELIST',nodeListCount,Alphas,NumAlphas,Numbers,NumNumbers,Status) - ! Does this NodeList name match the AirloopHVAC field? - IF (SameString(TRIM(InArgs(nodeCountA)), TRIM(Alphas(1)))) THEN - DO nodeCount=2, CurArgs - DO atCount=1, TotATSDUObjs - IF (SameString(TRIM(Alphas(nodeCount)), TRIM(ATSDUNodeNames(atCount)))) THEN - nodeFound = .true. - EXIT - END IF - ENDDO - IF (nodeFound) EXIT - ENDDO - ELSE - CYCLE - END IF - IF (nodeFound) THEN - ! Make a new nodelist object - POutArgs(1) = TRIM(Alphas(1)) // ' ATInlet' - IF (nodeCount > 2) THEN - POutArgs(2:nodeCount-1) = Alphas(2:nodeCount-1) - END IF - POutArgs(nodeCount) = TRIM(Alphas(nodeCount)) // ' ATInlet' - IF (NumAlphas > nodeCount) THEN - POutArgs(nodeCount+1:NumAlphas) = Alphas(nodeCount+1:NumAlphas) - END IF - CALL GetNewObjectDefInIDD('NodeList',PNumArgs,PAOrN,PReqFld,PObjMinFlds,PFldNames,PFldDefaults,PFldUnits) - CALL WriteOutIDFLines(DifLfn,'NodeList',NumAlphas,POutArgs,PFldNames,PFldUnits) - EXIT - END IF - ENDDO - END IF - IF (nodeFound) THEN - OutArgs(nodeCountA) = TRIM(InArgs(nodeCountA)) // ' ATInlet' - ELSE - OutArgs(nodeCountA) = InArgs(nodeCountA) - END IF - ENDDO - NoDiff = .false. - ELSE - CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - OutArgs(1:CurArgs)=InArgs(1:CurArgs) - NoDiff=.true. - ENDIF - - ! This is yet another part of the transition for AirTerminal:SingleDuct:Uncontrolled - ! The node name could be referenced in an AirLoopHVAC F9 "Demand Side Inlet Node Names" either directly or in a NodeList - CASE('AIRLOOPHVAC') - IF(TotATSDUObjs > 0) THEN - CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - nodeFound = .false. - ! Is the node referenced directly here? - DO atCount=1, TotATSDUObjs - IF (SameString(TRIM(InArgs(9)), TRIM(ATSDUNodeNames(atCount)))) THEN - nodeFound = .true. - EXIT - END IF - ENDDO - IF (.not. nodeFound) THEN - ! Is the node referenced via a NodeList here? - TotNodeListOjbs = GetNumObjectsFound('NODELIST') - DO nodeListCount=1, TotNodeListOjbs - CALL GetObjectItem('NODELIST',nodeListCount,Alphas,NumAlphas,Numbers,NumNumbers,Status) - ! Does this NodeList name match the AirloopHVAC field? - IF (SameString(TRIM(InArgs(9)), TRIM(Alphas(1)))) THEN - DO nodeCount=2, CurArgs - DO atCount=1, TotATSDUObjs - IF (SameString(TRIM(Alphas(nodeCount)), TRIM(ATSDUNodeNames(atCount)))) THEN - nodeFound = .true. - EXIT - END IF - ENDDO - IF (nodeFound) EXIT - ENDDO - ELSE - CYCLE - END IF - IF (nodeFound) THEN - ! Make a new nodelist object - POutArgs(1) = TRIM(Alphas(1)) // ' ATInlet' - IF (nodeCount > 2) THEN - POutArgs(2:nodeCount-1) = Alphas(2:nodeCount-1) - END IF - POutArgs(nodeCount) = TRIM(Alphas(nodeCount)) // ' ATInlet' - IF (NumAlphas > nodeCount) THEN - POutArgs(nodeCount+1:NumAlphas) = Alphas(nodeCount+1:NumAlphas) - END IF - CALL GetNewObjectDefInIDD('NodeList',PNumArgs,PAOrN,PReqFld,PObjMinFlds,PFldNames,PFldDefaults,PFldUnits) - CALL WriteOutIDFLines(DifLfn,'NodeList',NumAlphas,POutArgs,PFldNames,PFldUnits) - EXIT - END IF - ENDDO - END IF - - ! Now, finally, modify the AirLoopHVAC object, or pass it through - IF (nodeFound) THEN - ! Found the node name directly referenced or via a NodeList - NoDiff = .false. - OutArgs(1:8) = InArgs(1:8) - OutArgs(9) = TRIM(InArgs(9)) // ' ATInlet' - OutArgs(10:CurArgs) = InArgs(10:CurArgs) - ELSE - ! Node name not found - past this object through untouched - OutArgs(1:CurArgs) = InArgs(1:CurArgs) - NoDiff = .true. - END IF - ELSE - CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - OutArgs(1:CurArgs)=InArgs(1:CurArgs) - NoDiff=.true. - ENDIF - - ! Wait - there's more for the transition for AirTerminal:SingleDuct:Uncontrolled - CASE('ROOMAIR:NODE:AIRFLOWNETWORK:HVACEQUIPMENT') - IF(TotATSDUObjs > 0) THEN - CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - OutArgs(1) = InArgs(1) - ! Loop through fields looking for AirTerminal:SingleDuct:Uncontrolled node name - DO nodeCount=2, CurArgs - IF (SameString(TRIM(InArgs(nodeCount)), TRIM(ATSDUNodeNames(atCount)))) THEN - OutArgs(nodeCount) = TRIM(InArgs(nodeCount)) // ' ATInlet' - ELSE - OutArgs(nodeCount) = InArgs(nodeCount) - END IF - ENDDO - NoDiff = .false. - ELSE - CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - OutArgs(1:CurArgs)=InArgs(1:CurArgs) - NoDiff=.true. - ENDIF - - ! And even more for the transition for AirTerminal:SingleDuct:Uncontrolled - CASE('AIRFLOWNETWORK:DISTRIBUTION:NODE') - IF(TotATSDUObjs > 0) THEN - CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - ! Does this node match an AirTerminal:SingleDuct:Uncontrolled node name - nodeFound = .false. - DO atCount=1, TotATSDUObjs - IF (SameString(TRIM(InArgs(2)), TRIM(ATSDUNodeNames(atCount)))) THEN - nodeFound = .true. - EXIT - END IF - ENDDO - IF (nodeFound) THEN - ! Create companion object for the new node name - POutArgs(1) = TRIM(InArgs(1)) // ' ATInlet' - POutArgs(2) = TRIM(InArgs(2)) // ' ATInlet' - IF (CurArgs > 2) POutArgs(3:CurArgs) = InArgs(3:CurArgs) - CALL WriteOutIDFLines(DifLfn,'AirflowNetwork:Distribution:Node',CurArgs,POutArgs,NwFldNames,NwFldUnits) - END IF - - ! Either way, do nothing with this object, let it pass through unchanged - OutArgs(1:CurArgs) = InArgs(1:CurArgs) - NoDiff = .true. - ELSE - CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - OutArgs(1:CurArgs)=InArgs(1:CurArgs) - NoDiff=.true. - ENDIF - - ! And still more for the transition for AirTerminal:SingleDuct:Uncontrolled - CASE('AIRFLOWNETWORK:DISTRIBUTION:LINKAGE') - IF(TotATSDUObjs > 0) THEN - CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - ! Does this linkage contain an match an AIRFLOWNETWORK:DISTRIBUTION:NODE that matches an AirTerminal:SingleDuct:Uncontrolled node name - nodeFound = .false. - DO atCount=1, TotATSDUObjs - IF (SameString(TRIM(InArgs(3)), TRIM(MatchingATSDUAirFlowNodeNames(atCount)))) THEN - nodeFound = .true. - EXIT - END IF - ENDDO - IF (nodeFound) THEN - ! Modify this object - OutArgs(1:2) = InArgs(1:2) - OutArgs(3) = TRIM(InArgs(3)) // ' ATInlet' - OutArgs(4) = InArgs(4) ! this is required, so it should be present - NoDiff = .false. - IF (CurArgs > 4) OutArgs(5) = InArgs(5) - ! Create companion object for the new linkage from InArgs3...ATInlet to original outlet INArgs3 - POutArgs(1) = TRIM(InArgs(1)) // ' ATInlet' - POutArgs(2) = TRIM(InArgs(3)) // ' ATInlet' - POutArgs(3) = InArgs(3) - POutArgs(4) = InArgs(4) ! this is required, so it should be present - IF (CurArgs > 4) POutArgs(5) = InArgs(5) - CALL WriteOutIDFLines(DifLfn,'AirflowNetwork:Distribution:Linkage',CurArgs,POutArgs,NwFldNames,NwFldUnits) - ELSE - ! Do nothing with this object, let it pass through unchanged - OutArgs(1:CurArgs) = InArgs(1:CurArgs) - NoDiff = .true. - END IF - ELSE - CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - OutArgs(1:CurArgs)=InArgs(1:CurArgs) - NoDiff=.true. - ENDIF - ! Whew - Done with the transition for AirTerminal:SingleDuct:Uncontrolled - ! Well - almost done, there's more in the case below for ZoneHVAC:EquipmentList . . . ! If your original object starts with B, insert the rules here @@ -1271,18 +932,7 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile POutArgs(3) = InArgs(CurField) CALL WriteOutIDFLines(DifLfn,'Schedule:Constant',PNumArgs,POutArgs,PFldNames,PFldUnits) ELSE - ! Add air terminal unit object type and name change here (see AirTerminal:SingleDuct:Uncontrolled above) - IF (CurField > 2) THEN - IF (SameString(TRIM(InArgs(CurField)),'AirTerminal:SingleDuct:Uncontrolled')) THEN - OutArgs(CurField) = 'ZoneHVAC:AirDistributionUnit' - ELSE IF (SameString(TRIM(InArgs(CurField-1)),'AirTerminal:SingleDuct:Uncontrolled')) THEN - OutArgs(CurField) = TRIM(InArgs(CurField)) // ' ADU' - ELSE - OutArgs(CurField) = InArgs(CurField) - END IF - ELSE - OutArgs(CurField) = InArgs(CurField) - END IF + OutArgs(CurField) = InArgs(CurField) END IF END DO diff --git a/src/Transition/CreateNewIDFUsingRulesV9_2_0b.f90 b/src/Transition/CreateNewIDFUsingRulesV9_3_0.f90 similarity index 96% rename from src/Transition/CreateNewIDFUsingRulesV9_2_0b.f90 rename to src/Transition/CreateNewIDFUsingRulesV9_3_0.f90 index 16f5aad64d1..490f82884ef 100644 --- a/src/Transition/CreateNewIDFUsingRulesV9_2_0b.f90 +++ b/src/Transition/CreateNewIDFUsingRulesV9_3_0.f90 @@ -8,12 +8,12 @@ MODULE SetVersion CONTAINS SUBROUTINE SetThisVersionVariables() - VerString='Conversion 9.2 => 9.2b' - VersionNum=9.2 - sVersionNum='9.2' - IDDFileNameWithPath=TRIM(ProgramPath)//'V9-2-0-Energy+Old.idd' - NewIDDFileNameWithPath=TRIM(ProgramPath)//'V9-2-0-Energy+.idd' - RepVarFileNameWithPath=TRIM(ProgramPath)//'Report Variables 9-1-0 to 9-2-0.csv' + VerString='Conversion 9.2 => 9.3' + VersionNum=9.3 + sVersionNum='9.3' + IDDFileNameWithPath=TRIM(ProgramPath)//'V9-2-0-Energy+.idd' + NewIDDFileNameWithPath=TRIM(ProgramPath)//'V9-3-0-Energy+.idd' + RepVarFileNameWithPath=TRIM(ProgramPath)//'Report Variables 9-2-0 to 9-3-0.csv' END SUBROUTINE END MODULE @@ -99,6 +99,17 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile CHARACTER(len=10) :: LocalFileExtension=' ' LOGICAL :: WildMatch + ! For Table:Lookup objects + INTEGER NumPerimObjs + INTEGER PArgs + + INTEGER :: iPt, iPt2, iPt3 + INTEGER, ALLOCATABLE, DIMENSION(:) :: NumIndVarsVals, CurIndices, Increments, StepSize + INTEGER NumOutputVals, NumIndVars, RefIndex, FlatIndex, NumMiniTables, MiniTableSize + CHARACTER(len=MaxNameLength), ALLOCATABLE, DIMENSION(:,:) :: IndVars + INTEGER, ALLOCATABLE, DIMENSION(:,:) :: IndVarOrder + CHARACTER(len=MaxNameLength), ALLOCATABLE, DIMENSION(:) :: OutputVals + LOGICAL :: ConnComp LOGICAL :: ConnCompCtrl LOGICAL :: FileExist @@ -129,20 +140,6 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile INTEGER PNumArgs ! Number of Arguments in a definition CHARACTER(len=MaxNameLength), ALLOCATABLE, DIMENSION(:) :: POutArgs - - ! For Defaulting now-required RunPeriod Name - INTEGER :: TotRunPeriods = 0 - INTEGER :: runPeriodNum = 0 - INTEGER :: iterateRunPeriod = 0 - CHARACTER(len=MaxNameLength), ALLOCATABLE, DIMENSION(:) :: CurrentRunPeriodNames - CHARACTER(len=20) :: PotentialRunPeriodName - - ! Only needed for ZoneHVAC:EquipmentList translation - INTEGER zeqNum - CHARACTER(len=20) :: zeqNumStr - CHARACTER(len=7) :: zeqHeatingOrCooling - LOGICAL :: writeScheduleTypeObj = .true. - ! For AirTerminal:SingleDuct:Uncontrolled transition CHARACTER(len=MaxNameLength), ALLOCATABLE, DIMENSION(:) :: ATSDUNodeNames CHARACTER(len=MaxNameLength), ALLOCATABLE, DIMENSION(:) :: MatchingATSDUAirFlowNodeNames @@ -155,6 +152,7 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile INTEGER nodeCountA LOGICAL :: nodeFound = .false. + If (FirstTime) THEN ! do things that might be applicable only to this new version FirstTime=.false. EndIf @@ -325,8 +323,6 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile END IF ENDDO - - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! P R O C E S S I N G ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -423,13 +419,13 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile SELECT CASE (MakeUPPERCase(TRIM(IDFRecords(Num)%Name))) CASE ('VERSION') -! IF ((InArgs(1)(1:3)) == sVersionNum .and. ArgFile) THEN -! CALL ShowWarningError('File is already at latest version. No new diff file made.',Auditf) -! CLOSE(diflfn,STATUS='DELETE') -! LatestVersion=.true. -! EXIT -! ENDIF -! CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) + IF ((InArgs(1)(1:3)) == sVersionNum .and. ArgFile) THEN + CALL ShowWarningError('File is already at latest version. No new diff file made.',Auditf) + CLOSE(diflfn,STATUS='DELETE') + LatestVersion=.true. + EXIT + ENDIF + CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) OutArgs(1) = sVersionNum NoDiff=.false. @@ -468,6 +464,25 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile POutArgs(7) = InArgs(7) CALL WriteOutIDFLines(DifLfn,'ZoneHVAC:AirDistributionUnit',PNumArgs,POutArgs,PFldNames,PFldUnits) + ! This is part of the transition for AirTerminal:SingleDuct:Uncontrolled + CASE('ZONEHVAC:EQUIPMENTLIST') + nodiff = .false. + CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) + DO CurField = 1, CurArgs + ! Add air terminal unit object type and name change here (see AirTerminal:SingleDuct:Uncontrolled above) + IF (CurField > 2) THEN + IF (SameString(TRIM(InArgs(CurField)),'AirTerminal:SingleDuct:Uncontrolled')) THEN + OutArgs(CurField) = 'ZoneHVAC:AirDistributionUnit' + ELSE IF (SameString(TRIM(InArgs(CurField-1)),'AirTerminal:SingleDuct:Uncontrolled')) THEN + OutArgs(CurField) = TRIM(InArgs(CurField)) // ' ADU' + ELSE + OutArgs(CurField) = InArgs(CurField) + END IF + ELSE + OutArgs(CurField) = InArgs(CurField) + END IF + END DO + ! This is part of the transition for AirTerminal:SingleDuct:Uncontrolled CASE('AIRLOOPHVAC:ZONESPLITTER') IF(TotATSDUObjs > 0) THEN @@ -747,7 +762,6 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile NoDiff=.true. ENDIF ! Whew - Done with the transition for AirTerminal:SingleDuct:Uncontrolled - ! Well - almost done, there's more in the case below for ZoneHVAC:EquipmentList . . . ! If your original object starts with B, insert the rules here @@ -777,6 +791,11 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile ! If your original object starts with R, insert the rules here + ! See above - this object is part of the transition for AirTerminal:SingleDuct:Uncontrolled + ! CASE('ROOMAIR:NODE:AIRFLOWNETWORK:HVACEQUIPMENT') + + ! If your original object starts with S, insert the rules here + ! If your original object starts with T, insert the rules here ! If your original object starts with U, insert the rules here @@ -786,23 +805,9 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile ! If your original object starts with W, insert the rules here ! If your original object starts with Z, insert the rules here - CASE('ZONEHVAC:EQUIPMENTLIST') - nodiff = .false. - CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) - DO CurField = 1, CurArgs - ! Add air terminal unit object type and name change here (see AirTerminal:SingleDuct:Uncontrolled above) - IF (CurField > 2) THEN - IF (SameString(TRIM(InArgs(CurField)),'AirTerminal:SingleDuct:Uncontrolled')) THEN - OutArgs(CurField) = 'ZoneHVAC:AirDistributionUnit' - ELSE IF (SameString(TRIM(InArgs(CurField-1)),'AirTerminal:SingleDuct:Uncontrolled')) THEN - OutArgs(CurField) = TRIM(InArgs(CurField)) // ' ADU' - ELSE - OutArgs(CurField) = InArgs(CurField) - END IF - ELSE - OutArgs(CurField) = InArgs(CurField) - END IF - END DO + + ! See above - this object is part of the transition for AirTerminal:SingleDuct:Uncontrolled + ! CASE('ZONEHVAC:EQUIPMENTLIST') !!! Changes for report variables, meters, tables -- update names CASE('OUTPUT:VARIABLE') @@ -1365,3 +1370,49 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile RETURN END SUBROUTINE CreateNewIDFUsingRules + +SUBROUTINE SortUnique(StrArray, Size, Order) + IMPLICIT NONE ! Enforce explicit typing of all variables in this routine + CHARACTER(len=*), DIMENSION(Size) :: StrArray + Integer, DIMENSION(Size) :: Order + INTEGER :: Size, InitSize + + REAL, ALLOCATABLE, DIMENSION(:) :: InNumbers + REAL, ALLOCATABLE, DIMENSION(:) :: OutNumbers + INTEGER :: I, I2 + REAL :: min_val, max_val + + ALLOCATE(InNumbers(Size)) + ALLOCATE(OutNumbers(Size)) + + InitSize = Size + + DO I=1,Size + READ(StrArray(I),*) InNumbers(I) + END DO + + min_val = minval(InNumbers)-1 + max_val = maxval(InNumbers) + + Size = 0 + DO WHILE (min_valmin_val) + OutNumbers(Size) = min_val + END DO + + DO I=1,Size + WRITE(StrArray(I),'(F0.5)') OutNumbers(I) + StrArray(I) = TRIM(StrArray(I)) + END DO + + DO I=1,InitSize + DO I2=1,Size + IF (OutNumbers(I2) == InNumbers(I)) THEN + Order(I) = I2 + EXIT + END IF + END DO + END DO + +END SUBROUTINE SortUnique \ No newline at end of file diff --git a/src/Transition/InputRulesFiles/Rules9-1-0-to-9-2-0.md b/src/Transition/InputRulesFiles/Rules9-1-0-to-9-2-0.md index 45ea9a09a9e..35800bc44cc 100644 --- a/src/Transition/InputRulesFiles/Rules9-1-0-to-9-2-0.md +++ b/src/Transition/InputRulesFiles/Rules9-1-0-to-9-2-0.md @@ -32,150 +32,7 @@ To avoid warnings, add a ScheduleTypeLimits object and reference it in the new s Repeat this for each equipment group of 6 fields; fields 13 & 14, 19 & 20, etc. -# Object Remove and Replace: `AirTerminal:SingleDuct:Uncontrolled` to `AirTerminal:SingleDuct:ConstantVolume:NoReheat` - -## (1) Replace Object: replace the "AirTerminal:SingleDuct:Uncontrolled" with "AirTerminal:SingleDuct:ConstantVolume:NoReheat" - -Field F1(A1): Name, no change - -Field F2(A2): Availability Schedule Name, no change. - -Insert Field F3(A3): Air Inlet Node Name, create a new inlet node name using the original Field F3(A3) value - - Field F4(A4 = Field F3(A3) + "ATInlet" -> example, "SPACE3-1 Supply Inlet ATInlet", - - save this new inlet node name for use as the "AirLoopHVAC:ZoneSplitter" or "AirLoopHVAC:SupplyPlenum" outlet node name - -Field F4(A4): Air Outlet Node Name, use the old F3(A3). - -Field F5(N1) Old Field F4: Maximum Air Flow Rate {m3/s}, no change. - -Field F6(A5) Old Field F5: Design Specification Outdoor Air Object Name, no change. - -Field F7(A6) Old Field F6: Per Person Ventilation Rate Mode, no change. - -Save old Field F7 to use in new ZoneHVAC:AirDistribution object: Design Specification Air Terminal Sizing Object Name - - -## (2) Object Change: ZoneHVAC:EquipmentList - -Field F3(A3): Zone Equipment 1 Object Type, replace "AirTerminal:SingleDuct:Uncontrolled" with "ZoneHVAC:AirDistributionUnit" - -Field F4(A4): Zone Equipment 1 Name, create a unique new name. The new name will be created based on the name of "AirTerminal:SingleDuct:Uncontrolled" object". "AirTerminal:SingleDuct:Uncontrolled" object Name + "ADU" -> "SPACE3-1 Direct Air ADU" - -save the new name of the "ZoneHVAC:AirDistributionUnit" object - -save the "AirTerminal:SingleDuct:Uncontrolled" object Name for later use ( will be used as name for new air terminal no reheat object) - -Field F5(N1) - F6(N2), no change. - - -## (3) Add Object: ZoneHVAC:AirDistributionUnit - -Field F1(A1): Name, insert the unique name created for "ZoneHVAC:AirDistributionUnit" in STEP 1 above, example "SPACE3-1 Direct Air ADU" - -Field F2(A2): Air Distribution Unit Outlet Node Name, use Zone Supply Air Node Name input field (A3) value of the "AirTerminal:SingleDuct:Uncontrolled" object - -Field F3(A3): Air Terminal Object Type, insert "AirTerminal:SingleDuct:ConstantVolume:NoReheat" - -Field F4(A4): Air Terminal Object Type, insert the Name of the "AirTerminal:SingleDuct:Uncontrolled" object, example "SPACE3-1 Direct Air" - -Field >=F5(N1): Leave blank. Will use default. - -Field >=F6(N2): Leave blank. Will use default. - -Field >=F5(N1): Leave blank. Will use default. - - -## (4) Modify Object: AirLoopHVAC:ZoneSplitter - -If a zone splitter references an "AirTerminal:SingleDuct:Uncontrolled" node name (or a NodeList containing a match) . If it's a NodeList, then create a duplicate NodeList (if necessary) and change -the matching node name in the NodeList. If duplicate NodeList is made, then change the node name in the splitter to match. - -Field F1(A1): Name, no change. - -Field F2(A2): Inlet Node Name, no change - - modify one of the "Outlet X Node Name" of the "AirLoopHVAC:ZoneSplitter" if it matches the Zone Supply Air Node Name input field value of current "AirTerminal:SingleDuct:Uncontrolled" object - - use the new Air Inlet Node Name created in Step 3 above for "AirTerminal:SingleDuct:ConstantVolume:NoReheat" object - -Field >=F3: Outlet X Node Name, modify the matching Outlet X Node Name, should be the same node name as the new Air Inlet Node Name of the "AirTerminal:SingleDuct:ConstantVolume:NoReheat" object, old name + ATInlet -> example, "SPACE3-1 Supply Inlet ATInlet" - -## (5) Modify Object: AirLoopHVAC:SupplyPlenum - -If a supply plenum references an "AirTerminal:SingleDuct:Uncontrolled" node name (or a NodeList containing a match). If it's a NodeList, then create a duplicate NodeList (if necessary) and change -the matching node name in the NodeList. If a duplicate NodeList is made, then change the node name in the splitter to match. - -Field F1(A1): Name, no change. - -Field F2(A2): Zone Name, no change - -Field F3(A3): Zone Node Name, no change - -Field F4(A4): Inlet Node Name, no change - - modify one of the "Outlet X Node Name" of the "AirLoopHVAC:SupplyPlenum" that matches the Zone Supply Air Node Name input field value of current "AirTerminal:SingleDuct:Uncontrolled" object - - use the new Air Inlet Node Name created in Step 3 above for "AirTerminal:SingleDuct:ConstantVolume:NoReheat" object. - -Field >=FX(AX): Outlet X Node Name, modify the matching Outlet X Node Name, should be the same node name as the new Air Inlet Node Name of "AirTerminal:SingleDuct:ConstantVolume:NoReheat" object, old name + ATInlet -> example, "SPACE3-1 Supply Inlet ATInlet" - -## (6) Modify Object: AirLoopHVAC - -If F9 "Demand Side Inlet Node Names" references an "AirTerminal:SingleDuct:Uncontrolled" node name (or a NodeList containing a match). If it's a NodeList, then create a duplicate NodeList (if necessary) and change -the matching node name in the NodeList. If a duplicate NodeList is made, then change the node name in the splitter to match. - - -Field F1(A1): Name, no change. - -Field F2(A2): Zone Name, no change - -Field F3(A3): Zone Node Name, no change - -Field F4(A4): Inlet Node Name, no change - - modify one of the "Outlet X Node Name" of the "AirLoopHVAC:SupplyPlenum" that matches the Zone Supply Air Node Name input field value of current "AirTerminal:SingleDuct:Uncontrolled" object - - use the new Air Inlet Node Name created in Step 3 above for "AirTerminal:SingleDuct:ConstantVolume:NoReheat" object. - -Field >=FX(AX): Outlet X Node Name, modify the matching Outlet X Node Name, should be the same node name as the new Air Inlet Node Name of "AirTerminal:SingleDuct:ConstantVolume:NoReheat" object, old name + ATInlet -> example, "SPACE3-1 Supply Inlet ATInlet" - -## (7) Change any EMS references -Replace "AirTerminal:SingleDuct:Uncontrolled" with "AirTerminal:SingleDuct:ConstantVolume:NoReheat" -and replace "AirTerminal:SingleDuct:Uncontrolled Maximum Mass Flow Rate" with "AirTerminal:SingleDuct:ConstantVolume:NoReheat Maximum Mass Flow Rate" - -## (8) AirflowNetwork:Distribution:Node -If there is an "AirflowNetwork:Distribution:Node" object which references an "AirTerminal:SingleDuct:Uncontrolled" node name, create a duplicate object -with ATInlet appended to the object name and the node name. - -## (9) AirflowNetwork:Distribution:Linkage -If there is an "AirflowNetwork:Distribution:Linkage" object which references an "AirflowNetwork:Distribution:Node" that was duplicated in step 8 then modify the linkage -object and create a new one as shown in this exmple. - -### Before - AirflowNetwork:Distribution:Linkage, - Zone3SupplyLink, !- Name - Zone3SupplyNode, !- Node 1 Name - Zone3SupplyRegisterNode, !- Node 2 Name - Zone3Supply, !- Component Name - Attic Zone; !- Thermal Zone Name - -### After - AirflowNetwork:Distribution:Linkage, - Zone3SupplyLink ATInlet, !- Name - Zone3SupplyRegisterNode ATInlet, !- Node 1 Name - Zone3SupplyRegisterNode, !- Node 2 Name - Zone3Supply, !- Component Name - Attic Zone; !- Thermal Zone Name - - AirflowNetwork:Distribution:Linkage, - Zone3SupplyLink, !- Name - Zone3SupplyNode, !- Node 1 Name - Zone3SupplyRegisterNode ATInlet, !- Node 2 Name - Zone3Supply, !- Component Name - Attic Zone; !- Thermal Zone Name - +# Object Change: `ObjectNameC` # Object Change: `ObjectNameD` diff --git a/src/Transition/InputRulesFiles/Rules9-2-0-to-9-3-0.md b/src/Transition/InputRulesFiles/Rules9-2-0-to-9-3-0.md new file mode 100644 index 00000000000..81b9afe4552 --- /dev/null +++ b/src/Transition/InputRulesFiles/Rules9-2-0-to-9-3-0.md @@ -0,0 +1,151 @@ +Input Changes +============= + +This file documents the structural changes on the input of EnergyPlus that could affect interfaces, etc. +This was previously an Excel workbook that made for very difficult version control, especially during busy times around code freezes. + +# Object Remove and Replace: `AirTerminal:SingleDuct:Uncontrolled` to `AirTerminal:SingleDuct:ConstantVolume:NoReheat` + +## (1) Replace Object: replace the "AirTerminal:SingleDuct:Uncontrolled" with "AirTerminal:SingleDuct:ConstantVolume:NoReheat" + +Field F1(A1): Name, no change + +Field F2(A2): Availability Schedule Name, no change. + +Insert Field F3(A3): Air Inlet Node Name, create a new inlet node name using the original Field F3(A3) value + + Field F4(A4 = Field F3(A3) + "ATInlet" -> example, "SPACE3-1 Supply Inlet ATInlet", + + save this new inlet node name for use as the "AirLoopHVAC:ZoneSplitter" or "AirLoopHVAC:SupplyPlenum" outlet node name + +Field F4(A4): Air Outlet Node Name, use the old F3(A3). + +Field F5(N1) Old Field F4: Maximum Air Flow Rate {m3/s}, no change. + +Field F6(A5) Old Field F5: Design Specification Outdoor Air Object Name, no change. + +Field F7(A6) Old Field F6: Per Person Ventilation Rate Mode, no change. + +Save old Field F7 to use in new ZoneHVAC:AirDistribution object: Design Specification Air Terminal Sizing Object Name + + +## (2) Object Change: ZoneHVAC:EquipmentList + +Field F3(A3): Zone Equipment 1 Object Type, replace "AirTerminal:SingleDuct:Uncontrolled" with "ZoneHVAC:AirDistributionUnit" + +Field F4(A4): Zone Equipment 1 Name, create a unique new name. The new name will be created based on the name of "AirTerminal:SingleDuct:Uncontrolled" object". "AirTerminal:SingleDuct:Uncontrolled" object Name + "ADU" -> "SPACE3-1 Direct Air ADU" + +save the new name of the "ZoneHVAC:AirDistributionUnit" object + +save the "AirTerminal:SingleDuct:Uncontrolled" object Name for later use ( will be used as name for new air terminal no reheat object) + +Field F5(N1) - F6(N2), no change. + + +## (3) Add Object: ZoneHVAC:AirDistributionUnit + +Field F1(A1): Name, insert the unique name created for "ZoneHVAC:AirDistributionUnit" in STEP 1 above, example "SPACE3-1 Direct Air ADU" + +Field F2(A2): Air Distribution Unit Outlet Node Name, use Zone Supply Air Node Name input field (A3) value of the "AirTerminal:SingleDuct:Uncontrolled" object + +Field F3(A3): Air Terminal Object Type, insert "AirTerminal:SingleDuct:ConstantVolume:NoReheat" + +Field F4(A4): Air Terminal Object Type, insert the Name of the "AirTerminal:SingleDuct:Uncontrolled" object, example "SPACE3-1 Direct Air" + +Field >=F5(N1): Leave blank. Will use default. + +Field >=F6(N2): Leave blank. Will use default. + +Field >=F5(N1): Leave blank. Will use default. + + +## (4) Modify Object: AirLoopHVAC:ZoneSplitter + +If a zone splitter references an "AirTerminal:SingleDuct:Uncontrolled" node name (or a NodeList containing a match) . If it's a NodeList, then create a duplicate NodeList (if necessary) and change +the matching node name in the NodeList. If duplicate NodeList is made, then change the node name in the splitter to match. + +Field F1(A1): Name, no change. + +Field F2(A2): Inlet Node Name, no change + + modify one of the "Outlet X Node Name" of the "AirLoopHVAC:ZoneSplitter" if it matches the Zone Supply Air Node Name input field value of current "AirTerminal:SingleDuct:Uncontrolled" object + + use the new Air Inlet Node Name created in Step 3 above for "AirTerminal:SingleDuct:ConstantVolume:NoReheat" object + +Field >=F3: Outlet X Node Name, modify the matching Outlet X Node Name, should be the same node name as the new Air Inlet Node Name of the "AirTerminal:SingleDuct:ConstantVolume:NoReheat" object, old name + ATInlet -> example, "SPACE3-1 Supply Inlet ATInlet" + +## (5) Modify Object: AirLoopHVAC:SupplyPlenum + +If a supply plenum references an "AirTerminal:SingleDuct:Uncontrolled" node name (or a NodeList containing a match). If it's a NodeList, then create a duplicate NodeList (if necessary) and change +the matching node name in the NodeList. If a duplicate NodeList is made, then change the node name in the splitter to match. + +Field F1(A1): Name, no change. + +Field F2(A2): Zone Name, no change + +Field F3(A3): Zone Node Name, no change + +Field F4(A4): Inlet Node Name, no change + + modify one of the "Outlet X Node Name" of the "AirLoopHVAC:SupplyPlenum" that matches the Zone Supply Air Node Name input field value of current "AirTerminal:SingleDuct:Uncontrolled" object + + use the new Air Inlet Node Name created in Step 3 above for "AirTerminal:SingleDuct:ConstantVolume:NoReheat" object. + +Field >=FX(AX): Outlet X Node Name, modify the matching Outlet X Node Name, should be the same node name as the new Air Inlet Node Name of "AirTerminal:SingleDuct:ConstantVolume:NoReheat" object, old name + ATInlet -> example, "SPACE3-1 Supply Inlet ATInlet" + +## (6) Modify Object: AirLoopHVAC + +If F9 "Demand Side Inlet Node Names" references an "AirTerminal:SingleDuct:Uncontrolled" node name (or a NodeList containing a match). If it's a NodeList, then create a duplicate NodeList (if necessary) and change +the matching node name in the NodeList. If a duplicate NodeList is made, then change the node name in the splitter to match. + + +Field F1(A1): Name, no change. + +Field F2(A2): Zone Name, no change + +Field F3(A3): Zone Node Name, no change + +Field F4(A4): Inlet Node Name, no change + + modify one of the "Outlet X Node Name" of the "AirLoopHVAC:SupplyPlenum" that matches the Zone Supply Air Node Name input field value of current "AirTerminal:SingleDuct:Uncontrolled" object + + use the new Air Inlet Node Name created in Step 3 above for "AirTerminal:SingleDuct:ConstantVolume:NoReheat" object. + +Field >=FX(AX): Outlet X Node Name, modify the matching Outlet X Node Name, should be the same node name as the new Air Inlet Node Name of "AirTerminal:SingleDuct:ConstantVolume:NoReheat" object, old name + ATInlet -> example, "SPACE3-1 Supply Inlet ATInlet" + +## (7) Change any EMS references +Replace "AirTerminal:SingleDuct:Uncontrolled" with "AirTerminal:SingleDuct:ConstantVolume:NoReheat" +and replace "AirTerminal:SingleDuct:Uncontrolled Maximum Mass Flow Rate" with "AirTerminal:SingleDuct:ConstantVolume:NoReheat Maximum Mass Flow Rate" + +## (8) AirflowNetwork:Distribution:Node +If there is an "AirflowNetwork:Distribution:Node" object which references an "AirTerminal:SingleDuct:Uncontrolled" node name, create a duplicate object +with ATInlet appended to the object name and the node name. + +## (9) AirflowNetwork:Distribution:Linkage +If there is an "AirflowNetwork:Distribution:Linkage" object which references an "AirflowNetwork:Distribution:Node" that was duplicated in step 8 then modify the linkage +object and create a new one as shown in this exmple. + +### Before + AirflowNetwork:Distribution:Linkage, + Zone3SupplyLink, !- Name + Zone3SupplyNode, !- Node 1 Name + Zone3SupplyRegisterNode, !- Node 2 Name + Zone3Supply, !- Component Name + Attic Zone; !- Thermal Zone Name + +### After + AirflowNetwork:Distribution:Linkage, + Zone3SupplyLink ATInlet, !- Name + Zone3SupplyRegisterNode ATInlet, !- Node 1 Name + Zone3SupplyRegisterNode, !- Node 2 Name + Zone3Supply, !- Component Name + Attic Zone; !- Thermal Zone Name + + AirflowNetwork:Distribution:Linkage, + Zone3SupplyLink, !- Name + Zone3SupplyNode, !- Node 1 Name + Zone3SupplyRegisterNode ATInlet, !- Node 2 Name + Zone3Supply, !- Component Name + Attic Zone; !- Thermal Zone Name + + diff --git a/src/Transition/SupportFiles/Report Variables 9-1-0 to 9-2-0.csv b/src/Transition/SupportFiles/Report Variables 9-1-0 to 9-2-0.csv index e56ee4e8512..0e366d11fdd 100644 --- a/src/Transition/SupportFiles/Report Variables 9-1-0 to 9-2-0.csv +++ b/src/Transition/SupportFiles/Report Variables 9-1-0 to 9-2-0.csv @@ -1,5 +1,3 @@ 9.1.0,9.2.0,Transition notes 0,0,These numbers should be the number of report variables in the following list (including deletes). Two columns/numbers. old variable name,new variable name,-- add variable names (before this line) and leave off units -- to delete -AirTerminal:SingleDuct:Uncontrolled,AirTerminal:SingleDuct:ConstantVolume:NoReheat, -AirTerminal:SingleDuct:Uncontrolled Maximum Mass Flow Rate,AirTerminal:SingleDuct:ConstantVolume:NoReheat Maximum Mass Flow Rate, diff --git a/src/Transition/SupportFiles/Report Variables 9-2-0 to 9-3-0.csv b/src/Transition/SupportFiles/Report Variables 9-2-0 to 9-3-0.csv new file mode 100644 index 00000000000..e56ee4e8512 --- /dev/null +++ b/src/Transition/SupportFiles/Report Variables 9-2-0 to 9-3-0.csv @@ -0,0 +1,5 @@ +9.1.0,9.2.0,Transition notes +0,0,These numbers should be the number of report variables in the following list (including deletes). Two columns/numbers. +old variable name,new variable name,-- add variable names (before this line) and leave off units -- to delete +AirTerminal:SingleDuct:Uncontrolled,AirTerminal:SingleDuct:ConstantVolume:NoReheat, +AirTerminal:SingleDuct:Uncontrolled Maximum Mass Flow Rate,AirTerminal:SingleDuct:ConstantVolume:NoReheat Maximum Mass Flow Rate,