26 character*81 objectset(4,*)
29 integer iobject,nobject,istat,nactive,nnlconst,
30 & ipoacti(*),ifree,i,ndesi,nk,node,nodedesi(ndesi)
32 real*8 g0(nobject),bounds(20),scale,bound,objnorm,
33 & dgdxglob(2,nk,nobject)
40 if((objectset(1,iobject)(19:20).eq.
'LE').or.
41 & (objectset(1,iobject)(19:20).eq.
'GE'))
then 42 if(objectset(1,iobject)(1:9).eq.
'THICKNESS')
then 45 if(dgdxglob(2,node,iobject).gt.0)
then 46 g0(iobject)=1.d0+g0(iobject)
50 if(objectset(1,iobject)(61:80).eq.empty)
then 51 read(objectset(1,iobject)(41:60),
'(f20.0)',
53 bounds(iobject)=g0(iobject)*scale
55 read(objectset(1,iobject)(41:60),
'(f20.0)',
57 read(objectset(1,iobject)(61:80),
'(f20.0)',
59 bounds(iobject)=bound*scale
74 if(objectset(1,iobject)(19:20).eq.
'LE')
then 75 if(objectset(1,iobject)(1:9).eq.
'THICKNESS') cycle
76 objnorm=g0(iobject)/bounds(iobject)-1
77 if(objnorm.gt.-0.02)
then 80 ipoacti(ifree)=iobject
83 elseif(objectset(1,iobject)(19:20).eq.
'GE')
then 84 if(objectset(1,iobject)(1:9).eq.
'THICKNESS') cycle
85 objnorm=-1*(g0(iobject)/bounds(iobject))+1
86 if(objnorm.gt.-0.02)
then 89 ipoacti(ifree)=iobject
98 if(objectset(1,iobject)(19:20).eq.
'LE')
then 99 if(objectset(1,iobject)(1:9).eq.
'THICKNESS')
then 100 if(g0(iobject)>0)
then 103 if(dgdxglob(2,node,iobject).eq.1)
then 111 elseif(objectset(1,iobject)(19:20).eq.
'GE')
then 112 if(objectset(1,iobject)(1:9).eq.
'THICKNESS')
then 113 if(g0(iobject)>0)
then 116 if(dgdxglob(2,node,iobject).eq.1)
then 127 if(nactive.gt.0)
then 129 write(*,*)
'*INFO at least 1 constraint active:' 130 write(*,*)
' projected gradient has been ' 131 write(*,*)
' calculated based on the ' 132 write(*,*)
' constraints:' 133 if(nnlconst.eq.nactive)
then 135 write(*,
'(7x,a11)') objectset(1,ipoacti(i))
138 elseif(nnlconst.lt.nactive)
then 140 write(*,
'(7x,a11)') objectset(1,ipoacti(i))
142 write(*,*)
' THICKNESS' 144 elseif(nnlconst.eq.0)
then 145 write(*,*)
' THICKNESS'