From e16feadf7135aa97049633a20b30ce2f22643a40 Mon Sep 17 00:00:00 2001 From: Dareum Nam Date: Tue, 3 Nov 2020 21:34:07 -0700 Subject: [PATCH 1/7] Fix 9-3-0 to 9-4-0 transition --- .../CreateNewIDFUsingRulesV9_4_0.f90 | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 b/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 index cf41b6477f8..be96aea0b51 100644 --- a/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 +++ b/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 @@ -126,7 +126,6 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile CHARACTER(len=MaxNameLength) :: OutputDiagnosticsName CHARACTER(len=MaxNameLength), ALLOCATABLE, DIMENSION(:) :: OutputDiagnosticsNames LOGICAL :: alreadyProcessedOneOutputDiagnostic=.false. - INTEGER :: nE, nEC, nG, nNG, nFO, nFON LOGICAL :: changeMeterNameFlag INTEGER :: totMeterCustom = 0 @@ -135,6 +134,8 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile CHARACTER(len=MaxNameLength) :: MeterCustomName CHARACTER(len=MaxNameLength), ALLOCATABLE, DIMENSION(:) :: MeterCustomNames LOGICAL :: throwPythonWarning = .TRUE. + + INTEGER :: meterCustomDecrName = 5 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! E N D O F I N S E R T L O C A L V A R I A B L E S H E R E ! @@ -1221,6 +1222,12 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile EXIT ENDIF ENDDO + DO WHILE (meterCustomDecrName <= 47) + IF (CurArgs .GE. meterCustomDecrName) THEN + CALL ReplaceElectricityMeterName(OutArgs(meterCustomDecrName), NoDiff) + END IF + meterCustomDecrName = meterCustomDecrName + 2 + END DO !!! Changes for other objects that reference meter names -- update names CASE('DEMANDMANAGERASSIGNMENTLIST', & @@ -1472,3 +1479,24 @@ SUBROUTINE ReplaceFuelNameWithEndUseSubcategory(InOutArg, NoDiffArg) NoDiffArg=.false. END IF END SUBROUTINE + +SUBROUTINE ReplaceElectricityMeterName(InOutArg, NoDiffArg) +! Special subroutine for v9.4 + + CHARACTER(*), INTENT(INOUT) :: InOutArg + LOGICAL, INTENT(INOUT) :: NoDiffArg + INTEGER :: lenInArg = 0 + INTEGER :: nEP, nEE + lenInArg=Len_Trim(InOutArg) + + nEP=INDEX(InOutArg,'Electric Power') + nEE=INDEX(InOutArg,'Electric Energy') + + IF (nEP > 0) THEN + InOutArg = InOutArg(1:nEP-1) // 'Electricity Rate' + NoDiffArg=.false. + ELSE IF (nEE > 0) THEN + InOutArg = InOutArg(1:nEE-1) // 'Electricity Energy' + NoDiffArg=.false. + END IF +END SUBROUTINE From 2ace9939c7b71fb8413af91e2893006904005a8c Mon Sep 17 00:00:00 2001 From: Dareum Nam Date: Wed, 4 Nov 2020 14:09:51 -0700 Subject: [PATCH 2/7] update transition for Meter:CustomDecrement --- src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 b/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 index be96aea0b51..583d6852a65 100644 --- a/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 +++ b/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 @@ -1222,13 +1222,26 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile EXIT ENDIF ENDDO - DO WHILE (meterCustomDecrName <= 47) + ! Begin - Special section for v9.4 + IF (CurArgs .GE. 3) THEN + changeMeterNameFlag = .true. + DO numMeterCustom=1, totMeterCustom + totMeterCustomDecr + MeterCustomName = MeterCustomNames(numMeterCustom) + IF (MeterCustomName .eq. MakeUPPERCase(InArgs(3))) THEN + changeMeterNameFlag = .false. + END IF + END DO + IF (changeMeterNameFlag) THEN + CALL ReplaceFuelNameWithEndUseSubcategory(OutArgs(3), NoDiff) + END IF + END IF + DO WHILE (meterCustomDecrName <= 47) ! Output Variable or Meter Name 1 to 22 (A5, A7, A9, ... A47) IF (CurArgs .GE. meterCustomDecrName) THEN CALL ReplaceElectricityMeterName(OutArgs(meterCustomDecrName), NoDiff) END IF meterCustomDecrName = meterCustomDecrName + 2 END DO - + ! End - Special section for v9.4 !!! Changes for other objects that reference meter names -- update names CASE('DEMANDMANAGERASSIGNMENTLIST', & 'UTILITYCOST:TARIFF') From 22b93ffc3eaf00f97d9f3a9532c1197124829234 Mon Sep 17 00:00:00 2001 From: Dareum Nam Date: Wed, 4 Nov 2020 14:12:05 -0700 Subject: [PATCH 3/7] add line --- src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 b/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 index 583d6852a65..56ebb069342 100644 --- a/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 +++ b/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 @@ -1242,6 +1242,7 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile meterCustomDecrName = meterCustomDecrName + 2 END DO ! End - Special section for v9.4 + !!! Changes for other objects that reference meter names -- update names CASE('DEMANDMANAGERASSIGNMENTLIST', & 'UTILITYCOST:TARIFF') From 782f872f9093f786552665bdf0e54d3d5c9387e5 Mon Sep 17 00:00:00 2001 From: Dareum Nam Date: Wed, 4 Nov 2020 15:16:49 -0700 Subject: [PATCH 4/7] fix CurVar num --- .../CreateNewIDFUsingRulesV9_4_0.f90 | 32 ++----------------- 1 file changed, 2 insertions(+), 30 deletions(-) diff --git a/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 b/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 index 56ebb069342..6dc3e0802a3 100644 --- a/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 +++ b/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 @@ -1119,8 +1119,8 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) OutArgs(1:CurArgs)=InArgs(1:CurArgs) nodiff=.true. - CurVar=4 ! In case Source Meter would change - DO Var=4,CurArgs,2 + CurVar=5 ! In case Source Meter would change + DO Var=5,CurArgs,2 UCRepVarName=MakeUPPERCase(InArgs(Var)) OutArgs(CurVar)=InArgs(Var) OutArgs(CurVar+1)=InArgs(Var+1) @@ -1235,13 +1235,6 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile CALL ReplaceFuelNameWithEndUseSubcategory(OutArgs(3), NoDiff) END IF END IF - DO WHILE (meterCustomDecrName <= 47) ! Output Variable or Meter Name 1 to 22 (A5, A7, A9, ... A47) - IF (CurArgs .GE. meterCustomDecrName) THEN - CALL ReplaceElectricityMeterName(OutArgs(meterCustomDecrName), NoDiff) - END IF - meterCustomDecrName = meterCustomDecrName + 2 - END DO - ! End - Special section for v9.4 !!! Changes for other objects that reference meter names -- update names CASE('DEMANDMANAGERASSIGNMENTLIST', & @@ -1493,24 +1486,3 @@ SUBROUTINE ReplaceFuelNameWithEndUseSubcategory(InOutArg, NoDiffArg) NoDiffArg=.false. END IF END SUBROUTINE - -SUBROUTINE ReplaceElectricityMeterName(InOutArg, NoDiffArg) -! Special subroutine for v9.4 - - CHARACTER(*), INTENT(INOUT) :: InOutArg - LOGICAL, INTENT(INOUT) :: NoDiffArg - INTEGER :: lenInArg = 0 - INTEGER :: nEP, nEE - lenInArg=Len_Trim(InOutArg) - - nEP=INDEX(InOutArg,'Electric Power') - nEE=INDEX(InOutArg,'Electric Energy') - - IF (nEP > 0) THEN - InOutArg = InOutArg(1:nEP-1) // 'Electricity Rate' - NoDiffArg=.false. - ELSE IF (nEE > 0) THEN - InOutArg = InOutArg(1:nEE-1) // 'Electricity Energy' - NoDiffArg=.false. - END IF -END SUBROUTINE From db608a7f5bbc89e63ca7a31c1283f1f838f2f12d Mon Sep 17 00:00:00 2001 From: Dareum Nam Date: Wed, 4 Nov 2020 15:18:32 -0700 Subject: [PATCH 5/7] remove unused variable --- src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 b/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 index 6dc3e0802a3..add16e3d2a8 100644 --- a/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 +++ b/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 @@ -134,8 +134,6 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile CHARACTER(len=MaxNameLength) :: MeterCustomName CHARACTER(len=MaxNameLength), ALLOCATABLE, DIMENSION(:) :: MeterCustomNames LOGICAL :: throwPythonWarning = .TRUE. - - INTEGER :: meterCustomDecrName = 5 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! E N D O F I N S E R T L O C A L V A R I A B L E S H E R E ! From 212a72ed45f5e520b0392fe5c4a94407a4ded4f7 Mon Sep 17 00:00:00 2001 From: Dareum Nam Date: Wed, 4 Nov 2020 15:20:17 -0700 Subject: [PATCH 6/7] add omitted comment --- src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 b/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 index add16e3d2a8..bbf8d03530a 100644 --- a/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 +++ b/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 @@ -1233,6 +1233,7 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile CALL ReplaceFuelNameWithEndUseSubcategory(OutArgs(3), NoDiff) END IF END IF + ! End - Special section for v9.4 !!! Changes for other objects that reference meter names -- update names CASE('DEMANDMANAGERASSIGNMENTLIST', & From 44887a969330aca71322b85676c84d7122435dc3 Mon Sep 17 00:00:00 2001 From: Dareum Nam Date: Mon, 9 Nov 2020 21:44:43 -0700 Subject: [PATCH 7/7] add special transition for objects that accepts report variables or meter names --- .../CreateNewIDFUsingRulesV9_4_0.f90 | 149 +++++++++++++++--- 1 file changed, 131 insertions(+), 18 deletions(-) diff --git a/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 b/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 index bbf8d03530a..05e92256790 100644 --- a/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 +++ b/src/Transition/CreateNewIDFUsingRulesV9_4_0.f90 @@ -764,6 +764,21 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile .true.) IF (DelThis) CYCLE + ! Begin - Special section for v9.4 + IF (CurArgs .GE. 3) THEN + changeMeterNameFlag = .true. + DO numMeterCustom=1, totMeterCustom + totMeterCustomDecr + MeterCustomName = MeterCustomNames(numMeterCustom) + IF (MeterCustomName .eq. MakeUPPERCase(InArgs(3))) THEN + changeMeterNameFlag = .false. + END IF + END DO + IF (changeMeterNameFlag) THEN + CALL ReplaceFuelNameWithEndUseSubcategory(OutArgs(3), NoDiff) + END IF + END IF + ! End - Special section for v9.4 + CASE('OUTPUT:TABLE:MONTHLY') CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) nodiff=.true. @@ -1102,7 +1117,23 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile EXIT ENDIF ENDDO - IF (.not. DelThis) CurVar=CurVar+2 + IF (.not. DelThis) THEN + + ! Begin - Special section for v9.4 + changeMeterNameFlag = .true. + DO numMeterCustom=1, totMeterCustom + totMeterCustomDecr + MeterCustomName = MeterCustomNames(numMeterCustom) + IF (MeterCustomName .eq. MakeUPPERCase(InArgs(Var))) THEN + changeMeterNameFlag = .false. + END IF + END DO + IF (changeMeterNameFlag) THEN + CALL ReplaceFuelNameWithEndUseSubcategory(OutArgs(CurVar), NoDiff) + END IF + ! End - Special section for v9.4 + + CurVar=CurVar+2 + END IF ENDDO CurArgs=CurVar DO Arg=CurVar,1,-1 @@ -1117,8 +1148,8 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) OutArgs(1:CurArgs)=InArgs(1:CurArgs) nodiff=.true. - CurVar=5 ! In case Source Meter would change - DO Var=5,CurArgs,2 + CurVar=3 ! In case Source Meter would change + DO Var=3,CurArgs,2 UCRepVarName=MakeUPPERCase(InArgs(Var)) OutArgs(CurVar)=InArgs(Var) OutArgs(CurVar+1)=InArgs(Var+1) @@ -1210,7 +1241,23 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile EXIT ENDIF ENDDO - IF (.not. DelThis) CurVar=CurVar+2 + IF (.not. DelThis) THEN + + ! Begin - Special section for v9.4 + changeMeterNameFlag = .true. + DO numMeterCustom=1, totMeterCustom + totMeterCustomDecr + MeterCustomName = MeterCustomNames(numMeterCustom) + IF (MeterCustomName .eq. MakeUPPERCase(InArgs(Var))) THEN + changeMeterNameFlag = .false. + END IF + END DO + IF (changeMeterNameFlag) THEN + CALL ReplaceFuelNameWithEndUseSubcategory(OutArgs(CurVar), NoDiff) + END IF + ! End - Special section for v9.4 + + CurVar=CurVar+2 + END IF ENDDO CurArgs=CurVar DO Arg=CurVar,1,-1 @@ -1220,20 +1267,6 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile EXIT ENDIF ENDDO - ! Begin - Special section for v9.4 - IF (CurArgs .GE. 3) THEN - changeMeterNameFlag = .true. - DO numMeterCustom=1, totMeterCustom + totMeterCustomDecr - MeterCustomName = MeterCustomNames(numMeterCustom) - IF (MeterCustomName .eq. MakeUPPERCase(InArgs(3))) THEN - changeMeterNameFlag = .false. - END IF - END DO - IF (changeMeterNameFlag) THEN - CALL ReplaceFuelNameWithEndUseSubcategory(OutArgs(3), NoDiff) - END IF - END IF - ! End - Special section for v9.4 !!! Changes for other objects that reference meter names -- update names CASE('DEMANDMANAGERASSIGNMENTLIST', & @@ -1256,6 +1289,57 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile Written, & .false.) + ! Begin - Special section for v9.4 + IF (CurArgs .GE. 2) THEN + changeMeterNameFlag = .true. + DO numMeterCustom=1, totMeterCustom + totMeterCustomDecr + MeterCustomName = MeterCustomNames(numMeterCustom) + IF (MeterCustomName .eq. MakeUPPERCase(InArgs(2))) THEN + changeMeterNameFlag = .false. + END IF + END DO + IF (changeMeterNameFlag) THEN + CALL ReplaceFuelNameWithEndUseSubcategory(OutArgs(2), NoDiff) + END IF + END IF + ! End - Special section for v9.4 + + CASE('ELECTRICLOADCENTER:TRANSFORMER') + CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) + OutArgs(1:CurArgs)=InArgs(1:CurArgs) + nodiff=.true. + + DO Var=19,28,1 + CALL ScanOutputVariablesForReplacement( & + Var, & + DelThis, & + checkrvi, & + nodiff, & + ObjectName, & + DifLfn, & + .false., & !OutVar + .true., & !MtrVar + .false., & !TimeBinVar + CurArgs, & + Written, & + .false.) + + ! Begin - Special section for v9.4 + IF (CurArgs .GE. Var) THEN + changeMeterNameFlag = .true. + DO numMeterCustom=1, totMeterCustom + totMeterCustomDecr + MeterCustomName = MeterCustomNames(numMeterCustom) + IF (MeterCustomName .eq. MakeUPPERCase(InArgs(Var))) THEN + changeMeterNameFlag = .false. + END IF + END DO + IF (changeMeterNameFlag) THEN + CALL ReplaceFuelNameWithEndUseSubcategory(OutArgs(Var), NoDiff) + END IF + END IF + ! End - Special section for v9.4 + END DO + CASE('ELECTRICLOADCENTER:DISTRIBUTION') CALL GetNewObjectDefInIDD(ObjectName,NwNumArgs,NwAorN,NwReqFld,NwObjMinFlds,NwFldNames,NwFldDefaults,NwFldUnits) OutArgs(1:CurArgs)=InArgs(1:CurArgs) @@ -1276,6 +1360,21 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile Written, & .false.) + ! Begin - Special section for v9.4 + IF (CurArgs .GE. 6) THEN + changeMeterNameFlag = .true. + DO numMeterCustom=1, totMeterCustom + totMeterCustomDecr + MeterCustomName = MeterCustomNames(numMeterCustom) + IF (MeterCustomName .eq. MakeUPPERCase(InArgs(6))) THEN + changeMeterNameFlag = .false. + END IF + END DO + IF (changeMeterNameFlag) THEN + CALL ReplaceFuelNameWithEndUseSubcategory(OutArgs(6), NoDiff) + END IF + END IF + ! End - Special section for v9.4 + ! Field 12 A11, \field Storage Control Track Meter Name CALL ScanOutputVariablesForReplacement( & 12, & @@ -1291,6 +1390,20 @@ SUBROUTINE CreateNewIDFUsingRules(EndOfFile,DiffOnly,InLfn,AskForInput,InputFile Written, & .false.) + ! Begin - Special section for v9.4 + IF (CurArgs .GE. 12) THEN + changeMeterNameFlag = .true. + DO numMeterCustom=1, totMeterCustom + totMeterCustomDecr + MeterCustomName = MeterCustomNames(numMeterCustom) + IF (MeterCustomName .eq. MakeUPPERCase(InArgs(12))) THEN + changeMeterNameFlag = .false. + END IF + END DO + IF (changeMeterNameFlag) THEN + CALL ReplaceFuelNameWithEndUseSubcategory(OutArgs(12), NoDiff) + END IF + END IF + ! End - Special section for v9.4 ! ANY OTHER OBJECT CASE DEFAULT