CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C This is an example call of MIDACO 6.0 C ------------------------------------- C C MIDACO solves Multi-Objective Mixed-Integer Non-Linear Problems: C C C Minimize F_1(X),... F_O(X) where X(1,...N-NI) is CONTINUOUS C and X(N-NI+1,...N) is DISCRETE C C subject to G_j(X) = 0 (j=1,...ME) equality constraints C G_j(X) >= 0 (j=ME+1,...M) inequality constraints C C and bounds XL <= X <= XU C C C The problem statement of this example is given below. You can use C this example as template to run your own problem. To do so: Replace C the objective functions 'F' (and in case the constraints 'G') given C here with your own problem and follow the below instruction steps. C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCC MAIN PROGRAM CCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC PROGRAM MAIN IMPLICIT NONE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C Dimensions of the optimization problem INTEGER O, N, NI, M, ME C Lower and upper bounds ('XL' & 'XU') and optimization variable 'X' DOUBLE PRECISION XL(1000), XU(1000), X(1000) C Objectives 'F(X)' and constraints 'G(X)' DOUBLE PRECISION F(10), G(1000) C MIDACO information and stop flags INTEGER IFLAG, ISTOP C MIDACO parameter DOUBLE PRECISION PARAM(13) C MIDACO integer 'IW' and real'RW' workspace and pareto front 'PF' INTEGER LIW, LRW, LPF PARAMETER (LIW = 50000, LRW = 50000, LPF = 50000) INTEGER IW(LIW) DOUBLE PRECISION RW(LRW),PF(LPF) C Parameter for stopping criteria, printing and license INTEGER MAXTIME, MAXEVAL, PRINTEVAL, SAVE2FILE, I CHARACTER*60 KEY KEY='************************************************************' CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCC Step 1: Problem definition CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C Step 1.A : Problem dimensions C CCCCCCCCCCCCCCCCCCCCCCCCCCCCC O = 1 ! Number of objectives N = 112 ! Number of variables (in total) NI = 54 ! Number of integer variables (0 <= NI <= N) M = 186 ! Number of constraints (in total) ME = 25 ! Number of equality constraints (0 <= ME <= M) C C Step 1.B : Lower and upper bounds: 'XL' and 'XU' C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC DO I = 1,58 XL(I) = -1.0D2 XU(I) = 1.0D2 ENDDO DO I=1,6 XL(I) = 5.7037824746562D0 XU(I) = 8.1605182474775D0 ENDDO DO I=7,12 XL(I) = 4.45966260231685D0 XU(I) = 6.09365548800453D0 ENDDO DO I=13,18 XL(I) = 3.74950407593037D0 XU(I) = 6.93674281585539D0 ENDDO DO I=19,24 XL(I) = 4.49144142065975D0 XU(I) = 6.87958440201544D0 ENDDO DO I=25,30 XL(I) = 3.14988295338125D0 XU(I) = 6.61295573876149D0 ENDDO DO I=31,36 XL(I) = 3.04452243772342D0 XU(I) = 6.65644085070123D0 ENDDO DO I=37,48 XL(I) = 0.0D0 XU(I) = 1.38629436111989D0 ENDDO DO I=49,53 XL(I) = 4.60517018598809D0 XU(I) = 9.61580548008435D0 ENDDO DO I = 59,N XL(I) = 0.0D0 XU(I) = 1.0D0 ENDDO XL(112) = 0.0D0 XU(112) = 0.0D0 C C Step 1.C : Starting point 'X' C CCCCCCCCCCCCCCCCCCCCCCCCCCCCC DO I = 1,N X(I) = XL(I) ! Here for example: starting point = lower bounds ENDDO CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCC Step 2: Choose stopping criteria and printing options CCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C Step 2.A : Stopping criteria C CCCCCCCCCCCCCCCCCCCCCCCCCCCC MAXEVAL = 999999999 ! Maximum evaluation budget (e.g. 1000000) MAXTIME = 60*60*24 ! Maximum time limit (e.g. 60*60*24 = 1 Day) C C Step 2.B : Printing options C CCCCCCCCCCCCCCCCCCCCCCCCCCC PRINTEVAL = 200000 ! Print-Frequency for current best solution (e.g. 1000) SAVE2FILE = 1 ! Save SCREEN and SOLUTION to TXT-files [0=NO/1=YES] CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCC Step 3: Choose MIDACO parameters (FOR ADVANCED USERS) CCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC PARAM( 1) = 0.1D0 ! ACCURACY PARAM( 2) = 6.0D0 ! SEED PARAM( 3) = 269590.2D0 ! FSTOP PARAM( 4) = 0.0D0 ! ALGOSTOP PARAM( 5) = 0.0D0 ! EVALSTOP PARAM( 6) = 0.0D0 ! FOCUS PARAM( 7) = 0.0D0 ! ANTS PARAM( 8) = 0.0D0 ! KERNEL PARAM( 9) = 0.0D0 ! ORACLE PARAM(10) = 0.0D0 ! PARETOMAX PARAM(11) = 0.0D0 ! EPSILON PARAM(12) = 0.0D0 ! BALANCE PARAM(13) = 0.0D0 ! CHARACTER CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C Call MIDACO by Reverse Communication C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C Print MIDACO headline with basic information CALL MIDACO_PRINT(1,PRINTEVAL,SAVE2FILE,IFLAG,ISTOP,F,G,X,XL, & XU,O,N,NI,M,ME,RW,PF,MAXEVAL,MAXTIME,PARAM,1,0,KEY) DO WHILE(ISTOP.EQ.0) !~~~Start~of~reverse~communication~loop C Evaluate Objective F(X) and constraints G(X) CALL PROBLEM_FUNCTION( F, G , X) C Call MIDACO CALL MIDACO(1,O,N,NI,M,ME,X,F,G,XL,XU,IFLAG, & ISTOP,PARAM,RW,LRW,IW,LIW,PF,LPF,KEY) C Call MIDACO printing routine CALL MIDACO_PRINT(2,PRINTEVAL,SAVE2FILE,IFLAG,ISTOP,F,G,X, & XL,XU,O,N,NI,M,ME,RW,PF,MAXEVAL,MAXTIME,PARAM,1,0,KEY) ENDDO !~~~~~~~~~~~~~~~~~~~~End~of~reverse~communication~loop CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC ! PRINT*," Solution F(1) = ", F(1) ! PRINT*," Solution G(1) = ", G(1) ! PRINT*," Solution X(1) = ", X(1) CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC END CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCC END OF MAIN CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCC OPTIMIZATION PROBLEM CCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC SUBROUTINE PROBLEM_FUNCTION(F,G,X) CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC IMPLICIT NONE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC DOUBLE PRECISION F(*),G(*),X(*) CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC double precision y(54), / x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, / x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, / x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, / x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, / x41, x42, x43, x44, x45, x46, x47, x48, x50, / x51, x52, x53, x54, x55, x56, x57, x58, x59, b60, / b61, b62, b63, b64, b65, b66, b67, b68, b69, b70, / b71, b72, b73, b74, b75, b76, b77, b78, b79, b80, / b81, b82, b83, b84, b85, b86, b87, b88, b89, b90, / b91, b92, b93, b94, b95, b96, b97, b98, b99,b100, / b101,b102,b103,b104,b105,b106,b107,b108,b109,b110, / b111,b112,b113 double precision / e1 ,e2, e3, e4, e5, e6, e7, e8, e9, e10, / e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, / e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, / e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, / e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, / e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, / e61, e62, e63, e64, e65, e66, e67, e68, e69, e70, / e71, e72, e73, e74, e75, e76, e77, e78, e79, e80, / e81, e82, e83, e84, e85, e86, e87, e88, e89, e90, / e91, e92, e93, e94, e95, e96, e97, e98, e99,e100, / e101,e102,e103,e104,e105,e106,e107,e108,e109,e110, / e111,e112,e113,e114,e115,e116,e117,e118,e119,e120, / e121,e122,e123,e124,e125,e126,e127,e128,e129,e130, / e131,e132,e133,e134,e135,e136,e137,e138,e139,e140, / e141,e142,e143,e144,e145,e146,e147,e148,e149,e150, / e151,e152,e153,e154,e155,e156,e157,e158,e159,e160, / e161,e162,e163,e164,e165,e166,e167,e168,e169,e170, / e171,e172,e173,e174,e175,e176,e177,e178,e179,e180, / e181,e182,e183,e184,e185,e186 integer i CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC do i=1,54 y(i) = x(58+i) enddo x1 = x(1) x2 = x(2) x3 = x(3) x4 = x(4) x5 = x(5) x6 = x(6) x7 = x(7) x8 = x(8) x9 = x(9) x10 = x(10) x11 = x(11) x12 = x(12) x13 = x(13) x14 = x(14) x15 = x(15) x16 = x(16) x17 = x(17) x18 = x(18) x19 = x(19) x20 = x(20) x21 = x(21) x22 = x(22) x23 = x(23) x24 = x(24) x25 = x(25) x26 = x(26) x27 = x(27) x28 = x(28) x29 = x(29) x30 = x(30) x31 = x(31) x32 = x(32) x33 = x(33) x34 = x(34) x35 = x(35) x36 = x(36) x37 = x(37) x38 = x(38) x39 = x(39) x40 = x(40) x41 = x(41) x42 = x(42) x43 = x(43) x44 = x(44) x45 = x(45) x46 = x(46) x47 = x(47) x48 = x(48) x50 = x(49) x51 = x(50) x52 = x(51) x53 = x(52) x54 = x(53) x55 = x(54) x56 = x(55) x57 = x(56) x58 = x(57) x59 = x(58) b60 = y(1) b61 = y(2) b62 = y(3) b63 = y(4) b64 = y(5) b65 = y(6) b66 = y(7) b67 = y(8) b68 = y(9) b69 = y(10) b70 = y(11) b71 = y(12) b72 = y(13) b73 = y(14) b74 = y(15) b75 = y(16) b76 = y(17) b77 = y(18) b78 = y(19) b79 = y(20) b80 = y(21) b81 = y(22) b82 = y(23) b83 = y(24) b84 = y(25) b85 = y(26) b86 = y(27) b87 = y(28) b88 = y(29) b89 = y(30) b90 = y(31) b91 = y(32) b92 = y(33) b93 = y(34) b94 = y(35) b95 = y(36) b96 = y(37) b97 = y(38) b98 = y(39) b99 = y(40) b100 = y(41) b101 = y(42) b102 = y(43) b103 = y(44) b104 = y(45) b105 = y(46) b106 = y(47) b107 = y(48) b108 = y(49) b109 = y(50) b110 = y(51) b111 = y(52) b112 = y(53) b113 = y(54) f(1) = 250.0d0*(dexp(0.6d0*x1 + x37 + x43) / + dexp(0.6d0*x2 + x38 + x44) + dexp(0.6d0*x3 + x39 + x45) / + dexp(0.6d0*x4 + x40 + x46) + dexp(0.6d0*x5 + x41 + x47) / + dexp(0.6d0*x6 + x42 + x48)) / + 150.0d0*(dexp(0.5d0*x50) + dexp(0.5d0*x51) + dexp(0.5d0*x52) / + dexp(0.5d0*x53) + dexp(0.5d0*x54)) e1 = x1 - x7 + x37 - 2.06686275947298 e2 = x2 - x8 + x38 - 0.693147180559945 e3 = x3 - x9 + x39 - 1.64865862558738 e4 = x4 - x10 + x40 - 1.58923520511658 e5 = x5 - x11 + x41 - 1.80828877117927 e6 = x6 - x12 + x42 - 1.43508452528932 e7 = x1 - x13 + x37 + 0.356674943938732 e8 = x2 - x14 + x38 + 0.22314355131421 e9 = x3 - x15 + x39 + 0.105360515657826 e10 = x4 - x16 + x40 - 1.22377543162212 e11 = x5 - x17 + x41 - 0.741937344729377 e12 = x6 - x18 + x42 - 0.916290731874155 e13 = x1 - x19 + x37 + 0.356674943938732 e14 = x2 - x20 + x38 - 0.955511445027436 e15 = x3 - x21 + x39 - 0.470003629245736 e16 = x4 - x22 + x40 - 1.28093384546206 e17 = x5 - x23 + x41 - 1.16315080980568 e18 = x6 - x24 + x42 - 1.06471073699243 e19 = x1 - x25 + x37 - 1.54756250871601 e20 = x2 - x26 + x38 - 0.832909122935104 e21 = x3 - x27 + x39 - 0.470003629245736 e22 = x4 - x28 + x40 - 0.993251773010283 e23 = x5 - x29 + x41 - 0.182321556793955 e24 = x6 - x30 + x42 - 0.916290731874155 e25 = x1 - x31 + x37 - 0.182321556793955 e26 = x2 - x32 + x38 - 1.28093384546206 e27 = x3 - x33 + x39 - 0.8754687373539 e28 = x4 - x34 + x40 - 1.50407739677627 e29 = x5 - x35 + x41 - 0.470003629245736 e30 = x6 - x36 + x42 - 0.741937344729377 e31 = x7 + x43 + x55 - 1.85629799036563 e32 = x8 + x44 + x55 - 1.54756250871601 e33 = x9 + x45 + x55 - 2.11625551480255 e34 = x10 + x46 + x55 - 1.3609765531356 e35 = x11 + x47 + x55 - 0.741937344729377 e36 = x12 + x48 + x55 - 0.182321556793955 e37 = x13 + x43 + x56 - 1.91692261218206 e38 = x14 + x44 + x56 - 1.85629799036563 e39 = x15 + x45 + x56 - 1.87180217690159 e40 = x16 + x46 + x56 - 1.48160454092422 e41 = x17 + x47 + x56 - 0.832909122935104 e42 = x18 + x48 + x56 - 1.16315080980568 e43 = x19 + x43 + x57 e44 = x20 + x44 + x57 - 1.84054963339749 e45 = x21 + x45 + x57 - 1.68639895357023 e46 = x22 + x46 + x57 - 2.47653840011748 e47 = x23 + x47 + x57 - 1.7404661748405 e48 = x24 + x48 + x57 - 1.82454929205105 e49 = x25 + x43 + x58 - 1.16315080980568 e50 = x26 + x44 + x58 - 1.09861228866811 e51 = x27 + x45 + x58 - 1.25276296849537 e52 = x28 + x46 + x58 - 1.19392246847243 e53 = x29 + x47 + x58 - 1.02961941718116 e54 = x30 + x48 + x58 - 1.22377543162212 e55 = x31 + x43 + x59 - 0.741937344729377 e56 = x32 + x44 + x59 - 0.916290731874155 e57 = x33 + x45 + x59 - 1.43508452528932 e58 = x34 + x46 + x59 - 1.28093384546206 e59 = x35 + x47 + x59 - 1.30833281965018 e60 = x36 + x48 + x59 - 0.78845736036427 e61 = 250000.0d0*dexp(x55) + 150000.0d0*dexp(x56) / + 180000.0d0*dexp(x57) + 160000.0d0*dexp(x58) / + 120000.0d0*dexp(x59) - 6000.0d0 e62 = - x8 + x50 - 10.0d0*b108 + 7.69741490700595 e63 = - x9 + x51 - 10.0d0*b109 + 7.69741490700595 e64 = - x10 + x52 - 10.0d0*b110 + 7.69741490700595 e65 = - x11 + x53 - 10.0d0*b111 + 7.69741490700595 e66 = - x12 + x54 - 10.0d0*b112 + 7.69741490700595 e67 = - x14 + x50 - 10.0d0*b108 + 7.69741490700595 e68 = - x15 + x51 - 10.0d0*b109 + 7.69741490700595 e69 = - x16 + x52 - 10.0d0*b110 + 7.69741490700595 e70 = - x17 + x53 - 10.0d0*b111 + 7.69741490700595 e71 = - x18 + x54 - 10.0d0*b112 + 7.69741490700595 e72 = - x20 + x50 - 10.0d0*b108 + 7.69741490700595 e73 = - x21 + x51 - 10.0d0*b109 + 7.69741490700595 e74 = - x22 + x52 - 10.0d0*b110 + 7.69741490700595 e75 = - x23 + x53 - 10.0d0*b111 + 7.69741490700595 e76 = - x24 + x54 - 10.0d0*b112 + 7.69741490700595 e77 = - x26 + x50 - 10.0d0*b108 + 7.69741490700595 e78 = - x27 + x51 - 10.0d0*b109 + 7.69741490700595 e79 = - x28 + x52 - 10.0d0*b110 + 7.69741490700595 e80 = - x29 + x53 - 10.0d0*b111 + 7.69741490700595 e81 = - x30 + x54 - 10.0d0*b112 + 7.69741490700595 e82 = - x32 + x50 - 10.0d0*b108 + 7.69741490700595 e83 = - x33 + x51 - 10.0d0*b109 + 7.69741490700595 e84 = - x34 + x52 - 10.0d0*b110 + 7.69741490700595 e85 = - x35 + x53 - 10.0d0*b111 + 7.69741490700595 e86 = - x36 + x54 - 10.0d0*b112 + 7.69741490700595 e87 = - x7 + x50 - 10.0d0*b108 + 7.69741490700595 e88 = - x8 + x51 - 10.0d0*b109 + 7.69741490700595 e89 = - x9 + x52 - 10.0d0*b110 + 7.69741490700595 e90 = - x10 + x53 - 10.0d0*b111 + 7.69741490700595 e91 = - x11 + x54 - 10.0d0*b112 + 7.69741490700595 e92 = - x13 + x50 - 10.0d0*b108 + 7.69741490700595 e93 = - x14 + x51 - 10.0d0*b109 + 7.69741490700595 e94 = - x15 + x52 - 10.0d0*b110 + 7.69741490700595 e95 = - x16 + x53 - 10.0d0*b111 + 7.69741490700595 e96 = - x17 + x54 - 10.0d0*b112 + 7.69741490700595 e97 = - x19 + x50 - 10.0d0*b108 + 7.69741490700595 e98 = - x20 + x51 - 10.0d0*b109 + 7.69741490700595 e99 = - x21 + x52 - 10.0d0*b110 + 7.69741490700595 e100 = - x22 + x53 - 10.0d0*b111 + 7.69741490700595 e101 = - x23 + x54 - 10.0d0*b112 + 7.69741490700595 e102 = - x25 + x50 - 10.0d0*b108 + 7.69741490700595 e103 = - x26 + x51 - 10.0d0*b109 + 7.69741490700595 e104 = - x27 + x52 - 10.0d0*b110 + 7.69741490700595 e105 = - x28 + x53 - 10.0d0*b111 + 7.69741490700595 e106 = - x29 + x54 - 10.0d0*b112 + 7.69741490700595 e107 = - x31 + x50 - 10.0d0*b108 + 7.69741490700595 e108 = - x32 + x51 - 10.0d0*b109 + 7.69741490700595 e109 = - x33 + x52 - 10.0d0*b110 + 7.69741490700595 e110 = - x34 + x53 - 10.0d0*b111 + 7.69741490700595 e111 = - x35 + x54 - 10.0d0*b112 + 7.69741490700595 e112 = x37 - 0.693147180559945*b66 - 1.09861228866811*b72 / - 1.38629436111989*b78 e113 = x38 - 0.693147180559945*b67 - 1.09861228866811*b73 / - 1.38629436111989*b79 e114 = x39 - 0.693147180559945*b68 - 1.09861228866811*b74 / - 1.38629436111989*b80 e115 = x40 - 0.693147180559945*b69 - 1.09861228866811*b75 / - 1.38629436111989*b81 e116 = x41 - 0.693147180559945*b70 - 1.09861228866811*b76 / - 1.38629436111989*b82 e117 = x42 - 0.693147180559945*b71 - 1.09861228866811*b77 / - 1.38629436111989*b83 e118 = x43 - 0.693147180559945*b90 - 1.09861228866811*b96 / - 1.38629436111989*b102 e119 = x44 - 0.693147180559945*b91 - 1.09861228866811*b97 / - 1.38629436111989*b103 e120 = x45 - 0.693147180559945*b92 - 1.09861228866811*b98 / - 1.38629436111989*b104 e121 = x46 - 0.693147180559945*b93 - 1.09861228866811*b99 / - 1.38629436111989*b105 e122 = x47 - 0.693147180559945*b94 - 1.09861228866811*b100 / - 1.38629436111989*b106 e123 = x48 - 0.693147180559945*b95 - 1.09861228866811*b101 / - 1.38629436111989*b107 e124 = b60 + b66 + b72 + b78 - 1.0d0 e125 = b61 + b67 + b73 + b79 - 1.0d0 e126 = b62 + b68 + b74 + b80 - 1.0d0 e127 = b63 + b69 + b75 + b81 - 1.0d0 e128 = b64 + b70 + b76 + b82 - 1.0d0 e129 = b65 + b71 + b77 + b83 - 1.0d0 e130 = b84 + b90 + b96 + b102 - 1.0d0 e131 = b85 + b91 + b97 + b103 - 1.0d0 e132 = b86 + b92 + b98 + b104 - 1.0d0 e133 = b87 + b93 + b99 + b105 - 1.0d0 e134 = b88 + b94 + b100 + b106 - 1.0d0 e135 = b89 + b95 + b101 + b107 - 1.0d0 e136 = b108 + b109 + b110 + b111 + b112 + b113 - 1.0d0 e137 = x7 - x8 - 0.693147180559945*b108 e138 = x8 - x9 - 0.693147180559945*b109 e139 = x9 - x10 - 0.693147180559945*b110 e140 = x10 - x11 - 0.693147180559945*b111 e141 = x11 - x12 - 0.693147180559945*b112 e142 = x13 - x14 - 0.693147180559945*b108 e143 = x14 - x15 - 0.693147180559945*b109 e144 = x15 - x16 - 0.693147180559945*b110 e145 = x16 - x17 - 0.693147180559945*b111 e146 = x17 - x18 - 0.693147180559945*b112 e147 = x19 - x20 - 0.693147180559945*b108 e148 = x20 - x21 - 0.693147180559945*b109 e149 = x21 - x22 - 0.693147180559945*b110 e150 = x22 - x23 - 0.693147180559945*b111 e151 = x23 - x24 - 0.693147180559945*b112 e152 = x25 - x26 - 0.693147180559945*b108 e153 = x26 - x27 - 0.693147180559945*b109 e154 = x27 - x28 - 0.693147180559945*b110 e155 = x28 - x29 - 0.693147180559945*b111 e156 = x29 - x30 - 0.693147180559945*b112 e157 = x31 - x32 - 0.693147180559945*b108 e158 = x32 - x33 - 0.693147180559945*b109 e159 = x33 - x34 - 0.693147180559945*b110 e160 = x34 - x35 - 0.693147180559945*b111 e161 = x35 - x36 - 0.693147180559945*b112 e162 = x7 - x8 + 0.693147180559945*b108 e163 = x8 - x9 + 0.693147180559945*b109 e164 = x9 - x10 + 0.693147180559945*b110 e165 = x10 - x11 + 0.693147180559945*b111 e166 = x11 - x12 + 0.693147180559945*b112 e167 = x13 - x14 + 0.693147180559945*b108 e168 = x14 - x15 + 0.693147180559945*b109 e169 = x15 - x16 + 0.693147180559945*b110 e170 = x16 - x17 + 0.693147180559945*b111 e171 = x17 - x18 + 0.693147180559945*b112 e172 = x19 - x20 + 0.693147180559945*b108 e173 = x20 - x21 + 0.693147180559945*b109 e174 = x21 - x22 + 0.693147180559945*b110 e175 = x22 - x23 + 0.693147180559945*b111 e176 = x23 - x24 + 0.693147180559945*b112 e177 = x25 - x26 + 0.693147180559945*b108 e178 = x26 - x27 + 0.693147180559945*b109 e179 = x27 - x28 + 0.693147180559945*b110 e180 = x28 - x29 + 0.693147180559945*b111 e181 = x29 - x30 + 0.693147180559945*b112 e182 = x31 - x32 + 0.693147180559945*b108 e183 = x32 - x33 + 0.693147180559945*b109 e184 = x33 - x34 + 0.693147180559945*b110 e185 = x34 - x35 + 0.693147180559945*b111 e186 = x35 - x36 + 0.693147180559945*b112 g(1) = e112 g(2) = e113 g(3) = e114 g(4) = e115 g(5) = e116 g(6) = e117 g(7) = e118 g(8) = e119 g(9) = e120 g(10) = e121 g(11) = e122 g(12) = e123 g(13) = e124 g(14) = e125 g(15) = e126 g(16) = e127 g(17) = e128 g(18) = e129 g(19) = e130 g(20) = e131 g(21) = e132 g(22) = e133 g(23) = e134 g(24) = e135 g(25) = e136 g(26) = e1 g(27) = e2 g(28) = e3 g(29) = e4 g(30) = e5 g(31) = e6 g(32) = e7 g(33) = e8 g(34) = e9 g(35) = e10 g(36) = e11 g(37) = e12 g(38) = e13 g(39) = e14 g(40) = e15 g(41) = e16 g(42) = e17 g(43) = e18 g(44) = e19 g(45) = e20 g(46) = e21 g(47) = e22 g(48) = e23 g(49) = e24 g(50) = e25 g(51) = e26 g(52) = e27 g(53) = e28 g(54) = e29 g(55) = e30 g(56) = e31 g(57) = e32 g(58) = e33 g(59) = e34 g(60) = e35 g(61) = e36 g(62) = e37 g(63) = e38 g(64) = e39 g(65) = e40 g(66) = e41 g(67) = e42 g(68) = e43 g(69) = e44 g(70) = e45 g(71) = e46 g(72) = e47 g(73) = e48 g(74) = e49 g(75) = e50 g(76) = e51 g(77) = e52 g(78) = e53 g(79) = e54 g(80) = e55 g(81) = e56 g(82) = e57 g(83) = e58 g(84) = e59 g(85) = e60 g(86) = -e61 g(87) = e62 g(88) = e63 g(89) = e64 g(90) = e65 g(91) = e66 g(92) = e67 g(93) = e68 g(94) = e69 g(95) = e70 g(96) = e71 g(97) = e72 g(98) = e73 g(99) = e74 g(100) = e75 g(101) = e76 g(102) = e77 g(103) = e78 g(104) = e79 g(105) = e80 g(106) = e81 g(107) = e82 g(108) = e83 g(109) = e84 g(110) = e85 g(111) = e86 g(112) = e87 g(113) = e88 g(114) = e89 g(115) = e90 g(116) = e91 g(117) = e92 g(118) = e93 g(119) = e94 g(120) = e95 g(121) = e96 g(122) = e97 g(123) = e98 g(124) = e99 g(125) = e100 g(126) = e101 g(127) = e102 g(128) = e103 g(129) = e104 g(130) = e105 g(131) = e106 g(132) = e107 g(133) = e108 g(134) = e109 g(135) = e110 g(136) = e111 g(137) = -e137 g(138) = -e138 g(139) = -e139 g(140) = -e140 g(141) = -e141 g(142) = -e142 g(143) = -e143 g(144) = -e144 g(145) = -e145 g(146) = -e146 g(147) = -e147 g(148) = -e148 g(149) = -e149 g(150) = -e150 g(151) = -e151 g(152) = -e152 g(153) = -e153 g(154) = -e154 g(155) = -e155 g(156) = -e156 g(157) = -e157 g(158) = -e158 g(159) = -e159 g(160) = -e160 g(161) = -e161 g(162) = e162 g(163) = e163 g(164) = e164 g(165) = e165 g(166) = e166 g(167) = e167 g(168) = e168 g(169) = e169 g(170) = e170 g(171) = e171 g(172) = e172 g(173) = e173 g(174) = e174 g(175) = e175 g(176) = e176 g(177) = e177 g(178) = e178 g(179) = e179 g(180) = e180 g(181) = e181 g(182) = e182 g(183) = e183 g(184) = e184 g(185) = e185 g(186) = e186 END function sqr(x) double precision sqr, x sqr = x*x end CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCC END OF FILE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC