5 SUBROUTINE dcnstr (NEQ, Y, YNEW, ICNSTR, TAU, RLX, IRET, IVAR)
58 IMPLICIT DOUBLE PRECISION(a-h,o-z)
59 dimension y(neq), ynew(neq), icnstr(neq)
61 DATA fac /0.6d0/, fac2 /0.9d0/, zero/0.0d0/
72 IF (icnstr(i) .EQ. 2)
THEN
73 rdy =
abs( (ynew(i)-y(i))/y(i) )
74 IF (rdy .GT. rdymx)
THEN
78 IF (ynew(i) .LE. zero)
THEN
85 ELSEIF (icnstr(i) .EQ. 1)
THEN
86 IF (ynew(i) .LT. zero)
THEN
93 ELSEIF (icnstr(i) .EQ. -1)
THEN
94 IF (ynew(i) .GT. zero)
THEN
101 ELSEIF (icnstr(i) .EQ. -2)
THEN
102 rdy =
abs( (ynew(i)-y(i))/y(i) )
103 IF (rdy .GT. rdymx)
THEN
107 IF (ynew(i) .GE. zero)
THEN
117 IF(rdymx .GE. rlx)
THEN
118 tau = fac2*tau*rlx/rdymx
subroutine dcnstr(NEQ, Y, YNEW, ICNSTR, TAU, RLX, IRET, IVAR)