@@ -799,6 +799,7 @@ algorithm
799799 (outTVars,oMark) := matchcontinue(unsolvables,tSel_always,tSel_prefer,tSel_avoid,tSel_never,m,mt,mapEqnIncRow,mapIncRowEqn,size,vars,ishared,ass1,ass2,columark,mark,inTVars)
800800 local
801801 Integer tvar;
802+ array< Integer > ass1_;
802803 list< Integer > unassigned,rest,ass1List;
803804 BackendDAE . AdjacencyMatrixElementEnhanced vareqns;
804805 // if there are no unsolvables choose tvar by heuristic
@@ -846,16 +847,16 @@ algorithm
846847 Debug . fcall(Flags . TEARING_DUMP , print,"Variables with annotation attribute 'always' as tVars: " +& stringDelimitList(List . map(tSel_always,intString),"," )+& " \n " );
847848 // mark tearing var
848849 ass1List = markTVars(tSel_always,arrayList(ass1));
849- ass1 = Util . arrayCopy(listArray(ass1List),ass1);
850+ ass1_ = Util . arrayCopy(listArray(ass1List),ass1);
850851 // equations not yet assigned containing the tvars
851852 vareqns = findVareqns(ass2,isAssignedSaveEnhanced,mt,tSel_always,{});
852853 Debug . fcall(Flags . TEARING_DUMPVERBOSE ,print,"Assignable equations containing new tvars: \n " );
853854 Debug . fcall(Flags . TEARING_DUMPVERBOSE ,BackendDump . dumpAdjacencyRowEnhanced,vareqns);Debug . fcall(Flags . TEARING_DUMPVERBOSE ,print," \n " );
854855 // cheap matching
855- tearingBFS(vareqns,m,mt,mapEqnIncRow,mapIncRowEqn,size,ass1 ,ass2,columark,mark,{});
856+ tearingBFS(vareqns,m,mt,mapEqnIncRow,mapIncRowEqn,size,ass1_ ,ass2,columark,mark,{});
856857 // check for unassigned vars, if there some rerun
857- unassigned = Matching . getUnassigned(size,ass1 ,{});
858- (outTVars,oMark) = omcTearing3(unassigned,unsolvables,{},tSel_prefer,tSel_avoid,tSel_never,m,mt,mapEqnIncRow,mapIncRowEqn,size,vars,ishared,ass1 ,ass2,columark,mark+ 1 ,listAppend(tSel_always,inTVars));
858+ unassigned = Matching . getUnassigned(size,ass1_ ,{});
859+ (outTVars,oMark) = omcTearing3(unassigned,unsolvables,{},tSel_prefer,tSel_avoid,tSel_never,m,mt,mapEqnIncRow,mapIncRowEqn,size,vars,ishared,ass1_ ,ass2,columark,mark+ 1 ,listAppend(tSel_always,inTVars));
859860 then
860861 (outTVars,oMark);
861862 else
0 commit comments