* SUBROUTINE TIUD37 ALL SYSTEMS 99/12/01 C PORTABILITY : ALL SYSTEMS C 99/12/01 LU : ORIGINAL VERSION * * PURPOSE : * INITIAL VALUES OF THE VARIABLES FOR NONLINEAR EQUATIONS. * UNCONSTRAINED AND DENSE VERSION. * * PARAMETERS : * IO N NUMBER OF VARIABLES. * IO NA NUMBER OF EQUATIONS. * RO X(N) VECTOR OF VARIABLES. * RO FMIN LOWER BOUND FOR VALUE OF THE OBJECTIVE FUNCTION. * RO XMAX MAXIMUM STEPSIZE. * IO NEXT NUMBER OF THE TEST PROBLEM. * IO IERR ERROR INDICATOR. * SUBROUTINE TIUD37(N,NA,X,FMIN,XMAX,NEXT,IERR) INTEGER N,NA,NAL,NEXT,IEXT,IERR REAL*8 X(N),FMIN,XMAX,PAR INTEGER I,J,K,M,N1,ALF,BET C REAL*8 Y(1000),F,S,T REAL*8 F,S,T COMMON /EMPR18/ PAR,M NA=N NAL=0 FMIN=0.0D 0 XMAX=1.0D 3 IEXT=0 IERR=0 GOTO (10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160, & 170,180,190,200,210,220,230,240,250,260,270,280,290,300,310, & 310,401,402,403,404,405,406,407,408,409,412,413,414,419,420, & 421,422,423,424,426,427,428,429,430,431,431,560,590,600,670, & 690,710,710),NEXT 10 IF(N.GE.4) THEN N=N-MOD(N,2) NA=N DO 11 I=1,N IF (MOD(I,8).EQ.1) X(I)=1.0D-1 IF (MOD(I,8).EQ.2.OR.MOD(I,8).EQ.0) X(I)=2.0D-1 IF (MOD(I,8).EQ.3.OR.MOD(I,8).EQ.7) X(I)=3.0D-1 IF (MOD(I,8).EQ.4.OR.MOD(I,8).EQ.6) X(I)=4.0D-1 IF (MOD(I,8).EQ.5) X(I)=5.0D-1 11 CONTINUE ELSE IERR=1 ENDIF RETURN 20 IF(N.GE.5) THEN N=N-MOD(N,2) NA=N DO 21 I=1,N IF (MOD(I,8).EQ.1) X(I)=1.0D-1 IF (MOD(I,8).EQ.2.OR.MOD(I,8).EQ.0) X(I)=2.0D-1 IF (MOD(I,8).EQ.3.OR.MOD(I,8).EQ.7) X(I)=3.0D-1 IF (MOD(I,8).EQ.4.OR.MOD(I,8).EQ.6) X(I)=4.0D-1 IF (MOD(I,8).EQ.5) X(I)=5.0D-1 21 CONTINUE ELSE IERR=1 ENDIF RETURN 30 IF(N.GE.5) THEN N=N-MOD(N,5) NA=N DO 31 I=1,N X(I)=1.0D 0/DBLE(N) 31 CONTINUE ELSE IERR=1 ENDIF RETURN 40 IF(N.GE.3) THEN DO 41 I=1,N X(I)=0.0D 0 41 CONTINUE 42 NA=N ELSE IERR=1 ENDIF RETURN 50 IF(N.GE.3) THEN IF (MOD(N,2).NE.1) N=N-1 NA=N DO 51 I=1,N X(I)=1.0D 0 51 CONTINUE ELSE IERR=1 ENDIF RETURN 60 IF(N.GE.3) THEN DO 61 I=1,N X(I)=-1.0D 0 61 CONTINUE NA=N ELSE IERR=1 ENDIF RETURN 70 IF(N.GE.3) THEN DO 71 I=1,N X(I)=1.2D 1 71 CONTINUE XMAX=1.0D 2 NA=N ELSE IERR=1 ENDIF RETURN 80 IF(N.GE.5) THEN NA=N DO 81 I=1,N X(I)=-2.0D 0 81 CONTINUE ELSE IERR=1 ENDIF RETURN 90 IF(N.GE.7) THEN NA=N DO 91 I=1,N X(I)=-3.0D 0 91 CONTINUE XMAX=1.0D 1 ELSE IERR=1 ENDIF RETURN 100 IF(N.GE.7) THEN NA=N DO 101 I=1,N X(I)=-1.0D 0 101 CONTINUE ELSE IERR=1 ENDIF RETURN 110 IF(N.GE.2) THEN N=N-MOD(N,2) NA=N DO 111 I=1,N IF(MOD(I,2).EQ.1) THEN X(I)=9.0D 1 ELSE X(I)=6.0D 1 ENDIF 111 CONTINUE ELSE IERR=1 ENDIF RETURN 120 IF(N.GE.4) THEN N=N-MOD(N,4) NA=N DO 121 I=1,N IF (MOD(I,4).EQ.1) THEN X(I)=3.0D 0 ELSE IF(MOD(I,4).EQ.2) THEN X(I)=-1.0D 0 ELSEIF(MOD(I,4).EQ.3) THEN X(I)=0.0D 0 ELSE X(I)=1.0D 0 ENDIF 121 CONTINUE XMAX=1.0D 2 ELSE IERR=1 ENDIF RETURN 130 IF(N.GE.4) THEN N=N-MOD(N,4) NA=N DO 131 I=1,N IF (MOD(I,4).EQ.1) THEN X(I)=1.0D 0 ELSE IF(MOD(I,4).EQ.2) THEN X(I)=2.0D 0 ELSEIF(MOD(I,4).EQ.3) THEN X(I)=2.0D 0 ELSE X(I)=2.0D 0 ENDIF 131 CONTINUE XMAX=1.0D 1 ELSE IERR=1 ENDIF RETURN 140 IF(N.GE.3) THEN DO 141 I=1,N X(I)=-1.0D 0 141 CONTINUE NA=N ELSE IERR=1 ENDIF RETURN 150 IF(N.GE.7) THEN NA=N DO 152 I=1,5 X(I)=-1.0D 0 152 CONTINUE DO 154 I=6,N-1 X(I)=-1.0D 0 154 CONTINUE X(N)=-1.0D 0 ELSE IERR=1 ENDIF RETURN 160 IF(N.GE.2) THEN N=N-MOD(N,2) NA=N DO 161 I=1,N IF (MOD(I,2).EQ.1) THEN X(I)=0.0D 0 ELSE X(I)=1.0D 0 ENDIF 161 CONTINUE ELSE IERR=1 ENDIF RETURN 170 IF (N.GE.4) THEN N=N-MOD(N,4) NA=N DO 171 I=2,N,2 X(I-1)=-3.0D 0 X(I)=-1.0D 0 171 CONTINUE ELSE IERR=1 ENDIF RETURN 190 IF(N.GE.3) THEN DO 191 I=1,N X(I)=DBLE(I)/DBLE(N+1) X(I)=X(I)*(X(I)-1.0D 0) 191 CONTINUE NA=N ELSE IERR=1 ENDIF RETURN 310 IF(N.GE.3) THEN DO 311 I=1,N X(I)=5.0D 0*MIN(DBLE(I)/DBLE(N+1),1.0D 0-DBLE(I)/DBLE(N+1)) 311 CONTINUE XMAX=1.0D 4 NA=N ELSE IERR=1 ENDIF RETURN 200 IF(N.GE.3) THEN DO 201 I=1,N X(I)=1.0D 1 201 CONTINUE NA=N ELSE IERR=1 ENDIF RETURN 240 IF (N.GE.16) THEN M=INT(SQRT(DBLE(N))) PAR=6.8D 0/DBLE(M+1)**2 N=M*M K=0 DO 242 J=1,M DO 241 I=1,M K=K+1 X(K)=0.0D 0 241 CONTINUE 242 CONTINUE NA=N ELSE IERR=1 ENDIF RETURN 300 IF (N.GE.16) THEN M=INT(SQRT(DBLE(N))) N=M*M PAR=500.0D 0 K=0 DO 302 J=1,M DO 301 I=1,M K=K+1 X(K)=0.0D 0 301 CONTINUE 302 CONTINUE NA=N ELSE IERR=1 ENDIF RETURN 320 IF (N.GE.3) THEN DO 321 I=1,N X(I)=5.0D 0*MIN(DBLE(I)/DBLE(N+1),1.0D 0-DBLE(I)/DBLE(N+1)) 321 CONTINUE NA=N ELSE IERR=1 ENDIF RETURN 210 IF (N.GE.3) THEN DO 211 I=1,N X(I)=1.0D 0 211 CONTINUE PAR=1.0D 1 NA=N ELSE IERR=1 ENDIF RETURN 180 IF (N.GE.3) THEN DO 181 I=1,N X(I)=1.5D 0 181 CONTINUE C XMAX=1.0D 0 NA=N ELSE IERR=1 ENDIF RETURN 290 IF (N.GE.16) THEN M=INT(SQRT(DBLE(N))) N=M*M PAR=500.0D 0/DBLE(M+2)**4 K=0 DO 292 J=1,M DO 291 I=1,M K=K+1 X(K)=0.0D 0 291 CONTINUE 292 CONTINUE NA=N ELSE IERR=1 ENDIF RETURN 270 IF (N.GE.16) THEN M=INT(SQRT(DBLE(N))) PAR=5.0D 1/DBLE(M+1) N=M*M K=0 DO 272 J=1,M DO 271 I=1,M K=K+1 X(K)=1.0D 0-DBLE(I)*DBLE(J)/DBLE(M+1)**2 271 CONTINUE 272 CONTINUE NA=N ELSE IERR=1 ENDIF RETURN 250 IF (N.GE.16) THEN M=INT(SQRT(DBLE(N))) PAR=1.0D 0/DBLE(M+1)**2 N=M*M K=0 DO 252 J=1,M DO 251 I=1,M K=K+1 X(K)=-1.0D 0 251 CONTINUE 252 CONTINUE NA=N ELSE IERR=1 ENDIF RETURN 280 IF (N.GE.16) THEN M=INT(SQRT(DBLE(N))) PAR=1.0D 0/DBLE(M+1) N=M*M K=0 DO 282 J=1,M DO 281 I=1,M K=K+1 X(K)=0.0D 0 281 CONTINUE 282 CONTINUE NA=N ELSE IERR=1 ENDIF RETURN 260 IF (N.GE.16) THEN M=INT(SQRT(DBLE(N))) PAR=1.0D 0/DBLE(M+1)**2 N=M*M K=0 DO 262 J=1,M DO 261 I=1,M K=K+1 X(K)=0.0D 0 261 CONTINUE 262 CONTINUE NA=N ELSE IERR=1 ENDIF RETURN 220 IF (N.GE.5) THEN PAR=5.0D 2/DBLE(N+2) NA=N DO 221 I=1,N X(I)=((DBLE(I)+0.5D 0)/DBLE(N+2)-0.5D 0)**2 221 CONTINUE ELSE IERR=1 ENDIF RETURN 230 IF (N.GE.10) THEN N=N-MOD(N,2) M=N/2 PAR=5.0D 2 NA=N DO 231 I=1,M X(I)=(DBLE(I)/DBLE(M+1)-0.5D 0)**2 231 CONTINUE DO 232 I=M+1,N K=I-M X(I)=DBLE(K)/DBLE(M+1)-0.5D 0 232 CONTINUE ELSE IERR=1 ENDIF RETURN 401 N1=N-1 DO 3030 I=1,N1 X(I)=-1.2D 0 3030 CONTINUE X(N)=-1.0D 0 RETURN 402 DO 3040 I=1,N X(I)=2.0D 0 3040 CONTINUE RETURN 403 DO 3050 I=1,N X(I)=0.5D 0 3050 CONTINUE RETURN 404 N1=N-1 DO 3060 I=1,N1,2 X(I)=-1.2D 0 X(I+1)=1.0D 0 3060 CONTINUE RETURN 405 DO 3070 I=1,N X(I)=1.5D 0 3070 CONTINUE RETURN 406 DO 3080 I=1,N X(I)=0.0D 0 3080 CONTINUE RETURN 407 DO 3090 I=1,N X(I)=-1.0D 0 3090 CONTINUE RETURN 408 DO 4000 I=1,N X(I)=-1.0D 0 4000 CONTINUE RETURN 409 DO 4010 I=1,N X(I)=0.5D 0 4010 CONTINUE RETURN 412 DO 4040 I=1,N X(I)=0.5D 0 4040 CONTINUE RETURN 413 DO 4050 I=1,N X(I)=1.0D 0 4050 CONTINUE RETURN 414 DO 4060 I=1,N X(I)=-1.0D 0 4060 CONTINUE RETURN 419 DO 5010 I=1,N T=DBLE(I)/DBLE(N+1) X(I)=T*(T-1.D 0) 5010 CONTINUE RETURN 420 DO 5020 I=1,N X(I)=1.0D 0/DBLE(N) 5020 CONTINUE RETURN 421 DO 5030 I=1,N X(I)=1.0D 0-DBLE(I)/DBLE(N) 5030 CONTINUE RETURN 422 DO 5040 I=1,N X(I)=-1.0D 0 5040 CONTINUE RETURN 423 ALF=5 BET=14 DO 5051 I=1,N X(I)=0.0D 0 5051 CONTINUE S=DBLE(BET*N)/DBLE(BET**2*N**2-(ALF+1)**2*(N-1)**2) DO 5050 I=1,N CALL EAFU37(N,I,X,F,49) X(I)=-S*F 5050 CONTINUE RETURN 424 DO 5060 I=1,N X(I)=1.0D 0 5060 CONTINUE RETURN 426 DO 5080 I=1,N X(I)=1.0D 0 5080 CONTINUE RETURN 427 DO 5090 I=1,N X(I)=1.0D 0 5090 CONTINUE RETURN 428 DO 6000 I=1,N X(I)=1.0D 0 6000 CONTINUE RETURN 429 DO 6010 I=1,N X(I)=1.0D 0 6010 CONTINUE RETURN 430 T=DBLE(2)/DBLE(N+2) N1=N/2 DO 6020 I=1,N1 S=DBLE(I)*T X(I)=S*(1.0D 0-S) X(N1+I)=X(I) 6020 CONTINUE RETURN 431 N1=INT(SQRT(DBLE(N))) N=N1*N1 NA=N DO 6030 I=1,N X(I)=1.0D 0 6030 CONTINUE RETURN 550 IF(N.GE.3) THEN IF (MOD(N,2).NE.1) N=N-1 NA=N DO 551 I=1,N X(I)=1.0D 0 551 CONTINUE C XMAX=1.0D 2 ELSE IERR=1 ENDIF RETURN 560 IF(N.GE.2) THEN NA=N DO 561 I=1,N IF (MOD(I,2).EQ.1) THEN X(I)=1.0D 0 ELSE X(I)=3.0D 0 ENDIF 561 CONTINUE ELSE IERR=1 ENDIF RETURN 590 IF(N.GE.3) THEN NA=N DO 591 I=1,N IF(MOD(I,2).EQ.1) THEN X(I)= 1.0D 0 ELSE X(I)=-1.0D 0 ENDIF 591 CONTINUE ELSE IERR=1 ENDIF RETURN 600 IF(N.GE.3) THEN NA=N DO 601 I=1,N X(I)=0.0D 0 601 CONTINUE ELSE IERR=1 ENDIF RETURN 610 IF(N.GE.2) THEN N=N-MOD(N,2) NA=N DO 611 I=1,N IF(MOD(I,2).EQ.1) THEN X(I)=-1.2D 0 ELSE X(I)= 1.0D 0 ENDIF 611 CONTINUE ELSE IERR=1 ENDIF RETURN 670 IF(N.GE.2) THEN NA=N DO 671 I=1,N X(I)=4.0D 0 671 CONTINUE ELSE IERR=1 ENDIF RETURN 690 IF(N.GE.3) THEN NA=N DO 691 I=1,N X(I)=0.1D 0 691 CONTINUE ELSE IERR=1 ENDIF 710 IF(N.GE.6) THEN NA=N DO 711 I=1,N X(I)=0.5D 0 711 CONTINUE ELSE IERR=1 ENDIF RETURN END * SUBROUTINE TAFU37 ALL SYSTEMS 99/12/01 C PORTABILITY : ALL SYSTEMS C 99/12/01 LU : ORIGINAL VERSION * * PURPOSE : * VALUES OF TEST FUNCTIONS FOR NONLINEAR EQUATIONS. * UNIVERSAL VERSION. * * PARAMETERS : * II N NUMBER OF VARIABLES. * II KA INDEX OF THE APPROXIMATED FUNCTION. * RI X(N) VECTOR OF VARIABLES. * RO FA VALUE OF THE APPROXIMATED FUNCTION AT THE * SELECTED POINT. * II NEXT NUMBER OF THE TEST PROBLEM. * SUBROUTINE TAFU37(N,KA,X,FA,NEXT) INTEGER N,KA,NEXT REAL*8 X(N),FA INTEGER I,J,K,L,M,I1,I2,I3,I4,I5,J1,J2,N1,ND,LA REAL*8 A,B,C,A1,A2,A3,A4,AL,AL1,AL2,FF,H,PAR,PI,BE,BE1,BE2,CA,CB, & H2,S,S1,S2,S3,T,T1,U,W,QA INTEGER ALF,BET,GAM COMMON /EMPR18/ PAR,M PI=3.14159265358979323846D 0 GOTO (10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160, & 170,180,190,200,210,220,230,240,250,260,270,280,290,300,320, & 310,401,402,403,404,405,406,407,408,409,412,413,414,419,420, & 421,422,423,424,426,427,428,429,430,431,432,560,590,600,670, & 690,710,720),NEXT 10 A2=0.5D 0 IF (KA.EQ.1) THEN FA=A2-(1.0D 0-A2)*X(3)-X(1)*(1.0D 0+4.0D 0*X(2)) ELSEIF(KA.EQ.2) THEN FA=-(2.0D 0-A2)*X(4)-X(2)*(1.0D 0+4.0D 0*X(1)) ELSEIF(KA.EQ.N-1) THEN FA=A2*X(N-3)-X(N-1)*(1.0D 0+4.0D 0*X(N)) ELSEIF (KA.EQ.N) THEN FA=A2*X(N-2)-(2.0D 0-A2)-X(N)*(1.0D 0+4.0D 0*X(N-1)) ELSEIF (MOD(KA,2).EQ.1) THEN FA=A2*X(KA-2)-(1.0D 0-A2)*X(KA+2)- & X(KA)*(1.0D 0+4.0D 0*X(KA+1)) ELSE FA=A2*X(KA-2)-(2.0D 0-A2)*X(KA+2)- & X(KA)*(1.0D 0+4.0D 0*X(KA-1)) ENDIF RETURN 20 A1=0.414214D 0 IF (KA.EQ.1) THEN FA=X(1)-(1.0D 0-X(1))*X(3)-A1*(1.0D 0+4.0D 0*X(2)) ELSEIF (KA.EQ.2) THEN FA=-(1.0D 0-X(1))*X(4)-A1*(1.0D 0+4.0D 0*X(2)) ELSEIF (KA.EQ.3) THEN FA=A1*X(1)-(1.0D 0-X(1))*X(5)-X(3)*(1.0D 0+4.0D 0*X(2)) ELSEIF (KA.LE.N-2) THEN FA=X(1)*X(KA-2)-(1.0D 0-X(1))*X(KA+2)- & X(KA)*(1.0D 0+4.0D 0*X(KA-1)) ELSEIF (KA.EQ.N-1) THEN FA=X(1)*X(N-3)-X(N-1)*(1.0D 0+4.0D 0*X(N-2)) ELSE FA=X(1)*X(N-2)-(1.0D 0-X(1))-X(N)*(1.0D 0+4.0D 0*X(N-1)) ENDIF RETURN 30 J=(KA-1)/5 FA=5.0D 0-DBLE(J+1)*(1.0D 0-COS(X(KA)))-SIN(X(KA)) J=J*5 DO 31 I=J+1,J+5 FA=FA-COS(X(I)) 31 CONTINUE RETURN 40 IF (KA.LT.2) THEN FA=3.0D 0*X(KA)**3+2.0D 0*X(KA+1)-5.0D 0+ & SIN(X(KA)-X(KA+1))*SIN(X(KA)+X(KA+1)) ELSEIF (KA.LT.N) THEN FA=3.0D 0*X(KA)**3+2.0D 0*X(KA+1)-5.0D 0+ & SIN(X(KA)-X(KA+1))*SIN(X(KA)+X(KA+1))+4.0D 0*X(KA)- & X(KA-1)*EXP(X(KA-1)-X(KA))-3.0D 0 ELSE FA=4.0D 0*X(KA)-X(KA-1)*EXP(X(KA-1)-X(KA))-3.0D 0 ENDIF RETURN 50 IF (MOD(KA,2).EQ.1) THEN FA=0.0D 0 IF (KA.NE.1) FA=FA-6.0D 0*(X(KA-2)-X(KA))**3+1.0D 1- & 4.0D 0*X(KA-1)-2.0D 0*SIN(X(KA-2)-X(KA-1)-X(KA))* & SIN(X(KA-2)+X(KA-1)-X(KA)) IF (KA.NE.N) FA=FA+3.0D 0*(X(KA)-X(KA+2))**3-5.0D 0+ & 2.0D 0*X(KA+1)+SIN(X(KA)-X(KA+1)-X(KA+2))* & SIN(X(KA)+X(KA+1)-X(KA+2)) ELSE FA=4.0D 0*X(KA)-(X(KA-1)-X(KA+1))*EXP(X(KA-1)-X(KA)-X(KA+1))- & 3.0D 0 ENDIF RETURN 60 H=2.0D 0 IF (KA.EQ.1) THEN FA=((3.0D 0-H*X(1))*X(1)-2.0D 0*X(2)+1.0D 0)**2 ELSEIF (KA.LE.N-1) THEN FA=((3.0D 0-H*X(KA))*X(KA)-X(KA-1)-2.0D 0*X(KA+1)+1.0D 0)**2 ELSE FA=((3.0D 0-H*X(N))*X(N)-X(N-1)+1.0D 0)**2 ENDIF RETURN 70 IF (KA.LT.2) THEN FA=4.0D 0*(X(KA)-X(KA+1)**2) ELSEIF (KA.LT.N) THEN FA=8.0D 0*X(KA)*(X(KA)**2-X(KA-1))-2.0D 0*(1.0D 0-X(KA))+ & 4.0D 0*(X(KA)-X(KA+1)**2) ELSE FA=8.0D 0*X(KA)*(X(KA)**2-X(KA-1))-2.0D 0*(1.0D 0-X(KA)) ENDIF RETURN 80 IF (KA.LT.2) THEN FA=4.0D 0*(X(KA)-X(KA+1)**2)+X(KA+1)-X(KA+2)**2 ELSEIF (KA.LT.3) THEN FA=8.0D 0*X(KA)*(X(KA)**2-X(KA-1))-2.0D 0*(1.0D 0-X(KA))+ & 4.0D 0*(X(KA)-X(KA+1)**2)+X(KA+1)-X(KA+2)**2 ELSEIF (KA.LT.N-1) THEN FA=8.0D 0*X(KA)*(X(KA)**2-X(KA-1))-2.0D 0*(1.0D 0-X(KA))+ & 4.0D 0*(X(KA)-X(KA+1)**2)+X(KA-1)**2-X(KA-2)+X(KA+1)- & X(KA+2)**2 ELSEIF (KA.LT.N) THEN FA=8.0D 0*X(KA)*(X(KA)**2-X(KA-1))-2.0D 0*(1.0D 0-X(KA))+ & 4.0D 0*(X(KA)-X(KA+1)**2)+X(KA-1)**2-X(KA-2) ELSE FA=8.0D 0*X(KA)*(X(KA)**2-X(KA-1))-2.0D 0*(1.0D 0-X(KA)) & +X(KA-1)**2-X(KA-2) ENDIF RETURN 90 IF (KA.LT.2) THEN FA=4.0D 0*(X(KA)-X(KA+1)**2)+X(KA+1)-X(KA+2)**2+ & X(KA+2)-X(KA+3)**2 ELSEIF (KA.LT.3) THEN FA=8.0D 0*X(KA)*(X(KA)**2-X(KA-1))-2.0D 0*(1.0D 0-X(KA))+ & 4.0D 0*(X(KA)-X(KA+1)**2)+X(KA-1)**2+X(KA+1)-X(KA+2)**2+ & X(KA+2)-X(KA+3)**2 ELSEIF (KA.LT.4) THEN FA=8.0D 0*X(KA)*(X(KA)**2-X(KA-1))-2.0D 0*(1.0D 0-X(KA))+ & 4.0D 0*(X(KA)-X(KA+1)**2)+X(KA-1)**2-X(KA-2)+ & X(KA+1)-X(KA+2)**2+X(KA-2)**2+X(KA+2)-X(KA+3)**2 ELSEIF (KA.LT.N-2) THEN FA=8.0D 0*X(KA)*(X(KA)**2-X(KA-1))-2.0D 0*(1.0D 0-X(KA))+ & 4.0D 0*(X(KA)-X(KA+1)**2)+X(KA-1)**2-X(KA-2)+ & X(KA+1)-X(KA+2)**2+X(KA-2)**2-X(KA-3)+X(KA+2)-X(KA+3)**2 ELSEIF (KA.LT.N-1) THEN FA=8.0D 0*X(KA)*(X(KA)**2-X(KA-1))-2.0D 0*(1.0D 0-X(KA))+ & 4.0D 0*(X(KA)-X(KA+1)**2)+X(KA-1)**2-X(KA-2)+ & X(KA+1)-X(KA+2)**2+X(KA-2)**2-X(KA-3)+X(KA+2) ELSEIF (KA.LT.N) THEN FA=8.0D 0*X(KA)*(X(KA)**2-X(KA-1))-2.0D 0*(1.0D 0-X(KA))+ & 4.0D 0*(X(KA)-X(KA+1)**2)+X(KA-1)**2-X(KA-2)+ & X(KA+1)+X(KA-2)**2-X(KA-3) ELSE FA=8.0D 0*X(KA)*(X(KA)**2-X(KA-1))-2.0D 0*(1.0D 0-X(KA)) & +X(KA-1)**2-X(KA-2)+X(KA-2)**2-X(KA-3) ENDIF RETURN 100 IF (KA.EQ.1) THEN FA=-2.0D 0*X(KA)**2+3.0D 0*X(KA)-2.0D 0*X(KA+1)+ & 3.0D 0*X(N-4)-X(N-3)-X(N-2)+0.5D 0*X(N-1)-X(N)+1.0D 0 ELSEIF (KA.LE.N-1) THEN FA=-2.0D 0*X(KA)**2+3.0D 0*X(KA)-X(KA-1)-2.0D 0*X(KA+1)+ & 3.0D 0*X(N-4)-X(N-3)-X(N-2)+0.5D 0*X(N-1)-X(N)+1.0D 0 ELSE FA=-2.0D 0*X(N)**2+3.0D 0*X(N)-X(N-1)+ & 3.0D 0*X(N-4)-X(N-3)-X(N-2)+0.5D 0*X(N-1)-X(N)+1.0D 0 ENDIF RETURN 110 IF(MOD(KA,2).EQ.1) THEN FA=X(KA)+((5.0D 0-X(KA+1))*X(KA+1)-2.0D 0)*X(KA+1)-1.3D 1 ELSE FA=X(KA-1)+((X(KA)+1.0D 0)*X(KA)-1.4D 1)*X(KA)-2.9D 1 ENDIF RETURN 120 IF(MOD(KA,4).EQ.1) THEN FA=X(KA)+1.0D 1*X(KA+1) ELSEIF(MOD(KA,4).EQ.2) THEN FA=2.23606797749979D 0*(X(KA+1)-X(KA+2)) ELSEIF(MOD(KA,4).EQ.3) THEN FA=(X(KA-1)-2.0D 0*X(KA))**2 ELSE FA=3.16227766016838D 0*(X(KA-3)-X(KA))**2 ENDIF RETURN 130 IF(MOD(KA,4).EQ.1) THEN FA=(EXP(X(KA))-X(KA+1))**2 ELSEIF (MOD(KA,4).EQ.2) THEN FA=1.0D 1*(X(KA)-X(KA+1))**3 ELSEIF (MOD(KA,4).EQ.3) THEN FA=X(KA)-X(KA+1) FA=(SIN(FA)/COS(FA))**2 ELSE FA=X(KA)-1.0D 0 ENDIF RETURN 140 IF(KA.LT.2) THEN FA=X(KA)*(0.5D 0*X(KA)-3.0D 0)-1.0D 0+2.0D 0*X(KA+1) ELSEIF (KA.LT.N) THEN FA=X(KA-1)+X(KA)*(0.5D 0*X(KA)-3.0D 0)-1.0D 0+2.0D 0*X(KA+1) ELSE FA=X(KA-1)+X(KA)*(0.5D 0*X(KA)-3.0D 0)-1.0D 0 ENDIF RETURN 150 FA=(2.0D 0+5.0D 0*X(KA)**2)*X(KA)+1.0D 0 DO 151 I=MAX(1,KA-5),MIN(N,KA+1) FA=FA+X(I)*(1.0D 0+X(I)) 151 CONTINUE RETURN 160 IF(MOD(KA,2).EQ.1) THEN FA=1.0D 4*X(KA)*X(KA+1)-1.0D 0 ELSE FA=EXP(-X(KA-1))+EXP(-X(KA))-1.0001D 0 ENDIF RETURN 170 IF(MOD(KA,4).EQ.1) THEN FA=-2.0D 2*X(KA)*(X(KA+1)-X(KA)**2)-(1.0D 0-X(KA)) ELSEIF(MOD(KA,4).EQ.2) THEN FA=2.0D 2*(X(KA)-X(KA-1)**2)+2.02D 1*(X(KA)-1.0D 0)+ & 1.98D 1*(X(KA+2)-1.0D 0) ELSEIF(MOD(KA,4).EQ.3) THEN FA=-1.8D 2*X(KA)*(X(KA+1)-X(KA)**2)-(1.0D 0-X(KA)) ELSE FA=1.8D 2*(X(KA)-X(KA-1)**2)+2.02D 1*(X(KA)-1.0D 0)+ & 1.98D 1*(X(KA-2)-1.0D 0) ENDIF RETURN 180 IF (KA.LT.2) THEN FA=X(KA)-EXP(COS(DBLE(KA)*(X(KA)+X(KA+1)))) ELSEIF (KA.LT.N) THEN FA=X(KA)-EXP(COS(DBLE(KA)*(X(KA-1)+X(KA)+X(KA+1)))) ELSE FA=X(KA)-EXP(COS(DBLE(KA)*(X(KA-1)+X(KA)))) ENDIF RETURN 190 A3=1.0D 0/DBLE(N+1) A4=DBLE(KA)*A3 FA=2.0D 0*X(KA)+0.5D 0*A3*A3*(X(KA)+A4+1.0D 0)**3 IF(KA.GT.1) FA=FA-X(KA-1) IF(KA.LT.N) FA=FA-X(KA+1) RETURN 200 IF(KA.EQ.1) THEN FA=3.0D 0*X(KA)*(X(KA+1)-2.0D 0*X(KA))+0.25D 0*X(KA+1)**2 ELSEIF(KA.EQ.N) THEN FA=3.0D 0*X(KA)*(2.0D 1-2.0D 0*X(KA)+X(KA-1))+ & 0.25D 0*(2.0D 1-X(KA-1))**2 ELSE FA=3.0D 0*X(KA)*(X(KA+1)-2.0D 0*X(KA)+X(KA-1))+ & 0.25D 0*(X(KA+1)-X(KA-1))**2 ENDIF RETURN 210 H=1.0D 0/DBLE(N+1) IF (KA.LT.2) THEN FA=2.0D 0*X(KA)+PAR*H**2*SINH(PAR*X(KA))-X(KA+1) ELSE IF (KA.LT.N) THEN FA=2.0D 0*X(KA)+PAR*H**2*SINH(PAR*X(KA))-X(KA-1)-X(KA+1) ELSE FA=2.0D 0*X(KA)+PAR*H**2*SINH(PAR*X(KA))-X(KA-1)-1.0D 0 ENDIF RETURN 220 FA=6.0D 0*X(KA) A1=0.0D 0 A2=0.0D 0 A3=0.0D 0 IF (KA.GT.1) THEN FA=FA-4.0D 0*X(KA-1) A1=A1-X(KA-1) A2=A2+X(KA-1) A3=A3+2.0D 0*X(KA-1) ENDIF IF (KA.GT.2) THEN FA=FA+X(KA-2) A3=A3-X(KA-2) ENDIF IF (KA.LT.N-1) THEN FA=FA+X(KA+2) A3=A3+X(KA+2) ENDIF IF (KA.LT.N) THEN FA=FA-4.0D 0*X(KA+1) A1=A1+X(KA+1) A2=A2+X(KA+1) A3=A3-2.0D 0*X(KA+1) ENDIF IF (KA.GE.N-1) THEN FA=FA+1.0D 0 A3=A3+1.0D 0 ENDIF IF (KA.GE.N) THEN FA=FA-4.0D 0 A1=A1+1.0D 0 A2=A2+1.0D 0 A3=A3-2.0D 0 ENDIF FA=FA-0.5D 0*PAR*(A1*A2-X(KA)*A3) RETURN 230 H=1.0D 0/DBLE(M+1) IF(KA.LE.M) THEN J=KA+M FA=6.0D 0*X(KA) A1=0.0D 0 A2=0.0D 0 IF (KA.EQ.1) THEN A1=A1+1.0D 0 ENDIF IF (KA.GT.1) THEN FA=FA-4.0D 0*X(KA-1) A1=A1-X(J-1) A2=A2+2.0D 0*X(KA-1) ENDIF IF (KA.GT.2) THEN FA=FA+X(KA-2) A2=A2-X(KA-2) ENDIF IF (KA.LT.M-1) THEN FA=FA+X(KA+2) A2=A2+X(KA+2) ENDIF IF (KA.LT.M) THEN FA=FA-4.0D 0*X(KA+1) A1=A1+X(J+1) A2=A2-2.0D 0*X(KA+1) ENDIF IF (KA.EQ.M) THEN A1=A1+1.0D 0 ENDIF FA=FA+0.5D 0*PAR*H*(X(KA)*A2+X(J)*A1*H**2) ELSE J=KA-M FA=-2.0D 0*X(KA) A1=0.0D 0 A2=0.0D 0 IF (J.EQ.1) THEN A2=A2+1.0D 0 ENDIF IF (J.GT.1) THEN FA=FA+X(KA-1) A1=A1-X(J-1) A2=A2-X(KA-1) ENDIF IF (J.LT.M) THEN FA=FA+X(KA+1) A1=A1+X(J+1) A2=A2+X(KA+1) ENDIF IF (J.EQ.M) THEN A2=A2+1.0D 0 ENDIF FA=FA+0.5D 0*PAR*H*(X(KA)*A1+X(J)*A2) ENDIF RETURN 240 FA=4.0D 0*X(KA)-PAR*EXP(X(KA)) J=(KA-1)/M+1 I=KA-(J-1)*M IF(I.GT.1) FA=FA-X(KA-1) IF(I.LT.M) FA=FA-X(KA+1) IF(J.GT.1) FA=FA-X(KA-M) IF(J.LT.M) FA=FA-X(KA+M) RETURN 250 FA=4.0D 0*X(KA) J=(KA-1)/M+1 I=KA-(J-1)*M FA=FA+PAR*X(KA)**3/(1.0D 0+PAR*DBLE(I)**2+ & PAR*DBLE(J)**2) IF(I.EQ.1) FA=FA-1.0D 0 IF(I.GT.1) FA=FA-X(KA-1) IF(I.LT.M) FA=FA-X(KA+1) IF(I.EQ.M) FA=FA-2.0D 0+EXP(DBLE(J)/DBLE(M+1)) IF(J.EQ.1) FA=FA-1.0D 0 IF(J.GT.1) FA=FA-X(KA-M) IF(J.LT.M) FA=FA-X(KA+M) IF(J.EQ.M) FA=FA-2.0D 0+EXP(DBLE(I)/DBLE(M+1)) RETURN 260 FA=4.0D 0*X(KA)-PAR*SIN(2.0D 0*PI*X(KA)) J=(KA-1)/M+1 I=KA-(J-1)*M A1=DBLE(I)/DBLE(M+1) A2=DBLE(J)/DBLE(M+1) FA=FA-1.0D 4*((A1-0.25D 0)**2+(A2-0.75D 0)**2)*PAR IF(I.EQ.1) FA=FA-X(KA+1)-PAR*SIN(PI*X(KA+1)*DBLE(M+1)) IF(I.GT.1.AND.I.LT.M) FA=FA-X(KA+1)-X(KA-1)- & PAR*SIN(PI*(X(KA+1)-X(KA-1))*DBLE(M+1)) IF(I.EQ.M) FA=FA-X(KA-1)+PAR*SIN(PI*X(KA-1)*DBLE(M+1)) IF(J.EQ.1) FA=FA-X(KA+M)-PAR*SIN(PI*X(KA+M)*DBLE(M+1)) IF(J.GT.1.AND.J.LT.M) FA=FA-X(KA+M)-X(KA-M)- & PAR*SIN(PI*(X(KA+M)-X(KA-M))*DBLE(M+1)) IF(J.EQ.M) FA=FA-X(KA-M)+PAR*SIN(PI*X(KA-M)*DBLE(M+1)) RETURN 270 FA=8.0D 0*X(KA)**2 J=(KA-1)/M+1 I=KA-(J-1)*M IF(I.EQ.1) FA=FA-2.0D 0*X(KA)*(X(KA+1)+1.0D 0)- & 0.5D 0*(X(KA+1)-1.0D 0)**2- & 1.5D 0*X(KA)**2*(X(KA+1)-1.0D 0)*PAR IF(I.GT.1.AND.I.LT.M) FA=FA-2.0D 0*X(KA)*(X(KA+1)+X(KA-1))- & 0.5D 0*(X(KA+1)-X(KA-1))**2- & 1.5D 0*X(KA)**2*(X(KA+1)-X(KA-1))*PAR IF(I.EQ.M) FA=FA-2.0D 0*X(KA)*X(KA-1)- & 0.5D 0*X(KA-1)**2+ & 1.5D 0*X(KA)**2*X(KA-1)*PAR IF(J.EQ.1) FA=FA-2.0D 0*X(KA)*(X(KA+M)+1.0D 0)- & 0.5D 0*(X(KA+M)-1.0D 0)**2 IF(J.GT.1.AND.J.LT.M) FA=FA-2.0D 0*X(KA)*(X(KA+M)+X(KA-M))- & 0.5D 0*(X(KA+M)-X(KA-M))**2 IF(J.EQ.M) FA=FA-2.0D 0*X(KA)*X(KA-M)- & 0.5D 0*X(KA-M)**2 IF (I.EQ.1.AND.J.EQ.1) FA=FA-PAR/DBLE(M+1) RETURN 280 FA=4.0D 0*X(KA) A3=0.0D 0 J=(KA-1)/M+1 I=KA-(J-1)*M A1=PAR*DBLE(I) A2=PAR*DBLE(J) FA=FA-2.0D 3*A1*A2*(1.0D 0-A1)*(1.0D 0-A2)*PAR**2 IF(I.GT.1) THEN FA=FA-X(KA-1) A3=A3-X(KA-1) ENDIF IF(I.LT.M) THEN FA=FA-X(KA+1) A3=A3+X(KA+1) ENDIF IF(J.GT.1) THEN FA=FA-X(KA-M) A3=A3-X(KA-M) ENDIF IF(J.LT.M) THEN FA=FA-X(KA+M) A3=A3+X(KA+M) ENDIF FA=FA+2.0D 1*PAR*A3*X(KA) RETURN 290 FA=2.0D 1*X(KA)-PAR*MAX(0.0D 0,X(KA)) J=(KA-1)/M+1 I=KA-(J-1)*M FA=FA-SIGN(PAR,(DBLE(I)/DBLE(M+2)-0.5D 0)) IF (J.GT.2) THEN FA=FA+X(KA-M-M) ENDIF IF (J.GT.1) THEN IF (I.GT.1) THEN FA=FA+2.0D 0*X(KA-M-1) ENDIF FA=FA-8.0D 0*X(KA-M) IF (I.LT.M) THEN FA=FA+2.0D 0*X(KA-M+1) ENDIF ENDIF IF (I.GT.1) THEN IF (I.GT.2) THEN FA=FA+X(KA-2) ENDIF FA=FA-8.0D 0*X(KA-1) ENDIF IF (I.LT.M) THEN FA=FA-8.0D 0*X(KA+1) IF (I.LT.M-1) THEN FA=FA+X(KA+2) ENDIF ENDIF IF (J.LT.M) THEN IF (I.GT.1) THEN FA=FA+2.0D 0*X(KA+M-1) ENDIF FA=FA-8.0D 0*X(KA+M) IF (I.LT.M) THEN FA=FA+2.0D 0*X(KA+M+1) ENDIF ENDIF IF (J.LT.M-1) THEN FA=FA+X(KA+M+M) ENDIF RETURN 300 H=0.5D 0/DBLE(M+2) J=(KA-1)/M+1 I=KA-(J-1)*M FA=2.0D 1*X(KA) A1=0.0D 0 A2=0.0D 0 A3=0.0D 0 A4=0.0D 0 IF (J.GT.2) THEN FA=FA+X(KA-M-M) A4=A4+X(KA-M-M) ENDIF IF (J.GT.1) THEN IF (I.GT.1) THEN FA=FA+2.0D 0*X(KA-M-1) A3=A3+X(KA-M-1) A4=A4+X(KA-M-1) ENDIF FA=FA-8.0D 0*X(KA-M) A1=A1-X(KA-M) A4=A4-4.0D 0*X(KA-M) IF (I.LT.M) THEN FA=FA+2.0D 0*X(KA-M+1) A3=A3-X(KA-M+1) A4=A4+X(KA-M+1) ENDIF ENDIF IF (I.GT.1) THEN IF (I.GT.2) THEN FA=FA+X(KA-2) A3=A3+X(KA-2) ENDIF FA=FA-8.0D 0*X(KA-1) A2=A2-X(KA-1) A3=A3-4.0D 0*X(KA-1) ENDIF IF (I.LT.M) THEN FA=FA-8.0D 0*X(KA+1) A2=A2+X(KA+1) A3=A3+4.0D 0*X(KA+1) IF (I.LT.M-1) THEN FA=FA+X(KA+2) A3=A3-X(KA+2) ENDIF ENDIF IF (J.LT.M) THEN IF (I.GT.1) THEN FA=FA+2.0D 0*X(KA+M-1) A3=A3+X(KA+M-1) A4=A4-X(KA+M-1) ENDIF FA=FA-8.0D 0*X(KA+M) A1=A1+X(KA+M) A4=A4+4.0D 0*X(KA+M) IF (I.LT.M) THEN FA=FA+2.0D 0*X(KA+M+1) A3=A3-X(KA+M+1) A4=A4-X(KA+M+1) ENDIF ENDIF IF (J.LT.M-1) THEN FA=FA+X(KA+M+M) A4=A4-X(KA+M+M) ENDIF IF (J.EQ.M) THEN IF (I.GT.1) THEN FA=FA-H-H A3=A3-H A4=A4+H ENDIF FA=FA+8.0D 0*H A1=A1-H A4=A4-4.0D 0*H IF (I.LT.M) THEN FA=FA-2.0D 0*H A3=A3+H A4=A4+H ENDIF FA=FA+H A4=A4-H ENDIF IF (J.EQ.M-1) THEN FA=FA-H A4=A4+H ENDIF FA=FA+0.25D 0*PAR*(A1*A3-A2*A4) RETURN 310 H=1.0D 0/DBLE(N+1) A1=DBLE(KA)*H A2=(A1-0.5D 0)**2 IF (A1.GE.0.5D 0) THEN A3= 1.0D 6 ELSE A3=-1.0D 6 ENDIF IF (KA.LT.2) THEN FA=2.0D 0*X(KA)-X(KA+1)+H**2*(X(KA)**3*EXP(X(KA))+ & 5.0D 8*EXP(-1.0D 4*A2)*SQRT(ABS(A1-0.5D 0))*X(KA+1)+A3) ELSEIF (KA.LT.N) THEN FA=2.0D 0*X(KA)-X(KA+1)-X(KA-1)+H**2*(X(KA)**3*EXP(X(KA))+ & 5.0D 8*EXP(-1.0D 4*A2)*SQRT(ABS(A1-0.5D 0))*(X(KA+1)-X(KA-1))+ & A3) ELSE FA=2.0D 0*X(KA)-X(KA-1)+H**2*(X(KA)**3*EXP(X(KA))- & 5.0D 8*EXP(-1.0D 4*A2)*SQRT(ABS(A1-0.5D 0))*X(KA-1)-A3) ENDIF RETURN 320 H=1.0D 0/DBLE(N+1) A1=DBLE(KA)*H A2=(A1-0.5D 0)**2 IF (KA.LT.2) THEN FA=2.0D 0*X(KA)-X(KA+1)+H**2*(X(KA)**3+ & 2.0D-4*(2.0D-4*A2-1.0D 0)*X(KA)-1.0D 9*EXP(-3.0D 4*A2)) ELSEIF (KA.LT.N) THEN FA=2.0D 0*X(KA)-X(KA+1)-X(KA-1)+H**2*(X(KA)**3+ & 2.0D-4*(2.0D-4*A2-1.0D 0)*X(KA)-1.0D 9*EXP(-3.0D 4*A2)) ELSE FA=2.0D 0*X(KA)-X(KA-1)+H**2*(X(KA)**3+ & 2.0D-4*(2.0D-4*A2-1.0D 0)*X(KA)-1.0D 9*EXP(-3.0D 4*A2)) ENDIF RETURN 401 IF(KA.EQ.1) THEN FA=1.0D 0-X(1) ELSE FA=10.0D 0*DBLE(KA-1)*(X(KA)-X(KA-1))**2 ENDIF RETURN 402 IF(KA.EQ.N) THEN FA=X(KA)-0.1D 0*X(1)**2 ELSE FA=X(KA)-0.1D 0*X(KA+1)**2 ENDIF RETURN 403 T=-1.0D 0 IF(KA.LT.N) THEN T=T+X(KA) DO 3010 J=1,N T=T+X(J) 3010 CONTINUE FA=T-DBLE(N) ELSE S=1.0D 0 DO 3020 J=1,N S=S*X(J) 3020 CONTINUE FA=T+S ENDIF RETURN 404 IF(KA/2*2.LT.KA) THEN FA=1.D 0-X(KA) ELSE FA=10.0D 0*(X(KA)-X(KA-1)**2) ENDIF RETURN 405 S=0.0D 0 DO 3030 J=1,N S=S+X(J)**3 3030 CONTINUE FA=X(KA)-1.0D 0/DBLE(2*N)*(S+DBLE(KA)) RETURN 406 S=1.0D 0/DBLE(N+1) IF(N.EQ.1) THEN FA=-2.0D 0*X(KA)-S**2*EXP(X(KA)) ELSE IF(KA.EQ.1) THEN FA=-2.0D 0*X(KA)+X(KA+1)-S**2*EXP(X(KA)) ELSE IF(KA.EQ.N) THEN FA=X(KA-1)-2.0D 0*X(KA)-S**2*EXP(X(KA)) ELSE FA=X(KA-1)-2.0D 0*X(KA)+X(KA+1)-S**2*EXP(X(KA)) ENDIF RETURN 407 S=0.1D 0 IF(N.EQ.1) THEN FA=(3.0D 0-S*X(KA))*X(KA)+1.0D 0 ELSE IF(KA.EQ.1) THEN FA=(3.0D 0-S*X(KA))*X(KA)+1.0D 0-2.0D 0*X(KA+1) ELSE IF(KA.EQ.N) THEN FA=(3.0D 0-S*X(KA))*X(KA)+1.0D 0-X(KA-1) ELSE FA=(3.0D 0-S*X(KA))*X(KA)+1.0D 0-X(KA-1)-2.0D 0*X(KA+1) ENDIF RETURN 408 S1=1.0D 0 S2=1.0D 0 S3=1.0D 0 J1=3 J2=3 IF(KA-J1.GT.1) THEN I1=KA-J1 ELSE I1=1 ENDIF IF(KA+J2.LT.N) THEN I2=KA+J2 ELSE I2=N ENDIF S=0.0D 0 DO 3040 J=I1,I2 IF(J.NE.KA) S=S+X(J)+X(J)**2 3040 CONTINUE FA=(S1+S2*X(KA)**2)*X(KA)+1.D 0-S3*S RETURN 409 IF(KA.EQ.1) THEN FA=X(1)**2-1.0D 0 ELSE FA=X(KA-1)**2+LOG(X(KA))-1.0D 0 ENDIF RETURN 412 IF(KA.EQ.1) THEN FA=X(1) ELSE FA=COS(X(KA-1))+X(KA)-1.0D 0 ENDIF RETURN 413 S=(1.0D 0/DBLE(N+1))**2 IF(N.EQ.1) THEN FA=2.0D 0*X(1)-1.D 0+S*(X(1)+SIN(X(1))) ELSE IF(KA.EQ.1) THEN FA=2.0D 0*X(1)-X(KA+1)+S*(X(1)+SIN(X(1))) ELSE IF(KA.EQ.N) THEN FA=-X(KA-1)+2.0D 0*X(KA)-1.D 0+S*(X(KA)+SIN(X(KA))) ELSE FA=-X(KA-1)+2.0D 0*X(KA)-X(KA+1)+S*(X(KA)+SIN(X(KA))) ENDIF RETURN 414 IF(KA-5.GT.1) THEN I1=KA-5 ELSE I1=1 ENDIF IF(KA+1.LT.N) THEN I2=KA+1 ELSE I2=N ENDIF S=0.D 0 DO 3070 J=I1,I2 IF(J.NE.KA) S=S+X(J)*(1.0D 0+X(J)) 3070 CONTINUE FA=X(KA)*(2.0D 0+5.0D 0*X(KA)**2)+1.0D 0-S RETURN 419 S1=1.0D 0/(DBLE(N)+1.0D 0) S2=0.0D 0 S3=0.0D 0 DO 4030 J=1,KA S2=S2+DBLE(J)*S1*(X(J)+DBLE(J)*S1+1.0D 0)**3 4030 CONTINUE DO 4040 J=KA+1,N S3=S3+(1.0D 0-DBLE(J)*S1)*(X(J)+DBLE(J)*S1+1.0D 0)**3 4040 CONTINUE FA=X(KA)+S1/2.0D 0*((1.0D 0-DBLE(KA)*S1)*S2+DBLE(KA)*S1*S3) RETURN 420 S=0.0D 0 DO 4050 J=1,N S=S+COS(X(J)) 4050 CONTINUE FA=DBLE(N)-S+DBLE(KA)*(1.0D 0-COS(X(KA)))-SIN(X(KA)) RETURN 421 S=0.0D 0 DO 4060 J=1,N S=S+DBLE(J)*(X(J)-1.0D 0) 4060 CONTINUE FA=X(KA)-1.0D 0+DBLE(KA)*S*(1.0D 0+2.0D 0*S*S) RETURN 422 IF(KA.EQ.1.AND.N.GT.1) THEN FA=(3.D 0-2.D 0*X(KA))*X(KA)-2.D 0*X(KA+1)+1.D 0 ELSE IF(KA.EQ.N.AND.N.GT.1) THEN FA=(3.D 0-2.D 0*X(KA))*X(KA)-X(KA-1)+1.D 0 ELSE IF(N.GT.1) THEN FA=(3.D 0-2.D 0*X(KA))*X(KA)-X(KA-1)-2.D 0*X(KA+1)+1.D 0 ELSE FA=(3.D 0-2.D 0*X(KA))*X(KA)+1.D 0 ENDIF RETURN 423 ALF=5 BET=14 GAM=3 FA=DBLE(BET*N)*X(KA)+(DBLE(KA)-DBLE(N)/2.0D 0)**GAM DO 4070 J=1,N IF(J.NE.KA) THEN T=SQRT(X(J)**2+DBLE(KA)/DBLE(J)) S1=LOG(T) FA=FA+T*(SIN(S1)**ALF+COS(S1)**ALF) ENDIF 4070 CONTINUE RETURN 424 C=0.5D 0 H=1.0D 0/DBLE(N) FA=(1.0D 0-C*H/4.0D 0) DO 4080 J=1,N S=C*H*DBLE(KA)/DBLE(2*(KA+J)) IF(J.EQ.N) S=S/2.0D 0 FA=FA-S*X(J) 4080 CONTINUE FA=-1.0D 0+X(KA)*FA RETURN 426 T=3.0D 0 H=T/DBLE(N+1) S=T*X(KA) IF(KA.EQ.1) THEN FA=2.0D 0*X(KA)-X(KA+1)+H*(EXP(S)-EXP(-S))/2.D 0 ENDIF IF(1.LT.KA.AND.KA.LT.N) THEN FA=-X(KA-1)+2.0D 0*X(KA)-X(KA+1)+H*(EXP(S)-EXP(-S))/2.D 0 ENDIF IF(KA.EQ.N) THEN FA=-X(KA-1)+2.0D 0*X(KA)-1.0D 0+H*(EXP(S)-EXP(-S))/2.D 0 ENDIF RETURN 427 S=0.5D 0 H=1.0D 0/DBLE(N+1) T=H**2/S H=2.0D 0*H IF(KA.EQ.1) THEN FA=2.0D 0*X(KA)-X(KA+1)-T*(X(KA)**2+X(KA+1)/H) ENDIF IF(1.LT.KA.AND.KA.LT.N) THEN FA=-X(KA-1)+2.0D 0*X(KA)-X(KA+1)-T*(X(KA)**2+(X(KA+1) & -X(KA-1))/H) ENDIF IF(KA.EQ.N) THEN FA=-X(KA-1)+2.0D 0*X(KA)-0.5D 0-T*(X(KA)**2+(0.5D 0 & -X(KA-1))/H) ENDIF RETURN 428 S=0.5D 0 H=1.0D 0/DBLE(N+1) T=H**2/S T1=2.0D 0*H AL=0.0D 0 BE=0.5D 0 S1=0.0D 0 DO 4090 J=1,KA IF(J.EQ.1) THEN S1=S1+DBLE(J)*(X(J)**2+(X(J+1)-AL)/T1) ENDIF IF(1.LT.J.AND.J.LT.N) THEN S1=S1+DBLE(J)*(X(J)**2+(X(J+1)-X(J-1))/T1) ENDIF IF(J.EQ.N) THEN S1=S1+DBLE(J)*(X(J)**2+(BE-X(J-1))/T1) ENDIF 4090 CONTINUE S1=(1.0D 0-DBLE(KA)*H)*S1 IF(KA.EQ.N) GO TO 5010 S2=0.0D 0 DO 5000 J=KA+1,N IF(J.LT.N) THEN S2=S2+(1.0D 0-DBLE(J)*H)*(X(J)**2+(X(J+1)-X(J-1))/T1) ELSE S2=S2+(1.0D 0-DBLE(J)*H)*(X(J)**2+(BE-X(J-1))/T1) ENDIF 5000 CONTINUE S1=S1+DBLE(KA)*S2 5010 FA=X(KA)-0.5D 0*DBLE(KA)*H-T*S1 RETURN 429 A=-5.0D-1 B=5.0D-1 AL=0.0D 0 BE=25.0D 0 QA=20.0D 0 CA=0.3D 0 CB=0.3D 0 H=(B-A)/DBLE(N+1) T=A+DBLE(KA)*H H=H**2 S=DBLE(KA)/DBLE(N+1) U=AL*(1.0D 0-S)+BE*S+X(KA) FF=CB*EXP(QA*(U-BE))-CA*EXP(QA*(AL-U)) IF(T.LE.0) THEN FF=FF+CA ELSE FF=FF-CB ENDIF IF(N.EQ.1) THEN FA=-AL+2.0D 0*X(KA)-BE+H*FF ELSEIF(KA.EQ.1) THEN FA=-AL+2.0D 0*X(KA)-X(KA+1)+H*FF ELSEIF(KA.LT.N) THEN FA=-X(KA-1)+2.0D 0*X(KA)-X(KA+1)+H*FF ELSE FA=-X(KA-1)+2.0D 0*X(KA)-BE+H*FF ENDIF RETURN 430 AL1=0.0D 0 AL2=0.0D 0 BE1=0.0D 0 BE2=0.0D 0 N1=N/2 H=1.0D 0/DBLE(N1+1) T=DBLE(KA)*H IF(KA.EQ.1) THEN S1=2.0D 0*X(KA)-X(KA+1) B=AL1 ELSE IF(KA.EQ.N1+1) THEN S1=2.0D 0*X(KA)-X(KA+1) B=AL2 ELSE IF(KA.EQ.N1) THEN S1=-X(KA-1)+2.0D 0*X(KA) B=BE1 ELSE IF(KA.EQ.N) THEN S1=-X(KA-1)+2.0D 0*X(KA) B=BE2 ELSE S1=-X(KA-1)+2.0D 0*X(KA)-X(KA+1) B=0.0D 0 ENDIF IF(KA.LE.N1) THEN S2=X(KA)**2+X(KA)+0.1D 0*X(N1+KA)**2-1.2D 0 ELSE S2=0.2D 0*X(KA-N1)**2+X(KA)**2+2.0D 0*X(KA)-0.6D 0 ENDIF FA=S1+H**2*S2-B RETURN 431 ND=INT(SQRT(DBLE(N))) L=MOD(KA,ND) IF(L.EQ.0) THEN K=KA/ND L=ND ELSE K=INT(KA/ND)+1 ENDIF LA=1.0D 0 H=1.0D 0/DBLE(ND+1) H2=LA*H*H IF(L.EQ.1.AND.K.EQ.1) THEN FA=4.0D 0*X(1)-X(2)-X(ND+1)+H2*EXP(X(1)) ENDIF IF(1.LT.L.AND.L.LT.ND.AND.K.EQ.1) THEN FA=4.0D 0*X(L)-X(L-1)-X(L+1)-X(L+ND)+H2*EXP(X(L)) ENDIF IF(L.EQ.ND.AND.K.EQ.1) THEN FA=4.0D 0*X(ND)-X(ND-1)-X(ND+ND)+H2*EXP(X(ND)) ENDIF IF(L.EQ.1.AND.1.LT.K.AND.K.LT.ND) THEN FA=4.0D 0*X(KA)-X(KA+1)-X(KA-ND)-X(KA+ND)+H2*EXP(X(KA)) ENDIF IF(L.EQ.ND.AND.1.LT.K.AND.K.LT.ND) THEN FA=4.0D 0*X(KA)-X(KA-ND)-X(KA-1)-X(KA+ND)+H2*EXP(X(KA)) ENDIF IF(L.EQ.1.AND.K.EQ.ND) THEN FA=4.0D 0*X(KA)-X(KA+1)-X(KA-ND)+H2*EXP(X(KA)) ENDIF IF(1.LT.L.AND.L.LT.ND.AND.K.EQ.ND) THEN FA=4.0D 0*X(KA)-X(KA-1)-X(KA+1)-X(KA-ND)+H2*EXP(X(KA)) ENDIF IF(L.EQ.ND.AND.K.EQ.ND) THEN FA=4.0D 0*X(KA)-X(KA-1)-X(KA-ND)+H2*EXP(X(KA)) ENDIF IF(1.LT.L.AND.L.LT.ND.AND.1.LT.K.AND.K.LT.ND) THEN FA=4.0D 0*X(KA)-X(KA-1)-X(KA+1)-X(KA-ND) & -X(KA+ND)+H2*EXP(X(KA)) ENDIF RETURN 432 ND=INT(SQRT(DBLE(N))) L=MOD(KA,ND) IF(L.EQ.0) THEN K=KA/ND L=ND ELSE K=INT(KA/ND)+1 ENDIF H=1.0D 0/DBLE(ND+1) H2=H*H IF(L.EQ.1.AND.K.EQ.1) THEN FA=4.0D 0*X(1)-X(2)-X(ND+1)+H2*X(1)**2-24.0D 0/(H+1.0D 0)**2 ENDIF IF(1.LT.L.AND.L.LT.ND.AND.K.EQ.1) THEN FA=4.0D 0*X(L)-X(L-1)-X(L+1)-X(L+ND)+H2*X(L)**2 & -12.0D 0/(DBLE(L)*H+1.0D 0)**2 ENDIF IF(L.EQ.ND.AND.K.EQ.1) THEN FA=4.0D 0*X(ND)-X(ND-1)-X(ND+ND)+H2*X(ND)**2 & -12.0D 0/(DBLE(ND)*H+1.0D 0)**2-12.0D 0/(H+2.0D 0)**2 ENDIF IF(L.EQ.1.AND.1.LT.K.AND.K.LT.ND) THEN FA=4.0D 0*X(KA)-X(KA+1)-X(KA-ND)-X(KA+ND)+H2*X(KA)**2 & -12.0D 0/(DBLE(K)*H+1.0D 0)**2 ENDIF IF(L.EQ.ND.AND.1.LT.K.AND.K.LT.ND) THEN FA=4.0D 0*X(KA)-X(KA-ND)-X(KA-1)-X(KA+ND)+H2*X(KA)**2 & -12.0D 0/(DBLE(K)*H+2.0D 0)**2 ENDIF IF(L.EQ.1.AND.K.EQ.ND) THEN FA=4.0D 0*X(KA)-X(KA+1)-X(KA-ND)+H2*X(KA)**2 & -12.0D 0/(DBLE(ND)*H+1.0D 0)**2-12.0D 0/(H+2.0D 0)**2 ENDIF IF(1.LT.L.AND.L.LT.ND.AND.K.EQ.ND) THEN FA=4.0D 0*X(KA)-X(KA-1)-X(KA+1)-X(KA-ND)+H2*X(KA)**2 & -12.0D 0/(DBLE(L)*H+2.0D 0)**2 ENDIF IF(L.EQ.ND.AND.K.EQ.ND) THEN FA=4.0D 0*X(KA)-X(KA-1)-X(KA-ND)+H2*X(KA)**2 & -24.0D 0/(DBLE(ND)*H+2.0D 0)**2 ENDIF IF(1.LT.L.AND.L.LT.ND.AND.1.LT.K.AND.K.LT.ND) THEN FA=4.0D 0*X(KA)-X(KA-1)-X(KA+1)-X(KA-ND)-X(KA+ND)+H2*X(KA)**2 ENDIF RETURN 550 IF (MOD(KA,2).EQ.1) THEN FA=0.0D 0 IF (KA.NE.1) FA=FA-6.0D 0*(X(KA-2)-X(KA))**3+1.0D 1- & 4.0D 0*X(KA-1)-2.0D 0*SIN(X(KA-2)-X(KA-1)-X(KA))* & SIN(X(KA-2)+X(KA-1)-X(KA)) IF (KA.NE.N) FA=FA+3.0D 0*(X(KA)-X(KA+2))**3-5.0D 0+ & 2.0D 0*X(KA+1)+SIN(X(KA)-X(KA+1)-X(KA+2))* & SIN(X(KA)+X(KA+1)-X(KA+2)) ELSE FA=4.0D 0*X(KA)-(X(KA-1)-X(KA+1))*EXP(X(KA-1)-X(KA)-X(KA+1))- & 3.0D 0 ENDIF RETURN 560 W=0.0D 0 DO 561 I=1,N-1 W=W+(DBLE(KA)/DBLE(KA+I))*X(I) 561 CONTINUE FA=X(KA)-(1.0D 0+(0.4D 0/DBLE(N))*X(KA)*(0.5D 0+W+ & 0.5D 0*(DBLE(KA)/DBLE(KA+N))*X(N))) RETURN 590 IF(KA.EQ.1) THEN FA=X(KA)-1.0D 0 ELSEIF(KA.EQ.N) THEN FA=X(KA-1)-X(KA) ELSE FA=(X(KA)+X(KA+1)+X(N))**2 ENDIF RETURN 600 IF(KA.LE.N-2) THEN A=0.0D 0 B=X(1) W=DBLE(KA)/DBLE(N-2) DO 601 J=2,N A=A+DBLE(J-1)*X(J)*W**(J-2) B=B+X(J)*W**(J-1) 601 CONTINUE FA=A-B**2-1.0D 0 ELSEIF(KA.EQ.N-1) THEN FA=X(1) ELSEIF(KA.EQ.N) THEN FA=X(2)-X(1)**2-1.0D 0 ENDIF RETURN 610 IF(MOD(KA,2).EQ.1) THEN FA=1.0D 1*(X(KA+1)-X(KA)**2) ELSE FA=1.0D 0-X(KA-1) ENDIF RETURN 670 FA=4.0D 0*(X(KA)**2-X(1))**2+(X(KA)-1.0D 0)**2 RETURN 690 IF(KA.EQ.1) THEN FA=(X(KA)-1.0D 0)**2 ELSEIF(KA.EQ.N) THEN FA=X(KA)**2-X(1)**2 ELSE FA=SIN(X(KA)-X(N))+X(KA)**2-X(1)**2 ENDIF RETURN 710 I1=MOD(2*KA-1,N)+1 I2=MOD(3*KA-1,N)+1 I3=MOD(5*KA-1,N)+1 I4=MOD(7*KA-1,N)+1 I5=MOD(11*KA-1,N)+1 FA=SQRT(DBLE(KA))*(X(KA)**2+X(I1)**2+X(I2)**2+X(I3)**2+X(I4)**2+ & X(I5)**2) RETURN 720 I1=MOD(2*KA-1,N)+1 I2=MOD(3*KA-1,N)+1 I3=MOD(5*KA-1,N)+1 I4=MOD(7*KA-1,N)+1 I5=MOD(11*KA-1,N)+1 FA=SQRT(DBLE(KA))*(SIN(X(KA))+SIN(X(I1))+SIN(X(I2))+SIN(X(I3))+ & SIN(X(I4))+SIN(X(I5))) RETURN END * SUBROUTINE TAGU37 ALL SYSTEMS 99/12/01 C PORTABILITY : ALL SYSTEMS C 99/12/01 LU : ORIGINAL VERSION * * PURPOSE : * VALUES OF TEST FUNCTIONS FOR NONLINEAR EQUATIONS. * UNIVERSAL VERSION. * * PARAMETERS : * II N NUMBER OF VARIABLES. * II KA INDEX OF THE APPROXIMATED FUNCTION. * RI X(N) VECTOR OF VARIABLES. * RO GA GRADIENT OF THE APPROXIMATED FUNCTION AT THE * SELECTED POINT. * II NEXT NUMBER OF THE TEST PROBLEM. * SUBROUTINE TAGU37(N,KA,X,GA,NEXT) INTEGER N,KA,NEXT REAL*8 X(N),GA(N) INTEGER I,J,K,L,M,I1,I2,I3,I4,I5,J1,J2,N1,ND,LA,ALF,BET REAL*8 A,B,C,A1,A2,A3,A4,AL,FF,PAR,PI,BE,CA,CB,D1S,D2S,H,H2,QA, & S,S1,S2,S3,T,T1,T2,U,V,W,EX,ALFA REAL*8 GA1(2),GA2(2),GA3(6),GA4(6),BROW(1000) COMMON /EMPR18/ PAR,M PI=3.14159265358979323846D 0 IF (NEXT.LE.32.OR.NEXT.GE.58) THEN CALL UXVSET(N,0.0D 0,GA) ENDIF GOTO (10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160, & 170,180,190,200,210,220,230,240,250,260,270,280,290,300,320, & 310,401,402,403,404,405,406,407,408,409,412,413,414,419,420, & 421,422,423,424,426,427,428,429,430,431,432,560,590,600,670, & 690,710,720),NEXT 10 ALFA=0.5D 0 IF (KA.EQ.1) THEN GA(1)=-1.0D 0-4.0D 0*X(2) GA(2)=-4.0D 0*X(1) GA(3)=ALFA-1.0D 0 ELSEIF(KA.EQ.2) THEN GA(1)=-4.0D 0*X(2) GA(2)=-1.0D 0-4.0D 0*X(1) GA(4)=-2.0D 0+ALFA ELSEIF(KA.EQ.N-1) THEN GA(N-3)=ALFA GA(N-1)=-1.0D 0-4.0D 0*X(N) GA(N)=-4.0D 0*X(N-1) ELSEIF (KA.EQ.N) THEN GA(N-2)=ALFA GA(N-1)=-4.0D 0*X(N) GA(N)=-1.0D 0-4.0D 0*X(N-1) ELSEIF (MOD(KA,2).EQ.1) THEN GA(KA-2)=ALFA GA(KA)=-1.0D 0-4.0D 0*X(KA+1) GA(KA+1)=-4.0D 0*X(KA) GA(KA+2)=-1.0D 0+ALFA ELSE GA(KA-2)=ALFA GA(KA-1)=-4.0D 0*X(KA) GA(KA)=-1.0D 0-4.0D 0*X(KA-1) GA(KA+2)=-2.0D 0+ALFA ENDIF RETURN 20 A1=0.414214D 0 IF (KA.EQ.1) THEN GA(1)=1.0D 0+X(3) GA(2)=-4.0D 0*A1 GA(3)=-1.0D 0+X(1) ELSEIF (KA.EQ.2) THEN GA(1)=X(4) GA(2)=-4.0D 0*A1 GA(4)=-1.0D 0+X(1) ELSEIF (KA.EQ.3) THEN GA(1)=A1+X(5) GA(2)=-4.0D 0*X(3) GA(3)=-1.0D 0-4.0D 0*X(2) GA(5)=-1.0D 0+X(1) ELSEIF (KA.LE.N-2) THEN GA(1)= X(KA-2)+X(KA+2) GA(KA-2)=X(1) GA(KA-1)=-4.0D 0*X(KA) GA(KA)=-1.0D 0-4.0D 0*X(KA-1) GA(KA+2)=-1.0D 0+X(1) ELSEIF (KA.EQ.N-1) THEN GA(1)= X(N-3) GA(N-3)=X(1) GA(N-2)=-4.0D 0*X(N-1) GA(N-1)=-1.0D 0-4.0D 0*X(N-2) ELSE GA(1)= X(N-2)+1.0D 0 GA(N-2)=X(1) GA(N-1)=-4.0D 0*X(N) GA(N)=-1.0D 0-4.0D 0*X(N-1) ENDIF RETURN 30 J=(KA-1)/5 GA(KA)=-DBLE(J+1)*SIN(X(KA))-COS(X(KA)) J=J*5 DO 31 I=J+1,J+5 IF (I.EQ.KA) THEN GA(I)=GA(I)+SIN(X(I)) ELSE GA(I)=SIN(X(I)) ENDIF 31 CONTINUE RETURN 40 IF (KA.LT.2) THEN D1S=COS(X(KA)-X(KA+1))*SIN(X(KA)+X(KA+1)) D2S=SIN(X(KA)-X(KA+1))*COS(X(KA)+X(KA+1)) GA(KA)=9.0D 0*X(KA)**2+D1S+D2S GA(KA+1)=2.0D 0-D1S+D2S ELSE IF (KA.LT.N) THEN D1S=COS(X(KA)-X(KA+1))*SIN(X(KA)+X(KA+1)) D2S=SIN(X(KA)-X(KA+1))*COS(X(KA)+X(KA+1)) EX=EXP(X(KA-1)-X(KA)) GA(KA-1)=-EX-X(KA-1)*EX GA(KA)=9.0D 0*X(KA)**2+D1S+D2S+4.0D 0+X(KA-1)*EX GA(KA+1)=2.0D 0-D1S+D2S ELSE EX=EXP(X(KA-1)-X(KA)) GA(KA-1)=-EX-X(KA-1)*EX GA(KA)=4.0D 0+X(KA-1)*EX ENDIF RETURN 50 IF (MOD(KA,2).EQ.1) THEN GA(KA)=0.0D 0 IF (KA.NE.1) THEN D1S=COS(X(KA-2)-X(KA-1)-X(KA))*SIN(X(KA-2)+X(KA-1)-X(KA)) D2S=SIN(X(KA-2)-X(KA-1)-X(KA))*COS(X(KA-2)+X(KA-1)-X(KA)) GA(KA-2)=-18.0D 0*(X(KA-2)-X(KA))**2-2.0D 0*(D1S+D2S) GA(KA-1)=-4.0D 0+2.0D 0*(D1S-D2S) GA(KA)=GA(KA)+18.0D 0*(X(KA-2)-X(KA))**2+2.0D 0*(D1S+D2S) ENDIF IF (KA.NE.N) THEN D1S=COS(X(KA)-X(KA+1)-X(KA+2))*SIN(X(KA)+X(KA+1)-X(KA+2)) D2S=SIN(X(KA)-X(KA+1)-X(KA+2))*COS(X(KA)+X(KA+1)-X(KA+2)) GA(KA)=GA(KA)+9.0D 0*(X(KA)-X(KA+2))**2+D1S+D2S GA(KA+1)=2.0D 0-D1S+D2S GA(KA+2)=-9.0D 0*(X(KA)-X(KA+2))**2-D1S-D2S ENDIF ELSE EX=EXP(X(KA-1)-X(KA)-X(KA+1)) W=X(KA-1)-X(KA+1) GA(KA-1)=-EX-W*EX GA(KA)=4.0D 0+W*EX GA(KA+1)=EX+W*EX ENDIF RETURN 60 H=2.0D 0 IF (KA.EQ.1) THEN GA(1)=2.0D 0*((3.0D 0-H*X(1))*X(1)-2.0D 0*X(2)+1.0D 0)* & (3.0D 0-2.0D 0*H*X(1)) GA(2)=-4.0D 0*((3.0D 0-H*X(1))*X(1)-2.0D 0*X(2)+1.0D 0) ELSE IF (KA.LE.N-1) THEN GA(KA-1)=-2.0D 0* & ((3.0D 0-H*X(KA))*X(KA)-X(KA-1)-2.0D 0*X(KA+1)+1.0D 0) GA(KA)=2.0D 0* & ((3.0D 0-H*X(KA))*X(KA)-X(KA-1)-2.0D 0*X(KA+1)+1.0D 0)* & (3.0D 0-2.0D 0*H*X(KA)) GA(KA+1)=-4.0D 0* & ((3.0D 0-H*X(KA))*X(KA)-X(KA-1)-2.0D 0*X(KA+1)+1.0D 0) ELSE GA(N-1)=-2.0D 0*((3.0D 0-H*X(N))*X(N)-X(N-1)+1.0D 0) GA(N)=2.0D 0* & ((3.0D 0-H*X(N))*X(N)-X(N-1)+1.0D 0)* & (3.0D 0-2.0D 0*H*X(N)) ENDIF RETURN 70 IF (KA.LT.2) THEN GA(KA)=4.0D 0 GA(KA+1)=-8.0D 0*X(KA+1) ELSE IF (KA.LT.N) THEN GA(KA-1)=-8.0D 0*X(KA) GA(KA)=24.0D 0*X(KA)**2-8.0D 0*X(KA-1)+6.0D 0 GA(KA+1)=-8.0D 0*X(KA+1) ELSE GA(KA-1)=-8.0D 0*X(KA) GA(KA)=24.0D 0*X(KA)**2-8.0D 0*X(KA-1)+2.0D 0 ENDIF RETURN 80 IF (KA.LT.2) THEN GA(KA)=4.0D 0 GA(KA+1)=-8.0D 0*X(KA+1)+1.0D 0 GA(KA+2)=-2.0D 0*X(KA+2) ELSE IF (KA.LT.3) THEN GA(KA-1)=-8.0D 0*X(KA) GA(KA)=24.0D 0*X(KA)**2-8.0D 0*X(KA-1)+6.0D 0 GA(KA+1)=-8.0D 0*X(KA+1)+1.0D 0 GA(KA+2)=-2.0D 0*X(KA+2) ELSE IF (KA.LT.N-1) THEN GA(KA-2)=-1.0D 0 GA(KA-1)=-8.0D 0*X(KA)+2.0D 0*X(KA-1) GA(KA)=24.0D 0*X(KA)**2-8.0D 0*X(KA-1)+6.0D 0 GA(KA+1)=-8.0D 0*X(KA+1)+1.0D 0 GA(KA+2)=-2.0D 0*X(KA+2) ELSE IF (KA.LT.N) THEN GA(KA-2)=-1.0D 0 GA(KA-1)=-8.0D 0*X(KA)+2.0D 0*X(KA-1) GA(KA)=24.0D 0*X(KA)**2-8.0D 0*X(KA-1)+6.0D 0 GA(KA+1)=-8.0D 0*X(KA+1) ELSE GA(KA-2)=-1.0D 0 GA(KA-1)=-8.0D 0*X(KA)+2.0D 0*X(KA-1) GA(KA)=24.0D 0*X(KA)**2-8.0D 0*X(KA-1)+2.0D 0 ENDIF RETURN 90 IF (KA.LT.2) THEN GA(KA)=4.0D 0 GA(KA+1)=-8.0D 0*X(KA+1)+1.0D 0 GA(KA+2)=-2.0D 0*X(KA+2)+1.0D 0 GA(KA+3)=-2.0D 0*X(KA+3) ELSE IF (KA.LT.3) THEN GA(KA-1)=-8.0D 0*X(KA)+2.0D 0*X(KA-1) GA(KA)=24.0D 0*X(KA)**2-8.0D 0*X(KA-1)+6.0D 0 GA(KA+1)=-8.0D 0*X(KA+1)+1.0D 0 GA(KA+2)=-2.0D 0*X(KA+2)+1.0D 0 GA(KA+3)=-2.0D 0*X(KA+3) ELSE IF (KA.LT.4) THEN GA(KA-2)=2.0D 0*X(KA-2)-1.0D 0 GA(KA-1)=-8.0D 0*X(KA)+2.0D 0*X(KA-1) GA(KA)=24.0D 0*X(KA)**2-8.0D 0*X(KA-1)+6.0D 0 GA(KA+1)=-8.0D 0*X(KA+1)+1.0D 0 GA(KA+2)=-2.0D 0*X(KA+2)+1.0D 0 GA(KA+3)=-2.0D 0*X(KA+3) ELSE IF (KA.LT.N-2) THEN GA(KA-3)=-1.0D 0 GA(KA-2)=2.0D 0*X(KA-2)-1.0D 0 GA(KA-1)=-8.0D 0*X(KA)+2.0D 0*X(KA-1) GA(KA)=24.0D 0*X(KA)**2-8.0D 0*X(KA-1)+6.0D 0 GA(KA+1)=-8.0D 0*X(KA+1)+1.0D 0 GA(KA+2)=-2.0D 0*X(KA+2)+1.0D 0 GA(KA+3)=-2.0D 0*X(KA+3) ELSE IF (KA.LT.N-1) THEN GA(KA-3)=-1.0D 0 GA(KA-2)=2.0D 0*X(KA-2)-1.0D 0 GA(KA-1)=-8.0D 0*X(KA)+2.0D 0*X(KA-1) GA(KA)=24.0D 0*X(KA)**2-8.0D 0*X(KA-1)+6.0D 0 GA(KA+1)=-8.0D 0*X(KA+1)+1.0D 0 GA(KA+2)=-2.0D 0*X(KA+2)+1.0D 0 ELSE IF (KA.LT.N) THEN GA(KA-3)=-1.0D 0 GA(KA-2)=2.0D 0*X(KA-2)-1.0D 0 GA(KA-1)=-8.0D 0*X(KA)+2.0D 0*X(KA-1) GA(KA)=24.0D 0*X(KA)**2-8.0D 0*X(KA-1)+6.0D 0 GA(KA+1)=-8.0D 0*X(KA+1)+1.0D 0 ELSE GA(KA-3)=-1.0D 0 GA(KA-2)=2.0D 0*X(KA-2)-1.0D 0 GA(KA-1)=-8.0D 0*X(KA)+2.0D 0*X(KA-1) GA(KA)=24.0D 0*X(KA)**2-8.0D 0*X(KA-1)+2.0D 0 ENDIF RETURN 100 IF (KA.EQ.1) THEN GA(N-4)=3.0D 0 GA(N-3)=-1.0D 0 GA(N-2)=-1.0D 0 GA(N-1)=0.50D 0 GA(N)=-1.0D 0 GA(KA)=-4.0D 0*X(KA)+3.0D 0 GA(KA+1)=-2.0D 0 ELSEIF (KA.LE.N-1) THEN GA(KA-1)=0.0D 0 GA(KA)=0.0D 0 GA(KA+1)=0.0D 0 GA(N-4)=3.0D 0 GA(N-3)=-1.0D 0 GA(N-2)=-1.0D 0 GA(N-1)=0.50D 0 GA(N)=-1.0D 0 GA(KA-1)=GA(KA-1)-1.0D 0 GA(KA)=GA(KA)-4.0D 0*X(KA)+3.0D 0 GA(KA+1)=GA(KA+1)-2.0D 0 ELSE GA(N-4)=3.0D 0 GA(N-3)=-1.0D 0 GA(N-2)=-1.0D 0 GA(N-1)=-0.5D 0 GA(N)=-4.0D 0*X(N)+2.0D 0 ENDIF RETURN 110 IF(MOD(KA,2).EQ.1) THEN GA(KA)=1.0D 0 GA(KA+1)=10.0D 0*X(KA+1)-3.0D 0*X(KA+1)**2-2.0D 0 ELSE GA(KA-1)=1.0D 0 GA(KA)=3.0D 0*X(KA)**2+2.0D 0*X(KA)-1.4D 1 ENDIF RETURN 120 IF(MOD(KA,4).EQ.1) THEN GA(KA)=1.0D 0 GA(KA+1)=1.0D 1 ELSE IF(MOD(KA,4).EQ.2) THEN GA(KA+1)=2.23606797749979D 0 GA(KA+2)=-GA(KA+1) ELSE IF(MOD(KA,4).EQ.3) THEN GA(KA-1)=2.0D 0*(X(KA-1)-2.0D 0*X(KA)) GA(KA)= -4.0D 0*(X(KA-1)-2.0D 0*X(KA)) ELSE GA(KA-3)=3.16227766016838D 0*2.0D 0*(X(KA-3)-X(KA)) GA(KA)= -3.16227766016838D 0*2.0D 0*(X(KA-3)-X(KA)) ENDIF RETURN 130 IF (MOD(KA,4).EQ.1) THEN GA(KA)=2.0D 0*(EXP(X(KA))-X(KA+1))*EXP(X(KA)) GA(KA+1)=-2.0D 0*(EXP(X(KA))-X(KA+1)) ELSE IF (MOD(KA,4).EQ.2) THEN GA(KA)=3.0D 1*(X(KA)-X(KA+1))**2 GA(KA+1)=-GA(KA) ELSE IF (MOD(KA,4).EQ.3) THEN GA(KA)=2.0D 0*SIN(X(KA)-X(KA+1))/(COS(X(KA)-X(KA+1)))**3 GA(KA+1)=-GA(KA) ELSE GA(KA)=1.0D 0 ENDIF RETURN 140 IF (KA.LT.2) THEN GA(KA)=X(KA)-3.0D 0 GA(KA+1)=2.0D 0 ELSE IF (KA.LT.N) THEN GA(KA-1)=1.0D 0 GA(KA)=X(KA)-3.0D 0 GA(KA+1)=2.0D 0 ELSE GA(KA-1)=1.0D 0 GA(KA)=X(KA)-3.0D 0 ENDIF RETURN 150 DO 151 J=MAX(1,KA-5),MIN(N,KA+1) GA(J)=1.0D 0+2.0D 0*X(J) 151 CONTINUE GA(KA)=GA(KA)+2.0D 0+15.0D 0*X(KA)**2 RETURN 160 IF(MOD(KA,2).EQ.1) THEN GA(KA)=1.0D 4*X(KA+1) GA(KA+1)=1.0D 4*X(KA) ELSE GA(KA-1)=-EXP(-X(KA-1)) GA(KA)=-EXP(-X(KA)) ENDIF RETURN 170 IF(MOD(KA,4).EQ.1) THEN GA(KA)=-2.0D 2*(X(KA+1)-3.0D 0*X(KA)**2)+1.0D 0 GA(KA+1)=-2.0D 2*X(KA) ELSE IF(MOD(KA,4).EQ.2) THEN GA(KA-1)=-4.0D 2*X(KA-1) GA(KA)=2.202D 2 GA(KA+2)=1.98D 1 ELSE IF(MOD(KA,4).EQ.3) THEN GA(KA)=-1.8D 2*(X(KA+1)-3.0D 0*X(KA)**2)+1.0D 0 GA(KA+1)=-1.8D 2*X(KA) ELSE GA(KA-2)=1.98D 1 GA(KA-1)=-3.6D 2*X(KA-1) GA(KA)=2.002D 2 ENDIF RETURN 180 IF (KA.LT.2) THEN GA(KA+1)=EXP(COS(DBLE(KA)*(X(KA)+X(KA+1))))* & DBLE(KA)*SIN(DBLE(KA)*(X(KA)+X(KA+1))) GA(KA)=GA(KA+1)+1.0D 0 ELSEIF (KA.LT.N) THEN GA(KA-1)=EXP(COS(DBLE(KA)*(X(KA-1)+X(KA)+X(KA+1))))* & SIN(DBLE(KA)*(X(KA-1)+X(KA)+X(KA+1)))*DBLE(KA) GA(KA+1)=GA(KA-1) GA(KA)=1.0D 0+GA(KA-1) ELSE GA(KA-1)=EXP(COS(DBLE(KA)*(X(KA-1)+X(KA))))* & SIN(DBLE(KA)*(X(KA-1)+X(KA)))*DBLE(KA) GA(KA)=1.0D 0+GA(KA-1) ENDIF RETURN 190 U=1.0D 0/DBLE(N+1) V=DBLE(KA)*U GA(KA)=2.0D 0+1.5D 0*U**2*(X(KA)+V+1.0D 0)**2 IF(KA.GT.1) GA(KA-1)=-1.0D 0 IF(KA.LT.N) GA(KA+1)=-1.0D 0 RETURN 200 IF(KA.EQ.1) THEN GA(KA)=3.0D 0*(X(KA+1)-4.0D 0*X(KA)) GA(KA+1)=3.0D 0*X(KA)+0.5D 0*X(KA+1) ELSEIF(KA.EQ.N) THEN GA(KA-1)=3.0D 0*X(KA)-0.5D 0*(2.0D 1-X(KA-1)) GA(KA)=3.0D 0*(2.0D 1-4.0D 0*X(KA)+X(KA-1)) ELSE GA(KA-1)=3.0D 0*X(KA)-0.5D 0*(X(KA+1)-X(KA-1)) GA(KA)=3.0D 0*(X(KA+1)-4.0D 0*X(KA)+X(KA-1)) GA(KA+1)=3.0D 0*X(KA)+0.5D 0*(X(KA+1)-X(KA-1)) ENDIF RETURN 210 H=1.0D 0/DBLE(N+1) IF (KA.LT.2) THEN GA(KA)=2.0D 0+PAR**2*H**2*COSH(PAR*X(KA)) GA(KA+1)=-1.0D 0 ELSE IF (KA.LT.N) THEN GA(KA-1)=-1.0D 0 GA(KA)=2.0D 0+PAR**2*H**2*COSH(PAR*X(KA)) GA(KA+1)=-1.0D 0 ELSE GA(KA)=2.0D 0+PAR**2*H**2*COSH(PAR*X(KA)) GA(KA-1)=-1.0D 0 ENDIF RETURN 220 GA(KA)=6.0D 0 C FA=6.0D 0*X(KA) A1=0.0D 0 A2=0.0D 0 A3=0.0D 0 GA1(1)=0.0D 0 GA1(2)=0.0D 0 GA2(1)=0.0D 0 GA2(2)=0.0D 0 IF (KA.GT.1) THEN GA(KA-1)=-4.0D 0+PAR*X(KA) A1=A1-X(KA-1) A2=A2+X(KA-1) A3=A3+2.0D 0*X(KA-1) GA1(1)=-1.0D 0 GA2(1)= 1.0D 0 ENDIF IF (KA.GT.2) THEN GA(KA-2)=1.0D 0-0.5D 0*PAR*X(KA) A3=A3-X(KA-2) ENDIF IF (KA.LT.N-1) THEN GA(KA+2)=1.0D 0+0.5D 0*PAR*X(KA) A3=A3+X(KA+2) ENDIF IF (KA.LT.N) THEN GA(KA+1)=-4.0D 0-PAR*X(KA) A1=A1+X(KA+1) A2=A2+X(KA+1) A3=A3-2.0D 0*X(KA+1) GA1(2)= 1.0D 0 GA2(2)= 1.0D 0 ENDIF IF (KA.GE.N-1) THEN A3=A3+1.0D 0 ENDIF IF (KA.GE.N) THEN A1=A1+1.0D 0 A2=A2+1.0D 0 A3=A3-2.0D 0 ENDIF GA(KA)=GA(KA)+0.5D 0*PAR*A3 IF (KA.GT.1) & GA(KA-1)=GA(KA-1)-0.5D 0*PAR*(GA1(1)*A2+A1*GA2(1)) IF (KA.LT.N) & GA(KA+1)=GA(KA+1)-0.5D 0*PAR*(GA1(2)*A2+A1*GA2(2)) RETURN 230 H=1.0D 0/(M+1) IF(KA.LE.M) THEN J=KA+M GA(KA)=6.0D 0 GA(J)=0.0D 0 A1=0.0D 0 A2=0.0D 0 IF (KA.EQ.1) THEN A1=A1+1.0D 0 ENDIF IF (KA.GT.1) THEN A1=A1-X(J-1) A2=A2+2.0D 0*X(KA-1) GA(KA-1)=-4.0D 0+PAR*H*X(KA) GA(J-1)=-0.5D 0*PAR*H**3*X(J) ENDIF IF (KA.GT.2) THEN A2=A2-X(KA-2) GA(KA-2)=1.0D 0-0.5D 0*PAR*H*X(KA) ENDIF IF (KA.LT.M-1) THEN A2=A2+X(KA+2) GA(KA+2)=1.0D 0+0.5D 0*PAR*H*X(KA) ENDIF IF (KA.LT.M) THEN A1=A1+X(J+1) A2=A2-2.0D 0*X(KA+1) GA(KA+1)=-4.0D 0-PAR*H*X(KA) GA(J+1)= 0.5D 0*PAR*H**3*X(J) ENDIF IF (KA.EQ.M) THEN A1=A1+1.0D 0 ENDIF GA(KA)=GA(KA)+0.5D 0*PAR*H*A2 GA(J)=GA(J)+0.5D 0*PAR*H**3*A1 ELSE J=KA-M GA(KA)=-2.0D 0 GA(J)=0.0D 0 A1=0.0D 0 A2=0.0D 0 IF (J.EQ.1) THEN A2=A2+1.0D 0 ENDIF IF (J.GT.1) THEN A1=A1-X(J-1) A2=A2-X(KA-1) GA(KA-1)=1.0D 0-0.5D 0*PAR*H*X(J) GA(J-1)=-0.5D 0*PAR*H*X(KA) ENDIF IF (J.LT.M) THEN A1=A1+X(J+1) A2=A2+X(KA+1) GA(KA+1)=1.0D 0+0.5D 0*PAR*H*X(J) GA(J+1)= 0.5D 0*PAR*H*X(KA) ENDIF IF (J.EQ.M) THEN A2=A2+1.0D 0 ENDIF GA(KA)=GA(KA)+0.5D 0*PAR*H*A1 GA(J)=GA(J)+0.5D 0*PAR*H*A2 ENDIF RETURN 240 GA(KA)=4.0D 0-PAR*EXP(X(KA)) J=(KA-1)/M+1 I=KA-(J-1)*M IF(J.GT.1) GA(KA-M)=-1.0D 0 IF(I.GT.1) GA(KA-1)=-1.0D 0 IF(I.LT.M) GA(KA+1)=-1.0D 0 IF(J.LT.M) GA(KA+M)=-1.0D 0 RETURN 250 GA(KA)=4.0D 0 J=(KA-1)/M+1 I=KA-(J-1)*M GA(KA)=GA(KA)+3.0D 0*PAR*X(KA)**2/(1.0D 0+PAR*DBLE(I)**2+ & PAR*DBLE(J)**2) IF(I.GT.1) GA(KA-1)=-1.0D 0 IF(I.LT.M) GA(KA+1)=-1.0D 0 IF(J.GT.1) GA(KA-M)=-1.0D 0 IF(J.LT.M) GA(KA+M)=-1.0D 0 RETURN 260 GA(KA)=4.0D 0-2.0D 0*PI*PAR*COS(2.0D 0*PI*X(KA)) J=(KA-1)/M+1 I=KA-(J-1)*M A1=DBLE(I)/DBLE(M+1) A2=DBLE(J)/DBLE(M+1) IF(I.EQ.1) GA(KA+1)=-1.0D 0-PI*DBLE(M+1)*PAR*COS(PI*X(KA+1)* & DBLE(M+1)) IF(I.GT.1.AND.I.LT.M) THEN GA(KA-1)=-1.0D 0+PI*DBLE(M+1)*PAR*COS(PI*(X(KA+1)-X(KA-1))* & DBLE(M+1)) GA(KA+1)=-1.0D 0-PI*DBLE(M+1)*PAR*COS(PI*(X(KA+1)-X(KA-1))* & DBLE(M+1)) ENDIF IF(I.EQ.M) GA(KA-1)=-1.0D 0+PI*DBLE(M+1)*PAR*COS(PI*X(KA-1)* & DBLE(M+1)) IF(J.EQ.1) GA(KA+M)=-1.0D 0-PI*DBLE(M+1)*PAR*COS(PI*X(KA+M)* & DBLE(M+1)) IF(J.GT.1.AND.J.LT.M) THEN GA(KA-M)=-1.0D 0+PI*DBLE(M+1)*PAR*COS(PI*(X(KA+M)-X(KA-M))* & DBLE(M+1)) GA(KA+M)=-1.0D 0-PI*DBLE(M+1)*PAR*COS(PI*(X(KA+M)-X(KA-M))* & DBLE(M+1)) ENDIF IF(J.EQ.M) GA(KA-M)=-1.0D 0+PI*DBLE(M+1)*PAR*COS(PI*X(KA-M)* & DBLE(M+1)) RETURN 270 GA(KA)=1.6D 1*X(KA) J=(KA-1)/M+1 I=KA-(J-1)*M IF(I.EQ.1) THEN GA(KA)=GA(KA)-2.0D 0*(X(KA+1)+1.0D 0)-3.0D 0*X(KA)* & (X(KA+1)-1.0D 0)*PAR GA(KA+1)=-2.0D 0*X(KA)-(X(KA+1)-1.0D 0)-1.5D 0*X(KA)**2*PAR ENDIF IF(I.GT.1.AND.I.LT.M) THEN GA(KA)=GA(KA)-2.0D 0*(X(KA+1)+X(KA-1))-3.0D 0*X(KA)* & (X(KA+1)-X(KA-1))*PAR GA(KA-1)=-2.0D 0*X(KA)+(X(KA+1)-X(KA-1))+1.5D 0*X(KA)**2*PAR GA(KA+1)=-2.0D 0*X(KA)-(X(KA+1)-X(KA-1))-1.5D 0*X(KA)**2*PAR ENDIF IF(I.EQ.M) THEN GA(KA)=GA(KA)-2.0D 0*X(KA-1)+3.0D 0*X(KA)*X(KA-1)*PAR GA(KA-1)=-2.0D 0*X(KA)-X(KA-1)+1.5D 0*X(KA)**2*PAR ENDIF IF(J.EQ.1) THEN GA(KA)=GA(KA)-2.0D 0*(X(KA+M)+1.0D 0) GA(KA+M)=-2.0D 0*X(KA)-(X(KA+M)-1.0D 0) ENDIF IF(J.GT.1.AND.J.LT.M) THEN GA(KA)=GA(KA)-2.0D 0*(X(KA+M)+X(KA-M)) GA(KA-M)=-2.0D 0*X(KA)+(X(KA+M)-X(KA-M)) GA(KA+M)=-2.0D 0*X(KA)-(X(KA+M)-X(KA-M)) ENDIF IF(J.EQ.M) THEN GA(KA)=GA(KA)-2.0D 0*X(KA-M) GA(KA-M)=-2.0D 0*X(KA)-X(KA-M) ENDIF RETURN 280 GA(KA)=4.0D 0 J=(KA-1)/M+1 I=KA-(J-1)*M A1=PAR*DBLE(I) A2=PAR*DBLE(J) A3=0.0D 0 IF(I.GT.1) THEN GA(KA-1)=-1.0D 0-2.0D 1*PAR*X(KA) A3=A3-X(KA-1) ENDIF IF(I.LT.M) THEN GA(KA+1)=-1.0D 0+2.0D 1*PAR*X(KA) A3=A3+X(KA+1) ENDIF IF(J.GT.1) THEN GA(KA-M)=-1.0D 0-2.0D 1*PAR*X(KA) A3=A3-X(KA-M) ENDIF IF(J.LT.M) THEN GA(KA+M)=-1.0D 0+2.0D 1*PAR*X(KA) A3=A3+X(KA+M) ENDIF GA(KA)=GA(KA)+2.0D 1*PAR*A3 RETURN 290 GA(KA)=2.0D 1-PAR J=(KA-1)/M+1 I=KA-(J-1)*M IF (J.GT.2) THEN GA(KA-M-M)=1.0D 0 ENDIF IF (J.GT.1) THEN IF (I.GT.1) THEN GA(KA-M-1)=2.0D 0 ENDIF GA(KA-M)=-8.0D 0 IF (I.LT.M) THEN GA(KA-M+1)=2.0D 0 ENDIF ENDIF IF (I.GT.1) THEN IF (I.GT.2) THEN GA(KA-2)=1.0D 0 ENDIF GA(KA-1)=-8.0D 0 ENDIF IF (I.LT.M) THEN GA(KA+1)=-8.0D 0 IF (I.LT.M-1) THEN GA(KA+2)=1.0D 0 ENDIF ENDIF IF (J.LT.M) THEN IF (I.GT.1) THEN GA(KA+M-1)=2.0D 0 ENDIF GA(KA+M)=-8.0D 0 IF (I.LT.M) THEN GA(KA+M+1)=2.0D 0 ENDIF ENDIF IF (J.LT.M-1) THEN GA(KA+M+M)=1.0D 0 ENDIF RETURN 300 H=0.5D 0/DBLE(M+2) J=(KA-1)/M+1 I=KA-(J-1)*M GA(KA)=2.0D 1 A1=0.0D 0 A2=0.0D 0 A3=0.0D 0 A4=0.0D 0 GA1(1)=0.0D 0 GA1(2)=0.0D 0 GA2(1)=0.0D 0 GA2(2)=0.0D 0 DO 301 K=1,6 GA3(K)=0.0D 0 GA4(K)=0.0D 0 301 CONTINUE IF (J.GT.2) THEN GA(KA-M-M)=1.0D 0 GA4(1)=GA4(1)+1.0D 0 A4=A4+X(KA-M-M) ENDIF IF (J.GT.1) THEN IF (I.GT.1) THEN GA(KA-M-1)=2.0D 0 GA3(1)=GA3(1)+1.0D 0 GA4(2)=GA4(2)+1.0D 0 A3=A3+X(KA-M-1) A4=A4+X(KA-M-1) ENDIF GA(KA-M)=-8.0D 0 GA1(1)=GA1(1)-1.0D 0 A1=A1-X(KA-M) IF (I.LT.M) THEN GA(KA-M+1)=2.0D 0 GA3(2)=GA3(2)-1.0D 0 GA4(3)=GA4(3)+1.0D 0 A3=A3-X(KA-M+1) A4=A4+X(KA-M+1) ENDIF ENDIF IF (I.GT.1) THEN IF (I.GT.2) THEN GA(KA-2)=1.0D 0 GA3(3)=GA3(3)+1.0D 0 A3=A3+X(KA-2) ENDIF GA(KA-1)=-8.0D 0 GA2(1)=GA2(1)-1.0D 0 A2=A2-X(KA-1) ENDIF IF (I.LT.M) THEN GA(KA+1)=-8.0D 0 GA2(2)=GA2(2)+1.0D 0 A2=A2+X(KA+1) IF (I.LT.M-1) THEN GA(KA+2)=1.0D 0 GA3(4)=GA3(4)-1.0D 0 A3=A3-X(KA+2) ENDIF ENDIF IF (J.LT.M) THEN IF (I.GT.1) THEN GA(KA+M-1)=2.0D 0 GA3(5)=GA3(5)+1.0D 0 GA4(4)=GA4(4)-1.0D 0 A3=A3+X(KA+M-1) A4=A4-X(KA+M-1) ENDIF GA(KA+M)=-8.0D 0 GA1(2)=GA1(2)+1.0D 0 A1=A1+X(KA+M) IF (I.LT.M) THEN GA(KA+M+1)=2.0D 0 GA3(6)=GA3(6)-1.0D 0 GA4(5)=GA4(5)-1.0D 0 A3=A3-X(KA+M+1) A4=A4-X(KA+M+1) ENDIF ENDIF IF (J.LT.M-1) THEN GA(KA+M+M)=1.0D 0 GA4(6)=GA4(6)-1.0D 0 A4=A4-X(KA+M+M) ENDIF IF (J.EQ.M) THEN IF (I.GT.1) THEN A3=A3-H A4=A4+H ENDIF A1=A1-H IF (I.LT.M) THEN A3=A3+H A4=A4+H ENDIF A4=A4-H ENDIF IF (J.EQ.M-1) THEN A4=A4+H ENDIF IF (KA.GT.M+M) & GA(KA-M-M)=GA(KA-M-M)+0.25D 0*PAR*(-A2*GA4(1)) IF (KA.GT.M+1) & GA(KA-M-1)=GA(KA-M-1)+0.25D 0*PAR*(+A1*GA3(1)-A2*GA4(2)) IF (KA.GT.M) & GA(KA-M)=GA(KA-M)+0.25D 0*PAR*(GA1(1)*A3) IF (KA.GT.M-1) & GA(KA-M+1)=GA(KA-M+1)+0.25D 0*PAR*(+A1*GA3(2)-A2*GA4(3)) IF (KA.GT.2) & GA(KA-2)=GA(KA-2)+0.25D 0*PAR*(+A1*GA3(3)) IF (KA.GT.1) & GA(KA-1)=GA(KA-1)+0.25D 0*PAR*(-GA2(1)*A4) IF (KA.LE.N-1) & GA(KA+1)=GA(KA+1)+0.25D 0*PAR*(-GA2(2)*A4) IF (KA.LE.N-2) & GA(KA+2)=GA(KA+2)+0.25D 0*PAR*(+A1*GA3(4)) IF (KA.LE.N-M+1) & GA(KA+M-1)=GA(KA+M-1)+0.25D 0*PAR*(+A1*GA3(5)-A2*GA4(4)) IF (KA.LE.N-M) & GA(KA+M)=GA(KA+M)+0.25D 0*PAR*(GA1(2)*A3) IF (KA.LE.N-M-1) & GA(KA+M+1)=GA(KA+M+1)+0.25D 0*PAR*(+A1*GA3(6)-A2*GA4(5)) IF (KA.LE.N-M-M) & GA(KA+M+M)=GA(KA+M+M)+0.25D 0*PAR*(-A2*GA4(6)) RETURN 310 H=1.0D 0/DBLE(N+1) A1=DBLE(KA)*H A2=(A1-0.5D 0)**2 IF (A1.GE.0.5D 0) THEN A3= 1.0D 6 ELSE A3=-1.0D 6 ENDIF IF (KA.LT.2) THEN GA(KA)=2.0D 0+ & H**2*(3.0D 0*X(KA)**2*EXP(X(KA))+X(KA)**3*EXP(X(KA))) GA(KA+1)=-1.0D 0+ & H**2*5.0D 8*EXP(-1.0D 4*A2)*SQRT(ABS(A1-0.5D 0)) ELSEIF (KA.LT.N) THEN GA(KA-1)=-1.0D 0- & H**2*5.0D 8*EXP(-1.0D 4*A2)*SQRT(ABS(A1-0.5D 0)) GA(KA)=2.0D 0+ & H**2*(3.0D 0*X(KA)**2*EXP(X(KA))+X(KA)**3*EXP(X(KA))) GA(KA+1)=-1.0D 0+ & H**2*5.0D 8*EXP(-1.0D 4*A2)*SQRT(ABS(A1-0.5D 0)) ELSE GA(KA-1)=-1.0D 0+ & H**2*5.0D 8*EXP(-1.0D 4*A2)*SQRT(ABS(A1-0.5D 0)) GA(KA)=2.0D 0+ & H**2*(3.0D 0*X(KA)**2*EXP(X(KA))+X(KA)**3*EXP(X(KA))) ENDIF RETURN 320 H=1.0D 0/DBLE(N+1) A1=DBLE(KA)*H A2=(A1-0.5D 0)**2 IF (KA.LT.2) THEN GA(KA+1)=-1.0D 0 GA(KA)=2.0D 0+H**2*(3*X(KA)**2+2.0D-4*(2.0D-4*A2-1.0D 0)) ELSEIF (KA.LT.N) THEN GA(KA-1)=-1.0D 0 GA(KA)=2.0D 0+H**2*(3*X(KA)**2+2.0D-4*(2.0D-4*A2-1.0D 0)) GA(KA+1)=-1.0D 0 ELSE GA(KA-1)=-1.0D 0 GA(KA)=2.0D 0+H**2*(3*X(KA)**2+2.0D-4*(2.0D-4*A2-1.0D 0)) ENDIF RETURN 401 IF(KA.EQ.1) THEN GA(1)=-1.0D 0 DO 3010 J=2,N GA(J)=0.0D 0 3010 CONTINUE ELSE S=20.0D 0*DBLE(KA-1)*(X(KA)-X(KA-1)) DO 3020 J=1,N IF(J.EQ.KA) THEN GA(J)=S ELSE IF(J.EQ.KA-1) THEN GA(J)=-S ELSE GA(J)=0.0D 0 ENDIF 3020 CONTINUE ENDIF RETURN 402 IF(KA.EQ.N) THEN GA(1)=-0.20D 0*X(1) N1=N-1 DO 3030 J=2,N1 GA(J)=0.0D 0 3030 CONTINUE GA(N)=1.0D 0 ELSE DO 3050 J=1,N IF(J.EQ.KA) THEN GA(J)=1.0D 0 ELSE IF(J.EQ.KA+1) THEN GA(J)=-0.2D 0*X(KA+1) ELSE GA(J)=0.0D 0 ENDIF 3050 CONTINUE ENDIF RETURN 403 IF(KA.EQ.N) THEN DO 3070 J=1,N T=1.0D 0 DO 3060 K=1,N IF(K.NE.J) T=T*X(K) 3060 CONTINUE GA(J)=T 3070 CONTINUE ELSE DO 3080 J=1,N IF(J.EQ.KA) THEN GA(J)=2.0D 0 ELSE GA(J)=1.0D 0 ENDIF 3080 CONTINUE ENDIF RETURN 404 DO 3090 J=1,N IF(J.EQ.KA.AND.KA/2*2.EQ.KA) THEN GA(J)=10.0D 0 ELSE IF(J.EQ.KA) THEN GA(J)=-1.0D 0 ELSE IF(J.EQ.KA-1.AND.KA/2*2.EQ.KA) THEN GA(J)=-20.0D 0*X(KA-1) ELSE GA(J)=0.0D 0 ENDIF 3090 CONTINUE RETURN 405 DO 4000 J=1,N IF(J.EQ.KA) THEN GA(J)=1.0D 0-3.0D 0*X(KA)**2/(2.0D 0*DBLE(N)) ELSE GA(J)=-3.0D 0*X(J)**2/(2.0D 0*DBLE(N)) ENDIF 4000 CONTINUE RETURN 406 DO 4010 J=1,N IF(J.EQ.KA) THEN GA(J)=-2.0D 0-1.0D 0/DBLE(N+1)**2*EXP(X(KA)) ELSE IF(J.EQ.KA-1.OR.J.EQ.KA+1) THEN GA(J)=1.0D 0 ELSE GA(J)=0.0D 0 ENDIF 4010 CONTINUE RETURN 407 S=0.1D 0 DO 4020 J=1,N IF(J.EQ.KA-1) THEN GA(J)=-1.0D 0 ELSE IF(J.EQ.KA) THEN GA(J)=3.0D 0-2.0D 0*S*X(KA) ELSE IF(J.EQ.KA+1) THEN GA(J)=-2.0D 0 ELSE GA(J)=0.0D 0 ENDIF 4020 CONTINUE RETURN 408 S1=1.0D 0 S2=1.0D 0 S3=1.0D 0 J1=3 J2=3 IF(KA-J1.GT.1) THEN I1=KA-J1 ELSE I1=1 ENDIF IF(KA+J2.LT.N) THEN I2=KA+J2 ELSE I2=N ENDIF DO 4030 J=1,N IF(J.EQ.KA) THEN GA(J)=S1+3.0D 0*S2*X(KA)**2 ELSE IF(J.GE.I1.AND.J.LE.I2) THEN GA(J)=-S3*(1.0D 0+2.0D 0*X(J)) ELSE GA(J)=0.0D 0 ENDIF 4030 CONTINUE RETURN 409 DO 4040 J=1,N IF(KA.EQ.1.AND.J.EQ.1) THEN GA(J)=2.0D 0*X(1) ELSE IF(KA.EQ.1) THEN GA(J)=0.0D 0 ELSE IF(J.EQ.KA-1) THEN GA(J)=2.0D 0*X(KA-1) ELSE IF(J.EQ.KA) THEN GA(J)=1.0D 0/X(KA) ELSE GA(J)=0.0D 0 ENDIF 4040 CONTINUE RETURN 412 DO 4080 J=1,N IF(J.EQ.KA) THEN GA(J)=1.0D 0 ELSE IF(J.EQ.KA-1) THEN GA(J)=-SIN(X(KA-1)) ELSE GA(J)=0.0D 0 ENDIF 4080 CONTINUE RETURN 413 S=(1.0D 0/DBLE(N+1))**2 DO 4090 J=1,N IF(J.EQ.KA-1.OR.J.EQ.KA+1) THEN GA(J)=-1.0D 0 ELSE IF(J.EQ.KA) THEN GA(J)=2.0D 0+S*(1.0D 0+COS(X(J))) ELSE GA(J)=0.0D 0 ENDIF 4090 CONTINUE RETURN 414 IF(KA-5.GT.1) THEN I1=KA-5 ELSE I1=1 ENDIF IF(KA+1.LT.N) THEN I2=KA+1 ELSE I2=N ENDIF DO 5000 J=1,N IF(J.EQ.KA) THEN GA(J)=2.0D 0+15.0D 0*X(J)**2 ELSE IF(J.GE.I1.AND.J.LE.I2) THEN GA(J)=-1.0D 0-2.0D 0*X(J) ELSE GA(J)=0.0D 0 ENDIF 5000 CONTINUE RETURN 419 S=1.0D 0/DBLE(N+1) S1=3.0D 0*S/2.0D 0 T1=DBLE(KA)*S DO 5050 J=1,N T2=DBLE(J)*S IF(J.LT.KA) THEN GA(J)=S1*(1.0D 0-T1)*T2*(X(J)+T2+1.0D 0)**2 ELSE IF(J.EQ.KA) THEN GA(J)=1.0D 0+S1*(1.0D 0-T1)*T2*(X(J)+T2+1.0D 0)**2 ELSE GA(J)=S1*(1.0D 0-T2)*T1*(X(J)+T2+1.0D 0)**2 ENDIF 5050 CONTINUE RETURN 420 DO 5060 J=1,N S=SIN(X(J)) IF(J.EQ.KA) THEN GA(J)=S+DBLE(KA)*S-COS(X(J)) ELSE GA(J)=S ENDIF 5060 CONTINUE RETURN 421 S=0.0D 0 DO 5070 J=1,N S=S+DBLE(J)*(X(J)-1.0D 0) 5070 CONTINUE DO 5080 J=1,N IF(J.NE.KA) THEN GA(J)=DBLE(KA*J)*(1.0D 0+6.0D 0*S*S) ELSE GA(J)=1.0D 0+DBLE(KA*KA)*(1.0D 0+6.0D 0*S*S) ENDIF 5080 CONTINUE RETURN 422 DO 5090 J=1,N IF(J.EQ.KA-1) THEN GA(J)=-1.0D 0 ELSE IF(J.EQ.KA)THEN GA(J)=3.D 0-4.D 0*X(KA) ELSE IF(J.EQ.KA+1) THEN GA(J)=-2.0D 0 ELSE GA(J)=0.0D 0 ENDIF 5090 CONTINUE RETURN 423 ALF=5 BET=14 DO 6000 J=1,N IF(J.NE.KA) THEN T=SQRT(X(J)**2+DBLE(KA)/DBLE(J)) S1=LOG(T) GA(J)=X(J)*(SIN(S1)**ALF+COS(S1)**ALF+ + ALF*SIN(S1)**(ALF-1)*COS(S1)- + ALF*SIN(S1)*COS(S1)**(ALF-1))/T ELSE GA(J)=DBLE(BET*N) ENDIF 6000 CONTINUE RETURN 424 C=0.5D 0 H=1.0D 0/DBLE(N) DO 6008 J=1,N BROW(J)=C*H*DBLE(KA)/DBLE(2*(KA+J)) 6008 CONTINUE BROW(N)=0.5D 0*BROW(N) DO 6010 J=1,N IF(KA.NE.J) THEN GA(J)=-BROW(J)*X(KA) ELSE T=1.0D 0-C*H/4.0D 0 DO 6011 L=1,N IF(L.EQ.KA) THEN T=T-2.0D 0*BROW(KA)*X(KA) ELSE T=T-BROW(L)*X(L) ENDIF 6011 CONTINUE GA(J)=T ENDIF 6010 CONTINUE RETURN 426 T=3.0D 0 H=T/DBLE(N+1) S=T*X(KA) DO 6030 J=1,N IF(J.EQ.KA-1.OR.J.EQ.KA+1) THEN GA(J)=-1.0D 0 ELSEIF(J.EQ.KA) THEN GA(J)=2.0D 0+H*(EXP(S)+EXP(-S))/2.D 0 ELSE GA(J)=0.0D 0 ENDIF 6030 CONTINUE RETURN 427 S=0.5D 0 H=1.0D 0/DBLE(N+1) DO 6040 J=1,N IF(J.EQ.KA-1) THEN GA(J)=-1.0D 0+H/(2.0D 0*S) ELSEIF(J.EQ.KA+1) THEN GA(J)=-1.0D 0-H/(2.0D 0*S) ELSEIF(J.EQ.KA) THEN GA(J)=2.0D 0*(1.0D 0-H**2*X(KA)/S) ELSE GA(J)=0.0D 0 ENDIF 6040 CONTINUE RETURN 428 S=0.5D 0 H=1.0D 0/DBLE(N+1) T1=2.0D 0*H S1=H**2/S S2=1.0D 0-DBLE(KA)*H DO 6050 J=1,KA BROW(J)=DBLE(J)*S2 6050 CONTINUE IF(KA.EQ.N) GOTO 6055 DO 6051 J=KA+1,N BROW(J)=DBLE(KA)*(1.0D 0-DBLE(J)*H) 6051 CONTINUE 6055 GA(1)=-S1*(BROW(1)*2.0D 0*X(1)-BROW(2)/T1) GA(N)=-S1*(BROW(N-1)/T1+BROW(N)*2.0D 0*X(N)) DO 6052 J=2,N-1 GA(J)=-S1*((BROW(J-1)-BROW(J+1))/T1+BROW(J)*2.0D 0*X(J)) 6052 CONTINUE GA(KA)=1.0D 0+GA(KA) RETURN 429 A=-5.0D-1 B=5.0D-1 AL=0.0D 0 BE=25.0D 0 QA=20.0D 0 CA=0.3D 0 CB=0.3D 0 H=(B-A)/DBLE(N+1) S=DBLE(KA)/DBLE(N+1) H=H**2 U=AL*(1.0D 0-S)+BE*S+X(KA) FF=QA*(CB*EXP(QA*(U-BE))+CA*EXP(QA*(AL-U))) DO 6060 J=1,N IF(J.EQ.KA-1.OR.J.EQ.KA+1) THEN GA(J)=-1.0D 0 ELSEIF(J.EQ.KA) THEN GA(J)=2.0D 0+H*FF ELSE GA(J)=0.0D 0 ENDIF 6060 CONTINUE RETURN 430 N1=N/2 DO 6070 J=1,N GA(J)=0.0D 0 6070 CONTINUE H=1.0D 0/DBLE(N1+1)**2 IF(KA.EQ.1) THEN GA(KA)=2.0D 0+H*(2.0D 0*X(KA)+1.0D 0) GA(KA+1)=-1.0D 0 GA(N1+1)=H*0.2D 0*X(N1+KA) ELSE IF(KA.EQ.N1+1) THEN GA(1)=H*0.4D 0*X(1) GA(KA)=2.0D 0+H*(2.0D 0*X(KA)+2.0D 0) GA(KA+1)=-1.0D 0 ELSE IF(KA.EQ.N1) THEN GA(KA-1)=-1.0D 0 GA(KA)=2.0D 0+H*(2.0D 0*X(KA)+1.0D 0) GA(N1+KA)=H*0.2D 0*X(N1+KA) ELSE IF(KA.EQ.N) THEN GA(N1)=H*0.4D 0*X(N1) GA(KA-1)=-1.0D 0 GA(KA)=2.0D 0+H*(2.0D 0*X(KA)+2.0D 0) ELSE IF(KA.LT.N1) THEN GA(KA-1)=-1.0D 0 GA(KA)=2.0D 0+H*(2.0D 0*X(KA)+1.0D 0) GA(KA+1)=-1.0D 0 GA(N1+KA)=H*0.2D 0*X(N1+KA) ELSE GA(KA-N1)=H*0.4D 0*X(KA-N1) GA(KA-1)=-1.0D 0 GA(KA)=2.0D 0+H*(2.0D 0*X(KA)+2.0D 0) GA(KA+1)=-1.0D 0 ENDIF RETURN 431 ND=INT(SQRT(DBLE(N))) L=MOD(KA,ND) IF(L.EQ.0) THEN K=KA/ND L=ND ELSE K=INT(KA/ND)+1 ENDIF LA=1.0D 0 H=1.0D 0/DBLE(ND+1) H2=LA*H*H DO 2010 J=1,N GA(J)=0.0D 0 2010 CONTINUE IF(L.EQ.1.AND.K.EQ.1) THEN GA(1)=4.0D 0+H2*EXP(X(1)) GA(2)=-1.0D 0 GA(ND+1)=-1.0D 0 ENDIF IF(1.LT.L.AND.L.LT.ND.AND.K.EQ.1) THEN GA(L)=4.0D 0+H2*EXP(X(L)) GA(L-1)=-1.0D 0 GA(L+1)=-1.0D 0 GA(L+ND)=-1.0D 0 ENDIF IF(L.EQ.ND.AND.K.EQ.1) THEN GA(ND)=4.0D 0+H2*EXP(X(ND)) GA(ND-1)=-1.0D 0 GA(ND+ND)=-1.0D 0 ENDIF IF(L.EQ.1.AND.1.LT.K.AND.K.LT.ND) THEN GA(KA)=4.0D 0+H2*EXP(X(KA)) GA(KA-ND)=-1.0D 0 GA(KA+1)=-1.0D 0 GA(KA+ND)=-1.0D 0 ENDIF IF(L.EQ.ND.AND.1.LT.K.AND.K.LT.ND) THEN GA(KA)=4.0D 0+H2*EXP(X(KA)) GA(KA-ND)=-1.0D 0 GA(KA-1)=-1.0D 0 GA(KA+ND)=-1.0D 0 ENDIF IF(L.EQ.1.AND.K.EQ.ND) THEN GA(KA)=4.0D 0+H2*EXP(X(KA)) GA(KA-ND)=-1.0D 0 GA(KA+1)=-1.0D 0 ENDIF IF(1.LT.L.AND.L.LT.ND.AND.K.EQ.ND) THEN GA(KA)=4.0D 0+H2*EXP(X(KA)) GA(KA-ND)=-1.0D 0 GA(KA-1)=-1.0D 0 GA(KA+1)=-1.0D 0 ENDIF IF(L.EQ.ND.AND.K.EQ.ND) THEN GA(KA)=4.0D 0+H2*EXP(X(KA)) GA(KA-ND)=-1.0D 0 GA(KA-1)=-1.0D 0 ENDIF IF(1.LT.L.AND.L.LT.ND.AND.1.LT.K.AND.K.LT.ND) THEN GA(KA)=4.0D 0+H2*EXP(X(KA)) GA(KA-ND)=-1.0D 0 GA(KA-1)=-1.0D 0 GA(KA+1)=-1.0D 0 GA(KA+ND)=-1.0D 0 ENDIF RETURN 432 ND=INT(SQRT(DBLE(N))) L=MOD(KA,ND) IF(L.EQ.0) THEN K=KA/ND L=ND ELSE K=INT(KA/ND)+1 ENDIF H=1.0D 0/DBLE(ND+1) H2=H*H DO 2020 J=1,N GA(J)=0.0D 0 2020 CONTINUE IF(L.EQ.1.AND.K.EQ.1) THEN GA(1)=4.0D 0+H2*X(1)*2.0D 0 GA(2)=-1.0D 0 GA(ND+1)=-1.0D 0 ENDIF IF(1.LT.L.AND.L.LT.ND.AND.K.EQ.1) THEN GA(L)=4.0D 0+H2*X(L)*2.0D 0 GA(L-1)=-1.0D 0 GA(L+1)=-1.0D 0 GA(L+ND)=-1.0D 0 ENDIF IF(L.EQ.ND.AND.K.EQ.1) THEN GA(ND)=4.0D 0+H2*X(ND)*2.0D 0 GA(ND-1)=-1.0D 0 GA(ND+ND)=-1.0D 0 ENDIF IF(L.EQ.1.AND.1.LT.K.AND.K.LT.ND) THEN GA(KA)=4.0D 0+H2*X(KA)*2.0D 0 GA(KA-ND)=-1.0D 0 GA(KA+1)=-1.0D 0 GA(KA+ND)=-1.0D 0 ENDIF IF(L.EQ.ND.AND.1.LT.K.AND.K.LT.ND) THEN GA(KA)=4.0D 0+H2*X(KA)*2.0D 0 GA(KA-ND)=-1.0D 0 GA(KA-1)=-1.0D 0 GA(KA+ND)=-1.0D 0 ENDIF IF(L.EQ.1.AND.K.EQ.ND) THEN GA(KA)=4.0D 0+H2*X(KA)*2.0D 0 GA(KA-ND)=-1.0D 0 GA(KA+1)=-1.0D 0 ENDIF IF(1.LT.L.AND.L.LT.ND.AND.K.EQ.ND) THEN GA(KA)=4.0D 0+H2*X(KA)*2.0D 0 GA(KA-ND)=-1.0D 0 GA(KA-1)=-1.0D 0 GA(KA+1)=-1.0D 0 ENDIF IF(L.EQ.ND.AND.K.EQ.ND) THEN GA(KA)=4.0D 0+H2*X(KA)*2.0D 0 GA(KA-ND)=-1.0D 0 GA(KA-1)=-1.0D 0 ENDIF IF(1.LT.L.AND.L.LT.ND.AND.1.LT.K.AND.K.LT.ND) THEN GA(KA)=4.0D 0+H2*X(KA)*2.0D 0 GA(KA-ND)=-1.0D 0 GA(KA-1)=-1.0D 0 GA(KA+1)=-1.0D 0 GA(KA+ND)=-1.0D 0 ENDIF RETURN 550 IF (MOD(KA,2).EQ.1) THEN GA(KA)=0.0D 0 IF (KA.NE.1) THEN D1S=COS(X(KA-2)-X(KA-1)-X(KA))*SIN(X(KA-2)+X(KA-1)-X(KA)) D2S=SIN(X(KA-2)-X(KA-1)-X(KA))*COS(X(KA-2)+X(KA-1)-X(KA)) GA(KA-2)=-18.0D 0*(X(KA-2)-X(KA))**2-2.0D 0*(D1S+D2S) GA(KA-1)=-4.0D 0+2.0D 0*(D1S-D2S) GA(KA)=GA(KA)+18.0D 0*(X(KA-2)-X(KA))**2+2.0D 0*(D1S+D2S) ENDIF IF (KA.NE.N) THEN D1S=COS(X(KA)-X(KA+1)-X(KA+2))*SIN(X(KA)+X(KA+1)-X(KA+2)) D2S=SIN(X(KA)-X(KA+1)-X(KA+2))*COS(X(KA)+X(KA+1)-X(KA+2)) GA(KA)=GA(KA)+9.0D 0*(X(KA)-X(KA+2))**2+D1S+D2S GA(KA+1)=2.0D 0-D1S+D2S GA(KA+2)=-9.0D 0*(X(KA)-X(KA+2))**2-D1S-D2S ENDIF ELSE EX=EXP(X(KA-1)-X(KA)-X(KA+1)) W=X(KA-1)-X(KA+1) GA(KA-1)=-EX-W*EX GA(KA)=4.0D 0+W*EX GA(KA+1)=EX+W*EX ENDIF RETURN 560 W=0.0D 0 DO 561 I=1,N-1 W=W+(DBLE(KA)/DBLE(KA+I))*X(I) 561 CONTINUE W=W+0.5D 0+0.5D 0*DBLE(KA)/DBLE(KA+N)*X(N) DO 562 I=1,N GA(I)=-0.4D 0/DBLE(N)*X(KA)*DBLE(KA)/DBLE(KA+I) 562 CONTINUE GA(N)=0.5D 0*GA(N) GA(KA)=GA(KA)+1.0D 0-0.4D 0*W/DBLE(N) RETURN 590 IF(KA.EQ.1) THEN GA(KA)=1.0D 0 ELSEIF(KA.EQ.N) THEN GA(KA-1)=1.0D 0 GA(KA)=-1.0D 0 ELSE S=2.0D 0*(X(KA)+X(KA+1)+X(N)) GA(KA)=S GA(KA+1)=S GA(N)=GA(N)+S ENDIF RETURN 600 IF (KA.LE.N-2) THEN B=X(1) W=DBLE(KA)/DBLE(N-2) DO 602 J=2,N B=B+X(J)*W**(J-1) 602 CONTINUE DO 603 J=2,N GA(J)=DBLE(J-1)*W**(J-2)-2.0D 0*B*W**(J-1) 603 CONTINUE GA(1)=-2.0D 0*B ELSE IF (KA.EQ.N-1) THEN GA(1)=1.0D 0 ELSE IF (KA.EQ.N) THEN GA(1)=-2.0D 0*X(1) GA(2)=1.0D 0 ENDIF RETURN 610 IF(MOD(KA,2).EQ.1) THEN GA(KA)=-2.0D 1*X(KA) GA(KA+1)=10.D 0 ELSE GA(KA-1)=-1.0D 0 ENDIF RETURN 670 GA(1)=0.0D 0 GA(KA)=16.0D 0*(X(KA)**2-X(1))*X(KA)-2.0D 0*(X(KA)-1.0D 0) GA(1)=GA(1)-8.0D 0*(X(KA)**2-X(1)) RETURN 690 IF(KA.EQ.1) THEN GA(KA)=2.0D 0*(X(KA)-1.0D 0) ELSEIF(KA.EQ.N) THEN GA(KA)= 2.0D 0*X(KA) GA(1)=-2.0D 0*X(1) ELSE S=COS(X(KA)-X(N)) GA(1)=-2.0D 0*X(1) GA(KA)=S+2.0D 0*X(KA) GA(N)=GA(N)-S ENDIF RETURN 710 A=2.0D 0*SQRT(DBLE(KA)) I1=MOD(2*KA-1,N)+1 I2=MOD(3*KA-1,N)+1 I3=MOD(5*KA-1,N)+1 I4=MOD(7*KA-1,N)+1 I5=MOD(11*KA-1,N)+1 GA(KA)=GA(KA)+A*X(KA) GA(I1)=GA(I1)+A*X(I1) GA(I2)=GA(I2)+A*X(I2) GA(I3)=GA(I3)+A*X(I3) GA(I4)=GA(I4)+A*X(I4) GA(I5)=GA(I5)+A*X(I5) RETURN 720 A=SQRT(DBLE(KA)) I1=MOD(2*KA-1,N)+1 I2=MOD(3*KA-1,N)+1 I3=MOD(5*KA-1,N)+1 I4=MOD(7*KA-1,N)+1 I5=MOD(11*KA-1,N)+1 GA(KA)=GA(KA)+A*COS(X(KA)) GA(I1)=GA(I1)+A*COS(X(I1)) GA(I2)=GA(I2)+A*COS(X(I2)) GA(I3)=GA(I3)+A*COS(X(I3)) GA(I4)=GA(I4)+A*COS(X(I4)) GA(I5)=GA(I5)+A*COS(X(I5)) RETURN END