35 subroutine active(n, l, u, nbd, x, iwhere, iprint,
36 + prjctd, cnstnd, boxed)
38 logical prjctd, cnstnd, boxed
39 integer n, iprint, nbd(n), iwhere(n)
40 double precision x(n), l(n), u(n)
58 if (nbd(i) .gt. 0)
then
59 if (nbd(i) .le. 2 .and. x(i) .le. l(i))
then
60 if (x(i) .lt. l(i))
then
65 else if (nbd(i) .ge. 2 .and. x(i) .ge. u(i))
then
66 if (x(i) .gt. u(i))
then
78 if (nbd(i) .ne. 2) boxed = .false.
79 if (nbd(i) .eq. 0)
then
86 if (nbd(i) .eq. 2 .and. u(i) - l(i) .le. zero)
then
95 if (iprint .ge. 0)
then
96 if (prjctd)
write (6,*)
97 +
'The initial X is infeasible. Restart with its projection.'
99 +
write (6,*)
'This problem is unconstrained.'
102 if (iprint .gt. 0)
write (6,1001) nbdd
104 1001
format (/,
'At X0 ',i9,
' variables are exactly at the bounds')
subroutine active(n, l, u, nbd, x, iwhere, iprint, prjctd, cnstnd, boxed)
This subroutine initializes iwhere and projects the initial x to the feasible set if necessary.