32 subroutine active(n, l, u, nbd, x, iwhere, iprint,
33 + prjctd, cnstnd, boxed)
35 logical prjctd, cnstnd, boxed
36 integer n, iprint, nbd(n), iwhere(n)
37 double precision x(n), l(n), u(n)
55 if (nbd(i) .gt. 0)
then
56 if (nbd(i) .le. 2 .and. x(i) .le. l(i))
then
57 if (x(i) .lt. l(i))
then
62 else if (nbd(i) .ge. 2 .and. x(i) .ge. u(i))
then
63 if (x(i) .gt. u(i))
then
75 if (nbd(i) .ne. 2) boxed = .false.
76 if (nbd(i) .eq. 0)
then
83 if (nbd(i) .eq. 2 .and. u(i) - l(i) .le. zero)
then
92 if (iprint .ge. 0)
then
93 if (prjctd)
write (6,*)
94 +
'The initial X is infeasible. Restart with its projection.'
96 +
write (6,*)
'This problem is unconstrained.'
99 if (iprint .gt. 0)
write (6,1001) nbdd
101 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.