﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
3150	Wrong variability for array reduction	Adrian Pop	Adrian Pop	"Flattening this model:
{{{#!mo
model BadVariability

  package Medium
    constant Boolean singleState = false;
  end Medium;

  parameter Integer nReg(min = 2) = 2;

  model CoilRegister  ""Register for a heat exchanger"" 
    constant Boolean initialize_p1 = not Medium.singleState;
  end CoilRegister;

  CoilRegister[nReg] hexReg(initialize_p1 = array(i == 1 and not Medium.singleState for i in 1:nReg));
end BadVariability;
}}}
gives:
{{{
adrpo@ida-liu050 ~/dev/OpenModelica/build/bin/media
$ ../omc +locale=C BadVariability.mo 
Error processing file: BadVariability.mo
[c:/bin/cygwin/home/adrpo/dev/OpenModelica/build/bin/media/BadVariability.mo:13:29-13:101:writable] Error: Component hexReg[2].initialize_p1 of variability CONST has binding false of higher variability PARAM.
Error: Error occurred while flattening model BadVariability
}}}

The variability should be constant for the array reduction, not parameter.

This affects some of the building models, see for example:
https://test.openmodelica.org/libraries/Buildings/files/Buildings.Fluid.HeatExchangers.Examples.WetCoilDiscretizedPerfectGases.err
"	defect	closed	high	1.17.0	New Instantiation	trunk	fixed		
