****************************************************************** * Subroutine inipoint * * =================== * * Final * * Subroutine for initial point specification. * * This is an user subroutine * * * * The calling sequence is: * * * * call inipoint(n,x,nexp) * * where: * * n (integer) the number of variables, * * x (double) array with the initial point. * * nexp (integer) parameter specifying the number of the * * problem considered in a train of experiments. * * * * Neculai Andrei * ****************************************************************** ****************************************************************** subroutine inipoint(n,x, nexp) C This subroutine computes the initial point real*8 x(n) go to ( 1, 2, 3, 4, 5, 6, 7, 8, 9,10, * 11,12,13,14,15,16,17,18,19,20, * 21,22,23,24,25,26,27,28,29,30, * 31,32,33,34,35,36,37,38,39,40, * 41,42,43,44,45,46,47,48,49,50, * 51,52,53,54,55,56,57,58,59,60, * 61,62,63,64,65,66,67,68,69,70, * 71,72,73,74,75) nexp 1 continue c Freudenstein & Roth - FREUROTH (CUTE) i=1 991 x(i) = 0.5d0 x(i+1)= -2.d0 i=i+2 if(i.le.n) go to 991 return 2 continue c Trigonometric do i=1,n x(i) = 0.2d0 end do return 3 continue c Extended Rosenbrock SROSENBR (CUTE) i=1 993 x(i) = -1.2d0 x(i+1)= 1.d0 i=i+2 if(i.le.n) go to 993 return 4 continue c Extended White & Holst i=1 994 x(i) = -1.2d0 x(i+1)= 1.d0 i=i+2 if(i.le.n) go to 994 return 5 continue c Extended Beale i=1 995 x(i) = 1.d0 x(i+1)= 0.8d0 i=i+2 if(i.le.n) go to 995 return 6 continue c Penalty do i=1,n x(i) = float(i) end do return 7 continue c Perturbed Quadratic do i=1,n x(i) = 0.5d0 end do return 8 continue c Raydan 1 do i=1,n x(i) = 1.d0 end do return 9 continue c Raydan 2 do i=1,n x(i) = 1.d0 end do return 10 continue c Diagonal 1 do i=1,n x(i) = 10.d0 end do return 11 continue c Diagonal 2 do i=1,n x(i) = 1.d0/float(i) end do return 12 continue c Diagonal 3 do i=1,n x(i) = 1.d0 end do return 13 continue c Hager do i=1,n x(i) = 1.d0 end do return 14 continue c Generalized Tridiagonal 1 do i=1,n x(i) = 2.d0 end do return 15 continue c Extended Tridiagonal 1 do i=1,n x(i) = 2.d0 end do return 16 continue c Extended Three Expo Terms do i=1,n x(i) = 0.1d0 end do return 17 continue c Generalized Tridiagonal 2 do i=1,n x(i) = -1.d0 end do return 18 continue c Diagonal 4 do i=1,n x(i) = 1.d0 end do return 19 continue c Diagonal 5 do i=1,n x(i) = 1.1d0 end do return 20 continue c Extended Himmelblau do i=1,n x(i) = 1.d0 end do return 21 continue c Generalized PSC1 i=1 9921 x(i) = 3.d0 x(i+1)= 0.1d0 i=i+2 if(i.le.n) go to 9921 return 22 continue c Extended PSC1 i=1 9922 x(i) = 3.d0 x(i+1)= 0.1d0 i=i+2 if(i.le.n) go to 9922 return 23 continue c Extended Powell i=1 9923 x(i) = 3.d0 x(i+1)= -1.d0 x(i+2)= 0.d0 x(i+3)= 1.d0 i=i+4 if(i.le.n) go to 9923 return 24 continue c Extended BD1 do i=1,n x(i) = 0.1d0 end do return 25 continue c Extended Maratos i=1 9925 x(i) = 1.1d0 x(i+1)= 0.1d0 i=i+2 if(i.le.n) go to 9925 return 26 continue c Extended Cliff i=1 9926 x(i) = 0.d0 x(i+1)= -0.1d0 i=i+2 if(i.le.n) go to 9926 return 27 continue c Quadratic Diagonal Perturbed do i=1,n x(i) = 0.5d0 end do return 28 continue c Extended Wood WOODS (CUTE) i=1 9928 x(i) = -3.d0 x(i+1)= -1.d0 x(i+2)= -3.d0 x(i+3)= -1.d0 i=i+4 if(i.le.n) go to 9928 return 29 continue c Extended Hiebert do i=1,n x(i) = 0.0001d0 end do return 30 continue c Quadratic QF1 do i=1,n x(i) = 1.d0 end do return 31 continue c Extended Quadratic Penalty QP1 do i=1,n x(i) = 1.d0 end do return 32 continue c Extended Quadratic Penalty QP2 do i=1,n x(i) = 1.d0 end do return 33 continue c Quadratic QF2 do i=1,n x(i) = 0.5d0 end do return 34 continue c Extended EP1 do i=1,n x(i) = 1.5d0 end do return 35 continue c Extended Tridiagonal 2 do i=1,n x(i) = 1.d0 end do return 36 continue c BDQRTIC (CUTE) do i=1,n x(i) = 1.d0 end do return 37 continue c TRIDIA (CUTE) do i=1,n x(i) = 1.d0 end do return 38 continue c ARWHEAD (CUTE) do i=1,n x(i) = 1.d0 end do return 39 continue c NONDIA (CUTE) do i=1,n x(i) = -1.d0 end do return 40 continue c NONDQUAR (CUTE) i=1 9940 x(i) = 1.d0 x(i+1)= -1.d0 i=i+2 if(i.le.n) go to 9940 return 41 continue c DQDRTIC (CUTE) do i=1,n x(i) = 3.d0 end do return 42 continue c EG2 (CUTE) do i=1,n x(i) = 1.d0 end do return 43 continue c DIXMAANA (CUTE) do i=1,n x(i) = 2.d0 end do return 44 continue c DIXMAANB (CUTE) do i=1,n x(i) = 2.d0 end do return 45 continue c DIXMAANC (CUTE) do i=1,n x(i) = 2.d0 end do return 46 continue c DIXMAANE (CUTE) do i=1,n x(i) = 2.d0 end do return 47 continue c Partial Perturbed Quadratic do i=1,n x(i) = 0.5d0 end do return 48 continue c Broyden Tridiagonal do i=1,n x(i) = -1.d0 end do return 49 continue c Almost Perturbed Quadratic do i=1,n x(i) = 0.5d0 end do return 50 continue c Tridiagonal Perturbed Quadratic do i=1,n x(i) = 0.5d0 end do return 51 continue c EDENSCH (CUTE) do i=1,n x(i) = 0.0d0 end do return 52 continue c VARDIM (CUTE) do i=1,n x(i) = 1.d0- float(i)/float(n) end do return 53 continue c STAIRCASE S1 do i=1,n x(i) = 1.0d0 end do return 54 continue c LIARWHD (CUTE) do i=1,n x(i) = 4.d0 end do return 55 continue c DIAGONAL 6 do i=1,n x(i) = 1.d0 end do return 56 continue c DIXON3DQ (CUTE) do i=1,n x(i) = -1.d0 end do return 57 continue c ENGVAL1 (CUTE) do i=1,n x(i) = 2.d0 end do return 58 continue c DENSCHNA (CUTE) do i=1,n x(i) = 2.d0 end do return 59 continue c DENSCHNC (CUTE) do i=1,n x(i) = 2.d0 end do return 60 continue c DENSCHNB (CUTE) do i=1,n x(i) = 1.d0 end do return 61 continue c DENSCHNF (CUTE) i=1 9961 x(i) = 2.d0 x(i+1)= 0.d0 i=i+2 if(i.le.n) go to 9961 return 62 continue c SINQUAD (CUTE) do i=1,n x(i) = 0.1d0 end do return 63 continue c BIGGSB1 (CUTE) do i=1,n x(i) = 0.d0 end do return 64 continue c Extended Block-Diagonal BD2 i=1 9964 x(i) = 1.5d0 x(i+1)= 2.d0 i=i+2 if(i.le.n) go to 9964 return 65 continue c Generalized quartic GQ1 do i=1,n x(i) = 1.d0 end do return 66 continue c DIAGONAL 7 do i=1,n x(i) = 0.d0 end do return 67 continue c DIAGONAL 8 do i=1,n x(i) = 1.d0 end do return 68 continue c Full Hessian do i=1,n x(i) = 1.d0 end do return 69 continue c SINCOS i=1 9969 x(i) = 3.d0 x(i+1)= 0.1d0 i=i+2 if(i.le.n) go to 9969 return 70 continue c Generalized quartic GQ2 i=1 9970 x(i) = -1.2d0 x(i+1)= 1.d0 i=i+2 if(i.le.n) go to 9970 return 71 continue c EXTROSNB (CUTE) i=1 9971 x(i) = -1.2d0 x(i+1)= 1.d0 i=i+2 if(i.le.n) go to 9971 return 72 continue c ARGLINB (CUTE) i=1 9972 x(i) = 0.01d0 x(i+1)= 0.001d0 i=i+2 if(i.le.n) go to 9972 return 73 continue c FLETCHCR (CUTE) do i=1,n x(i) = 0.5d0 end do return 74 continue c HIMMELBG (CUTE) do i=1,n x(i) = 1.5d0 end do return 75 continue c HIMMELBH (CUTE) i=1 9975 x(i) = 0.0d0 x(i+1)= 2.0d0 i=i+2 if(i.le.n) go to 9975 return end c------------------------------------------------ End INIPOINT c END. Last line of this program. (Neculai Andrei)