* SUBROUTINE TIUD24 ALL SYSTEMS 12/12/01 C PORTABILITY : ALL SYSTEMS C 16/12/01 LU : ORIGINAL VERSION * * PURPOSE : * INITIAL VALUES OF THE VARIABLES AND STRUCTURE OF THE SPARSE HESSIAN * MATRIX FOR UNCONSTRAINED MINIMIZATION. * * PARAMETERS : * II N NUMAER OF VARIABLES. * II NA NUMAER OF ELEMENTS OF THE SPARSE MATRIX. * 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 TIUD24(N,NA,X,FMIN,XMAX,NEXT,IERR) INTEGER N,NA,NEXT,IEXT,IERR REAL*8 X(N),FMIN,XMAX INTEGER I,J,K,M,N1 REAL*8 Z(1000),T,S,F,PAR,ALF,BET REAL*8 Y(20) COMMON /EMPR15/ Y COMMON /EMPR18/ PAR,M REAL*8 ETA9 PARAMETER (ETA9=1.0D 60) 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,310,340,360,370, & 380,390,400,410,420,430,440,450,460,470,480,490,500,510,510,620, & 630,640,650,670,680,690,700,720,730,740,750,800,810,820,830,850, & 870,890,600,910,920,930,940,950,960,970,980,990, & 530,540,550,560,570,580,590), NEXT 10 IF (N.LT.2) GO TO 999 N=N-MOD(N,2) DO 11 I=1,N IF(MOD(I,2).EQ.1) THEN X(I)=-1.2D 0 ELSE X(I)=1.0D 0 ENDIF 11 CONTINUE NA=2*(N-1) RETURN 20 IF (N.LT.4) GO TO 999 N=N-MOD(N,2) DO 21 I=1,N IF(MOD(I,2).EQ.1) THEN X(I)=-2.0D 0 IF(I.LE.4) X(I)=-3.0D 0 ELSE X(I)=0.0D 0 IF(I.LE.4) X(I)=-1.0D 0 ENDIF 21 CONTINUE NA=3*(N-2) RETURN 30 IF (N.LT.4) GO TO 999 N=N-MOD(N,2) DO 31 I=1,N IF(MOD(I,4).EQ.1) THEN X(I)=3.0D 0 ELSEIF(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 31 CONTINUE NA=2*(N-2) RETURN 40 IF (N.LT.4) GO TO 999 N=N-MOD(N,2) DO 41 I=1,N X(I)=2.0D 0 41 CONTINUE X(1)=1.0D 0 NA=5*(N-2)/2 XMAX=1.0D 1 RETURN 50 IF (N.LT.3) GO TO 999 DO 51 I=1,N X(I)=-1.0D 0 51 CONTINUE NA=N RETURN 60 IF (N.LT.6) GO TO 999 DO 61 I=1,N X(I)=-1.0D 0 61 CONTINUE NA=N RETURN 70 IF (N.LT.2) GO TO 999 DO 71 I=1,N-1 X(I)=0.5D 0 71 CONTINUE X(N)=-2.0D 0 NA=2*(N-1) RETURN 80 IF (N.LT.4) GO TO 999 N=N-MOD(N,4) DO 81 I=1,N X(I)=SIN(DBLE(I))**2 81 CONTINUE NA=5*N RETURN 90 IF (N.LT.4) GO TO 999 N=N-MOD(N,2) DO 91 I=1,N X(I)=5.0D 0 91 CONTINUE NA=3*(N-2) RETURN 100 IF (N.LT.2) GO TO 999 DO 101 I=1,N X(I)=0.2D 0 101 CONTINUE NA=2*(N-1) RETURN 110 CONTINUE IF (N.LT.2) GO TO 999 N=N-MOD(N,2) DO 111 I=1,N IF(MOD(I,2).EQ.1) THEN X(I)=-0.8D 0 ELSE X(I)=-0.8D 0 ENDIF 111 CONTINUE NA=2*(N-1) RETURN 120 CONTINUE IF (N.LT.5) GO TO 999 IF (MOD(N-5,3).NE.0) N=N-MOD(N-5,3) DO 121 I=1,N X(I)=-1.0D 0 121 CONTINUE NA=2*(N-2) RETURN 130 CONTINUE IF (N.LT.5) GO TO 999 IF (MOD(N-5,3).NE.0) N=N-MOD(N-5,3) DO 131 I=1,N X(I)=-1.0D 0 131 CONTINUE NA=7*(N-2)/3 RETURN 140 CONTINUE IF (N.LT.4) GO TO 999 DO 141 I=1,N IF (MOD(I,4).EQ.1) THEN X(I)=-0.8D 0 ELSE IF (MOD(I,4).EQ.2) THEN X(I)= 1.2D 0 ELSE IF (MOD(I,4).EQ.3) THEN X(I)=-1.2D 0 ELSE X(I)= 0.8D 0 ENDIF 141 CONTINUE Y(1)=14.4D 0 Y(2)=6.8D 0 Y(3)=4.2D 0 Y(4)=3.2D 0 142 IF (MOD(N-4,2).NE.0) N=N-MOD(N-4,2) NA=2*(N-2) RETURN 150 CONTINUE IF (N.LT.4) GO TO 999 DO 151 I=1,N IF (MOD(I,4).EQ.1) THEN X(I)=-0.8D 0 ELSE IF (MOD(I,4).EQ.2) THEN X(I)= 1.2D 0 ELSE IF (MOD(I,4).EQ.3) THEN X(I)=-1.2D 0 ELSE X(I)= 0.8D 0 ENDIF 151 CONTINUE Y(1)=35.8D 0 Y(2)=11.2D 0 Y(3)=6.2D 0 Y(4)=4.4D 0 GO TO 142 160 CONTINUE IF (N.LT.4) GO TO 999 DO 161 I=1,N IF (MOD(I,4).EQ.1) THEN X(I)=-0.8D 0 ELSE IF (MOD(I,4).EQ.2) THEN X(I)= 1.2D 0 ELSE IF (MOD(I,4).EQ.3) THEN X(I)=-1.2D 0 ELSE X(I)= 0.8D 0 ENDIF 161 CONTINUE Y(1)=30.6D 0 Y(2)=72.2D 0 Y(3)=124.4D 0 Y(4)=187.4D 0 GO TO 142 170 IF (N.LT.4) GO TO 999 N=N-MOD(N,2) NA=N DO 171 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 171 CONTINUE RETURN 180 IF (N.LT.3) GO TO 999 NA=N DO 181 I=1,N X(I)=1.2D 1 181 CONTINUE RETURN 190 IF (N.LT.7) GO TO 999 NA=N DO 191 I=1,N X(I)=-1.0D 0 191 CONTINUE RETURN 200 IF (N.LT.3) GO TO 999 NA=N DO 201 I=1,N X(I)=DBLE(I)/DBLE(N+1) X(I)=X(I)*(X(I)-1.0D 0) 201 CONTINUE RETURN 210 CONTINUE IF (N.LT.5) GO TO 999 IF (MOD(N-5,3).NE.0) N=N-MOD(N-5,3) DO 211 I=1,N X(I)=-1.0D 0 211 CONTINUE NA=7*(N-2)/3 RETURN 220 IF (N.LT.3) GO TO 999 DO 221 I=1,N IF(MOD(I,2).EQ.1) THEN X(I)=-1.2D 0 ELSE X(I)= 1.0D 0 ENDIF 221 CONTINUE NA=2*(N-1) RETURN 230 IF (N.LT.5) GO TO 999 N=N-MOD(N,2) NA=N DO 231 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 231 CONTINUE RETURN 240 IF (N.LT.5) GO TO 999 N=N-MOD(N,5) NA=N DO 241 I=1,N X(I)=1.0D 0/DBLE(N) 241 CONTINUE RETURN 250 IF (N.LT.3) GO TO 999 DO 251 I=1,N X(I)=0.0D 0 251 CONTINUE NA=N RETURN 260 IF (N.LT.3) GO TO 999 IF (MOD(N,2).NE.1) N=N-1 NA=N DO 261 I=1,N X(I)=1.0D 0 261 CONTINUE RETURN 270 IF (N.LT.3) GO TO 999 DO 271 I=1,N X(I)=-1.0D 0 271 CONTINUE NA=N RETURN 280 IF (N.LT.5) GO TO 999 NA=N DO 281 I=1,N X(I)=-2.0D 0 281 CONTINUE RETURN 290 IF (N.LT.7) GO TO 999 NA=N DO 291 I=1,N X(I)=-3.0D 0 291 CONTINUE XMAX=1.0D 1 RETURN 310 IF (N.LT.2) GO TO 999 N=N-MOD(N,2) NA=N DO 311 I=1,N IF(MOD(I,2).EQ.1) THEN X(I)=9.0D 1 ELSE X(I)=6.0D 1 ENDIF 311 CONTINUE RETURN 340 IF (N.LT.3) GO TO 999 DO 341 I=1,N X(I)=-1.0D 0 341 CONTINUE NA=N RETURN 360 IF (N.LT.2) GO TO 999 N=N-MOD(N,2) NA=N DO 361 I=1,N IF (MOD(I,2).EQ.1) THEN X(I)=0.0D 0 ELSE X(I)=1.0D 0 ENDIF 361 CONTINUE RETURN 370 IF (N.LT.4) GO TO 999 N=N-MOD(N,4) NA=N DO 371 I=2,N,2 X(I-1)=-3.0D 0 X(I)=-1.0D 0 371 CONTINUE RETURN 380 IF (N.LT.3) GO TO 999 DO 381 I=1,N X(I)=1.5D 0 381 CONTINUE XMAX=1.0D 0 NA=N RETURN 390 IF (N.LT.3) GO TO 999 DO 391 I=1,N X(I)=DBLE(I)/DBLE(N+1) X(I)=X(I)*(X(I)-1.0D 0) 391 CONTINUE NA=N RETURN 400 IF (N.LT.3) GO TO 999 DO 401 I=1,N X(I)=1.0D 1 401 CONTINUE NA=N RETURN 410 IF (N.LT.3) GO TO 999 DO 411 I=1,N X(I)=1.0D 0 411 CONTINUE PAR=1.0D 1 NA=N RETURN 420 IF (N.LT.5) GO TO 999 PAR=5.0D 2/DBLE(N+2) DO 421 I=1,N X(I)=((DBLE(I)+0.5D 0)/DBLE(N+2)-0.5D 0)**2 421 CONTINUE NA=N RETURN 430 IF (N.LT.10) GO TO 999 N=N-MOD(N,2) M=N/2 PAR=5.0D 2 DO 431 I=1,M K=I+M X(I)=(DBLE(I)/DBLE(M+1)-0.5D 0)**2 431 CONTINUE DO 432 I=M+1,N K=I-M X(I)=DBLE(K)/DBLE(M+1)-0.5D 0 432 CONTINUE NA=N RETURN 440 IF (N.LT.16) GO TO 999 M=INT(SQRT(DBLE(N))) PAR=6.7D 0/DBLE(M+1)**2 N=M*M K=0 DO 442 J=1,M DO 441 I=1,M K=K+1 X(K)=0.0D 0 441 CONTINUE 442 CONTINUE NA=N RETURN 450 IF (N.LT.16) GO TO 999 M=INT(SQRT(DBLE(N))) PAR=1.0D 0/DBLE(M+1)**2 N=M*M K=0 DO 452 J=1,M DO 451 I=1,M K=K+1 X(K)=-1.0D 0 451 CONTINUE 452 CONTINUE NA=N RETURN 460 IF (N.LT.16) GO TO 999 M=INT(SQRT(DBLE(N))) PAR=1.0D 0/DBLE(M+1)**2 N=M*M K=0 DO 462 J=1,M DO 461 I=1,M K=K+1 X(K)=0.0D 0 461 CONTINUE 462 CONTINUE NA=N RETURN 470 IF (N.LT.16) GO TO 999 M=INT(SQRT(DBLE(N))) PAR=5.0D 1/DBLE(M+1) N=M*M K=0 DO 472 J=1,M DO 471 I=1,M K=K+1 X(K)=1.0D 0-DBLE(I)*DBLE(J)/DBLE(M+1)**2 471 CONTINUE 472 CONTINUE NA=N RETURN 480 IF (N.LT.16) GO TO 999 M=INT(SQRT(DBLE(N))) PAR=1.0D 0/DBLE(M+1) N=M*M K=0 DO 482 J=1,M DO 481 I=1,M K=K+1 X(K)=0.0D 0 481 CONTINUE 482 CONTINUE NA=N RETURN 490 IF (N.LT.16) GO TO 999 M=INT(SQRT(DBLE(N))) N=M*M PAR=500.0D 0/DBLE(M+2)**4 K=0 DO 492 J=1,M DO 491 I=1,M K=K+1 X(K)=0.0D 0 491 CONTINUE 492 CONTINUE NA=N RETURN 500 IF (N.LT.16) GO TO 999 M=INT(SQRT(DBLE(N))) N=M*M PAR=500.0D 0 K=0 DO 502 J=1,M DO 501 I=1,M K=K+1 X(K)=0.0D 0 501 CONTINUE 502 CONTINUE NA=N RETURN 510 IF(N.LT.3) GO TO 999 DO 511 I=1,N X(I)=5.0D 0*MIN(DBLE(I)/DBLE(N+1),1.0D 0-DBLE(I)/DBLE(N+1)) 511 CONTINUE XMAX=1.0D 4 NA=N RETURN 620 IF (N.LT.3) GO TO 999 DO 621 I=1,N X(I)=2.0D 0 621 CONTINUE NA=N RETURN 630 IF (N.LT.3) GO TO 999 DO 631 I=1,N X(I)=0.0D 0 631 CONTINUE NA=N RETURN 640 IF (N.LT.3) GO TO 999 DO 641 I=1,N X(I)=-1.0D 0 641 CONTINUE NA=N RETURN 650 IF (N.LT.7) GO TO 999 DO 651 I=1,N X(I)=-1.0D 0 651 CONTINUE NA=N RETURN 670 IF (N.LT.2) GO TO 999 DO 671 I=1,N X(I)=0.5D 0 671 CONTINUE NA=N RETURN 680 IF (N.LT.3) GO TO 999 DO 681 I=1,N X(I)=1.0D 0 681 CONTINUE NA=N RETURN 690 IF (N.LT.7) GO TO 999 DO 691 I=1,N X(I)=-1.0D 0 691 CONTINUE NA=N RETURN 700 IF (N.LT.3) GO TO 999 DO 701 I=1,N X(I)=1.0D 0 701 CONTINUE NA=N RETURN 720 IF (N.LT.3) GO TO 999 DO 721 I=1,N X(I)=1.0D 0 721 CONTINUE NA=N RETURN 730 T=DBLE(2)/DBLE(N+2) N1=N/2 DO 731 I=1,N1 S=DBLE(I)*T X(I)=S*(1.0D 0-S) X(N1+I)=X(I) 731 CONTINUE NA=N RETURN 740 N1=INT(SQRT(DBLE(N))) N=N1*N1 DO 741 I=1,N X(I)=1.0D 0 741 CONTINUE NA=N RETURN 750 N1=INT(SQRT(DBLE(N))) N=N1*N1 DO 751 I=1,N X(I)=1.0D 0 751 CONTINUE NA=N RETURN 800 IF(N.LT.3.OR.NA.LT.N) GO TO 999 NA=N+1 DO 801 I=1,N X(I)=0.0D 0 801 CONTINUE RETURN 810 IF(N.LT.2.OR.NA.LT.N) GO TO 999 N=N-MOD(N,2) NA=N DO 811 I=1,N IF(MOD(I,2).EQ.1) THEN X(I)=-1.2D 0 ELSE X(I)=1.0D 0 ENDIF 811 CONTINUE RETURN 820 IF(N.LT.4.OR.NA.LT.N) GO TO 999 N=N-MOD(N,4) NA=N DO 821 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 821 CONTINUE RETURN 830 IF(N.LT.2.OR.NA.LT.N+1) GO TO 999 NA=N+1 DO 831 I=1,N X(I)=DBLE(I) 831 CONTINUE RETURN 850 IF(N.LT.2.OR.NA.LT.N+2) GO TO 999 NA=N+2 DO 851 I=1,N X(I)=1.0D 0-DBLE(I)/DBLE(N) 851 CONTINUE RETURN 870 IF(N.LT.2.OR.NA.LT.N) GO TO 999 NA=N DO 871 I=1,N X(I)=0.5D 0 871 CONTINUE RETURN 890 IF(N.LT.2.OR.NA.LT.N) GO TO 999 NA=N DO 891 I=1,N X(I)=DBLE(I)/DBLE(N+1) X(I)=X(I)*(X(I)-1.0D 0) 891 CONTINUE RETURN 600 IF(N.LT.2.OR.NA.LT.N) GO TO 999 NA=N DO 601 I=1,N X(I)=-1.0D 0 601 CONTINUE RETURN 910 N1=N-1 DO 911 I=1,N1 X(I)=-1.2D 0 911 CONTINUE X(N)=-1.0D 0 NA=N RETURN 920 DO 921 I=1,N X(I)=2.0D 0 921 CONTINUE NA=N RETURN 930 DO 931 I=1,N X(I)=1.5D 0 931 CONTINUE NA=N RETURN 940 DO 941 I=1,N X(I)=0.5D 0 941 CONTINUE NA=N RETURN 950 DO 951 I=1,N X(I)=1.0D 0/DBLE(N) 951 CONTINUE NA=N RETURN 960 DO 961 I=1,N X(I)=1.0D 0-DBLE(I)/DBLE(N) 961 CONTINUE NA=N RETURN 970 ALF=5 BET=14 DO 971 I=1,N X(I)=0.0D 0 971 CONTINUE DO 972 I=1,N CALL EAFU54(N,I,X,F,NEXT) Z(I)=-F 972 CONTINUE S=DBLE(BET*N)/DBLE(BET**2*N**2-(ALF+1)**2*(N-1)**2) DO 973 I=1,N X(I)=S*Z(I) 973 CONTINUE NA=N RETURN 980 DO 981 I=1,N X(I)=1.0D 0 981 CONTINUE NA=N RETURN 990 DO 991 I=1,N X(I)=1.0D 0 991 CONTINUE NA=N RETURN 530 IF(N.LT.2.OR.NA.LT.N) GO TO 999 NA=N DO 531 I=1,N IF (MOD(I,2).EQ.1) THEN X(I)=1.0D 0 ELSE X(I)=3.0D 0 ENDIF 531 CONTINUE RETURN 540 IF(N.LT.3.OR.NA.LT.N) GO TO 999 NA=N DO 541 I=1,N IF(MOD(I,2).EQ.1) THEN X(I)= 1.0D 0 ELSE X(I)=-1.0D 0 ENDIF 541 CONTINUE RETURN 550 IF(N.LT.3.OR.NA.LT.N) GO TO 999 NA=N DO 551 I=1,N X(I)=0.0D 0 551 CONTINUE RETURN 560 IF(N.LT.3.OR.NA.LT.N) GO TO 999 NA=N DO 561 I=1,N X(I)=0.1D 0 561 CONTINUE RETURN 570 IF(N.LT.2.OR.NA.LT.3*(N-1)) GO TO 999 NA=3*(N-1) DO 571 I=1,N X(I)=0.0D 0 571 CONTINUE RETURN 580 IF(N.LT.2.OR.NA.LT.3*(N-1)) GO TO 999 NA=3*(N-1) DO 581 I=1,N X(I)=-506.2D 0 581 CONTINUE RETURN 590 IF(N.LT.2.OR.NA.LT.2*(N-1)) GO TO 999 NA=2*(N-1) DO 591 I=1,N X(I)=-1.0D 0 591 CONTINUE RETURN 999 IERR=1 RETURN END * SUBROUTINE TAFU24 ALL SYSTEMS 12/12/01 C PORTABILITY : ALL SYSTEMS C 99/12/01 LU : ORIGINAL VERSION * * PURPOSE : * VALUES OF MODEL FUNCTIONS FOR UNCONSTRAINED MINIMIZATION. * 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 TAFU24(N,KA,X,FA,NEXT) INTEGER N,KA,NEXT REAL*8 X(N),FA INTEGER I,J,K,L,M,I1,I2,J1,J2,N1,ND,IA,IB,IC,LA REAL*8 A,B,A1,A2,A3,A4,AL,AL1,AL2,FF,H,PAR,PI,BE,BE1,BE2,C,CA,CB, & D,P,GA,H2,S,S1,S2,S3,T,T1,U,V,W,ALF,BET,GAM REAL*8 Y(20) COMMON /EMPR15/ Y 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,310,340,360,370, & 380,390,400,410,420,430,440,450,460,470,480,490,500,520,510,620, & 630,640,650,670,680,690,700,720,730,740,750,800,810,820,830,850, & 870,890,600,910,920,930,940,950,960,970,980,990, & 530,540,550,560,570,580,590), NEXT 10 I=(KA+1)/2 IF (MOD(KA,2).EQ.1) THEN FA=1.0D 1*(X(I)**2-X(I+1)) ELSE FA=X(I)-1.0D 0 ENDIF RETURN 20 A=SQRT(10.0D 0) D=SQRT(90.0D 0) I=2*((KA+5)/6) IF (MOD(KA,6).EQ.1) THEN FA=1.0D 1*(X(I-1)**2-X(I)) ELSEIF (MOD(KA,6).EQ.2) THEN FA=X(I-1)-1.0D 0 ELSEIF (MOD(KA,6).EQ.3) THEN FA=D*(X(I+1)**2-X(I+2)) ELSEIF (MOD(KA,6).EQ.4) THEN FA=X(I+1)-1.0D 0 ELSEIF (MOD(KA,6).EQ.5) THEN FA=A*(X(I)+X(I+2)-2.0D 0) ELSE FA=(X(I)-X(I+2))/A ENDIF RETURN 30 A=SQRT(1.0D 1) C=SQRT(5.0D 0) I=2*((KA+3)/4) IF (MOD(KA,4).EQ.1) THEN FA=X(I-1)+1.0D 1*X(I) ELSEIF (MOD(KA,4).EQ.2) THEN FA=C*(X(I+1)-X(I+2)) ELSEIF (MOD(KA,4).EQ.3) THEN FA=(X(I)-2.0D 0*X(I+1))**2 ELSE FA=A*(X(I-1)-X(I+2))**2 ENDIF RETURN 40 I=2*((KA+4)/5) IF (MOD(KA,5).EQ.1) THEN FA=(EXP(X(I-1))-X(I))**2 ELSEIF (MOD(KA,5).EQ.2) THEN FA=1.0D 1*(X(I)-X(I+1))**3 ELSEIF (MOD(KA,5).EQ.3) THEN P=X(I+1)-X(I+2) FA=(SIN(P)/COS(P))**2 ELSEIF (MOD(KA,5).EQ.4) THEN FA=X(I-1)**4 ELSE FA=X(I+2)-1.0D 0 ENDIF RETURN 50 I=KA FA=(3.0D 0-2.0D 0*X(I))*X(I)+1.0D 0 IF (I.GT.1) FA=FA-X(I-1) IF (I.LT.N) FA=FA-X(I+1) RETURN 60 I=KA FA=(2.0D 0+5.0D 0*X(I)**2)*X(I)+1.0D 0 DO 61 J=MAX(1,I-5),MIN(N,I+1) FA=FA+X(J)*(1.0D 0+X(J)) 61 CONTINUE RETURN 70 I=(KA+1)/2 IF (MOD(KA,2).EQ.1) THEN FA=X(I)+X(I+1)*((5.0D 0-X(I+1))*X(I+1)-2.0D 0)-1.3D 1 ELSE FA=X(I)+X(I+1)*((1.0D 0+X(I+1))*X(I+1)-1.4D 1)-2.9D 1 ENDIF RETURN 80 I=MOD(KA,N/2)+1 J=I+N/2 M=5*N IF (KA.LE.M/2) THEN IA=1 ELSE IA=2 ENDIF IB=5-KA/(M/4) IC=MOD(KA,5)+1 FA=(X(I)**IA-X(J)**IB)**IC RETURN 90 I=2*((KA+5)/6)-1 IF (MOD(KA,6).EQ.1) THEN FA=X(I)+3.0D 0*X(I+1)*(X(I+2)-1.0D 0)+X(I+3)**2-1.0D 0 ELSEIF (MOD(KA,6).EQ.2) THEN FA=(X(I)+X(I+1))**2+(X(I+2)-1.0D 0)**2-X(I+3)-3.0D 0 ELSEIF (MOD(KA,6).EQ.3) THEN FA=X(I)*X(I+1)-X(I+2)*X(I+3) ELSEIF (MOD(KA,6).EQ.4) THEN FA=2.0D 0*X(I)*X(I+2)+X(I+1)*X(I+3)-3.0D 0 ELSEIF (MOD(KA,6).EQ.5) THEN FA=(X(I)+X(I+1)+X(I+2)+X(I+3))**2+(X(I)-1.0D 0)**2 ELSE FA=X(I)*X(I+1)*X(I+2)*X(I+3)+(X(I+3)-1.0D 0)**2-1.0D 0 ENDIF RETURN 100 I=(KA+1)/2 J=MOD(KA,2) IF (J.EQ.0) THEN FA=6.0D 0-EXP(2.0D 0*X(I))-EXP(2.0D 0*X(I+1)) ELSEIF (I.EQ.1) THEN FA=4.0D 0-EXP(X(I))-EXP(X(I+1)) ELSEIF (I.EQ.N) THEN FA=8.0D 0-EXP(3.0D 0*X(I-1))-EXP(3.0D 0*X(I)) ELSE FA=8.0D 0-EXP(3.0D 0*X(I-1))-EXP(3.0D 0*X(I))+ & 4.0D 0-EXP(X(I))-EXP(X(I+1)) ENDIF RETURN 110 I=(KA+1)/2 IF (MOD(KA,2).EQ.1) THEN FA=1.0D 1*(2.0D 0*X(I)/(1.0D 0+X(I)**2)-X(I+1)) ELSE FA=X(I)-1.0D 0 ENDIF RETURN 120 I=3*((KA+5)/6)-2 IF (MOD(KA,6).EQ.1) THEN FA=1.0D 1*(X(I)**2-X(I+1)) ELSEIF (MOD(KA,6).EQ.2) THEN FA=X(I+2)-1.0D 0 ELSEIF (MOD(KA,6).EQ.3) THEN FA=(X(I+3)-1.0D 0)**2 ELSEIF (MOD(KA,6).EQ.4) THEN FA=(X(I+4)-1.0D 0)**3 ELSEIF (MOD(KA,6).EQ.5) THEN FA=X(I)**2*X(I+3)+SIN(X(I+3)-X(I+4))-1.0D 1 ELSE FA=X(I+1)+(X(I+2)**2*X(I+3))**2-2.0D 1 ENDIF RETURN 130 I=3*((KA+6)/7)-2 IF (MOD(KA,7).EQ.1) THEN FA=1.0D 1*(X(I)**2-X(I+1)) ELSEIF (MOD(KA,7).EQ.2) THEN FA=1.0D 1*(X(I+1)**2-X(I+2)) ELSEIF (MOD(KA,7).EQ.3) THEN FA=(X(I+2)-X(I+3))**2 ELSEIF (MOD(KA,7).EQ.4) THEN FA=(X(I+3)-X(I+4))**2 ELSEIF (MOD(KA,7).EQ.5) THEN FA=X(I)+X(I+1)**2+X(I+2)-3.0D 1 ELSEIF (MOD(KA,7).EQ.6) THEN FA=X(I+1)-X(I+2)**2+X(I+3)-1.0D 1 ELSE FA=X(I)*X(I+4)-1.0D 1 ENDIF RETURN 140 I=2*((KA+3)/4)-2 L=MOD((KA-1),4)+1 FA=-Y(L) DO 142 K=1,3 A=DBLE(K*K)/DBLE(L) DO 141 J=1,4 IF (X(I+J).EQ.0) X(I+J)=1.0D-16 A=A*SIGN(1.0D 0,X(I+J))*ABS(X(I+J))**(DBLE(J)/DBLE(K*L)) 141 CONTINUE FA=FA+A 142 CONTINUE RETURN 150 I=2*((KA+3)/4)-2 L=MOD((KA-1),4)+1 FA=-Y(L) DO 152 K=1,3 A=0.0D 0 DO 151 J=1,4 A=A+X(I+J)*(DBLE(J)/DBLE(K*L)) 151 CONTINUE FA=FA+EXP(A)*DBLE(K*K)/DBLE(L) 152 CONTINUE RETURN 160 I=2*((KA+3)/4)-2 L=MOD((KA-1),4)+1 FA=-Y(L) DO 161 J=1,4 FA=FA+DBLE((1-2*MOD(J,2))*L*J*J)*SIN(X(I+J))+ & DBLE(L*L*J)*COS(X(I+J)) 161 CONTINUE RETURN 170 ALF=0.5D 0 IF (KA.EQ.1) THEN FA=ALF-(1.0D 0-ALF)*X(3)-X(1)*(1.0D 0+4.0D 0*X(2)) ELSEIF(KA.EQ.2) THEN FA=-(2.0D 0-ALF)*X(4)-X(2)*(1.0D 0+4.0D 0*X(1)) ELSEIF(KA.EQ.N-1) THEN FA=ALF*X(N-3)-X(N-1)*(1.0D 0+4.0D 0*X(N)) ELSEIF (KA.EQ.N) THEN FA=ALF*X(N-2)-(2.0D 0-ALF)-X(N)*(1.0D 0+4.0D 0*X(N-1)) ELSEIF (MOD(KA,2).EQ.1) THEN FA=ALF*X(KA-2)-(1.0D 0-ALF)*X(KA+2)- & X(KA)*(1.0D 0+4.0D 0*X(KA+1)) ELSE FA=ALF*X(KA-2)-(2.0D 0-ALF)*X(KA+2)- & X(KA)*(1.0D 0+4.0D 0*X(KA-1)) ENDIF RETURN 180 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 190 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 200 U=1.0D 0/DBLE(N+1) V=DBLE(KA)*U FA=2.0D 0*X(KA)+0.5D 0*U*U*(X(KA)+V+1.0D 0)**3+1.0D 0 IF(KA.GT.1) FA=FA-X(KA-1) IF(KA.LT.N) FA=FA-X(KA+1) RETURN 210 I=3*((KA+6)/7)-2 IF (MOD(KA,7).EQ.1) THEN FA=1.0D 1*(X(I)**2-X(I+1)) ELSEIF (MOD(KA,7).EQ.2) THEN FA=X(I+1)+X(I+2)-2.0D 0 ELSEIF (MOD(KA,7).EQ.3) THEN FA=X(I+3)-1.0D 0 ELSEIF (MOD(KA,7).EQ.4) THEN FA=X(I+4)-1.0D 0 ELSEIF (MOD(KA,7).EQ.5) THEN FA=X(I)+3.0D 0*X(I+1) ELSEIF (MOD(KA,7).EQ.6) THEN FA=X(I+2)+X(I+3)-2.0D 0*X(I+4) ELSE FA=1.0D 1*(X(I+1)**2-X(I+4)) ENDIF RETURN 220 I=KA/2 IF (KA.EQ.1) THEN FA=X(KA)-1.0D 0 ELSE IF (MOD(KA,2).EQ.0) THEN FA=1.0D 1*(X(I)**2-X(I+1)) ELSE FA=2.0D 0*EXP(-(X(I)-X(I+1))**2)+ & EXP(-2.0D 0*(X(I+1)-X(I+2))**2) ENDIF RETURN 230 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 240 J=(KA-1)/5 FA=5.0D 0-DBLE(J+1)*(1.0D 0-COS(X(KA)))-SIN(X(KA)) J=J*5 DO 241 I=J+1,J+5 FA=FA-COS(X(I)) 241 CONTINUE RETURN 250 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 260 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 270 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 280 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 290 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 310 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 340 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 360 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 370 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 380 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 390 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 400 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 410 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 420 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 430 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 440 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 450 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 460 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 470 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 480 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 490 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 500 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 510 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 520 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 620 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 630 S=(1.0D 0/DBLE(N+1))**2*EXP(X(KA)) IF (N.EQ.1) THEN FA=-2.0D 0*X(KA)-S ELSE IF (KA.EQ.1) THEN FA=-2.0D 0*X(KA)+X(KA+1)-S ELSE IF (KA.EQ.N) THEN FA=X(KA-1)-2.0D 0*X(KA)-S ELSE FA=X(KA-1)-2.0D 0*X(KA)+X(KA+1)-S ENDIF RETURN 640 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 650 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 651 J=I1,I2 IF(J.NE.KA) S=S+X(J)+X(J)**2 651 CONTINUE FA=(S1+S2*X(KA)**2)*X(KA)+1.D 0-S3*S RETURN 670 IF(KA.EQ.1) THEN FA=X(1) ELSE FA=COS(X(KA-1))+X(KA)-1.0D 0 ENDIF RETURN 680 S=(1.0D 0/DBLE(N+1))**2 IF (N.EQ.1) THEN FA=2.0D 0*X(KA)-1.0D 0+S*(X(KA)+SIN(X(KA))) ELSE IF (KA.EQ.1) THEN FA=2.0D 0*X(KA)-X(KA+1)+S*(X(KA)+SIN(X(KA))) ELSE IF (KA.EQ.N) THEN FA=-X(KA-1)+2.0D 0*X(KA)-1.0D 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 690 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.0D 0 DO 691 J=I1,I2 IF (J.NE.KA) S=S+X(J)*(1.0D 0+X(J)) 691 CONTINUE FA=X(KA)*(2.0D 0+5.0D 0*X(KA)**2)+1.0D 0-S RETURN 700 H=1.0D 0/DBLE(N+1) T=2.0D 0*H**2 IF (KA.EQ.1) THEN FA=2.0D 0*X(KA)-X(KA+1)-T*X(KA)**2-H*X(KA+1) ELSE 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-H*(X(KA+1)-X(KA-1)) ELSE IF (KA.EQ.N) THEN FA=-X(KA-1)+2.0D 0*X(KA)-0.5D 0-T*X(KA)**2-H*(0.5D 0-X(KA-1)) ENDIF RETURN 720 A=-5.0D-1 B=5.0D-1 AL=0.0D 0 BE=25.0D 0 GA=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(GA*(U-BE))-CA*EXP(GA*(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 ELSE IF (KA.EQ.1) THEN FA=-AL+2.0D 0*X(KA)-X(KA+1)+H*FF ELSE IF (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 730 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 740 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 750 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 800 IF(KA.LT.30) THEN A=0.0D 0 B=X(1) W=DBLE(KA)/2.9D 1 DO 801 J=2,N A=A+DBLE(J-1)*X(J)*W**(J-2) B=B+X(J)*W**(J-1) 801 CONTINUE FA=A-B**2-1.0D 0 ELSEIF(KA.EQ.30) THEN FA=X(1) ELSEIF(KA.GT.30) THEN FA=X(2)-X(1)**2-1.0D 0 ENDIF RETURN 810 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 820 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 830 IF(KA.LE.N) THEN FA=(X(KA)-1.0D 0)/3.16227766016838D 0**5 ELSE FA=-0.25D 0 DO 831 J=1,N FA=FA+X(J)**2 831 CONTINUE ENDIF RETURN 850 IF(KA.LE.N) THEN FA=X(KA)-1.0D 0 ELSE FA=0.0D 0 DO 851 J=1,N FA=FA+DBLE(J)*(X(J)-1.0D 0) 851 CONTINUE IF(KA.EQ.N+2) FA=FA**2 ENDIF RETURN 870 IF(KA.LT.N) THEN A=0.0D 0 DO 871 J=1,N A=A+X(J) 871 CONTINUE FA=X(KA)+A-DBLE(N+1) ELSE A=1.0D 0 DO 872 J=1,N A=A*X(J) 872 CONTINUE FA=A-1.0D 0 ENDIF RETURN 890 U=1.0D 0/DBLE(N+1) V=DBLE(KA)*U A=0.0D 0 B=0.0D 0 DO 891 J=1,N W=DBLE(J)*U IF(J.LE.KA) THEN A=A+W*(X(J)+W+1.0D 0)**3 ELSE B=B+(1.0D 0-W)*(X(J)+W+1.0D 0)**3 ENDIF 891 CONTINUE FA=X(KA)+U*((1.0D 0-V)*A+V*B)/2.0D 0 RETURN 600 FA=(3.0D 0-2.0D 0*X(KA))*X(KA)+1.0D 0 IF(KA.GT.1) FA=FA-X(KA-1) IF(KA.LT.N) FA=FA-2.0D 0*X(KA+1) RETURN 910 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 920 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 930 S=0.0D 0 DO 931 J=1,N S=S+X(J)**3 931 CONTINUE FA=X(KA)-(S+DBLE(KA))/DBLE(2*N) RETURN 940 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 950 S=0.0D 0 DO 951 J=1,N S=S+COS(X(J)) 951 CONTINUE FA=DBLE(N)-S+DBLE(KA)*(1.0D 0-COS(X(KA)))-SIN(X(KA)) RETURN 960 S=0.0D 0 DO 961 J=1,N S=S+DBLE(J)*(X(J)-1.0D 0) 961 CONTINUE FA=X(KA)-1.0D 0+DBLE(KA)*S*(1.0D 0+2.0D 0*S*S) RETURN 970 ALF=5 BET=14 GAM=3 FA=DBLE(BET*N)*X(KA)+(DBLE(KA)-DBLE(N)/2.0D 0)**GAM DO 971 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 971 CONTINUE RETURN 980 C=0.5D 0 H=1.0D 0/DBLE(N) FA=(1.0D 0-C*H/4.0D 0) DO 981 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) 981 CONTINUE FA=-1.0D 0+X(KA)*FA RETURN 990 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 991 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 991 CONTINUE S1=(1.0D 0-DBLE(KA)*H)*S1 IF(KA.EQ.N) GO TO 993 S2=0.0D 0 DO 992 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 992 CONTINUE S1=S1+DBLE(KA)*S2 993 FA=X(KA)-0.5D 0*DBLE(KA)*H-T*S1 RETURN 530 W=0.0D 0 DO 531 I=1,N-1 W=W+(DBLE(KA)/DBLE(KA+I))*X(I) 531 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 540 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 550 IF(KA.LE.N-2) THEN A=0.0D 0 B=X(1) W=DBLE(KA)/DBLE(N-2) DO 551 J=2,N A=A+DBLE(J-1)*X(J)*W**(J-2) B=B+X(J)*W**(J-1) 551 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 560 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 570 I=(KA-1)/3+1 IF(MOD(KA,3).EQ.1) THEN FA=(X(I)-2.0D 0)**2 ELSEIF(KA.EQ.2) THEN FA=X(I)*X(I+1)-2.0D 0*X(I+1) ELSE FA=X(I+1)+1.0D 0 ENDIF RETURN 580 I=(KA-1)/3+1 S=1.0D 0/SQRT(2.0D 1) IF(MOD(KA,3).EQ.1) THEN FA=X(I)*S ELSEIF(MOD(KA,3).EQ.2) THEN FA=SIN(2.0D 1*X(I))*SIN(2.0D 1*X(I+1)) ELSE FA=X(I+1)*S ENDIF RETURN 590 I=(K-1)/2+1 IF(MOD(KA,2).EQ.1) THEN FA=X(I)-1.6D 1*X(I+1)**2*(1.5D 0+SIN(DBLE(I+1)))**2 ELSE FA=X(I)-1.0D 0 ENDIF RETURN END * SUBROUTINE TAGU24 ALL SYSTEMS 12/12/01 C PORTABILITY : ALL SYSTEMS C 99/12/01 TU : ORIGINAL VERSION * * PURPOSE : * VALUES OF MODEL FUNCTIONS FOR UNCONSTRAINED MINIMIZATION. * UNIVERSAL VERSION. * * PARAMETERS : * II N NUMBER OF VARIABLES. * II KA NUMBER OF APPROXIMATED FUNCTIONS. * RI X(N) VECTOR OF VARIABLES. * RO GA(N) GRADIENT OF THE APPROXIMATED FUNCTION. * II NEXT NUMBER OF THE TEST PROBLEM. * SUBROUTINE TAGU24(N,KA,X,GA,NEXT) INTEGER N,KA,NEXT REAL*8 X(N),GA(N) INTEGER I,J,K,L,M,I1,I2,IA,IB,IC,J1,J2,N1,ND,LA REAL*8 BROW(1000),A,B,C,D,E,A1,A2,A3,A4,AL,AL1,AL2,FF,FG,PAR,PI, & BE,BE1,BE2,CA,CB,D1S,D2S,GB,H,H2,Q,R,S,S1,S2,S3,T,T1,U,V,W,EX, & ALF,BET REAL*8 GA1(2),GA2(2),GA3(6),GA4(6) REAL*8 Y(20) COMMON /EMPR15/ Y COMMON /EMPR18/ PAR,M PI=3.14159265358979323846D 0 DO 1 I=1,N GA(I)=0.0D 0 1 CONTINUE 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,310,340,360,370, & 380,390,400,410,420,430,440,450,460,470,480,490,500,520,510,620, & 630,640,650,670,680,690,700,720,730,740,750,800,810,820,830,850, & 870,890,600,910,920,930,940,950,960,970,980,990, & 530,540,550,560,570,580,590), NEXT 10 I=(KA+1)/2 IF (MOD(KA,2).EQ.1) THEN GA(I)=2.0D 1*X(I) GA(I+1)=-1.0D 1 ELSE GA(I)=1.0D 0 ENDIF RETURN 20 I=2*((KA+5)/6) A=SQRT(9.0D 1) B=SQRT(1.0D 1) IF (MOD(KA,6).EQ.1) THEN GA(I-1)=2.0D 1 *X(I-1) GA(I)=-1.0D 1 ELSEIF (MOD(KA,6).EQ.2) THEN GA(I-1)=1.0D 0 ELSEIF (MOD(KA,6).EQ.3) THEN GA(I+1)=2.0D 0*A*X(I+1) GA(I+2)=-A ELSEIF (MOD(KA,6).EQ.4) THEN GA(I+1)=1.0D 0 ELSEIF (MOD(KA,6).EQ.5) THEN GA(I)=B GA(I+2)=B ELSE GA(I)=1.0D 0/B GA(I+2)=-1.0D 0/B ENDIF RETURN 30 I=2*((KA+3)/4) A=SQRT(5.0D 0) B=SQRT(1.0D 1) IF (MOD(KA,4).EQ.1) THEN GA(I-1)=1.0D 0 GA(I)=1.0D 1 ELSEIF (MOD(KA,4).EQ.2) THEN GA(I+1)=A GA(I+2)=-A ELSEIF (MOD(KA,4).EQ.3) THEN C=X(I)-2.0D 0*X(I+1) GA(I)=2.0D 0*C GA(I+1)=-4.0D 0*C ELSE C=X(I-1)-X(I+2) D=2.0D 0*B*C GA(I-1)=D GA(I+2)=-D ENDIF RETURN 40 I=2*((KA+4)/5) IF (MOD(KA,5).EQ.1) THEN A=EXP(X(I-1)) B=A-X(I) C=2.0D 0*B GA(I-1)=C*A GA(I)=-C ELSEIF (MOD(KA,5).EQ.2) THEN A=X(I)-X(I+1) B=3.0D 1*A**2 GA(I)=B GA(I+1)=-B ELSEIF (MOD(KA,5).EQ.3) THEN C=X(I+1)-X(I+2) Q=SIN(C)/COS(C) R=COS(C) D=2.0D 0*Q/R**2 GA(I+1)=D GA(I+2)=-D ELSEIF (MOD(KA,5).EQ.4) THEN GA(I-1)=4.0D 0*X(I-1)**3 ELSE GA(I+2)=1.0D 0 ENDIF RETURN 50 I=KA GA(I)=3.0D 0-4.0D 0*X(I) IF (I.GT.1) GA(I-1)=-1.0D 0 IF (I.LT.N) GA(I+1)=-1.0D 0 RETURN 60 I=KA DO 61 J=MAX(1,I-5),MIN(N,I+1) GA(J)=1.0D 0+2.0D 0*X(J) 61 CONTINUE GA(I)=GA(I)+2.0D 0+1.5D 1*X(I)**2 RETURN 70 I=(KA+1)/2 IF (MOD(KA,2).EQ.1) THEN GA(I)=1.0D 0 GA(I+1)=1.0D 1*X(I+1)-3.0D 0*X(I+1)**2-2.0D 0 ELSE GA(I)=1.0D 0 GA(I+1)=2.0D 0*X(I+1)+3.0D 0*X(I+1)**2-1.4D 1 ENDIF RETURN 80 I=MOD(KA,N/2)+1 J=I+N/2 M=5*N IF (KA.LE.M/2) THEN IA=1 ELSE IA=2 ENDIF IB=5-KA/(M/4) IC=MOD(KA,5)+1 A=DBLE(IA) B=DBLE(IB) C=DBLE(IC) D=X(I)**IA-X(J)**IB IF (D.EQ.0.0D 0) THEN GA(I)=0.0D 0 GA(J)=0.0D 0 ELSE E=C*D**(IC-1) IF (X(I).EQ.0.0D 0.AND.IA.LE.1) THEN GA(I)=0.0D 0 ELSE GA(I)= E*A*X(I)**(IA-1) ENDIF IF (X(J).EQ.0.0D 0.AND.IB.LE.1) THEN GA(J)=0.0D 0 ELSE GA(J)=-E*B*X(J)**(IB-1) ENDIF ENDIF RETURN 90 I=2*((KA+5)/6)-1 IF (MOD(KA,6).EQ.1) THEN GA(I)=1.0D 0 GA(I+1)=3.0D 0*(X(I+2)-1.0D 0) GA(I+2)=3.0D 0*X(I+1) GA(I+3)=2.0D 0*X(I+3) ELSEIF (MOD(KA,6).EQ.2) THEN GA(I)=2.0D 0*(X(I)+X(I+1)) GA(I+1)=2.0D 0*(X(I)+X(I+1)) GA(I+2)=2.0D 0*(X(I+2)-1.0D 0) GA(I+3)=-1.0D 0 ELSEIF (MOD(KA,6).EQ.3) THEN GA(I)=X(I+1) GA(I+1)=X(I) GA(I+2)=-X(I+3) GA(I+3)=-X(I+2) ELSEIF (MOD(KA,6).EQ.4) THEN GA(I)=2.0D 0*X(I+2) GA(I+1)=X(I+3) GA(I+2)=2.0D 0*X(I) GA(I+3)=X(I+1) ELSEIF (MOD(KA,6).EQ.5) THEN GA(I)=2.0D 0*(X(I)+X(I+1)+X(I+2)+X(I+3))+2.0D 0*(X(I)-1.0D 0) GA(I+1)=2.0D 0*(X(I)+X(I+1)+X(I+2)+X(I+3)) GA(I+2)=2.0D 0*(X(I)+X(I+1)+X(I+2)+X(I+3)) GA(I+3)=2.0D 0*(X(I)+X(I+1)+X(I+2)+X(I+3)) ELSE GA(I)=X(I+1)*X(I+2)*X(I+3) GA(I+1)=X(I)*X(I+2)*X(I+3) GA(I+2)=X(I)*X(I+1)*X(I+3) GA(I+3)=X(I)*X(I+1)*X(I+2)+2.0D 0*(X(I+3)-1.0D 0) ENDIF RETURN 100 IF (N.GE.2) THEN I=(KA+1)/2 J=MOD(KA,2) IF (J.EQ.0) THEN GA(I)=-2.0D 0*EXP(2.0D 0*X(I)) GA(I+1)=-2.0D 0*EXP(2.0D 0*X(I+1)) ELSEIF (I.EQ.1) THEN GA(I)=-EXP(X(I)) GA(I+1)=-EXP(X(I+1)) ELSEIF (I.EQ.N) THEN GA(I-1)=-3.0D 0*EXP(3.0D 0*X(I-1)) GA(I)=-3.0D 0*EXP(3.0D 0*X(I)) ELSE GA(I-1)=-3.0D 0*EXP(3.0D 0*X(I-1)) GA(I)=-3.0D 0*EXP(3.0D 0*X(I))-EXP(X(I)) GA(I+1)=-EXP(X(I+1)) ENDIF ENDIF RETURN 110 I=(KA+1)/2 IF (MOD(KA,2).EQ.1) THEN GA(I)=2.0D 1*(1.0D 0-X(I)**2)/(1.0D 0+X(I)**2)**2 GA(I+1)=-1.0D 1 ELSE GA(I)=1.0D 0 ENDIF RETURN 120 I=3*((KA+5)/6)-2 IF (MOD(KA,6).EQ.1) THEN GA(I)=2.0D 1*X(I) GA(I+1)=-1.0D 1 ELSEIF (MOD(KA,6).EQ.2) THEN GA(I+2)=1.0D 0 ELSEIF (MOD(KA,6).EQ.3) THEN GA(I+3)=2.0D 0*(X(I+3)-1.0D 0) ELSEIF (MOD(KA,6).EQ.4) THEN GA(I+4)=3.0D 0*(X(I+4)-1.0D 0)**2 ELSEIF (MOD(KA,6).EQ.5) THEN GA(I)=2.0D 0*X(I)*X(I+3) GA(I+3)=X(I)**2+COS(X(I+3)-X(I+4)) GA(I+4)=-COS(X(I+3)-X(I+4)) ELSE GA(I+1)=1.0D 0 GA(I+2)=4.0D 0*X(I+2)*(X(I+2)*X(I+3))**2 GA(I+3)=2.0D 0*X(I+2)**4*X(I+3) ENDIF RETURN 130 I=3*((KA+6)/7)-2 IF (MOD(KA,7).EQ.1) THEN GA(I)=2.0D 1*X(I) GA(I+1)=-1.0D 1 ELSEIF (MOD(KA,7).EQ.2) THEN GA(I+1)=2.0D 1*X(I+1) GA(I+2)=-1.0D 1 ELSEIF (MOD(KA,7).EQ.3) THEN GA(I+2)= 2.0D 0*(X(I+2)-X(I+3)) GA(I+3)=-2.0D 0*(X(I+2)-X(I+3)) ELSEIF (MOD(KA,7).EQ.4) THEN GA(I+3)= 2.0D 0*(X(I+3)-X(I+4)) GA(I+4)=-2.0D 0*(X(I+3)-X(I+4)) ELSEIF (MOD(KA,7).EQ.5) THEN GA(I)=1.0D 0 GA(I+1)=2.0D 0*X(I+1) GA(I+2)=1.0D 0 ELSEIF (MOD(KA,7).EQ.6) THEN GA(I+1)=1.0D 0 GA(I+2)=-2.0D 0*X(I+2) GA(I+3)=1.0D 0 ELSE GA(I)=X(I+4) GA(I+4)=X(I) ENDIF RETURN 140 I=2*((KA+3)/4)-2 L=MOD((KA-1),4)+1 DO 141 J=1,4 GA(I+J)=0.0D 0 141 CONTINUE DO 144 K=1,3 A=DBLE(K*K)/DBLE(L) DO 142 J=1,4 A=A*SIGN(1.0D 0,X(I+J))*ABS(X(I+J))**(DBLE(J)/DBLE(K*L)) 142 CONTINUE DO 143 J=1,4 GA(I+J)=GA(I+J)+(DBLE(J)/DBLE(K*L))*A/X(I+J) 143 CONTINUE 144 CONTINUE RETURN 150 I=2*((KA+3)/4)-2 L=MOD((KA-1),4)+1 DO 151 J=1,4 GA(I+J)=0.0D 0 151 CONTINUE DO 154 K=1,3 A=0.0D 0 DO 152 J=1,4 A=A+X(I+J)*(DBLE(J)/DBLE(K*L)) 152 CONTINUE A=EXP(A)*DBLE(K*K)/DBLE(L) DO 153 J=1,4 GA(I+J)=GA(I+J)+A*(DBLE(J)/DBLE(K*L)) 153 CONTINUE 154 CONTINUE RETURN 160 I=2*((KA+3)/4)-2 L=MOD((KA-1),4)+1 DO 161 J=1,4 GA(I+J)=DBLE((1-2*MOD(J,2))*L*J*J)*COS(X(I+J))- & DBLE(L*L*J)*SIN(X(I+J)) 161 CONTINUE RETURN 170 ALF=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)=ALF-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+ALF ELSEIF(KA.EQ.N-1) THEN GA(N-3)=ALF 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)=ALF 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)=ALF 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+ALF ELSE GA(KA-2)=ALF 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+ALF ENDIF RETURN 180 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 190 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 200 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 210 I=3*((KA+6)/7)-2 IF (MOD(KA,7).EQ.1) THEN GA(I)=2.0D 1*X(I) GA(I+1)=-1.0D 1 ELSEIF (MOD(KA,7).EQ.2) THEN GA(I+1)=1.0D 0 GA(I+2)=1.0D 0 ELSEIF (MOD(KA,7).EQ.3) THEN GA(I+3)=1.0D 0 ELSEIF (MOD(KA,7).EQ.4) THEN GA(I+4)=1.0D 0 ELSEIF (MOD(KA,7).EQ.5) THEN GA(I)=1.0D 0 GA(I+1)=3.0D 0 ELSEIF (MOD(KA,7).EQ.6) THEN GA(I+2)=1.0D 0 GA(I+3)=1.0D 0 GA(I+4)=-2.0D 0 ELSE GA(I+1)=2.0D 1*X(I+1) GA(I+4)=-1.0D 1 ENDIF RETURN 220 I=KA/2 IF (KA.EQ.1) THEN GA(KA)=1.0D 0 ELSE IF (MOD(KA,2).EQ.0) THEN GA(I)=2.0D 1*X(I) GA(I+1)=-1.0D 1 ELSE A=2.0D 0*EXP(-(X(I)-X(I+1))**2) B=EXP(-2.0D 0*(X(I+1)-X(I+2))**2) GA(I)= -2.0D 0*(X(I)-X(I+1))*A GA(I+1)=2.0D 0*(X(I)-X(I+1))*A-4.0D 0*(X(I+1)-X(I+2))*B GA(I+2)=4.0D 0*(X(I+1)-X(I+2))*B ENDIF RETURN 230 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 240 J=(KA-1)/5 GA(KA)=-DBLE(J+1)*SIN(X(KA))-COS(X(KA)) J=J*5 DO 241 I=J+1,J+5 IF (I.EQ.KA) THEN GA(I)=GA(I)+SIN(X(I)) ELSE GA(I)=SIN(X(I)) ENDIF 241 CONTINUE RETURN 250 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 260 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 270 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 280 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 290 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 310 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 340 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 360 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 370 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 380 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 390 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 400 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 410 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 420 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 430 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 440 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 450 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 460 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 470 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 480 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 490 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 500 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 501 K=1,6 GA3(K)=0.0D 0 GA4(K)=0.0D 0 501 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 510 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 520 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 620 IF (KA.EQ.N) THEN GA(1)=-0.20D 0*X(1) GA(N)=1.0D 0 ELSE GA(KA)=1.0D 0 GA(KA+1)=-0.2D 0*X(KA+1) ENDIF RETURN 630 S=(1.0D 0/DBLE(N+1))**2*EXP(X(KA)) IF (N.EQ.1) THEN GA(KA)=-(2.0D 0+S) ELSE IF (KA.EQ.1) THEN GA(KA)=-(2.0D 0+S) GA(KA+1)=1.0D 0 ELSE IF (KA.EQ.N) THEN GA(KA)=-(2.0D 0+S) GA(KA-1)=1.0D 0 ELSE GA(KA)=-(2.0D 0+S) GA(KA-1)=1.0D 0 GA(KA+1)=1.0D 0 ENDIF RETURN 640 S=0.1D 0 IF (N.EQ.1) THEN GA(KA)=3.0D 0-2.0D 0*S*X(KA) ELSE IF (KA.EQ.1) THEN GA(KA)=3.0D 0-2.0D 0*S*X(KA) GA(KA+1)=-2.0D 0 ELSE IF (KA.EQ.N) THEN GA(KA)=3.0D 0-2.0D 0*S*X(KA) GA(KA-1)=-1.0D 0 ELSE GA(KA)=3.0D 0-2.0D 0*S*X(KA) GA(KA-1)=-1.0D 0 GA(KA+1)=-2.0D 0 ENDIF RETURN 650 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 651 J=I1,I2 IF (J.NE.KA) S=S+X(J)+X(J)**2 651 CONTINUE GA(KA)=S1+3.0D 0*S2*X(KA)**2 DO 652 J=I1,I2 IF (J.NE.KA) GA(J)=-S3*(1.0D 0+2.0D 0*X(J)) 652 CONTINUE RETURN 670 IF (KA.EQ.1) THEN GA(1)=1.0D 0 ELSE GA(KA)=1.0D 0 GA(KA-1)=-SIN(X(KA-1)) ENDIF RETURN 680 S=(1.0D 0/DBLE(N+1))**2 IF (N.EQ.1) THEN GA(KA)=2.0D 0+S*(1.0D 0+COS(X(KA))) ELSE IF (KA.EQ.1) THEN GA(KA)=2.0D 0+S*(1.0D 0+COS(X(KA))) GA(KA+1)=-1.0D 0 ELSE IF (KA.EQ.N) THEN GA(KA)=2.0D 0+S*(1.0D 0+COS(X(KA))) GA(KA-1)=-1.0D 0 ELSE GA(KA)=2.0D 0+S*(1.0D 0+COS(X(KA))) GA(KA-1)=-1.0D 0 GA(KA+1)=-1.0D 0 ENDIF RETURN 690 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.0D 0 DO 691 J=I1,I2 IF (J.NE.KA) S=S+X(J)*(1.0D 0+X(J)) 691 CONTINUE GA(KA)=2.0D 0+15.0D 0*X(KA)**2 DO 692 J=I1,I2 IF (J.NE.KA) GA(J)=-(1.0D 0+2.0D 0*X(J)) 692 CONTINUE RETURN 700 H=1.0D 0/DBLE(N+1) T=2.0D 0*H**2 IF (KA.EQ.1) THEN GA(KA)=2.0D 0*(1.0D 0-T*X(KA)) GA(KA+1)=-(1.0D 0+H) ELSE IF (1.LT.KA.AND.KA.LT.N) THEN GA(KA)=2.0D 0*(1.0D 0-T*X(KA)) GA(KA-1)=-(1.0D 0-H) GA(KA+1)=-(1.0D 0+H) ELSE IF (KA.EQ.N) THEN GA(KA)=2.0D 0*(1.0D 0-T*X(KA)) GA(KA-1)=-(1.0D 0-H) ENDIF RETURN 720 A=-5.0D-1 B=5.0D-1 AL=0.0D 0 BE=25.0D 0 GB=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(GB*(U-BE))-CA*EXP(GB*(AL-U)) FG=GB*(CB*EXP(GB*(U-BE))+CA*EXP(GB*(AL-U))) IF (T.LE.0) THEN FF=FF+CA ELSE FF=FF-CB ENDIF IF (N.EQ.1) THEN GA(KA)=2.0D 0+H*FG ELSE IF (KA.EQ.1) THEN GA(KA)=2.0D 0+H*FG GA(KA+1)=-1.0D 0 ELSE IF (KA.LT.N) THEN GA(KA)=2.0D 0+H*FG GA(KA-1)=-1.0D 0 GA(KA+1)=-1.0D 0 ELSE GA(KA)=2.0D 0+H*FG GA(KA-1)=-1.0D 0 ENDIF RETURN 730 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 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+KA)=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 740 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 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 750 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 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 800 IF(KA.LT.30) THEN B=X(1) W=DBLE(KA)/2.9D 1 DO 801 J=2,N B=B+X(J)*W**(J-1) 801 CONTINUE B=-2.0D 0*B GA(1)=B DO 802 J=2,N GA(J)=DBLE(J-1)*W**(J-2)+B*W**(J-1) 802 CONTINUE ELSE DO 803 J=1,N GA(J)=0.0D 0 803 CONTINUE IF (KA.EQ.30) THEN GA(1)=1.0D 0 ELSE GA(1)=-2.0D 0*X(1) GA(2)=1.0D 0 ENDIF ENDIF RETURN 810 DO 811 J=1,N GA(J)=0.0D 0 811 CONTINUE IF(MOD(KA,2).EQ.1) THEN GA(KA)=-2.0D 1*X(KA) GA(KA+1)=1.0D 1 ELSE GA(KA-1)=-1.0D 0 ENDIF RETURN 820 DO 821 J=1,N GA(J)=0.0D 0 821 CONTINUE IF(MOD(KA,4).EQ.1) THEN GA(KA)=1.0D 0 GA(KA+1)=1.0D 1 ELSEIF(MOD(KA,4).EQ.2) THEN GA(KA+1)=2.23606797749979D 0 GA(KA+2)=-GA(KA+1) ELSEIF(MOD(KA,4).EQ.3) THEN A=X(KA-1)-2.0D 0*X(KA) GA(KA-1)=2.0D 0*A GA(KA)=-4.0D 0*A ELSE A=2.0D 0*(X(KA-3)-X(KA)) GA(KA-3)=3.16227766016838D 0*A GA(KA)= -3.16227766016838D 0*A ENDIF RETURN 830 IF(KA.LE.N) THEN DO 831 J=1,N GA(J)=0.0D 0 831 CONTINUE GA(KA)=1.0D 0/3.16227766016838D 0**5 ELSE DO 832 J=1,N GA(J)=2.0D 0*X(J) 832 CONTINUE ENDIF RETURN 850 IF(KA.LE.N) THEN DO 851 J=1,N GA(J)=0.0D 0 851 CONTINUE GA(KA)=1.0D 0 ELSEIF(KA.EQ.N+1) THEN DO 852 J=1,N GA(J)=DBLE(J) 852 CONTINUE ELSE A=0.0D 0 DO 853 J=1,N A=A+DBLE(J)*(X(J)-1.0D 0) 853 CONTINUE DO 854 J=1,N GA(J)=2.0D 0*A*DBLE(J) 854 CONTINUE ENDIF RETURN 870 DO 871 J=1,N 871 GA(J)=1-KA/N IF(KA.LT.N) THEN GA(KA)=GA(KA)+1.0D 0 ELSE A=1.0D 0 I=0 DO 872 J=1,N B=X(J) IF(B.EQ.0.0D 0.AND.I.EQ.0)I=J 872 IF(I.NE.J)A=A*B IF(I.EQ.0) THEN DO 873 J=1,N 873 GA(J)=A/X(J) ELSE GA(I)=A ENDIF ENDIF RETURN 890 U=1.0D 0/DBLE(N+1) V=DBLE(KA)*U DO 891 J=1,N W=DBLE(J)*U A=(X(J)+W+1.0D 0)**2 IF(J.LE.KA) THEN GA(J)=1.5D 0*U*(1.0D 0-V)*W*A ELSE GA(J)=1.5D 0*U*(1.0D 0-W)*V*A ENDIF 891 CONTINUE GA(KA)=GA(KA)+1.0D 0 RETURN 600 DO 601 J=1,N GA(J)=0.0D 0 601 CONTINUE GA(KA)=3.0D 0-4.0D 0*X(KA) IF(KA.GT.1) GA(KA-1)=-1.0D 0 IF(KA.LT.N) GA(KA+1)=-2.0D 0 RETURN 910 IF(KA.EQ.1) THEN GA(1)=-1.0D 0 DO 911 J=2,N GA(J)=0.0D 0 911 CONTINUE ELSE S=20.0D 0*DBLE(KA-1)*(X(KA)-X(KA-1)) DO 912 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 912 CONTINUE ENDIF RETURN 920 IF(KA.EQ.N) THEN GA(1)=-0.20D 0*X(1) N1=N-1 DO 921 J=2,N1 GA(J)=0.0D 0 921 CONTINUE GA(N)=1.0D 0 ELSE DO 922 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 922 CONTINUE ENDIF RETURN 930 DO 931 J=1,N IF(J.EQ.KA) THEN GA(J)=1.0D 0-3.0D 0*X(KA)**2/DBLE(2*N) ELSE GA(J)=-3.0D 0*X(J)**2/DBLE(2*N) ENDIF 931 CONTINUE RETURN 940 DO 941 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 941 CONTINUE RETURN 950 DO 951 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 951 CONTINUE RETURN 960 S=0.0D 0 DO 961 J=1,N S=S+DBLE(J)*(X(J)-1.0D 0) 961 CONTINUE DO 962 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 962 CONTINUE RETURN 970 ALF=5 BET=14 DO 971 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 971 CONTINUE RETURN 980 C=0.5D 0 H=1.0D 0/DBLE(N) DO 981 J=1,N BROW(J)=C*H*DBLE(KA)/DBLE(2*(KA+J)) 981 CONTINUE BROW(N)=0.5D 0*BROW(N) DO 983 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 982 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 982 CONTINUE GA(J)=T ENDIF 983 CONTINUE RETURN 990 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 991 J=1,KA BROW(J)=DBLE(J)*S2 991 CONTINUE IF(KA.EQ.N) GOTO 993 DO 992 J=KA+1,N BROW(J)=DBLE(KA)*(1.0D 0-DBLE(J)*H) 992 CONTINUE 993 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 994 J=2,N-1 GA(J)=-S1*((BROW(J-1)-BROW(J+1))/T1+BROW(J)*2.0D 0*X(J)) 994 CONTINUE GA(KA)=1.0D 0+GA(KA) RETURN 530 W=0.0D 0 DO 531 I=1,N-1 W=W+(DBLE(KA)/DBLE(KA+I))*X(I) 531 CONTINUE W=W+0.5D 0+0.5D 0*DBLE(KA)/DBLE(KA+N)*X(N) DO 532 I=1,N GA(I)=-0.4D 0/DBLE(N)*X(KA)*DBLE(KA)/DBLE(KA+I) 532 CONTINUE GA(N)=0.5D 0*GA(N) GA(KA)=GA(KA)+1.0D 0-0.4D 0*W/DBLE(N) RETURN 540 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 550 IF (KA.LE.N-2) THEN B=X(1) W=DBLE(KA)/DBLE(N-2) DO 551 J=2,N B=B+X(J)*W**(J-1) 551 CONTINUE DO 552 J=2,N GA(J)=DBLE(J-1)*W**(J-2)-2.0D 0*B*W**(J-1) 552 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 560 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 570 I=(KA-1)/3+1 IF(MOD(KA,3).EQ.1) THEN GA(I)=2.0D 0*(X(I)-2.0D 0) ELSEIF(KA.EQ.2) THEN GA(I)=X(I+1) GA(I+1)=X(I)-2.0D 0 ELSE GA(I+1)=1.0D 0 ENDIF RETURN 580 I=(KA-1)/3+1 S=1.0D 0/SQRT(2.0D 1) IF(MOD(KA,3).EQ.1) THEN GA(I)=S ELSEIF(MOD(KA,3).EQ.2) THEN GA(I)=2.0D 1*COS(2.0D 1*X(I))*SIN(2.0D 1*X(I+1)) GA(I+1)=2.0D 1*SIN(2.0D 1*X(I))*COS(2.0D 1*X(I+1)) ELSE GA(I+1)=S ENDIF RETURN 590 I=(K-1)/2+1 IF(MOD(KA,2).EQ.1) THEN GA(I)=1.0D 0 GA(I+1)=-3.2D 1*X(I+1)*(1.5D 0+SIN(DBLE(I+1)))**2 ELSE GA(I)=1.0D 0 ENDIF RETURN END