* SUBROUTINE TIUD19 ALL SYSTEMS 99/12/01 C PORTABILITY : ALL SYSTEMS C 94/12/01 VL : ORIGINAL VERSION * * PURPOSE : * INITIATION OF VARIABLES FOR NONSMOOTH OPTIMIZATION. * UNCONSTRAINED DENSE VERSION. * * PARAMETERS : * II N NUMBER OF VARIABLES. * RO X(N) VECTOR OF VARIABLES. * RO FMIN LOWER BOUND FOR VALUE OF THE OBJECTIVE FUNCTION. * RO XMAX MAXIMUM STEPSIZE. * II NEXT NUMBER OF THE TEST PROBLEM. * IO IERR ERROR INDICATOR. * SUBROUTINE TIUD19(N,X,FMIN,XMAX,NEXT,IERR) INTEGER N,NEXT,IERR,I,J,K,KK,L REAL*8 X(N),FMIN,XMAX,ETA9,Y(2700),AI,AJ,AK INTEGER*2 AA(59),PP(23),CC(95) COMMON /EMPR19/ Y PARAMETER (ETA9=1.0D 60) DATA AA/5*0,2,3*1,3,1,2,1,1,2,1,4,1,2,2,3,2,1,0,1,0,2,1,0,7*1,0,1 &,2,1,0,0,2,1,0,1,1,2,0,0,1,5,10,2,4,3,3*6/ DATA PP/0,2,3,4,5,6,2,3,-1,4*2,1,1,5,4*1,2,3,2/ DATA CC/-16,4*0,2,2*-1,2*1,2,-2,0,-2,-9,0,-1,-2,2,1, & 2*0,2,0,-2,-4,-1,-3,3,1,1,4,0,-4,1,0,-1,-2,4,1, & 0,2,0,-1,2*0,2*-1,5,1,-40,-2,0,2*-4,-1,-40,-60,5,1, & 30,-20,-10,32,-10,-20,39,-6,-31,32,-10,-6,10,-6,-10, &32,-31,-6,39,-20,-10,32,-10,-20,30,4,8,10,6,2,-15,-27,-36,-18,-12/ FMIN=0.0D 0 XMAX=1.0D 3 IERR=0 IF (N.LT.2) GO TO 999 DO 1 I=1,N X(I)=0D 0 1 CONTINUE GO TO (10,20,30,40,50,60,70,80,90,180,100,110,230,240,170,120, & 210,220,130,130,150,160,190,190,250), NEXT 10 N=2 X(1)=-1.2D 0 X(2)=1.0D 0 RETURN 20 N=2 X(1)=-1.5D 0 X(2)=2.0D 0 RETURN 30 N=2 X(1)=1.0D 0 X(2)=-0.1D 0 RETURN 40 N=2 X(1)=2.0D 0 X(2)=2.0D 0 RETURN 50 N=2 51 FMIN=-ETA9 52 DO 53 I=1,N X(I)=1.0D 0 53 CONTINUE RETURN 60 N=2 X(1)=-1.0D 0 X(2)=5.0D 0 RETURN 70 N=2 X(1)=-0.5D 0 X(2)=-0.5D 0 777 FMIN=-ETA9 RETURN 80 N=2 X(1)=0.8D 0 X(2)=0.6D 0 GO TO 777 90 N=2 X(1)=-1.0D 0 X(2)=-1.0D 0 GO TO 777 180 N=2 X(1)=3.0D 0 X(2)=2.0D 0 GO TO 777 100 IF (N.LT.4) GO TO 999 N=4 GO TO 777 110 IF (N.LT.5) GO TO 999 N=5 X(5)=1.0D 0 DO 111 I=1,59 Y(I)=AA(I) 111 CONTINUE Y(57)=1.7D 0 Y(58)=2.5D 0 Y(60)=3.5D 0 RETURN 230 IF (N.LT.5) GO TO 999 N=5 X(5)=1.0D 0 FMIN=-ETA9 232 DO 233 I=1,95 Y(I)=CC(I) 233 CONTINUE Y(3)=-3.5D 0 Y(45)=-2.8D 0 Y(53)=-.25D 0 RETURN 240 IF (N.LT.5) GO TO 999 N=5 X(1)=-2.0D 0 X(2)= 1.5D 0 X(3)= 2.0D 0 X(4)=-1.0D 0 X(5)=-1.0D 0 FMIN=-ETA9 XMAX= 1.0D 0 RETURN 170 IF (N.LT.6) GO TO 999 N=6 XMAX=2D 0 X(1)=2.0D 0 X(2)=2.0D 0 X(3)=7.0D 0 X(5)=-2.0D 0 X(6)=1.0D 0 RETURN 120 IF (N.LT.10) GO TO 999 N=10 KK=0 DO 122 K=1,5 AK=DBLE(K) DO 123 I=1,N AI=DBLE(I) DO 124 J=I,N AJ=DBLE(J) Y(KK+(I-1)*N+J)=EXP(AI/AJ)*COS(AI*AJ)*SIN(AK) Y(KK+(J-1)*N+I)=Y(KK+(I-1)*N+J) 124 CONTINUE 123 CONTINUE DO 126 I=1,N AI=DBLE(I) Y(100+KK+I)=EXP(AI/AK)*SIN(AI*AK) L=KK+(I-1)*N+I Y(L)=ABS(SIN(AK))*AI/DBLE(N) DO 126 J=1,N IF (J.NE.I) Y(L)=Y(L)+ABS(Y(KK+(I-1)*N+J)) 126 CONTINUE KK=KK+110 122 CONTINUE GO TO 51 210 IF (N.LT.10) GO TO 999 N=10 XMAX=1.0D 1 DO 211 I=1,N X(I)=-0.1D 0 211 CONTINUE RETURN 220 IF (N.LT.12) GO TO 999 N=12 DO 221 I=1,23 Y(I)=PP(I) 221 CONTINUE Y(10)=-0.5D 0 X(1)=2.0D 0/3.0D 0 X(7)=5.0D 0/3.0D 0 DO 222 I=2,5 X(I)=(X(I-1)+Y(I)+Y(I+1))/3.0D 0 X(I+6)=(X(I+5)+Y(I+6)+Y(I+7))/3.0D 0 222 CONTINUE X(6)=(X(5)+11.5D 0)/3.0D 0 X(12)=(X(11)+1.0D 0)/3.0D 0 RETURN 130 IF (N.LT.20) GO TO 999 N=20 IF (NEXT.EQ.19) XMAX= 5.0D 0 IF (NEXT.EQ.20) XMAX= 1.0D 1 DO 131 I=1,10 X(I)=DBLE(I) X(I+10)=DBLE(-I-10) 131 CONTINUE RETURN 150 IF (N.LT.48) GO TO 999 N=48 OPEN(777,FILE='TEST19.DAT') READ(777,*)((Y(N*(I-2)+J),J=I,N),I=2,N) & ,(Y(N*N+I),I=1,N),(Y(N*N+N+I),I=1,N) DO 151 I=1,N Y(N*(I-1)+I)=1.0D 5 DO 151 J=1,I-1 Y(N*(I-1)+J)=Y(N*(J-1)+I) 151 CONTINUE CLOSE(777) GO TO 777 160 IF (N.LT.50) GO TO 999 N=50 XMAX=1.0D 1 DO 161 I=1,N X(I)=DBLE(I)-25.5D 0 161 CONTINUE RETURN 190 IF (N.LT.30) GO TO 999 IF (N.GE.50) N=50 IF (N.LT.50) N=30 IF (NEXT.EQ.23) XMAX= 5.0D 0 GO TO 52 250 IF (N.LT.15) GO TO 999 N=15 DO 251 I=1,N X(I)=1.0D-4 251 CONTINUE X(12)=6.0D 1 GO TO 232 999 IERR=1 RETURN END * SUBROUTINE TFFU19 ALL SYSTEMS 99/12/01 C PORTABILITY : ALL SYSTEMS C 94/12/01 RA : ORIGINAL VERSION * * PURPOSE : * VALUE OF THE NONSMOOTH OBJECTIVE FUNCTION. * * PARAMETERS : * II N NUMBER OF VARIABLES. * RI X(N) VECTOR OF VARIABLES. * RO F VALUE OF THE OBJECTIVE FUNCTION. * II NEXT NUMBER OF THE TEST PROBLEM. * SUBROUTINE TFFU19(N,X,F,NEXT) INTEGER N,NEXT REAL*8 X(N),F REAL*8 AI,AJ,ETA9,F1,F2,F3,F4,T,Y(2700),Z INTEGER I,J,KK,LL,K COMMON /EMPR19/ Y PARAMETER (ETA9=1.0D 60) F=0.0D 0 GO TO (10,20,30,40,50,60,70,80,90,180,100,110,230,240,170,120, & 210,220,130,140,150,160,190,200,250), NEXT 10 F=100.0D 0*(X(2)-X(1)**2)**2+(1.0D 0-X(1))**2 RETURN 20 T=X(1)**2+(X(2)-1.0D 0)**2-1.0D 0 F=X(2)+ABS(T) RETURN 30 F1=X(1)**2+X(2)**4 F2=(2.0D 0-X(1))**2+(2.0D 0-X(2))**2 F3=2.0D 0*EXP(-X(1)+X(2)) F=MAX(F1,F2,F3) RETURN 40 F1=X(1)**4+X(2)**2 F2=(2.0D 0-X(1))**2+(2.0D 0-X(2))**2 F3=2.0D 0*EXP(-X(1)+X(2)) F=MAX(F1,F2,F3) RETURN 50 F1=5.0D 0*X(1)+X(2) F2=-5.0D 0*X(1)+X(2) F3=X(1)**2+X(2)**2+4.0D 0*X(2) F=MAX(F1,F2,F3) RETURN 60 F1=X(1)**2+X(2)**2 F2=F1+10.0D 0*(-4.0D 0*X(1)-X(2)+4.0D 0) F3=F1+10.0D 0*(-X(1)-2.0D 0*X(2)+6.0D 0) F=MAX(F1,F2,F3) RETURN 70 F1=-X(1)-X(2) F2=F1+(X(1)**2+X(2)**2-1.0D 0) F=MAX(F1,F2) RETURN 80 F1=X(1)**2+X(2)**2-1.0D 0 F2=0.0D 0 F=MAX(F1,F2) F=20.0D 0*F-X(1) RETURN 90 F1=X(1)**2+X(2)**2-1.0D 0 IF (F1.LT.0.0D 0) F1=-F1 F=-X(1)+2.0D 0*(X(1)**2+X(2)**2-1.0D 0)+1.75D 0*F1 RETURN 180 IF (X(1).GT.ABS(X(2))) THEN F=5.0D 0*SQRT(9.0D 0*X(1)**2+16.0D 0*X(2)**2) ELSEIF ((X(1).GT.0.0D 0).AND.(X(1).LE.ABS(X(2)))) THEN F=9.0D 0*X(1)+16.0D 0*ABS(X(2)) ELSEIF (X(1).LE.0.0D 0) THEN F=9.0D 0*X(1)+16.0D 0*ABS(X(2))-X(1)**9 ENDIF RETURN 100 F=X(1)**2+X(2)**2+X(3)**2 F1=F+X(3)**2+X(4)**2-5.0D 0*(X(1)+X(2))-21.0D 0*X(3)+7.0D 0*X(4) F2=F+X(4)**2+X(1)-X(2)+X(3)-X(4)-8.0D 0 F3=F+X(2)**2+2.0D 0*X(4)**2-X(1)-X(4)-10.0D 0 F4=F+2.0D 0*X(1)-X(2)-X(4)-5.0D 0 F=F1+10.0D 0*MAX(0.0D 0,F2,F3,F4) RETURN 110 F=0.0D 0 DO 111 J=1,5 F=F+(X(J)-Y(J))**2 111 CONTINUE F=F*Y(50+1) DO 112 I=2,10 F1=0.0D 0 DO 113 J=1,5 F1=F1+(X(J)-Y(5*(I-1)+J))**2 113 CONTINUE F1=F1*Y(50+I) F=MAX(F,F1) 112 CONTINUE RETURN 230 F=0.0D 0 DO 231 I=1,10 T=Y(50+I) DO 232 J=1,5 T=T-Y(I+J*10-10)*X(J) 232 CONTINUE F=MAX(F,T) 231 CONTINUE F=F*5D 1 DO 234 J=1,5 T=0D 0 DO 233 I=1,5 T=T+Y(55+I+J*5)*X(I) 233 CONTINUE F=F+Y(85+J)*X(J)**3+Y(90+J)*X(J)+T*X(J) 234 CONTINUE RETURN 240 F1=X(1)*X(2)*X(3)*X(4)*X(5) F2=ABS(X(1)**2+X(2)**2+X(3)**2+X(4)**2+X(5)**2-1.0D 1) F2=F2+ABS(X(2)*X(3)-5.0D 0*X(4)*X(5)) F2=F2+ABS(X(1)**3+X(2)**3+1.0D 0) F=F1+1.0D 1*F2 RETURN 170 F=0.0D 0 DO 171 I=1,51 T=DBLE(I-1)/10.0D 0 Z=0.5D 0*EXP(-T)-EXP(-T*2.0D 0)+0.5D 0*EXP(-T*3.0D 0)+ & 1.5D 0*EXP(-T*1.5D 0)*SIN(7.0D 0*T)+ & EXP(-T*2.5D 0)*SIN(5.0D 0*T) F1=EXP(-X(2)*T) F2=EXP(-X(6)*T) F3=COS(X(3)*T+X(4)) F=F+ABS(X(1)*F1*F3+X(5)*F2-Z) 171 CONTINUE RETURN 120 F=0.0D 0 K=1 DO 121 I=1,N F=F-Y(100+I)*X(I) DO 122 J=1,N F=F+Y((I-1)*N+J)*X(I)*X(J) 122 CONTINUE 121 CONTINUE KK=110 DO 123 K=2,5 F1=0.0D 0 DO 124 I=1,N F1=F1-Y(KK+100+I)*X(I) DO 125 J=1,N F1=F1+Y(KK+(I-1)*N+J)*X(I)*X(J) 125 CONTINUE 124 CONTINUE F=MAX(F,F1) KK=KK+110 123 CONTINUE RETURN 210 F1=0.0D 0 DO 211 I=1,10 F1=F1+X(I)**2 211 CONTINUE F4=F1-0.25D 0 F1=1.0D -3*F4*F4 DO 212 I=1,10 F1=F1+(X(I)-1.0D 0)**2 212 CONTINUE F2=0.0D 0 DO 215 I=2,30 AI=DBLE(I-1)/29D 0 F=0.0D 0 DO 213 J=1,10 F=F+X(J)*AI**(J-1) 213 CONTINUE F=-F*F-1.0D 0 DO 214 J=2,10 AJ=DBLE(J-1) F=F+X(J)*AJ*AI**(J-2) 214 CONTINUE F2=F2+F*F 215 CONTINUE F2=F2+X(1)**2+(X(2)-X(1)**2-1.0D 0)**2 F3=0.0D 0 DO 216 I=2,10 F3=F3+100.0D 0*(X(I)-X(I-1)**2)**2+(1.0D 0-X(I))**2 216 CONTINUE F=MAX(F1,F2,F3) RETURN 220 F=SQRT(X(1)**2+X(7)**2)+ & SQRT((5.5D 0-X(6))**2+(1.0D 0+X(12))**2) DO 221 J=1,6 F=F+Y(12+J)*SQRT((Y(J)-X(J))**2+(Y(6+J)-X(6+J))**2) 221 CONTINUE DO 222 J=1,5 F=F+Y(18+J)*SQRT((X(J)-X(J+1))**2+(X(J+6)-X(J+7))**2) 222 CONTINUE RETURN 130 F=X(1)**2 DO 131 I=2,20 F1=X(I)**2 F=MAX(F,F1) 131 CONTINUE RETURN 140 F=ABS(X(1)) DO 141 I=2,20 F1=ABS(X(I)) F=MAX(F,F1) 141 CONTINUE RETURN 150 N=48 F=0.0D 0 KK=N*N LL=N*N+N DO 151 I=1,N F=F+Y(LL+I)*X(I) 151 CONTINUE DO 152 J=1,N Z=ETA9 DO 153 I=1,N T=Y((I-1)*N+J)-X(I) IF (T.GE.Z) GO TO 153 Z=T K=I 153 CONTINUE F=F+Y(KK+J)*Z 152 CONTINUE F=-F RETURN 160 F1=0.0D 0 F=-ETA9 DO 161 I=1,50 F2=X(I) F1=F1+F2 F=MAX(F,F2) 161 CONTINUE F=5.0D 1*F-F1 RETURN 190 F=0.0D 0 DO 191 J=1,N F=F+X(J)/DBLE(1+J-1) 191 CONTINUE F=ABS(F) DO 192 I=2,N F1=0.0D 0 DO 193 J=1,N F1=F1+X(J)/DBLE(I+J-1) 193 CONTINUE F1=ABS(F1) F=MAX(F1,F) 192 CONTINUE RETURN 200 F=0.0D 0 DO 202 J=1,N F1=0.0D 0 DO 203 I=1,N F1=F1+X(I)/DBLE(I+J-1) 203 CONTINUE F1=ABS(F1) F=F+F1 202 CONTINUE RETURN 250 F1=0.0D 0 DO 251 J=1,5 F1=F1+Y(85+J)*X(J)**3 251 CONTINUE F=ABS(F1+F1) DO 253 J=1,5 T=0.0D 0 DO 252 I=1,5 T=T+Y(55+I+J*5)*X(I) 252 CONTINUE F=F+T*X(J) 253 CONTINUE DO 254 J=6,15 F=F-Y(45+J)*X(J) 254 CONTINUE DO 257 J=1,5 T=-3.0D 0*Y(85+J)*X(J)*X(J)-Y(90+J) DO 255 I=1,15 IF (I.LE.5) T=T-2.0D 0*Y(55+I+J*5)*X(I) IF (I.GT.5) T=T+Y(I+J*10-15)*X(I) 255 CONTINUE IF (T.GT.0.0D 0) F=F+1.0D 2*T 257 CONTINUE DO 258 I=1,15 IF (X(I).LT.0.0D 0) F=F-1.0D 2*X(I) 258 CONTINUE RETURN END * SUBROUTINE TFGU19 ALL SYSTEMS 99/12/01 C PORTABILITY : ALL SYSTEMS C 94/12/01 VL : ORIGINAL VERSION * * PURPOSE : * GRADIENT OF THE NONSMOOTH OBJECTIVE FUNCTION. * * PARAMETERS : * II N NUMBER OF VARIABLES. * RI X(N) VECTOR OF VARIABLES. * RO G(N) GRADIENT OF THE OBJECTIVE FUNCTION. * II NEXT NUMBER OF THE TEST PROBLEM. * SUBROUTINE TFGU19(N,X,G,NEXT) INTEGER N,NEXT,I,J,K,KK,L REAL*8 X(N),G(N),AI,AJ,ETA9,F1,F2,F3,F4,F,T,Y(2700) COMMON /EMPR19/ Y PARAMETER (ETA9=1.0D 60) DO 1 I=1,N G(I)=0.0D 0 1 CONTINUE GO TO (10,20,30,30,50,60,70,80,90,180,100,110,230,240,170,120, & 210,220,130,140,150,160,190,200,250), NEXT 10 G(2)=200.0D 0*(X(2)-X(1)**2) G(1)=2.0D 0*X(1)*(1.0D 0-G(2))-2.0D 0 RETURN 20 T=X(1)**2+(X(2)-1.0D 0)**2-1.0D 0 F=SIGN(2.0D 0,T) G(1)=F*X(1) G(2)=F*(X(2)-1.0D 0)+1.0D 0 RETURN 30 I=NEXT-2 J=5-NEXT F1=X(I)**2+X(J)**4 F2=(2.0D 0-X(1))**2+(2.0D 0-X(2))**2 F3=2.0D 0*EXP(-X(1)+X(2)) IF ((F1.GE.F2).AND.(F1.GE.F3)) THEN G(I)=2.0D 0*X(I) G(J)=4.0D 0*X(J)**3 ELSEIF ((F2.GE.F1).AND.(F2.GE.F3)) THEN G(1)=-2.0D 0*(2.0D 0-X(1)) G(2)=-2.0D 0*(2.0D 0-X(2)) ELSE G(2)=2.0D 0*EXP(-X(1)+X(2)) G(1)=-G(2) ENDIF RETURN 50 F1=5.0D 0*X(1)+X(2) F2=-5.0D 0*X(1)+X(2) F3=X(1)**2+X(2)**2+4.0D 0*X(2) G(2)=1.0D 0 IF ((F1.GE.F2).AND.(F1.GE.F3)) THEN G(1)=5.0D 0 ELSEIF ((F2.GE.F1).AND.(F2.GE.F3)) THEN G(1)=-5.0D 0 ELSE G(1)=2.0D 0*X(1) G(2)=2.0D 0*X(2)+4.0D 0 ENDIF RETURN 60 F1=X(1)**2+X(2)**2 F2=F1+10.0D 0*(-4.0D 0*X(1)-X(2)+4.0D 0) F3=F1+10.0D 0*(-X(1)-2.0D 0*X(2)+6.0D 0) G(1)=2.0D 0*X(1) G(2)=2.0D 0*X(2) IF ((F1.GE.F2).AND.(F1.GE.F3)) THEN ELSEIF ((F2.GE.F1).AND.(F2.GE.F3)) THEN G(1)=G(1)-40.0D 0 G(2)=G(2)-10.0D 0 ELSE G(1)=G(1)-10.0D 0 G(2)=G(2)-20.0D 0 ENDIF RETURN 70 F1=-X(1)-X(2) F2=F1+(X(1)**2+X(2)**2-1.0D 0) IF (F1.GE.F2) THEN G(1)=-1.0D 0 G(2)=-1.0D 0 ELSE G(1)=-1.0D 0+2.0D 0*X(1) G(2)=-1.0D 0+2.0D 0*X(2) ENDIF RETURN 80 F1=X(1)**2+X(2)**2-1.0D 0 G(1)=-1.0D 0 IF (F1.GE.0.0D 0) THEN G(1)=40.0D 0*X(1)-1.0D 0 G(2)=40.0D 0*X(2) ENDIF RETURN 90 F1=SIGN(3.5D 0,X(1)**2+X(2)**2-1.0D 0)+4.0D 0 G(1)=F1*X(1)-1.0D 0 G(2)=F1*X(2) RETURN 180 IF (X(1).GT.ABS(X(2))) THEN G(1)=45.0D 0*X(1)/SQRT(9.0D 0*X(1)**2+16.0D 0*X(2)**2) G(2)=80.0D 0*X(2)/SQRT(9.0D 0*X(1)**2+16.0D 0*X(2)**2) ELSE G(1)=9.0D 0 IF (X(1).LT.0.0D 0) G(1)=9.0D 0-9.0D 0*X(1)**8 G(2)=SIGN(16.0D 0,X(2)) ENDIF RETURN 100 F=X(1)**2+X(2)**2+X(3)**2 F2=F+X(4)**2+X(1)-X(2)+X(3)-X(4)-8.0D 0 F3=F+X(2)**2+2.0D 0*X(4)**2-X(1)-X(4)-10.0D 0 F4=F+2.0D 0*X(1)-X(2)-X(4)-5.0D 0 L=1 IF (F2.GT.0.0D 0) L=2 IF (F3.GT.MAX(F2,0.0D 0)) L=3 IF (F4.GT.MAX(F2,F3,0.0D 0)) L=4 GO TO (101,102,103,104),L 101 G(1)=2.0D 0*X(1)-5.0D 0 G(2)=2.0D 0*X(2)-5.0D 0 G(3)=4.0D 0*X(3)-21.0D 0 G(4)=2.0D 0*X(4)+7.0D 0 RETURN 102 G(1)=22.0D 0*X(1)+5.0D 0 G(2)=22.0D 0*X(2)-15.0D 0 G(3)=24.0D 0*X(3)-11.0D 0 G(4)=22.0D 0*X(4)-3.0D 0 RETURN 103 G(1)=22.0D 0*X(1)-15.0D 0 G(2)=42.0D 0*X(2)-5.0D 0 G(4)=42.0D 0*X(4)-3.0D 0 GO TO 105 104 G(1)=22.0D 0*X(1)+15.0D 0 G(2)=22.0D 0*X(2)-15.0D 0 G(4)=2.0D 0*X(4)-3.0D 0 105 G(3)=24.0D 0*X(3)-21.0D 0 RETURN 110 F=-ETA9 DO 112 I=1,10 F1=0.0D 0 DO 113 J=1,5 F1=F1+(X(J)-Y(5*(I-1)+J))**2 113 CONTINUE F1=F1*Y(50+I) IF (F.LT.F1) K=I F=MAX(F,F1) 112 CONTINUE DO 114 J=1,5 G(J)=2.0D 0*Y(50+K)*(X(J)-Y(5*(K-1)+J)) 114 CONTINUE RETURN 230 F1=0.0D 0 DO 231 I=1,10 T=Y(50+I) DO 232 J=1,5 T=T-Y(I+J*10-10)*X(J) 232 CONTINUE IF (T.GT.F1) K=I F1=MAX(F1,T) 231 CONTINUE DO 234 J=1,5 T=0.0D 0 DO 233 I=1,5 T=T+Y(55+I+J*5)*X(I) 233 CONTINUE G(J)=3.0D 0*Y(85+J)*X(J)*X(J)+T+T+Y(90+J) IF (F1.GT.0.0D 0) G(J)=G(J)-5.0D 1*Y(K+J*10-10) 234 CONTINUE RETURN 240 G(1)=X(2)*X(3)*X(4)*X(5) G(2)=X(1)*X(3)*X(4)*X(5) G(3)=X(1)*X(2)*X(4)*X(5) G(4)=X(1)*X(2)*X(3)*X(5) G(5)=X(1)*X(2)*X(3)*X(4) F1=X(1)**2+X(2)**2+X(3)**2+X(4)**2+X(5)**2-1.0D 1 F4=1.0D 0 IF (F1.LT.0.0D 0) F4=-F4 DO 241 I=1,5 G(I)=G(I)+2.0D 1*F4*X(I) 241 CONTINUE F2=X(2)*X(3)-5.0D 0*X(4)*X(5) F4=1.0D 0 IF (F2.LT.0.0D 0) F4=-F4 G(2)=G(2)+1.0D 1*F4*X(3) G(3)=G(3)+1.0D 1*F4*X(2) G(4)=G(4)-5.0D 1*F4*X(5) G(5)=G(5)-5.0D 1*F4*X(4) F3=X(1)**3+X(2)**3+1.0D 0 F4=1.0D 0 IF (F3.LT.0.0D 0) F4=-F4 G(1)=G(1)+3.0D 1*F4*X(1)**2 G(2)=G(2)+3.0D 1*F4*X(2)**2 RETURN 170 DO 172 I=1,51 T=DBLE(I-1)/10.0D 0 F=0.5D 0*EXP(-T)-EXP(-T*2.0D 0)+0.5D 0*EXP(-T*3.0D 0)+ & 1.5D 0*EXP(-T*1.5D 0)*SIN(7.0D 0*T)+ & EXP(-T*2.5D 0)*SIN(5.0D 0*T) F1=EXP(-X(2)*T) F2=EXP(-X(6)*T) F3=COS(X(3)*T+X(4)) F4=SIN(X(3)*T+X(4)) AI=SIGN(1.0D 0,X(1)*F1*F3+X(5)*F2-F) G(1)=G(1)+AI*F1*F3 G(2)=G(2)-AI*F1*F3*X(1)*T G(3)=G(3)-AI*F1*F4*X(1)*T G(4)=G(4)-AI*F1*F4*X(1) G(5)=G(5)+AI*F2 G(6)=G(6)-AI*F2*X(5)*T 172 CONTINUE RETURN 120 F=-ETA9 L=1 KK=0 DO 123 K=1,5 F1=0.0D 0 DO 122 I=1,N F1=F1-Y(KK+100+I)*X(I) DO 122 J=1,N F1=F1+Y(KK+(I-1)*N+J)*X(I)*X(J) 122 CONTINUE IF (F.LT.F1) L=K F=MAX(F,F1) KK=KK+110 123 CONTINUE DO 126 I=1,N G(I)=-Y((L-1)*110+100+I) DO 126 J=1,N G(I)=G(I)+2.0D 0*Y((L-1)*110+(I-1)*N+J)*X(J) 126 CONTINUE RETURN 210 F1=0.0D 0 DO 211 I=1,10 F1=F1+X(I)**2 211 CONTINUE F4=F1-0.25D 0 F1=1.0D -3*F4*F4 DO 212 I=1,10 F1=F1+(X(I)-1.0D 0)**2 212 CONTINUE F2=0.0D 0 DO 215 I=2,30 AI=DBLE(I-1)/29D 0 F=0.0D 0 DO 213 J=1,10 F=F+X(J)*AI**(J-1) 213 CONTINUE F=-F*F-1.0D 0 DO 214 J=2,10 AJ=DBLE(J-1) F=F+X(J)*AJ*AI**(J-2) 214 CONTINUE F2=F2+F*F 215 CONTINUE F2=F2+X(1)**2+(X(2)-X(1)**2-1.0D 0)**2 F3=0.0D 0 DO 216 I=2,10 F3=F3+100.0D 0*(X(I)-X(I-1)**2)**2+(1.0D 0-X(I))**2 216 CONTINUE IF ((F1.GE.F2).AND.(F1.GE.F3)) THEN DO 218 I=1,10 G(I)=2.0D 0*X(I)-2.0D 0+4.0D -3*X(I)*F4 218 CONTINUE ELSEIF ((F2.GE.F1).AND.(F2.GE.F3)) THEN DO 2185 J=1,10 DO 2185 I=2,30 AI=DBLE(I-1)/29D 0 F=0.0D 0 DO 2183 K=1,10 F=F-X(K)*AI**(K-1) 2183 CONTINUE T=2.0D 0*F*AI**(J-1) IF (J.GE.2) T=T+(J-1)*AI**(J-2) F=-F*F-1.0D 0 DO 2184 K=2,10 F=F+X(K)*(K-1)*AI**(K-2) 2184 CONTINUE G(J)=G(J)+2.0D 0*F*T 2185 CONTINUE G(1)=G(1)+2.0D 0*X(1)-4.0D 0*X(1)*(X(2)-X(1)**2-1.0D 0) G(2)=G(2)+2.0D 0*(X(2)-X(1)**2-1.0D 0) ELSE DO 219 I=1,10 G(I)=0.0D 0 IF (I.GE.2) G(I)=G(I)+2.0D 2*(X(I)-X(I-1)**2)- & 2.0D 0*(1.0D 0-X(I)) IF (I.LE.9) G(I)=G(I)-4.0D 2*X(I)*(X(I+1)-X(I)**2) 219 CONTINUE ENDIF RETURN 220 G(1)=X(1)/SQRT(X(1)**2+X(7)**2) G(7)=X(7)/SQRT(X(1)**2+X(7)**2) T=SQRT((5.5D 0-X(6))**2+(1.0D 0+X(12))**2) G(6)=-(5.5D 0-X(6))/T G(12)=(1.0D 0+X(12))/T DO 223 J=1,6 T=SQRT((Y(J)-X(J))**2+(Y(6+J)-X(6+J))**2) G(J)=G(J)-Y(12+J)*(Y(J)-X(J))/T G(6+J)=G(6+J)-Y(12+J)*(Y(J+6)-X(J+6))/T 223 CONTINUE DO 224 J=1,5 T=SQRT((X(J)-X(J+1))**2+(X(J+6)-X(J+7))**2) G(J)=G(J)+Y(18+J)*(X(J)-X(J+1))/T G(J+1)=G(J+1)-Y(18+J)*(X(J)-X(J+1))/T G(J+6)=G(J+6)+Y(18+J)*(X(J+6)-X(J+7))/T G(J+7)=G(J+7)-Y(18+J)*(X(J+6)-X(J+7))/T 224 CONTINUE RETURN 130 F=X(1)**2 K=1 DO 131 I=2,20 F1=X(I)**2 IF (F.LT.F1) K=I F=MAX(F,F1) 131 CONTINUE G(K)=2.0D 0*X(K) RETURN 140 F=ABS(X(1)) K=1 DO 141 I=2,20 F1=ABS(X(I)) IF (F.LT.F1) K=I F=MAX(F,F1) 141 CONTINUE G(K)=SIGN(1.0D 0,X(K)) RETURN 150 KK=N*N DO 151 I=1,N G(I)=-Y(KK+N+I) 151 CONTINUE DO 152 J=1,N F=ETA9 DO 153 I=1,N T=Y((I-1)*N+J)-X(I) IF (T.GE.F) GO TO 153 F=T K=I 153 CONTINUE G(K)=G(K)+Y(KK+J) 152 CONTINUE RETURN 160 F=-ETA9 DO 162 I=1,50 F2=X(I) IF (F.LT.F2) K=I F=MAX(F,F2) G(I)=-1.0D 0 162 CONTINUE G(K)=G(K)+5D 1 RETURN 190 F1=-ETA9 DO 192 I=1,N F=0.0D 0 DO 191 J=1,N F=F+X(J)/DBLE(I+J-1) 191 CONTINUE IF (F1.GE.ABS(F)) GO TO 192 K=I AI=SIGN(1D 0,F) F1=ABS(F) 192 CONTINUE DO 194 J=1,N G(J)=AI/DBLE(K+J-1) 194 CONTINUE RETURN 200 DO 204 J=1,N F1=0.0D 0 DO 203 I=1,N F1=F1+X(I)/DBLE(I+J-1) 203 CONTINUE AJ=SIGN(1.0D 0,F1) DO 204 I=1,N G(I)=G(I)+AJ/DBLE(I+J-1) 204 CONTINUE RETURN 250 F1=0.0D 0 DO 251 J=1,5 F1=F1+Y(85+J)*X(J)**3 251 CONTINUE DO 253 J=1,5 T=0.0D 0 DO 252 I=1,5 T=T+Y(55+I+J*5)*X(I) 252 CONTINUE G(J)=SIGN(6D 0,F1)*Y(85+J)*X(J)*X(J)+T+T 253 CONTINUE DO 254 J=6,15 G(J)=-Y(45+J) 254 CONTINUE DO 257 J=1,5 T=-3.0D 0*Y(85+J)*X(J)*X(J)-Y(90+J) DO 255 I=1,15 IF (I.LE.5) T=T-2.0D 0*Y(55+I+J*5)*X(I) IF (I.GT.5) T=T+Y(I+J*10-15)*X(I) 255 CONTINUE IF (T.LE.0.0D 0) GO TO 257 G(J)=G(J)-6.0D 2*Y(85+J)*X(J) DO 256 I=1,15 IF (I.LE.5) G(I)=G(I)-2.0D 2*Y(55+I+J*5) IF (I.GT.5) G(I)=G(I)+1.0D 2*Y(I+J*10-15) 256 CONTINUE 257 CONTINUE DO 258 I=1,15 IF (X(I).LT.0.0D 0) G(I)=G(I)-1.0D 2 258 CONTINUE RETURN END * SUBROUTINE TFHD19 ALL SYSTEMS 99/12/01 C PORTABILITY : ALL SYSTEMS C 95/12/01 VL : ORIGINAL VERSION * * PURPOSE : * HESSIAN MATRIX OF THE NONSMOOTH OBJECTIVE FUNCTION. * DENSE VERSION. * * PARAMETERS : * II N NUMBER OF VARIABLES. * RI X(N) VECTOR OF VARIABLES. * RO H(N*(N+1)/2) HESSIAN MATRIX OF THE OBJECTIVE FUNCTION. * II NEXT NUMBER OF THE TEST PROBLEM. * SUBROUTINE TFHD19(N,X,H,NEXT) INTEGER N,NEXT,I,IN,J,K,KK,L REAL*8 X(N),H(N*(N+1)/2) REAL*8 AI,AJ,ETA9,F1,F2,F3,F4,F,T,Y(2700) COMMON /EMPR19/ Y PARAMETER (ETA9=1.0D 60) IN(I,J)=(J-1)*J/2+I DO 1 I=1,N*(N+1)/2 H(I)=0.0D0 1 CONTINUE GO TO (10,20,30,30,50,60,70,80,90,180,100,110,230,240,170,120, & 210,220,130,140,150,160,190,200,250), NEXT 10 H(1)=1200D 0*X(1)**2-400D 0*X(2)+2.0D 0 H(2)=-400D 0*X(1) H(3)= 200D 0 RETURN 20 T=X(1)**2+(X(2)-1.0D 0)**2-1.0D 0 F=SIGN(2.0D 0,T) H(1)=F H(3)=F RETURN 30 I=NEXT-2 J=5-NEXT F1=X(I)**2+X(J)**4 F2=(2.0D 0-X(1))**2+(2.0D 0-X(2))**2 F3=2.0D 0*EXP(-X(1)+X(2)) IF ((F1.GE.F2).AND.(F1.GE.F3)) THEN H(NEXT*2-5)=2.0D 0 H(9-NEXT*2)=12.0D 0*X(J)**2 ELSE IF ((F2.GE.F1).AND.(F2.GE.F3)) THEN H(1)=2.0D 0 H(3)=2.0D 0 ELSE H(1)= 2.0D 0*EXP(X(2)-X(1)) H(2)=-H(1) H(3)= H(1) ENDIF RETURN 50 F1=5.0D 0*X(1)+X(2) F2=-5.0D 0*X(1)+X(2) F3=X(1)**2+X(2)**2+4.0D 0*X(2) IF ((F1.GE.F2).AND.(F1.GE.F3)) THEN ELSE IF ((F2.GE.F1).AND.(F2.GE.F3)) THEN ELSE H(1)=2.0D 0 H(3)=2.0D 0 ENDIF RETURN 60 H(1)=2.0D 0 H(3)=2.0D 0 RETURN 70 F1=-X(1)-X(2) F2=F1+(X(1)**2+X(2)**2-1.0D 0) IF (F1.LT.F2) THEN H(1)=2.0D 0 H(3)=2.0D 0 ENDIF RETURN 80 F1=X(1)**2+X(2)**2-1.0D 0 IF (F1.GE.0.0D 0) THEN H(1)=40.0D 0 H(3)=40.0D 0 ENDIF RETURN 90 F1=SIGN(3.5D 0,X(1)**2+X(2)**2-1.0D 0)+4.0D 0 H(1)=F1 H(3)=F1 RETURN 180 IF (X(1).GT.ABS(X(2))) THEN F1=720D 0*(9.0D 0*X(1)**2+16.0D 0*X(2)**2)**(-1.5D 0) H(1)= F1*X(2)**2 H(2)=-F1*X(1)*X(2) H(3)= F1*X(1)**2 ELSE IF (X(1).LT.0.0D 0) H(1)=-72.0D 0*X(1)**8 ENDIF RETURN 100 F=X(1)**2+X(2)**2+X(3)**2 F2=F+X(4)**2+X(1)-X(2)+X(3)-X(4)-8.0D 0 F3=F+X(2)**2+2.0D 0*X(4)**2-X(1)-X(4)-10.0D 0 F4=F+2.0D 0*X(1)-X(2)-X(4)-5.0D 0 L=1 IF (F2.GT.0.0D 0) L=2 IF (F3.GT.MAX(F2,0.0D 0)) L=3 IF (F4.GT.MAX(F2,F3,0.0D 0)) L=4 GO TO (101,102,103,104),L 101 H(1)= 2.0D 0 H(3)= 2.0D 0 H(6)= 4.0D 0 H(10)=2.0D 0 RETURN 102 H(10)=22.0D 0 GO TO 106 103 H(3)= 42.0D 0 H(10)=42.0D 0 GO TO 105 104 H(10)= 2.0D 0 106 H(3)= 22.0D 0 105 H(1)= 22.0D 0 H(6)= 24.0D 0 RETURN 110 F=-ETA9 DO 112 I=1,10 F1=0.0D 0 DO 113 J=1,5 F1=F1+(X(J)-Y(5*(I-1)+J))**2 113 CONTINUE F1=F1*Y(50+I) IF (F.LT.F1) K=I F=MAX(F,F1) 112 CONTINUE DO 114 J=1,5 H(J*(J+1)/2)=2.0D 0*Y(50+K) 114 CONTINUE RETURN 230 DO 231 J=1,5 H(J*(J+1)/2)=6.0D 0*Y(85+J)*X(J) 231 CONTINUE K=1 DO 232 I=1,N DO 232 J=1,I H(K)=H(K)+2.0D 0*Y(55+I+J*5) K=K+1 232 CONTINUE RETURN 240 H(1)= 0.0D 0 H(2)= X(3)*X(4)*X(5) H(3)= 0.0D 0 H(4)= X(2)*X(4)*X(5) H(5)= X(1)*X(4)*X(5) H(6)= 0.0D 0 H(7)= X(2)*X(3)*X(5) H(8)= X(1)*X(3)*X(5) H(9)= X(1)*X(2)*X(5) H(10)=0.0D 0 H(11)=X(2)*X(3)*X(4) H(12)=X(1)*X(3)*X(4) H(13)=X(1)*X(2)*X(4) H(14)=X(1)*X(2)*X(3) H(15)=0.0D 0 F1=X(1)**2+X(2)**2+X(3)**2+X(4)**2+X(5)**2-1.0D 1 F4=1.0D 0 IF (F1.LT.0.0D 0) F4=-F4 L=0 DO 241 I=1,5 L=L+I H(L)=H(L)+2.0D 1*F4 241 CONTINUE F2=X(2)*X(3)-5.0D 0*X(4)*X(5) F4=1.0D 0 IF (F2.LT.0.0D 0) F4=-F4 H( 5)=H( 5)+1.0D 1*F4 H(14)=H(14)-5.0D 1*F4 F3=X(1)**3+X(2)**3+1.0D 0 F4=1.0D 0 IF (F3.LT.0.0D 0) F4=-F4 H(1)=H(1)+6.0D 1*F4*X(1) H(3)=H(3)+6.0D 1*F4*X(2) RETURN 170 DO 172 I=1,51 T=DBLE(I-1)/10.0D 0 F=0.5D 0*EXP(-T)-EXP(-T*2.0D 0)+0.5D 0*EXP(-T*3.0D 0)+ & 1.5D 0*EXP(-T*1.5D 0)*SIN(7.0D 0*T)+ & EXP(-T*2.5D 0)*SIN(5.0D 0*T) F1=EXP(-X(2)*T) F2=EXP(-X(6)*T) F3=COS(X(3)*T+X(4)) F4=SIN(X(3)*T+X(4)) AI=SIGN(1.0D 0,X(1)*F1*F3+X(5)*F2-F) H(2)=H(2)-AI*F1*F3*T H(3)=H(3)+AI*F1*F3*T*T*X(1) H(4)=H(4)-AI*F1*F4*T H(5)=H(5)+AI*F1*F4*T*T*X(1) H(6)=H(6)-AI*F1*F3*T*T*X(1) H(7)=H(7)-AI*F1*F4 H(8)=H(8)+AI*F1*F4*T*X(1) H(9)=H(9)-AI*F1*F3*T*X(1) H(10)=H(10)-AI*F1*F3*X(1) H(15)=H(15)-AI*F2*T H(20)=H(20)-AI*F2*T H(21)=H(21)+AI*F2*T*T*X(5) 172 CONTINUE RETURN 120 F=-ETA9 L=1 KK=0 DO 123 K=1,5 F1=0.0D 0 DO 122 I=1,N F1=F1-Y(KK+100+I)*X(I) DO 122 J=1,N F1=F1+Y(KK+(I-1)*N+J)*X(I)*X(J) 122 CONTINUE IF (F.LT.F1) L=K F=MAX(F,F1) KK=KK+110 123 CONTINUE K=1 DO 124 I=1,N DO 124 J=1,I H(K)=2.0D 0*Y((L-1)*110+(I-1)*N+J) K=K+1 124 CONTINUE RETURN 210 F1=0.0D 0 DO 211 I=1,10 F1=F1+X(I)**2 211 CONTINUE F4=F1-0.25D 0 F1=1.0D -3*F4*F4 DO 212 I=1,10 F1=F1+(X(I)-1.0D 0)**2 212 CONTINUE F2=0.0D 0 DO 215 I=2,30 AI=DBLE(I-1)/29D 0 F=0.0D 0 DO 213 J=1,10 F=F+X(J)*AI**(J-1) 213 CONTINUE F=-F*F-1.0D 0 DO 214 J=2,10 AJ=DBLE(J-1) F=F+X(J)*AJ*AI**(J-2) 214 CONTINUE F2=F2+F*F 215 CONTINUE F2=F2+X(1)**2+(X(2)-X(1)**2-1.0D 0)**2 F3=0.0D 0 DO 216 I=2,10 F3=F3+100.0D 0*(X(I)-X(I-1)**2)**2+(1.0D 0-X(I))**2 216 CONTINUE IF ((F1.GE.F2).AND.(F1.GE.F3)) THEN L=1 DO 218 I=1,N DO 218 J=1,I H(L)=8.0D-3*X(I)*X(J) IF (J.EQ.I) H(L)=H(L)+2.0D 0+4.0D-3*F4 L=L+1 218 CONTINUE ELSE IF ((F2.GE.F1).AND.(F2.GE.F3)) THEN KK=1 DO 2186 J=1,N DO 2186 L=1,J DO 2185 I=2,30 AI=DBLE(I-1)/29.0D 0 F=0.0D 0 DO 2183 K=1,10 F=F-X(K)*AI**(K-1) 2183 CONTINUE T=2.0D 0*F*AI**(J-1) IF (J.GE.2) T=T+(J-1)*AI**(J-2) F4=2.0D 0*F*AI**(L-1) IF (L.GE.2) F4=F4+(L-1)*AI**(L-2) F=-F*F-1.0D 0 DO 2184 K=2,10 F=F+X(K)*(K-1)*AI**(K-2) 2184 CONTINUE H(KK)=H(KK)+2.0D 0*(T*F4-2.0D 0*F*AI**(J+L-2)) 2185 CONTINUE KK=KK+1 2186 CONTINUE H(1)=H(1)+12.0D 0*X(1)**2-4.0D 0*X(2)+6.0D 0 H(2)=H(2)-4.0D 0*X(1) H(3)=H(3)+2.0D 0 ELSE DO 219 I=1,10 J=I*(I+1)/2 IF (I.GE.2) H(J)=202.0D 0 IF (I.LE.9) H(J)=H(J)+4.0D 2*(3.0D 0*X(I)**2-X(I+1)) IF (I.LE.9) H(J+I)=-4.0D 2*X(I) 219 CONTINUE ENDIF RETURN 220 T= (X(1)**2+X(7)**2)**1.5D 0 H(1) = X(7)**2/T H(22)=-X(1)*X(7)/T H(28)= X(1)**2/T T=((5.5D 0-X(6))**2+(1.0D 0+X(12))**2)**1.5D 0 H(21)=(1.0D 0+X(12))**2/T H(72)=(5.5D 0-X(6))*(1.0D 0+X(12))/T H(78)=(5.5D 0-X(6))**2/T DO 223 J=1,6 T=Y(12+J)/((Y(J)-X(J))**2+(Y(6+J)-X(6+J))**2)**1.5D 0 H(IN(J,J)) =H(IN(J,J)) +(Y(J+6)-X(J+6))**2*T H(IN(J,J+6)) =H(IN(J,J+6)) -(Y(J+6)-X(J+6))*(Y(J)-X(J))*T H(IN(J+6,J+6))=H(IN(J+6,J+6))+(Y(J)-X(J))**2*T 223 CONTINUE DO 224 J=1,6 IF (J.LT.6) THEN F1=X(J)-X(J+1) F2=X(J+6)-X(J+7) T=Y(18+J)/(F1*F1+F2*F2)**1.5D 0 H(IN(J,J)) =H(IN(J,J)) +F2*F2*T H(IN(J,J+1)) =H(IN(J,J+1)) -F2*F2*T H(IN(J,J+6)) =H(IN(J,J+6)) -F1*F2*T H(IN(J,J+7)) =H(IN(J,J+7)) +F1*F2*T H(IN(J+6,J+6))=H(IN(J+6,J+6))+F1*F1*T H(IN(J+6,J+7))=H(IN(J+6,J+7))-F1*F1*T ENDIF IF (J.GT.1) THEN F1=X(J)-X(J-1) F2=X(J+6)-X(J+5) T=Y(17+J)/(F1*F1+F2*F2)**1.5D 0 H(IN(J,J)) =H(IN(J,J)) +F2*F2*T H(IN(J,J+5)) =H(IN(J,J+5)) +F1*F2*T H(IN(J,J+6)) =H(IN(J,J+6)) -F1*F2*T H(IN(J+6,J+6))=H(IN(J+6,J+6))+F1*F1*T ENDIF 224 CONTINUE RETURN 130 F=X(1)**2 K=1 DO 131 I=2,20 F1=X(I)**2 IF (F.LT.F1) K=I F=MAX(F,F1) 131 CONTINUE H(K*(K+1)/2)=2.0D 0 RETURN 140 RETURN 150 RETURN 160 RETURN 190 RETURN 200 RETURN 250 F1=0D 0 DO 251 J=1,5 F1=F1+Y(85+J)*X(J)**3 251 CONTINUE DO 252 J=1,5 H(J*(J+1)/2)=SIGN(12.0D 0,F1)*Y(85+J)*X(J) 252 CONTINUE K=1 DO 253 I=1,5 DO 253 J=1,I H(K)=H(K)+2.0D 0*Y(55+I+J*5) K=K+1 253 CONTINUE DO 257 J=1,5 T=-3.0D 0*Y(85+J)*X(J)*X(J)-Y(90+J) DO 255 I=1,15 IF (I.LE.5) T=T-2.0D 0*Y(55+I+J*5)*X(I) IF (I.GT.5) T=T+Y(I+J*10-15)*X(I) 255 CONTINUE IF (T.LE.0.0D 0) GO TO 257 I=J*(J+1)/2 H(I)=H(I)-6.0D 2*Y(85+J) 257 CONTINUE RETURN END