{"id":276,"date":"2021-03-15T12:46:51","date_gmt":"2021-03-15T16:46:51","guid":{"rendered":"https:\/\/people.clas.ufl.edu\/hager\/?page_id=276"},"modified":"2026-03-19T08:18:25","modified_gmt":"2026-03-19T12:18:25","slug":"optpack-test-problems","status":"publish","type":"page","link":"https:\/\/people.clas.ufl.edu\/hager\/optpack-test-problems\/","title":{"rendered":"Optpack Test problems"},"content":{"rendered":"\r\n<section class=\"fullwidth-text-block\">\r\n\t<div class=\"container px-0 pt-5\">\r\n\t\t<div class=\"row align-items-start\">\r\n\t\t\t<div class=\"col-12\">\r\n\t\t\t\t\n<h1 class=\"wp-block-heading\">Optpack Test problems<\/h1>\n\n\n\n<p>C<br>\nC     COLVILLE 1<br>\nC<br>\n      REAL*8 Y(5),S,T<br>\n      REAL*8 X(15),LE(50),LI(15),U(100),DF(15),BL(15),BU(15),W(100)<br>\n      REAL*8 VF,CT,ER,ST<br>\n      REAL*8 A(10,15),B(10),C(5,5),D(5),E(5),VALF<br>\n      INTEGER IA(15),K,IO,IT<br>\n      real zzz(2)<br>\n      COMMON A,B,C,D,E,NF,NDF<br>\n      EXTERNAL VALF,GRADF<br>\n      DATA A\/-16.D0,0.D0,-3.5D0,0.D0,0.D0,2.D0,-1.D0,-1.D0,1.D0,1.D0,<br>\n     1         2.D0,-2.D0,0.D0,-2.D0,-9.D0,0.D0,-1.D0,-2.D0,2.D0,1.D0,<br>\n     2         0.D0,0.D0,2.D0,0.D0,-2.D0,-4.D0,-1.D0,-3.D0,3.D0,1.D0,<br>\n     3         1.D0,.4D0,0.D0,-4.D0,1.D0,0.D0,-1.D0,-2.D0,4.D0,1.D0,<br>\n     4         0.D0,2.D0,0.D0,-1.D0,-2.8D0,0.D0,-1.D0,-1.D0,5.D0,1.D0,<br>\n     5         -1.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,<br>\n     6         0.D0,-1.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,<br>\n     7         0.D0,0.D0,-1.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,<br>\n     8         0.D0,0.D0,0.D0,-1.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,<br>\n     9         0.D0,0.D0,0.D0,0.D0,-1.D0,0.D0,0.D0,0.D0,0.D0,0.D0,<br>\n     1         0.D0,0.D0,0.D0,0.D0,0.D0,-1.D0,0.D0,0.D0,0.D0,0.D0,<br>\n     2         0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,-1.D0,0.D0,0.D0,0.D0,<br>\n     3         0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,-1.D0,0.D0,0.D0,<br>\n     4         0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,-1.D0,0.D0,<br>\n     5         0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,-1.D0\/<br>\n      DATA B\/-40.D0,-2.D0,-.25D0,-4.D0,-4.D0,-1.D0,-40.D0,<br>\n     1       -60.D0,5.D0,1.D0\/<br>\n      DATA C\/30.D0,-20.D0,-10.D0,32.D0,-10.D0,<br>\n     1       -20.D0,39.D0,-6.D0,-31.D0,32.D0,<br>\n     2       -10.D0,-6.D0,10.D0,-6.D0,-10.D0,<br>\n     3       32.D0,-31.D0,-6.D0,39.D0,-20.D0,<br>\n     4       -10.D0,32.D0,-10.D0,-20.D0,30.D0\/<br>\n      DATA D\/4.D0,8.D0,10.D0,6.D0,2.D0\/<br>\n      DATA E\/-15.D0,-27.D0,-36.D0,-18.D0,-12.D0\/<br>\n      DATA X\/0.D0,0.D0,0.D0,0.D0,1.D0,40.D0,4.D0,.25D0,3.D0,<br>\n     1      1.2D0,1.D0,39.D0,59.D0,0.D0,0.D0\/<br>\n      DATA BL\/0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,<br>\n     1        0.D0,0.D0,0.D0,0.D0\/<br>\n      DATA BU\/90.D0,90.D0,90.D0,90.D0,90.D0,90.D0,90.D0,90.D0,90.D0,<br>\n     1        90.D0,90.D0,90.D0,90.D0,90.D0,90.D0\/<br>\n      NF = 0<br>\n      NDF= 0<br>\n      LA = 10<br>\n      N = 15<br>\n      ST = 0.<br>\n      CT = 1.D-4<br>\n      strt = etime(zzz)<br>\n      CALL LMIN(X,LE,LI,U,IA,K,VF,DF,ER,IT,ST,IO,<br>\n     1          4,1.D-6,500,A,10,10,15,B,BL,BU,CT,VALF,GRADF,W)<br>\n      CALL ERR(IO)<br>\n      time = etime(zzz) &#8211; strt<br>\n      write(6,*) &#8216;total time =&#8217;,time<br>\n      WRITE(6,*) &#8216;BINDERS:&#8217;<br>\n      WRITE(6,*) (IA(I), I=1,N)<br>\n      WRITE(6,*) &#8216;VALUE:&#8217;,VF<br>\n      WRITE(6,*) &#8216;ITERATIONS:&#8217;,IT<br>\n      WRITE(6,*) &#8216;FREE VARIABLES:&#8217;,K<br>\n      WRITE(6,*) &#8216;NUMBER OF FUNCTION EVALUATIONS:&#8217;,NF<br>\n      WRITE(6,*) &#8216;NUMBER OF GRADIENT EVALUATIONS:&#8217;,NDF<br>\n      DATA Y\/.3D0,.33346761D0,.4D0,.42831010D0,.22396487D0\/<br>\n      T = 0.<br>\n      S = 0.<br>\n      DO 10 I = 1,5<br>\n           WRITE(6,*) I,Y(I),X(I)<br>\n           T = T + (X(I)-Y(I))**2<br>\n           S = S + Y(I)**2<br>\n10    CONTINUE<br>\n      S = DSQRT(T\/S)<br>\n      WRITE(6,*) &#8216;RELATIVE ERROR:&#8217;,S<br>\n      STOP<br>\n      END<br>\n      DOUBLE PRECISION FUNCTION VALF(X)<br>\n      REAL*8 X(1),S,T<br>\n      REAL*8 A(10,15),B(10),C(5,5),D(5),E(5)<br>\n      COMMON A,B,C,D,E,NF,NDF<br>\n      NF = NF + 1<br>\n      T = 0.<br>\n      DO 20 J = 1,5<br>\n           S = 0.<br>\n           DO 10 I = 1,5<br>\n10              S = S + C(I,J)*X(I)<br>\n20         T = T + E(J)*X(J) + D(J)*X(J)**3 + S*X(J)<br>\n      VALF = T<br>\n      RETURN<br>\n      END<br>\n      SUBROUTINE GRADF(DF,X)<br>\n      REAL*8 DF(1),X(1),T<br>\n      REAL*8 A(10,15),B(10),C(5,5),D(5),E(5)<br>\n      COMMON A,B,C,D,E,NF,NDF<br>\n      NDF = NDF + 1<br>\n      DO 20 J = 1,5<br>\n           T = 0.<br>\n           DO 10 I = 1,5<br>\n10              T = T + C(I,J)*X(I)<br>\n20         DF(J) = E(J) + T + T + 3.*D(J)*X(J)*X(J)<br>\n      DO 30 J = 6,15<br>\n30         DF(J) = 0.<br>\n      RETURN<br>\n      END<br>\n=======================<br>\nC<br>\nC     COLVILLE 2<br>\nC<br>\n      REAL*8 Y(15),SS,TT<br>\n      REAL*8 X(25),LE(10),LI(25),U(300),G(5),DF(25),DG(5,25)<br>\n      REAL*8 AA(10,25),BL(25),BU(25),W(200)<br>\n      REAL*8 A(5,10),B(10),C(5,5),D(5),E(5)<br>\n      REAL*8 CT,F,ER,PN,PNI,ST,TL,T,VALF<br>\n      INTEGER IA(25),IO,IN,K,IT,L,LA,LG,LM,NL,N<br>\n      real zzz(2)<br>\n      COMMON A,B,C,D,E,NF,NG,NDF,NDG<br>\n      EXTERNAL VALF,VALG,GRADF,GRADG<br>\n      DATA A\/-16.D0,2.D0,0.D0,1.D0,0.D0,<br>\n     1         0.D0,-2.D0,0.D0,.4D0,2.D0,<br>\n     2        -3.5D0,0.D0,2.D0,0.D0,0.D0,<br>\n     3         0.D0,-2.D0,0.D0,-4.D0,-1.D0,<br>\n     4         0.D0,-9.D0,-2.D0,1.D0,-2.8D0,<br>\n     5         2.D0,0.D0,-4.D0,0.D0,0.D0,<br>\n     6        -1.D0,-1.D0,-1.D0,-1.D0,-1.D0,<br>\n     7        -1.D0,-2.D0,-3.D0,-2.D0,-1.D0,<br>\n     8         1.D0,2.D0,3.D0,4.D0,5.D0,<br>\n     9         1.D0,1.D0,1.D0,1.D0,1.D0\/<br>\n      DATA B\/-40.D0,-2.D0,-.25D0,-4.D0,-4.D0,-1.D0,-40.D0,<br>\n     1       -60.D0,5.D0,1.D0\/<br>\n      DATA C\/30.D0,-20.D0,-10.D0,32.D0,-10.D0,<br>\n     1       -20.D0,39.D0,-6.D0,-31.D0,32.D0,<br>\n     2       -10.D0,-6.D0,10.D0,-6.D0,-10.D0,<br>\n     3       32.D0,-31.D0,-6.D0,39.D0,-20.D0,<br>\n     4       -10.D0,32.D0,-10.D0,-20.D0,30.D0\/<br>\n      DATA D\/4.D0,8.D0,10.D0,6.D0,2.D0\/<br>\n      DATA E\/-15.D0,-27.D0,-36.D0,-18.D0,-12.D0\/<br>\n      NF = 0<br>\n      NG = 0<br>\n      NDF = 0<br>\n      NDG = 0<br>\n      DO 10 I = 1,5<br>\n           DO 10 J = 1,10<br>\n10              AA(I,J) = A(I,J)<br>\n      DO 40 I = 1,5<br>\n           DO 20 J = 11,15<br>\n20              AA(I,J) = -2*C(I,J-10)<br>\n           DO 30 J = 16,25<br>\n30              AA(I,J) = 0.<br>\n           AA(I,15+I) = -3*D(I)<br>\n           AA(I,20+I) = 1<br>\n40    CONTINUE<br>\n      DO 60 I = 1,5<br>\n           DO 50 J = 1,25<br>\n50              DG(I,J) = 0.<br>\n           DG(I,I+15) = 1<br>\n60    CONTINUE<br>\n      DO 70 I = 21,25<br>\n70         DF(I) = 0.<br>\n      DO 80 I = 1,25<br>\n           BL(I) = 0.<br>\n80         BU(I) = 200.<br>\n      DO 90 I = 16,20<br>\n90         BL(I) = -200.<br>\nC<br>\nC     FEASIBLE STARTING GUESS<br>\nC<br>\n      IN = 4<br>\n      DO 100 I = 1,15<br>\n100        X(I) = 1.D-4<br>\n      X(7) = 60.<br>\n      DO 105 I = 1,5<br>\n105        X(I+15) = X(I+10)**2<br>\n      DO 115 I = 1,5<br>\n           T = E(I)<br>\n           DO 110 J = 1,20<br>\n110             T = T &#8211; AA(I,J)*X(J)<br>\n           X(I+20) = T<br>\n115   CONTINUE<br>\nC<br>\nC     INFEASIBLE STARTING GUESS<br>\nC<br>\nC      IN = 0<br>\nC      DO 100 I = 1,10<br>\nC100        X(I) = B(I)<br>\nC      DO 110 I = 11,25<br>\nC110        X(I) = 0.<br>\nC      X(15) = 1<br>\nC      X(20) = 1<br>\n      TL = .0001<br>\n      LM = 250<br>\nC<br>\nC     ORIGINAL PENALTY WAS 40, THEN TRIED 10, 50, 250<br>\nC<br>\n      PNI = 10<br>\n      L = 5<br>\n      N = 25<br>\n      LA = 10<br>\n      LG = 5<br>\n      NL = 5<br>\n      ST = 0<br>\n      CT = 1.D-4<br>\n      CALL NORM(AA,LA,L,N,E,W)<br>\n      strt = etime(zzz)<br>\n      CALL MIN(X,LE,LI,U,IA,K,F,G,DF,DG,ER,IT,ST,PN,IO,<br>\n     1  IN,TL,LM,PNI,AA,LA,LG,L,NL,N,E,BL,BU,CT,VALF,VALG,GRADF,GRADG,W)<br>\n      CALL ERR(IO)<br>\n      time = etime(zzz) &#8211; strt<br>\n      write(6,*) &#8216;total time =&#8217;,time<br>\n      WRITE(6,*) &#8216;VALUE:&#8217;,F<br>\n      WRITE(6,*) &#8216;LE MULTIPLIERS:&#8217;<br>\n      J = L + NL<br>\n      DO 120 I = 1,J<br>\n120        WRITE(6,*) I,LE(I)<br>\n      WRITE(6,*) &#8216;LI MULTIPLIERS:&#8217;<br>\n      DO 130 I = 1,N<br>\n130        WRITE(6,*) I,LI(I)<br>\n      WRITE(6,*) &#8216;NUMBER OF F  EVALUATIONS:&#8217;,NF<br>\n      WRITE(6,*) &#8216;NUMBER OF G  EVALUATIONS:&#8217;,NG<br>\n      WRITE(6,*) &#8216;NUMBER OF DF EVALUATIONS:&#8217;,NDF<br>\n      WRITE(6,*) &#8216;NUMBER OF DG EVALUATIONS:&#8217;,NDG<br>\n      DATA Y\/0.D0,0.D0,5.1740399D0,0.D0,3.0611083D0,11.8395453D0,<br>\n     &amp;   0.D0,0.D0,.10389602D0,0.D0,.3D0,.33346761D0,.4D0,<br>\n     &amp;  .4283101D0,.22396487D0\/<br>\n      TT = 0.<br>\n      SS = 0.<br>\n      DO 200 I = 1,15<br>\n           TT = TT + (X(I)-Y(I))**2<br>\n           SS = SS + Y(I)**2<br>\n           WRITE(6,*) I,Y(I),X(I)<br>\n200   CONTINUE<br>\n      SS = DSQRT(TT\/SS)<br>\n      WRITE(6,*) &#8216;RELATIVE ERROR:&#8217;,SS<br>\n      STOP<br>\n      END<br>\n      DOUBLE PRECISION FUNCTION VALF(X)<br>\n      REAL*8 X(1),A(5,10),B(10),C(5,5),D(5),E(5),S,T<br>\n      COMMON A,B,C,D,E,NF,NG,NDF,NDG<br>\n      NF = NF + 1<br>\n      T = 0.<br>\n      DO 10 I = 1,10<br>\n10         T = T &#8211; B(I)*X(I)<br>\n      DO 30 J = 1,5<br>\n           S = 0.<br>\n           DO 20 I = 1,5<br>\n20              S = S + C(I,J)*X(I+10)<br>\n30         T = T + S*X(J+10)<br>\n      DO 40 I = 1,5<br>\n40         T = T + 2.*D(I)*X(I+10)*X(I+15)<br>\n      VALF = T<br>\n      RETURN<br>\n      END<br>\n      SUBROUTINE GRADF(DF,X)<br>\n      REAL*8 DF(1),X(1),A(5,10),B(10),C(5,5),D(5),E(5),T<br>\n      COMMON A,B,C,D,E,NF,NG,NDF,NDG<br>\n      NDF = NDF + 1<br>\n      DO 10 I = 1,10<br>\n10         DF(I) = -B(I)<br>\n      DO 30 J = 1,5<br>\n           T = 0.<br>\n           DO 20 I = 1,5<br>\n20              T = T + C(I,J)*X(I+10)<br>\n30         DF(J+10) = T + T + 2.*D(J)*X(J+15)<br>\n      DO 40 I = 16,20<br>\n40         DF(I) = 2.*D(I-15)*X(I-5)<br>\n      RETURN<br>\n      END<br>\n      SUBROUTINE VALG(G,X)<br>\n      REAL*8 G(1),X(1)<br>\n      REAL*8 A(5,10),B(10),C(5,5),D(5),E(5)<br>\n      COMMON A,B,C,D,E,NF,NG,NDF,NDG<br>\n      NG = NG + 1<br>\n      DO 10 I = 11,15<br>\n10              G(I-10) = X(I+5) &#8211; X(I)**2<br>\n      RETURN<br>\n      END<br>\n      SUBROUTINE GRADG(DG,X)<br>\n      REAL*8 DG(5,1),X(1)<br>\n      REAL*8 A(5,10),B(10),C(5,5),D(5),E(5)<br>\n      COMMON A,B,C,D,E,NF,NG,NDF,NDG<br>\n      NDG = NDG + 1<br>\n      DO 10 I = 1,5<br>\n           DG(I,I+10) = -2.*X(I+10)<br>\n10    CONTINUE<br>\n      RETURN<br>\n      END<br>\n=====================<br>\nC<br>\nC     COLVILLE 3<br>\nC<br>\n      REAL*8 Y(5),SS,TT<br>\n      REAL*8 X(8),LE(3),LI(8),G(3),DF(8),DG(3,8),W(200),U(100),A(3,8)<br>\n      REAL*8 B(1),BL(8),BU(8),VALF<br>\n      REAL*8 CT,E,F,ST,TL,PN,PNI<br>\n      real zzz(2)<br>\n      INTEGER IA(8),K<br>\n      COMMON NF,NG,NDF,NDG<br>\n      EXTERNAL VALF,VALG,GRADF,GRADG<br>\n      DATA BL\/78.D0,33.D0,27.D0,27.D0,27.D0,0.D0,90.D0,20.D0\/<br>\n      DATA BU\/102.D0,45.D0,45.D0,45.D0,45.D0,92.D0,110.D0,25.D0\/<br>\n      NF = 0<br>\n      NG = 0<br>\n      NDF = 0<br>\n      NDG = 0<br>\n      N = 8<br>\n      NL = 3<br>\n      LG = 3<br>\n      LA = 3<br>\n      DO 10 J = 1,N<br>\n           DO 10 I = 1,NL<br>\n10              DG(I,J) = 0.<br>\n      DF(2) = 0.<br>\n      DF(4) = 0.<br>\n      DF(6) = 0.<br>\n      DF(7) = 0.<br>\n      DF(8) = 0.<br>\nC<br>\nC     FEASIBLE STARTING GUESS<br>\nC<br>\n      IN = 4<br>\n      X(1) = 78.62D0<br>\n      X(2) = 33.44D0<br>\n      X(3) = 31.07D0<br>\n      X(4) = 44.18D0<br>\n      X(5) = 35.32D0<br>\n      X(6) = 0.D0<br>\n      X(7) = 0.D0<br>\n      X(8) = 0.D0<br>\n      CALL VALG(G,X)<br>\n      X(6) = G(1)<br>\n      X(7) = G(2)<br>\n      X(8) = G(3)<br>\nC<br>\nC     NONFEASIBLE STARTING GUESS<br>\nC<br>\n      IN = 0<br>\n      X(1) = 78.D0<br>\n      X(2) = 33.D0<br>\n      X(3) = 27.D0<br>\n      X(4) = 27.D0<br>\n      X(5) = 27.D0<br>\n      X(6) = 0.D0<br>\n      X(7) = 0.D0<br>\n      X(8) = 0.D0<br>\n      CALL VALG(G,X)<br>\n      X(6) = G(1)<br>\n      X(7) = G(2)<br>\n      X(8) = G(3)<br>\n      ST = 0.<br>\n      PNI = 10.D0<br>\n      TL = 1.D-6<br>\n      CT = 1.D-4<br>\n      strt = etime(zzz)<br>\n      CALL MIN(X,LE,LI,U,IA,K,F,G,DF,DG,E,IT,ST,PN,IO,<br>\n     1 IN,TL,500,PNI,A,LA,LG,0,NL,N,B,BL,BU,CT,VALF,VALG,GRADF,GRADG,W)<br>\n      CALL ERR(IO)<br>\n      time = etime(zzz) &#8211; strt<br>\n      write(6,*) &#8216;total time =&#8217;,time<br>\n      WRITE(6,*) &#8216;ERROR TOLERANCE:&#8217;,E<br>\n      WRITE(6,*) &#8216;NUMBER OF ITERATIONS:&#8217;,IT<br>\n      F = F &#8211; 40792.141D0<br>\n      WRITE(6,*) &#8216;VALUE:&#8217;,F<br>\n      WRITE(6,*) &#8216;NUMBER OF F  EVALUATIONS:&#8217;,NF<br>\n      WRITE(6,*) &#8216;NUMBER OF G  EVALUATIONS:&#8217;,NG<br>\n      WRITE(6,*) &#8216;NUMBER OF DF EVALUATIONS:&#8217;,NDF<br>\n      WRITE(6,*) &#8216;NUMBER OF DG EVALUATIONS:&#8217;,NDG<br>\n      DATA Y\/78.D0,33.D0,29.995256025D0,45.D0,36.7758129058D0\/<br>\n      TT = 0.<br>\n      SS = 0.<br>\n      DO 200 I = 1,5<br>\n           TT = TT + (X(I)-Y(I))**2<br>\n           SS = SS + Y(I)**2<br>\n           WRITE(6,*) I,Y(I),X(I)<br>\n200   CONTINUE<br>\n      SS = DSQRT(TT\/SS)<br>\n      WRITE(6,*) &#8216;RELATIVE ERROR:&#8217;,SS<br>\n      STOP<br>\n      END<br>\n      DOUBLE PRECISION FUNCTION VALF(X)<br>\n      REAL*8 X(1),T<br>\n      COMMON NF,NG,NDF,NDG<br>\n      NF = NF + 1<br>\n      T = 5.3578547D0*X(3)*X(3)+.8356891D0*X(1)*X(5)+37.293239D0*X(1)<br>\n      VALF = T<br>\n      RETURN<br>\n      END<br>\n      SUBROUTINE GRADF(DF,X)<br>\n      REAL*8 DF(1),X(1)<br>\n      COMMON NF,NG,NDF,NDG<br>\n      NDF = NDF + 1<br>\n      DF(1) = 37.293239D0 + .8356891D0*X(5)<br>\n      DF(3) = 10.7157094D0*X(3)<br>\n      DF(5) = .8356891D0*X(1)<br>\n      RETURN<br>\n      END<br>\n      SUBROUTINE VALG(G,X)<br>\n      REAL*8 G(1),X(1),T<br>\n      COMMON NF,NG,NDF,NDG<br>\n      NG = NG + 1<br>\n      T = 85.334407D0+.0056858D0*X(2)*X(5)+.0006262D0*X(1)*X(4)<br>\n      G(1) = T &#8211; .0022053D0*X(3)*X(5) &#8211; X(6)<br>\n      T = 80.51249D0+.0071317D0*X(2)*X(5)+.0029955D0*X(1)*X(2)<br>\n      G(2) = T + .0021813D0*X(3)*X(3) &#8211; X(7)<br>\n      T =  (.0047026D0*X(5)+.0012547D0*X(1)+.0019085D0*X(4))*X(3)<br>\n      G(3) = 9.300961D0 + T &#8211; X(8)<br>\n      RETURN<br>\n      END<br>\n      SUBROUTINE GRADG(DG,X)<br>\n      REAL*8 DG(3,1),X(1)<br>\n      COMMON NF,NG,NDF,NDG<br>\n      NDG = NDG + 1<br>\n      DG(1,1) = .0006262D0*X(4)<br>\n      DG(1,2) = .0056858D0*X(5)<br>\n      DG(1,3) = -.0022053D0*X(5)<br>\n      DG(1,4) = .0006262D0*X(1)<br>\n      DG(1,5) = .0056858D0*X(2) &#8211; .0022053D0*X(3)<br>\n      DG(1,6) = -1.D0<br>\n      DG(2,1) = .0029955D0*X(2)<br>\n      DG(2,2) = .0071317D0*X(5)+.0029955D0*X(1)<br>\n      DG(2,3) = .0043626D0*X(3)<br>\n      DG(2,5) = .0071317D0*X(2)<br>\n      DG(2,7) = -1.D0<br>\n      DG(3,1) = .0012547D0*X(3)<br>\n      DG(3,3) = .0047026D0*X(5)+.0012547D0*X(1)+.0019085D0*X(4)<br>\n      DG(3,4) = .0019085D0*X(3)<br>\n      DG(3,5) = .0047026D0*X(3)<br>\n      DG(3,8) = -1.D0<br>\n      RETURN<br>\n      END<br>\n=====================<br>\nC<br>\nC     COLVILLE 4<br>\nC<br>\n      REAL*8 Y(4),SS,TT<br>\n      REAL*8 X(4),BL(4),BU(4),DF(4),W(200)<br>\n      REAL*8 CT,E,VF,ST,TL,VALF<br>\n      INTEGER IA(4),K,IO,IN,LM,N<br>\n      real zzz(2)<br>\n      COMMON NF,NDF<br>\n      EXTERNAL VALF,GRADF<br>\n      DATA X\/-3.D0,-1.D0,-3.D0,-1.D0\/<br>\n      DATA BL\/-10.D0,-10.D0,-10.D0,-10.D0\/<br>\n      DATA BU\/10.D0,10.D0,10.D0,10.D0\/<br>\n      NF = 0<br>\n      NDF = 0<br>\n      N = 4<br>\n      ST = 0.<br>\n      TL = 1.D-6<br>\n      CT = 1.D-4<br>\n      IN = 0<br>\n      LM = 500<br>\n      strt = etime(zzz)<br>\n      CALL BMIN(X,IA,K,VF,DF,E,IT,ST,IO,<br>\n     &amp;           IN,TL,LM,N,BL,BU,CT,VALF,GRADF,W)<br>\n      time = etime(zzz) &#8211; strt<br>\n      write(6,*) &#8216;total time =&#8217;,time<br>\n      CALL ERR(IO)<br>\n      WRITE(6,*) &#8216;ERROR TOLERANCE:&#8217;,E<br>\n      WRITE(6,*) &#8216;NUMBER OF ITERATIONS:&#8217;,IT<br>\n      WRITE(6,*) &#8216;VALUE:&#8217;,VF<br>\n      WRITE(6,*) &#8216;NUMBER OF F  EVALUATIONS:&#8217;,NF<br>\n      WRITE(6,*) &#8216;NUMBER OF DF EVALUATIONS:&#8217;,NDF<br>\n      DATA Y\/1.D0,1.D0,1.D0,1.D0\/<br>\n      TT = 0.<br>\n      SS = 0.<br>\n      DO 200 I = 1,4<br>\n           TT = TT + (X(I)-Y(I))**2<br>\n           SS = SS + Y(I)**2<br>\n           WRITE(6,*) I,Y(I),X(I)<br>\n200   CONTINUE<br>\n      SS = DSQRT(TT\/SS)<br>\n      WRITE(6,*) &#8216;RELATIVE ERROR:&#8217;,SS<br>\n      STOP<br>\n      END<br>\n      DOUBLE PRECISION FUNCTION VALF(X)<br>\n      REAL*8 X(1),T<br>\n      COMMON NF,NDF<br>\n      NF = NF + 1<br>\n      T = 100*(X(2)-X(1)**2)**2 + (1-X(1))**2<br>\n      T = T + 90*(X(4)-X(3)**2)**2 + (1-X(3))**2<br>\n      T = T + 10.1D0*((X(2)-1)**2+(X(4)-1)**2)<br>\n      T = T + 19.8D0*(X(2)-1)*(X(4)-1)<br>\n      VALF = T<br>\n      RETURN<br>\n      END<br>\n      SUBROUTINE GRADF(DF,X)<br>\n      REAL*8 DF(1),X(1)<br>\n      REAL*8 A,B<br>\n      COMMON NF,NDF<br>\n      NDF = NDF + 1<br>\n      A = X(2) &#8211; X(1)**2<br>\n      B = X(4) &#8211; X(3)**2<br>\n      DF(1) = -400*A*X(1) &#8211; 2*(1-X(1))<br>\n      DF(2) =20.2D0*(X(2)-1) + 200*A + 19.8D0*(X(4)-1)<br>\n      DF(3) = -360*B*X(3) &#8211; 2*(1-X(3))<br>\n      DF(4) = 180*B + 20.2D0*(X(4)-1) + 19.8D0*(X(2)-1)<br>\n      RETURN<br>\n      END<br>\n=====================<br>\nC<br>\nC     COLVILLE 6<br>\nC<br>\n      REAL*8 Y(6),SS,TT<br>\n      REAL*8 X(6),LE(4),LI(6),U(300),G(4),DF(6),DG(4,6)<br>\n      REAL*8 A(4,6),BL(6),BU(6),E(1),W(200)<br>\n      REAL*8 CT,F,ER,PN,PNI,ST,TL,VALF<br>\n      REAL*8 B,BB,C,D,CN,SN<br>\n      real zzz(2)<br>\n      INTEGER IA(6),IO,IN,K,IT,L,LA,LG,LM,NL,N<br>\n      COMMON B,BB,C,D,CN,SN,NF,NG,NDF,NDG<br>\n      EXTERNAL VALF,VALG,GRADF,GRADG<br>\n      DATA BL\/0.D0,0.D0,340.D0,340.D0,-1000.D0,0.D0\/<br>\n      DATA BU\/400.D0,1000.D0,420.D0,420.D0,1000.D0,.5236D0\/<br>\n      DATA X\/390.D0,1000.D0,419.5D0,340.5D0,198.175D0,.5D0\/<br>\n      NF = 0<br>\n      NG = 0<br>\n      NDF = 0<br>\n      NDG = 0<br>\n      B = 1.48477D0<br>\n      C = 300<br>\n      D = 200<br>\n      BB = 1.D0\/131.078D0<br>\n      CN = (.90798D0*BB)*DCOS(B-.00889D0)<br>\n      SN = (.90798D0*BB)*DSIN(B-.00889D0)<br>\n      DF(3) = 0.<br>\n      DF(4) = 0.<br>\n      DF(5) = 0.<br>\n      DF(6) = 0.<br>\n      DG(1,1) = 1.<br>\n      DG(1,2) = 0.<br>\n      DG(1,5) = 0.<br>\n      DG(2,1) = 0.<br>\n      DG(2,2) = 1.<br>\n      DG(2,5) = 0.<br>\n      DG(3,1) = 0.<br>\n      DG(3,2) = 0.<br>\n      DG(3,5) = 0.<br>\n      DG(4,1) = 0.<br>\n      DG(4,2) = 0.<br>\n      DG(4,5) = 1.<br>\nC<br>\nC     NONFEASIBLE STARTING GUESS<br>\nC<br>\n      IN = 0<br>\n      TL = .000001<br>\n      LM = 1000<br>\n      PNI = 10<br>\n      L = 0<br>\n      N = 6<br>\n      LA = 4<br>\n      LG = 4<br>\n      NL = 4<br>\n      ST = 0.<br>\n      CT = 1.D-4<br>\n      strt = etime(zzz)<br>\n      CALL MIN(X,LE,LI,U,IA,K,F,G,DF,DG,ER,IT,ST,PN,IO,<br>\n     1 IN,TL,LM,PNI,A,LA,LG,L,NL,N,E,BL,BU,CT,VALF,VALG,GRADF,GRADG,W)<br>\n      CALL ERR(IO)<br>\n      time = etime(zzz) &#8211; strt<br>\n      write(6,*) &#8216;total time =&#8217;,time<br>\n      WRITE(6,*) &#8216;VALUE:&#8217;,F<br>\n      WRITE(6,*) &#8216;NUMBER OF F  EVALUATIONS:&#8217;,NF<br>\n      WRITE(6,*) &#8216;NUMBER OF G  EVALUATIONS:&#8217;,NG<br>\n      WRITE(6,*) &#8216;NUMBER OF DF EVALUATIONS:&#8217;,NDF<br>\n      WRITE(6,*) &#8216;NUMBER OF DG EVALUATIONS:&#8217;,NDG<br>\n      DATA Y\/107.8119312D0,196.3186138D0,373.8307277D0,420.D0,<br>\n     &amp;       21.307132490D0,.1532919593D0\/<br>\n      TT = 0.<br>\n      SS = 0.<br>\n      DO 200 I = 1,6<br>\n           TT = TT + (X(I)-Y(I))**2<br>\n           SS = SS + Y(I)**2<br>\n           WRITE(6,*) I,Y(I),X(I)<br>\n200   CONTINUE<br>\n      SS = DSQRT(TT\/SS)<br>\n      WRITE(6,*) &#8216;RELATIVE ERROR:&#8217;,SS<br>\n      STOP<br>\n      END<br>\n      DOUBLE PRECISION FUNCTION VALF(X)<br>\n      REAL*8 X(1),B,BB,C,D,CN,SN,T<br>\n      COMMON B,BB,C,D,CN,SN,NF,NG,NDF,NDG<br>\n      NF = NF + 1<br>\n      T = 0.<br>\n      IF ( X(1) .GT. 300 ) GOTO 10<br>\n      T = T + 30*X(1)<br>\n      GOTO 20<br>\n10    T = 9000 + 31*(X(1)-300)<br>\n20    IF ( X(2) .GT. 100 ) GOTO 30<br>\n      T = T + 28*X(2)<br>\n      GOTO 50<br>\n30    IF ( X(2) .GT. 200 ) GOTO 40<br>\n      T = T + 2800 + 29*(X(2)-100)<br>\n      GOTO 50<br>\n40    T = T + 5700 + 30*(X(2)-200)<br>\n50    VALF = T<br>\n      RETURN<br>\n      END<br>\n      SUBROUTINE GRADF(DF,X)<br>\n      REAL*8 DF(1),X(1)<br>\n      REAL*8 B,BB,C,D,CN,SN<br>\n      COMMON B,BB,C,D,CN,SN,NF,NG,NDF,NDG<br>\n      NDF = NDF + 1<br>\n      DF(1) = 30<br>\n      IF ( X(1) .GT. 300 ) DF(1) = 31<br>\n      DF(2) = 28<br>\n      IF ( X(2) .GT. 100 ) DF(2) = 29<br>\n      IF ( X(2) .GT. 200 ) DF(2) = 30<br>\n      RETURN<br>\n      END<br>\n      SUBROUTINE VALG(G,X)<br>\n      REAL*8 G(1),X(1)<br>\n      REAL*8 B,BB,C,D,CN,SN<br>\n      COMMON B,BB,C,D,CN,SN,NF,NG,NDF,NDG<br>\n      NG = NG + 1<br>\n      G(1) = X(1) &#8211; C + BB*X(3)*X(4)*DCOS(B-X(6)) &#8211; CN*X(3)**2<br>\n      G(2) = X(2) + BB*X(3)*X(4)*DCOS(B+X(6)) &#8211; CN*X(4)**2<br>\n      G(3) = D &#8211; BB*X(3)*X(4)*DSIN(B-X(6)) + SN*X(3)**2<br>\n      G(4) = X(5) + BB*X(3)*X(4)*DSIN(B+X(6)) &#8211; SN*X(4)**2<br>\n      RETURN<br>\n      END<br>\n      SUBROUTINE GRADG(DG,X)<br>\n      REAL*8 DG(4,1),X(1)<br>\n      REAL*8 B,BB,C,D,CN,SN<br>\n      COMMON B,BB,C,D,CN,SN,NF,NG,NDF,NDG<br>\n      NDG = NDG + 1<br>\n      DG(1,3) = BB*X(4)*DCOS(B-X(6)) &#8211; 2*CN*X(3)<br>\n      DG(1,4) = BB*X(3)*DCOS(B-X(6))<br>\n      DG(1,6) = BB*X(3)*X(4)*DSIN(B-X(6))<br>\n      DG(2,3) = BB*X(4)*DCOS(B+X(6))<br>\n      DG(2,4) = BB*X(3)*DCOS(B+X(6)) &#8211; 2*CN*X(4)<br>\n      DG(2,6) = -BB*X(3)*X(4)*DSIN(B+X(6))<br>\n      DG(3,3) = -BB*X(4)*DSIN(B-X(6)) + 2*SN*X(3)<br>\n      DG(3,4) = -BB*X(3)*DSIN(B-X(6))<br>\n      DG(3,6) = BB*X(3)*X(4)*DCOS(B-X(6))<br>\n      DG(4,3) = BB*X(4)*DSIN(B+X(6))<br>\n      DG(4,4) = BB*X(3)*DSIN(B+X(6)) &#8211; 2*SN*X(4)<br>\n      DG(4,6) = BB*X(3)*X(4)*DCOS(B+X(6))<br>\n      RETURN<br>\n      END<br>\n=====================<br>\nC<br>\nC     COLVILLE 7<br>\nC<br>\n      REAL*8 Y(16),SS,TT<br>\n      REAL*8 X(16),LE(8),LI(16),DF(16),W(200),A(8,16),B(8),BL(16),BU(16)<br>\n      REAL*8 U(200),CT,ST,E,VF,VALUE<br>\n      INTEGER IA(16),IR(30),IC(30)<br>\n      real zzz(2)<br>\n      COMMON IR,IC,N,NF,NDF<br>\n      EXTERNAL VALUE,GRAD<br>\n      DATA A\/ 0.22, -1.46,  1.29, -1.10,  0.00,  0.00,  1.12,  0.00,<br>\n     1        0.20,  0.00, -0.89, -1.06,  0.00, -1.72,  0.00,  0.45,<br>\n     2        0.19, -1.30,  0.00,  0.95,  0.00, -0.33,  0.00,  0.26,<br>\n     3        0.25,  1.82,  0.00, -0.54, -1.43,  0.00,  0.31, -1.10,<br>\n     4        0.15, -1.15, -1.16,  0.00,  1.51,  1.62,  0.00,  0.58,<br>\n     5        0.11,  0.00, -0.96, -1.78,  0.59,  1.24,  0.00,  0.00,<br>\n     6        0.12,  0.80,  0.00, -0.41, -0.33,  0.21,  1.12, -1.03,<br>\n     7        0.13,  0.00, -0.49,  0.00, -0.43, -0.26,  0.00,  0.10,<br>\n     8        1.00,  0.00,  0.00,  0.00,  0.00,  0.00, -0.36,  0.00,<br>\n     9        0.00,  1.00,  0.00,  0.00,  0.00,  0.00,  0.00,  0.00,<br>\n     1        0.00,  0.00,  1.00,  0.00,  0.00,  0.00,  0.00,  0.00,<br>\n     2        0.00,  0.00,  0.00,  1.00,  0.00,  0.00,  0.00,  0.00,<br>\n     3        0.00,  0.00,  0.00,  0.00,  1.00,  0.00,  0.00,  0.00,<br>\n     4        0.00,  0.00,  0.00,  0.00,  0.00,  1.00,  0.00,  0.00,<br>\n     5        0.00,  0.00,  0.00,  0.00,  0.00,  0.00,  1.00,  0.00,<br>\n     6        0.00,  0.00,  0.00,  0.00,  0.00,  0.00,  0.00,  1.00\/<br>\n      DATA B\/2.5D0,1.1D0,-3.1D0,-3.5D0,1.3D0,2.1D0,2.3D0,-1.5D0\/<br>\n      DATA BU\/5.D0,5.D0,5.D0,5.D0,5.D0,5.D0,5.D0,5.D0,5.D0,5.D0,<br>\n     1        5.D0,5.D0,5.D0,5.D0,5.D0,5.D0\/<br>\n      DATA BL\/0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,<br>\n     1        0.D0,0.D0,0.D0,0.D0,0.D0,0.D0\/<br>\n      DATA X\/.0D0,.0D0,.0D0,.0D0,.0D0,.0D0,.0D0,.0D0,.0D0,<br>\n     1        .0D0,.0D0,.0D0,.0D0,.0D0,.0D0,.0D0\/<br>\n      DATA IR\/1,1,1,1,2,2,2,3,3,3,3,4,4,4,5,5,5,5,6,6,7,7,8,8,9,9,<br>\n     1        10,11,12,13\/<br>\n      DATA IC\/4,7,8,16,3,7,10,7,9,10,14,7,11,15,6,10,12,16,8,15,11,13,<br>\n     1        10,15,12,16,14,13,14,14\/<br>\n      NF = 0<br>\n      NG = 0<br>\n      NDF = 0<br>\n      NDG = 0<br>\n      LA = 8<br>\n      N = 16<br>\n      M = 8<br>\n      ST = 0<br>\n      CT = 1.D-4<br>\n      strt = etime(zzz)<br>\n      CALL LMIN(X,LE,LI,U,IA,K,VF,DF,E,IT,ST,IO,<br>\n     1          0,1.D-6,500,A,LA,M,N,B,BL,BU,CT,VALUE,GRAD,W)<br>\n      time = etime(zzz) &#8211; strt<br>\n      write(6,*) &#8216;total time =&#8217;,time<br>\n      WRITE(6,*) &#8216;OPTIMAL VALUE:&#8217;,VF<br>\n      WRITE(6,*) &#8216;ERROR:&#8217;,E<br>\n      WRITE(6,*) &#8216;ITERATIONS:&#8217;,IT<br>\n      WRITE(6,*) &#8216;NUMBER OF  F EVALUATIONS:&#8217;,NF<br>\n      WRITE(6,*) &#8216;NUMBER OF DF EVALUATIONS:&#8217;,NDF<br>\n      DATA Y\/.039847371D0,.7919831688D0,.2028703277D0,.84435796726D0,<br>\n     &amp;     1.2699065D0,.9347386775D0,1.6819619415D0,.1553008715D0,<br>\n     &amp;     1.5678703159D0,0.D0,0.D0,0.D0,.660204085777D0,0.D0,<br>\n     &amp;      .67425591386D0,0.D0\/<br>\n      TT = 0.<br>\n      SS = 0.<br>\n      DO 200 I = 1,16<br>\n           TT = TT + (X(I)-Y(I))**2<br>\n           SS = SS + Y(I)**2<br>\n           WRITE(6,*) I,Y(I),X(I)<br>\n200   CONTINUE<br>\n      SS = DSQRT(TT\/SS)<br>\n      WRITE(6,*) &#8216;RELATIVE ERROR:&#8217;,SS<br>\n      STOP<br>\n      END<br>\n      DOUBLE PRECISION FUNCTION VALUE(X)<br>\n      REAL*8 X(1),S,T<br>\n      INTEGER IR(30),IC(30)<br>\n      COMMON IR,IC,N,NF,NDF<br>\n      NF = NF + 1<br>\n      T = 0.<br>\n      DO 10 I = 1,N<br>\n10         T = T + (X(I)*X(I)+X(I)+1)**2<br>\n      DO 20 K = 1,30<br>\n           I = IR(K)<br>\n           J = IC(K)<br>\n           S = (X(I)*X(I)+X(I)+1)*(X(J)*X(J)+X(J)+1)<br>\n           T = T + S<br>\n20    CONTINUE<br>\n      VALUE = T<br>\n      RETURN<br>\n      END<br>\n      SUBROUTINE GRAD(G,X)<br>\n      REAL*8 G(1),X(1),S,T<br>\n      INTEGER IR(30),IC(30)<br>\n      COMMON IR,IC,N,NF,NDF<br>\n      NDF = NDF + 1<br>\n      DO 10 I = 1,N<br>\n10         G(I) = 2*(X(I)*X(I)+X(I)+1)*(X(I)+X(I)+1)<br>\n      DO 20 K = 1,30<br>\n           I = IR(K)<br>\n           J = IC(K)<br>\n           S = (X(I)+X(I)+1)*(X(J)*X(J)+X(J)+1)<br>\n           T = (X(J)+X(J)+1)*(X(I)*X(I)+X(I)+1)<br>\n           G(I) = G(I) + S<br>\n           G(J) = G(J) + T<br>\n20    CONTINUE<br>\n      RETURN<br>\n      END<br>\n=====================<br>\nC<br>\nC     COLVILLE 8<br>\nC<br>\n      REAL*8 Y(3),SS,TT<br>\n      REAL*8 X(10),LE(7),LI(10),U(300),G(7),DF(10),DG(7,10)<br>\n      REAL*8 A(7,10),B(1),BL(10),BU(10),W(200)<br>\n      REAL*8 CT,F,ER,PN,PNI,ST,TL,VALF<br>\n      real zzz(2)<br>\n      INTEGER IA(10),IO,IN,K,IT,L,LA,LG,LM,NL,N<br>\n      COMMON NF,NG,NDF,NDG<br>\n      EXTERNAL VALF,VALG,GRADF,GRADG<br>\n      DATA BL\/0.D0,0.D0,0.D0,0.D0,0.D0,85.D0,90.D0,3.D0,.01D0,145.D0\/<br>\n      DATA BU\/2000.,16000.D0,120.D0,5000.D0,2000.D0,93.D0,<br>\n     &amp;        95.D0,12.D0,4.D0,162.D0\/<br>\n      DATA X\/1745D0,12000.D0,110.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0,0.D0\/<br>\n      DF(1) =  5.04D0<br>\n      DF(2) = .035D0<br>\n      DF(3) = 10.<br>\n      DF(5) = 3.36D0<br>\n      DF(6) = 0.<br>\n      DF(8) = 0.<br>\n      DF(9) = 0.<br>\n      DF(10)= 0.<br>\n      DO 20 I = 1,7<br>\n           DO 10 J = 1,10<br>\n10              DG(I,J) = 0.<br>\n           DG(I,3+I) = 1.<br>\n20    CONTINUE<br>\n      NF = 0<br>\n      NG = 0<br>\n      NDF = 0<br>\n      NDG = 0<br>\nC<br>\nC     FEASIBLE STARTING GUESS<br>\nC<br>\n      CALL VALG(G,X)<br>\n      DO 30 I = 4,10<br>\n30         X(I) = -G(I-3)<br>\n      NG = NG &#8211; 1<br>\n      TL = .000001<br>\n      LM = 250<br>\n      PNI = 10<br>\n      L = 0<br>\n      N = 10<br>\n      IN = 4<br>\n      LA = 7<br>\n      LG = 7<br>\n      NL = 7<br>\n      ST = 0<br>\n      CT = 0.D-4<br>\n      strt = etime(zzz)<br>\n      CALL MIN(X,LE,LI,U,IA,K,F,G,DF,DG,ER,IT,ST,PN,IO,<br>\n     1  IN,TL,LM,PNI,A,LA,LG,L,NL,N,B,BL,BU,CT,VALF,VALG,GRADF,GRADG,W)<br>\n      CALL ERR(IO)<br>\n      time = etime(zzz) &#8211; strt<br>\n      write(6,*) &#8216;total time =&#8217;,time<br>\n      WRITE(6,*) &#8216;VALUE:&#8217;,F<br>\n      WRITE(6,*) &#8216;NUMBER OF F  EVALUATIONS:&#8217;,NF<br>\n      WRITE(6,*) &#8216;NUMBER OF G  EVALUATIONS:&#8217;,NG<br>\n      WRITE(6,*) &#8216;NUMBER OF DF EVALUATIONS:&#8217;,NDF<br>\n      WRITE(6,*) &#8216;NUMBER OF DG EVALUATIONS:&#8217;,NDG<br>\n      DATA Y\/1728.371286d0,16000d0,98.14151402d0\/<br>\n      TT = 0.<br>\n      SS = 0.<br>\n      DO 200 I = 1,3<br>\n           TT = TT + (X(I)-Y(I))**2<br>\n           SS = SS + Y(I)**2<br>\n           WRITE(6,*) I,Y(I),X(I)<br>\n200   CONTINUE<br>\n      SS = DSQRT(TT\/SS)<br>\n      WRITE(6,*) &#8216;RELATIVE ERROR:&#8217;,SS<br>\n      STOP<br>\n      END<br>\n      DOUBLE PRECISION FUNCTION VALF(X)<br>\n      REAL*8 X(1),T<br>\n      COMMON NF,NG,NDF,NDG<br>\n      NF = NF + 1<br>\n      T = 10.*X(3) + .035D0*X(2) + 3.36D0*X(5) + 5.04D0*X(1)<br>\n      T = T &#8211; .063D0*X(4)*X(7)<br>\n      VALF = T<br>\n      RETURN<br>\n      END<br>\n      SUBROUTINE GRADF(DF,X)<br>\n      REAL*8 DF(1),X(1)<br>\n      COMMON NF,NG,NDF,NDG<br>\n      NDF = NDF + 1<br>\n      DF(4) = -.063D0*X(7)<br>\n      DF(7) = -.063D0*X(4)<br>\n      END<br>\n      SUBROUTINE VALG(G,X)<br>\n      REAL*8 G(1),X(1)<br>\n      REAL*8 Y2,Y3,Y4,Y5,Y6,Y7,Y8,C2,C4<br>\n      COMMON NF,NG,NDF,NDG<br>\n      J1 = 0<br>\n      J2 = 0<br>\n      NG = NG + 1<br>\n      Y2 = 1.6D0*X(1)<br>\n10    Y3 = 1.22D0*Y2 &#8211; X(1)<br>\n      Y6 = (X(2)+Y3)\/X(1)<br>\n      C2 = X(1)*(1.12D0 + .13167D0*Y6-.6667D-2*Y6*Y6)<br>\n      IF ( DABS(C2-Y2) .LE. .001D0 ) GOTO 20<br>\n      Y2 = C2<br>\n      J1 = J1 + 1<br>\n      GOTO 10<br>\n20    Y4 = 93.<br>\n30    Y5 = 86.35D0 + 1.098D0*Y6 &#8211; .038D0*Y6*Y6 + .325D0*(Y4-89.)<br>\n      Y8 = -133. + 3.*Y5<br>\n      Y7 = 35.82D0 &#8211; .222D0*Y8<br>\n      C4 = 98000.*X(3)\/(Y2*Y7 + X(3)*1000)<br>\n      IF ( DABS(C4-Y4) .LE. .0001D0 ) GOTO 40<br>\n      Y4 = C4<br>\n      J2 = J2 + 1<br>\n      GOTO 30<br>\n40    G(1) = X(4) &#8211; Y2<br>\n      G(2) = X(5) &#8211; Y3<br>\n      G(3) = X(6) &#8211; Y4<br>\n      G(4) = X(7) &#8211; Y5<br>\n      G(5) = X(8) &#8211; Y6<br>\n      G(6) = X(9) &#8211; Y7<br>\n      G(7) = X(10) &#8211; Y8<br>\nc     WRITE(6,*) &#8216;J1,J2&#8217;,J1,J2<br>\n      RETURN<br>\n      END<br>\n      SUBROUTINE GRADG(DG,X)<br>\n      REAL*8 DG(7,1),X(1)<br>\n      REAL*8 Y2,Y3,Y4,Y5,Y6,Y7,Y8,C2,C4<br>\n      REAL*8 Y21,Y31,Y41,Y51,Y61,Y71,Y81<br>\n      REAL*8 Y22,Y32,Y42,Y52,Y62,Y72,Y82<br>\n      REAL*8 Y23,Y33,Y43,Y53,Y63,Y73,Y83<br>\n      COMMON NF,NG,NDF,NDG<br>\n      NDG = NDG + 1<br>\n      Y2 = 1.6D0*X(1)<br>\n      Y21 = 1.6D0<br>\n      Y22 = 0.<br>\n      Y23 = 0.<br>\n10    Y3 = 1.22D0*Y2 &#8211; X(1)<br>\n      Y31 = 1.22D0*Y21 &#8211; 1<br>\n      Y32 = 1.22D0*Y22<br>\n      Y33 = 1.22D0*Y23<br>\n      Y6 = (X(2)+Y3)\/X(1)<br>\n      Y61 = -(X(2)+Y3)\/X(1)**2 + Y31\/X(1)<br>\n      Y62 = (1.+Y32)\/X(1)<br>\n      Y63 = Y33\/X(1)<br>\n      C2 = X(1)*(1.12D0 + .13167D0*Y6-.6667D-2*Y6*Y6)<br>\n      IF ( DABS(C2-Y2) .LE. .001D0 ) GOTO 20<br>\n      Y2 = C2<br>\n      Y21 = X(1)*(.13167D0*Y61 &#8211; 2*.6667D-2*Y6*Y61)<br>\n      Y21 = Y21 + 1.12D0 + .13167D0*Y6 &#8211; .6667D-2*Y6*Y6<br>\n      Y22 = X(1)*(.13167D0*Y62 &#8211; 2.*.6667D-2*Y6*Y62)<br>\n      Y23 = X(1)*(.13167D0*Y63 &#8211; 2.*.6667D-2*Y6*Y63)<br>\n      GOTO 10<br>\n20    Y4 = 93.<br>\n      Y41 = 0.<br>\n      Y42 = 0.<br>\n      Y43 = 0.<br>\n30    Y5 = 86.35D0 + 1.098D0*Y6 &#8211; .038D0*Y6*Y6 + .325D0*(Y4-89.)<br>\n      Y51 = (1.098D0 &#8211; 2.*.038D0*Y6)*Y61 + .325D0*Y41<br>\n      Y52 = (1.098D0 &#8211; 2.*.038D0*Y6)*Y62 + .325D0*Y42<br>\n      Y53 = (1.098D0 &#8211; 2.*.038D0*Y6)*Y63 + .325D0*Y43<br>\n      Y8 = -133. + 3.*Y5<br>\n      Y81 = 3.*Y51<br>\n      Y82 = 3.*Y52<br>\n      Y83 = 3.*Y53<br>\n      Y7 = 35.82D0 &#8211; .222D0*Y8<br>\n      Y71 = -.222D0*Y81<br>\n      Y72 = -.222D0*Y82<br>\n      Y73 = -.222D0*Y83<br>\n      C4 = 98000.*X(3)\/(Y2*Y7 + X(3)*1000)<br>\n      IF ( DABS(C4-Y4) .LE. .0001D0 ) GOTO 40<br>\n      Y4 = C4<br>\n      Y41 = -98000.*X(3)*(Y21*Y7 + Y2*Y71)\/(Y2*Y7+X(3)*1000.)**2<br>\n      Y42 = -98000.*X(3)*(Y22*Y7 + Y2*Y72)\/(Y2*Y7+X(3)*1000.)**2<br>\n      Y43 = -98000.*X(3)*(Y23*Y7 + Y2*Y73 + 1000.)<br>\n      Y43 = (Y43\/(Y2*Y7+X(3)*1000.) + 98000.)\/(Y2*Y7+X(3)*1000.)<br>\n      GOTO 30<br>\n40    DG(1,1) = -Y21<br>\n      DG(1,2) = -Y22<br>\n      DG(1,3) = -Y23<br>\n      DG(2,1) = -Y31<br>\n      DG(2,2) = -Y32<br>\n      DG(2,3) = -Y33<br>\n      DG(3,1) = -Y41<br>\n      DG(3,2) = -Y42<br>\n      DG(3,3) = -Y43<br>\n      DG(4,1) = -Y51<br>\n      DG(4,2) = -Y52<br>\n      DG(4,3) = -Y53<br>\n      DG(5,1) = -Y61<br>\n      DG(5,2) = -Y62<br>\n      DG(5,3) = -Y63<br>\n      DG(6,1) = -Y71<br>\n      DG(6,2) = -Y72<br>\n      DG(6,3) = -Y73<br>\n      DG(7,1) = -Y81<br>\n      DG(7,2) = -Y82<br>\n      DG(7,3) = -Y83<br>\n      RETURN<br>\n      END<\/p>\n\n\n\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/section>\r\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1075,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"featured_post":"","footnotes":"","_links_to":"","_links_to_target":""},"class_list":["post-276","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/people.clas.ufl.edu\/hager\/wp-json\/wp\/v2\/pages\/276","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/people.clas.ufl.edu\/hager\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/people.clas.ufl.edu\/hager\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/people.clas.ufl.edu\/hager\/wp-json\/wp\/v2\/users\/1075"}],"replies":[{"embeddable":true,"href":"https:\/\/people.clas.ufl.edu\/hager\/wp-json\/wp\/v2\/comments?post=276"}],"version-history":[{"count":2,"href":"https:\/\/people.clas.ufl.edu\/hager\/wp-json\/wp\/v2\/pages\/276\/revisions"}],"predecessor-version":[{"id":801,"href":"https:\/\/people.clas.ufl.edu\/hager\/wp-json\/wp\/v2\/pages\/276\/revisions\/801"}],"wp:attachment":[{"href":"https:\/\/people.clas.ufl.edu\/hager\/wp-json\/wp\/v2\/media?parent=276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}