def _config_newsumt(self):
        """Set up arrays for the Fortran newsumt routine, and perform some
        validation and make sure that array sizes are consistent.
        """

        ndv = self.total_parameters()
        if ndv < 1:
            self.raise_exception('no parameters specified', RuntimeError)

        # Create some information arrays using our Parameter data

        self._lower_bounds = self.get_lower_bounds()
        self._upper_bounds = self.get_upper_bounds()

        # The way Parameters presently work, we always specify an
        # upper and lower bound
        self._iside = ones(ndv) * 3

        # Update default stepsize where specified as non-zero.
        self.fdcv = ones(ndv) * self.default_fd_stepsize
        fd_steps = self.get_fd_steps(dtype=None)
        putmask(self.fdcv, fd_steps, fd_steps)

        if self.newsumt_diff:
            ifd = -4
        else:
            ifd = 0

        self.n1 = ndv
        ncon = self.total_ineq_constraints()
        if ncon > 0:
            self.n2 = ncon
        else:
            self.n2 = 1
        self.n3 = (ndv * (ndv + 1)) / 2
        if 0 > ncon:
            self.n4 = ndv * ncon
        else:
            self.n4 = 1

        self.design_vals = zeros(ndv)
        self.constraint_vals = zeros(ncon)

        # Linear constraint setting
        if len(self.ilin) == 0:
            if ncon > 0:
                self.ilin = zeros(ncon, dtype=int)
                self._ilin = self.ilin
            else:
                self._ilin = zeros(1, dtype=int)
        elif len(self.ilin) != ncon:
            msg = "Dimension of NEWSUMT setting 'ilin' should be equal to " \
                  "the number of constraints."
            self.raise_exception(msg, RuntimeError)
        else:
            self._ilin = self.ilin

        # Set initial values in the common blocks
        self.countr.clear()
        self.contrl.clear()
        self.contrl.c = 0.2
        self.contrl.epsgsn = self.epsgsn
        self.contrl.epsodm = self.epsodm
        self.contrl.epsrsf = self.epsrsf
        self.contrl.fdch = 0.05
        self.contrl.g0 = self.g0
        self.contrl.ifd = ifd
        self.contrl.iflapp = 0
        self.contrl.jprint = self.iprint - 1
        self.contrl.jsigng = 1
        self.contrl.lobj = self.lobj
        self.contrl.maxgsn = self.maxgsn
        self.contrl.maxodm = self.maxodm
        self.contrl.maxrsf = self.maxrsf
        self.contrl.mflag = self.mflag
        self.contrl.ndv = ndv
        self.contrl.ntce = ncon
        self.contrl.p = 0.5
        self.contrl.ra = self.ra
        self.contrl.racut = self.racut
        self.contrl.ramin = self.ramin
        self.contrl.stepmx = self.stepmx
        self.contrl.tftn = 0.0

        # work arrays
        self.__design_vals_tmp = zeros(self.n1, 'd')
        self._ddobj = zeros(self.n3)
        self._dg = zeros(self.n4)
        self._dh = zeros(self.n1)
        self._dobj = zeros(self.n1)
        self._g = zeros(self.n2)
        self._gb = zeros(self.n2)
        self._g1 = zeros(self.n2)
        self._g2 = zeros(self.n2)
        self._g3 = zeros(self.n2)
        self._s = zeros(self.n1)
        self._sn = zeros(self.n1)
        self._iik = zeros(self.n1, dtype=int)
dataset/ETHPy150Open OpenMDAO/OpenMDAO-Framework/openmdao.lib/src/openmdao/lib/drivers/newsumtdriver.py/NEWSUMTdriver._config_newsumt/swapped operands of `>`