<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=WordSection1>
<p class=MsoNormal><span style='color:#1F497D'>All;<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>I have resolved this issue.
I am able to use the pre-compiled IPOPT binaries with the C interface received
from </span><a href="https://www.coin-or.org/download/binary/Ipopt/">https://www.coin-or.org/download/binary/Ipopt/</a><span
style='color:#1F497D'> (i.e., Ipopt38.dll and Ipopt.lib) where I have
embedded the Intel Fortran code below for example HS071.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>This Fortran code does not use
the IPOPT “Fortran interface” but the “C interface” and
to resolve the issue of the “TASK” in the Jacobian and Hessian sparsity-pattern
initialization I use the “optional” arguments in Fortran 90 and the
intrinsic function PRESENT() to determine if an argument is NULL.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>To resolve the issue of the
user-data derived-type C integer pointer I pass the user-data derived-type pointer
as an integer to IpoptSolve() using the Fortran 90 LOC(type_userdata) then when
required in a callback routine I use the Fortran 90 statement “pointer(ptr_userdata,type_userdata)”
to point to the address of the derived-type of user-data. Unfortunately
at the moment the dimensions in the derived-type need to be known at compile
time statically – alternatively a Fortran 90 module or simply a common
block can be used to pass user-data to the callbacks.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>If you search on “!jdk”
you can see all of the changes I made to the file hs071_f.f.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>All the best - Jeff<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Copyright (C) 2002, 2004, 2005, 2006
Carnegie Mellon University and others.<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C All Rights Reserved.<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C This code is published under the
Common Public License.<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C $Id: hs071_f.f.in
661 2006-03-12 23:19:03Z andreasw $<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
=============================================================================<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C This is an
example for the usage of IPOPT.<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C It implements
problem 71 from the Hock-Schittkowsky test suite:<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
min x1*x4*(x1 + x2 + x3) + x3<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C s.t.
x1*x2*x3*x4
>= 25<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
x1**2 + x2**2 + x3**2 + x4**2 = 40<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
1 <= x1,x2,x3,x4 <= 5<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Starting
point:<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
x = (1, 5, 5, 1)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Optimal
solution:<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
x = (1.00000000, 4.74299963, 3.82114998, 1.37940829)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
=============================================================================<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
=============================================================================<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
Main driver program<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C =============================================================================<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>program</span></b> example<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>implicit none</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C include the
Ipopt return codes<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>include</span></b> <span style='color:maroon'>'IpReturnCodes.inc'<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Size of the
problem (number of variables and equality constraints)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>
N, M,
NELE_JAC, NELE_HESS,
IDX_STY<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>parameter</span></b> (N = 4, M = 2, NELE_JAC = 8,
NELE_HESS = 10)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>parameter</span></b> (IDX_STY = 1 )<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Space for
multipliers and constraints<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>double precision</span></b> LAM(M)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>double precision</span></b> G(M)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Vector of
variables<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>double precision</span></b> X(N)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Vector of
lower and upper bounds<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>double precision</span></b> X_L(N), X_U(N), Z_L(N), Z_U(N)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>double precision</span></b> G_L(M), G_U(M)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Private data
for evaluation routines<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C This could be
used to pass double precision and integer arrays untouched<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C to the
evaluation subroutines EVAL_*<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>double precision</span></b> DAT(2)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> IDAT(1)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Place for
storing the Ipopt Problem Handle<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C for 32 bit
platforms<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> IPROBLEM<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! integer
IPCREATE<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>CC for 64 bit
platforms:<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
integer*8 IPROBLEM<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
integer*8 IPCREATE<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> IERR<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> IPSOLVE, IPADDSTROPTION<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> IPADDNUMOPTION, IPADDINTOPTION<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> IPOPENOUTPUTFILE<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>double precision</span></b> f<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> i<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Set initial
point and bounds:<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>data</span></b> X / 1d0, 5d0, 5d0, 1d0/<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>data</span></b> X_L / 1d0, 1d0, 1d0, 1d0 /<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>data</span></b> X_U / 5d0, 5d0, 5d0, 5d0 /<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Set bounds for
the constraints<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>data</span></b> G_L / 25d0, 40d0 /<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>data</span></b> G_U / 1d40, 40d0 /<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C The following
are the Fortran routines for computing the model<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C functions and
their derivatives - their code can be found furhter<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C down in this
file.<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! external
EV_F, EV_G, EV_GRAD_F, EV_JAC_G, EV_HESS<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>interface</span></b> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> <b><span style='color:blue'>function</span></b>
CreateIpoptProblem(N,X_L,X_U,M,G_L,G_U,NELE_JAC<span style='color:green;
background:silver;mso-highlight:silver'>,NELE_HE</span><span style='color:green;
background:yellow;mso-highlight:yellow'>SS,IDX_STY,<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New";color:white;background:green;
mso-highlight:green'>&</span><span style='font-size:10.0pt;font-family:
"Courier New"'>
EV_F,EV_G,EV_GRAD_F,EV_JAC_G<span style='color:green;background:silver;
mso-highlight:silver'>,EV_HESS</span><span style='color:green;background:yellow;
mso-highlight:yellow'>)<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES DLLIMPORT, STDCALL,
ALIAS : "_CreateIpoptProblem" :: CreateIpoptProblem</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> :: N<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: N
</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b> :: X_L(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: X_L
</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b> :: X_U(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: X_U</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> :: M<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: M
</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b> :: G_L(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: G_L
</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b> :: G_U(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: G_U</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> :: NELE_JAC<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: NELE_JAC
</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> :: NELE_HESS<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: NELE_HESS </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> :: IDX_STY<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: IDX_STY</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>external</span></b> :: EV_F <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: EV_F</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>external</span></b> :: EV_G <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: EV_G</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>external</span></b> :: EV_GRAD_F<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: EV_GRAD_F</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>external</span></b> ::
EV_JAC_G <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: EV_JAC_G</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>external</span></b> :: EV_HESS <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: EV_HESS</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end function</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:blue'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> <b><span style='color:blue'>function</span></b>
AddIpoptIntOption(IPROBLEM,KEYWORD,OPTION)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES DLLIMPORT, STDCALL,
ALIAS : "_AddIpoptIntOption" :: AddIpoptIntOption</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> :: IPROBLEM<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: IPROBLEM
</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>character</span></b>(*) :: KEYWORD<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: KEYWORD </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> :: OPTION <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE ::
OPTION </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end function</span></b>
<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> <b><span style='color:blue'>function</span></b>
AddIpoptNumOption(IPROBLEM,KEYWORD,OPTION)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES DLLIMPORT, STDCALL,
ALIAS : "_AddIpoptNumOption" :: AddIpoptNumOption</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> :: IPROBLEM<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: IPROBLEM
</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>character</span></b>(*) :: KEYWORD<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: KEYWORD </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b> :: OPTION <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE ::
OPTION </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end function</span></b>
<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> <b><span style='color:blue'>function</span></b>
AddIpoptStrOption(IPROBLEM,KEYWORD,OPTION)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES DLLIMPORT, STDCALL,
ALIAS : "_AddIpoptStrOption" :: AddIpoptStrOption</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> :: IPROBLEM<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: IPROBLEM
</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>character</span></b>(*) :: KEYWORD<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: KEYWORD </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>character</span></b>(*) :: OPTION<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE ::
OPTION </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end function</span></b>
<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> <b><span style='color:blue'>function</span></b>
OpenIpoptOutputFile(IPROBLEM,FILENAME,PRINTLEVE<span style='color:green;
background:silver;mso-highlight:silver'>L)<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES DLLIMPORT, STDCALL,
ALIAS : "_OpenIpoptOutputFile" :: OpenIpoptOutputFile</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> :: IPROBLEM<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: IPROBLEM
</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>character</span></b>(*) :: FILENAME<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: FILENAME </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> :: PRINTLEVEL<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE ::
PRINTLEVEL </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end function</span></b>
<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> <b><span style='color:blue'>function</span></b>
IpoptSolve(IPROBLEM,X,G,OBJ_VAL,MULT_G,MULT_X_L<span style='color:green;
background:silver;mso-highlight:silver'>,MULT_X_</span><span style='color:green;
background:yellow;mso-highlight:yellow'>U,PTR_USERDATA)<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES DLLIMPORT, STDCALL,
ALIAS : "_IpoptSolve" :: IpoptSolve</span></b><span style='font-size:
10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> :: IPROBLEM<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: IPROBLEM</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b> :: X(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: X </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b> :: G(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: G </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b> :: OBJ_VAL<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: OBJ_VAL</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b> :: MULT_G(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: MULT_G </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b> :: MULT_X_L(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: MULT_X_L </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b> :: MULT_X_U(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: MULT_X_U</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> :: PTR_USERDATA<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: PTR_USERDATA</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end function</span></b> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>subroutine</span></b> FreeIpoptProblem(IPROBLEM)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES DLLIMPORT, STDCALL,
ALIAS : "_FreeIpoptProblem" :: FreeIpoptProblem</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> :: IPROBLEM<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: IPROBLEM</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end subroutine</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:blue'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b> <b><span style='color:blue'>function</span></b>
EV_F(N,X,NEW_X,OBJ_VALUE,PTR_USERDATA) <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES DLLEXPORT, REFERENCE,
ALIAS : "EV_F" :: EV_F </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: N<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE ::
N </span></b><span style='font-size:10.0pt;font-family:
"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: X(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: NEW_X<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: NEW_X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(out)
:: OBJ_VALUE<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: OBJ_VALUE</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: PTR_USERDATA<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: PTR_USERDATA</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end function</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:blue'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b> <b><span style='color:blue'>function</span></b>
EV_GRAD_F(N,X,NEW_X,GRAD_F,PTR_USERDATA) <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES DLLEXPORT, REFERENCE,
ALIAS : "EV_GRAD_F" :: EV_GRAD_F </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: N<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE ::
N </span></b><span style='font-size:10.0pt;font-family:
"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: X(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: NEW_X<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: NEW_X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(out)
:: GRAD_F(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: GRAD_F</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: PTR_USERDATA<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: PTR_USERDATA</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end function</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:blue'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b> <b><span style='color:blue'>function</span></b>
EV_G(N,X,NEW_X,M,G,PTR_USERDATA) <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES DLLEXPORT, REFERENCE,
ALIAS : "EV_G" :: EV_G </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: N<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE ::
N </span></b><span style='font-size:10.0pt;font-family:
"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: X(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: NEW_X<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: NEW_X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: M<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE ::
M </span></b><span style='font-size:10.0pt;font-family:
"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(out)
:: G(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: G</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: PTR_USERDATA<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: PTR_USERDATA</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end function</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:blue'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b> <b><span style='color:blue'>function</span></b>
EV_JAC_G(N,X,NEW_X,M,NELE_JAC,IROW,JCOL,G,PT<span style='color:green;
background:silver;mso-highlight:silver'>R_USERDA</span><span style='color:green;
background:yellow;mso-highlight:yellow'>TA) <o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES DLLEXPORT, REFERENCE,
ALIAS : "EV_JAC_G" :: EV_JAC_G </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: N<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE ::
N </span></b><span style='font-size:10.0pt;font-family:
"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: X(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: NEW_X<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: NEW_X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: M<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE ::
M </span></b><span style='font-size:10.0pt;font-family:
"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: NELE_JAC<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE ::
NELE_JAC </span></b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>optional</span></b>,
<b><span style='color:blue'>intent</span></b>(out) :: IROW(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: IROW</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>optional</span></b>,
<b><span style='color:blue'>intent</span></b>(out) :: JCOL(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: JCOL</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>optional</span></b>,
<b><span style='color:blue'>intent</span></b>(out) :: G(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: G</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: PTR_USERDATA<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: PTR_USERDATA</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end function</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:blue'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b> <b><span style='color:blue'>function</span></b>
EV_HESS(N,X,NEW_X,OBJFACT,M,LAMBDA,NEW_LAMBD<span style='color:green;
background:silver;mso-highlight:silver'>A,NELE_H</span><span style='color:green;
background:yellow;mso-highlight:yellow'>ESS,IROW,JCOL,H,PTR_USERDATA) <o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES DLLEXPORT, REFERENCE,
ALIAS : "EV_HESS" :: EV_HESS </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: N<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE ::
N </span></b><span style='font-size:10.0pt;font-family:
"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: X(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: NEW_X<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: NEW_X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: OBJFACT<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: OBJFACT</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: M<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: M</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: LAMBDA(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: LAMBDA</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: NEW_LAMBDA<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: NEW_LAMBDA</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: NELE_HESS<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: NELE_HESS</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>optional</span></b>,
<b><span style='color:blue'>intent</span></b>(out) :: IROW(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: IROW</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>optional</span></b>,
<b><span style='color:blue'>intent</span></b>(out) :: JCOL(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: JCOL</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>optional</span></b>,
<b><span style='color:blue'>intent</span></b>(out) :: H(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: H</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: PTR_USERDATA<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: PTR_USERDATA</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end function</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'>
<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><b><span
style='font-size:10.0pt;font-family:"Courier New";color:blue'>end interface</span></b><span
style='font-size:10.0pt;font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>type</span></b> :: userdata<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> :: IDAT(1:2)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b> :: DDAT(1:2)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end</span></b> <b><span style='color:blue'>type</span></b>
userdata<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>type</span></b> (userdata) :: user_data<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> :: PTR_USERDATA<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C First create a
handle for the Ipopt problem (and read the options<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C file)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! IPROBLEM
= IPCREATE(N, X_L, X_U, M, G_L, G_U, NELE_JAC, NELE_HESS,<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!
1 IDX_STY, EV_F, EV_G, EV_GRAD_F, EV_JAC_G, EV_HESS)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> IPROBLEM =
CreateIpoptProblem(N, X_L, X_U, M, G_L, G_U, NELE_JAC, <span style='color:green;
background:silver;mso-highlight:silver'>NELE_HES</span><span style='color:green;
background:yellow;mso-highlight:yellow'>S,<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New";color:white;background:green;
mso-highlight:green'>1</span><span style='font-size:10.0pt;font-family:"Courier New"'>
IDX_STY, EV_F, EV_G, EV_GRAD_F, EV_JAC_G, EV_HESS)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>if</span></b> (IPROBLEM.eq.0) <b><span style='color:blue'>then</span></b><span
style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*) <span style='color:maroon'>'Error
creating an Ipopt Problem handle.'<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>stop</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>endif</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Open an output
file<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! IERR =
IPOPENOUTPUTFILE(IPROBLEM, 'IPOPT.OUT', 5)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> IERR =
OpenIpoptOutputFile(IPROBLEM, <span style='color:maroon'>'IPOPT.OUT'</span>//<span
style='color:blue'>CHAR</span>(0), 5)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! if
(IERR.ne.0 ) then<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>if</span></b> (IERR.eq.0 ) <b><span style='color:blue'>then</span></b><span
style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*) <span style='color:maroon'>'Error
opening the Ipopt output file.'<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>goto</span></b> 9000<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>endif</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Note: The
following options are only examples, they might not be<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
suitable for your optimization problem.<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Set a string
option<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! IERR =
IPADDSTROPTION(IPROBLEM, 'mu_strategy', 'adaptive')<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> IERR =
AddIpoptStrOption(IPROBLEM, <span style='color:maroon'>'mu_strategy'</span>//<span
style='color:blue'>CHAR</span>(0), <span style='color:maroon'>'adapti</span><span
style='color:green;background:silver;mso-highlight:silver'>ve'//CHA</span><span
style='color:green;background:yellow;mso-highlight:yellow'>R(0))<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! if
(IERR.ne.0 ) goto 9990<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>if</span></b> (IERR.eq.0 ) <b><span style='color:blue'>goto</span></b>
9990<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Set an integer
option<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! IERR =
IPADDINTOPTION(IPROBLEM, 'max_iter', 3000)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> IERR =
AddIpoptIntOption(IPROBLEM, <span style='color:maroon'>'max_iter'</span>//<span
style='color:blue'>CHAR</span>(0), 3000)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! if
(IERR.ne.0 ) goto 9990<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>if</span></b> (IERR.eq.0 ) <b><span style='color:blue'>goto</span></b>
9990<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Set a double
precision option<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! IERR =
IPADDNUMOPTION(IPROBLEM, 'tol', 1.d-7)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> IERR =
AddIpoptNumOption(IPROBLEM, <span style='color:maroon'>'tol'</span>//<span
style='color:blue'>CHAR</span>(0), 1.d-7)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! if
(IERR.ne.0 ) goto 9990<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>if</span></b> (IERR.eq.0 ) <b><span style='color:blue'>goto</span></b>
9990<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C As a simple
example, we pass the constants in the constraints to<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C the EVAL_C
routine via the "private" DAT array.<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! DAT(1) =
0.d0<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! DAT(2) =
0.d0<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> user_data%DDAT(1) =
0.d0<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> user_data%DDAT(2) =
0.d0<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> PTR_USERDATA = <span
style='color:blue'>LOC</span>(user_data)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Call
optimization routine<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! IERR =
IPSOLVE(IPROBLEM, X, G, F, LAM, Z_L, Z_U, IDAT, DAT)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> IERR =
IpoptSolve(IPROBLEM, X, G, F, LAM, Z_L, Z_U, PTR_USERDATA)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Output:<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>if</span></b>( IERR.eq.IP_SOLVE_SUCCEEDED ) <b><span
style='color:blue'>then</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*) <span style='color:maroon'>'The
solution was found.'<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*) <span style='color:maroon'>'The final
value of the objective function is '</span>,f<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*) <span style='color:maroon'>'The
optimal values of X are:'<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>do</span></b> i = 1, N<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*) <span style='color:maroon'>'X ('</span>,i,<span
style='color:maroon'>') = '</span>,X(i)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>enddo</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*) <span style='color:maroon'>'The
multipliers for the lower bounds are:'<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>do</span></b> i = 1, N<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*) <span style='color:maroon'>'Z_L('</span>,i,<span
style='color:maroon'>') = '</span>,Z_L(i)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>enddo</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*) <span style='color:maroon'>'The
multipliers for the upper bounds are:'<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>do</span></b> i = 1, N<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*) <span style='color:maroon'>'Z_U('</span>,i,<span
style='color:maroon'>') = '</span>,Z_U(i)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>enddo</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*) <span style='color:maroon'>'The
multipliers for the equality constraints are:'<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>do</span></b> i = 1, M<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*) <span style='color:maroon'>'LAM('</span>,i,<span
style='color:maroon'>') = '</span>,LAM(i)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>enddo</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>else</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*) <span style='color:maroon'>'An error
occoured.'<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*) <span style='color:maroon'>'The error
code is '</span>,IERR<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>endif</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> 9000</span><span style='font-size:
10.0pt;font-family:"Courier New"'> <b><span style='color:blue'>continue</span></b><span
style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C Clean up<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! call
IPFREE(IPROBLEM)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>call</span></b> FreeIpoptProblem(IPROBLEM)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>stop</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> 9990</span><span style='font-size:
10.0pt;font-family:"Courier New"'> <b><span style='color:blue'>continue</span></b><span
style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>write</span></b>(*,*) <span style='color:maroon'>'Error
setting an option'<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>goto</span></b> 9000<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:blue'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
=============================================================================<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
Computation of objective function<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
=============================================================================<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>function</span></b> EV_F(N,X,NEW_X,F,PTR_USERDATA)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES DLLEXPORT, REFERENCE,
ALIAS : "EV_F" :: EV_F </span></b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!
subroutine EV_F(N, X, NEW_X, F, IDAT, DAT, IERR)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>implicit none</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:blue'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b> :: EV_F<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: N<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: N</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: X(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: NEW_X<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: NEW_X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(out)
:: F<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: F</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: PTR_USERDATA<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: PTR_USERDATA</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! double
precision DAT(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! integer
IDAT(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! integer
IERR<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> F =
X(1)*X(4)*(X(1)+X(2)+X(3)) + X(3)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'>
<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! IERR = 0<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> EV_F = .true.<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'>
<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>return</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end function</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
=============================================================================<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
Computation of gradient of objective function<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
=============================================================================<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>function</span></b> EV_GRAD_F(N,X,NEW_X,GRAD,PTR_USERDATA) <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES DLLEXPORT, REFERENCE,
ALIAS : "EV_GRAD_F" :: EV_GRAD_F </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!
subroutine EV_GRAD_F(N, X, NEW_X, GRAD, IDAT, DAT, IERR)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>implicit none</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:blue'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b> :: EV_GRAD_F<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'>
<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: N<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE ::
N </span></b><span style='font-size:10.0pt;font-family:
"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: X(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: NEW_X<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: NEW_X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(out)
:: GRAD(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: GRAD</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: PTR_USERDATA<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: PTR_USERDATA</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! double
precision DAT(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! integer
IDAT(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! integer
IERR<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> GRAD(1) =
X(4)*(2d0*X(1)+X(2)+X(3))<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> GRAD(2) = X(1)*X(4)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> GRAD(3) = X(1)*X(4) +
1d0<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> GRAD(4) =
X(1)*(X(1)+X(2)+X(3))<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! IERR = 0<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> EV_GRAD_F = .true.<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>return</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end function</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
=============================================================================<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
Computation of equality constraints<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
=============================================================================<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>function</span></b> EV_G(N,X,NEW_X,M,G,PTR_USERDATA) <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES DLLEXPORT, REFERENCE,
ALIAS : "EV_G" :: EV_G</span></b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!
subroutine EV_G(N, X, NEW_X, M, G, IDAT, DAT, IERR)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>implicit none</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:blue'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b> :: EV_G<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: N<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: N</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: X(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: NEW_X<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: NEW_X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: M<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: M</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(out)
:: G(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: G</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: PTR_USERDATA<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: PTR_USERDATA</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! double
precision DAT(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! integer
IDAT(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! integer
IERR<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>type</span></b> :: userdata<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> :: IDAT(1:2)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b> :: DDAT(1:2)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end</span></b> <b><span style='color:blue'>type</span></b>
userdata<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>type</span></b> (userdata) :: user_data<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>pointer</span></b>(PTR_USERDATA,user_data)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! G(1) =
X(1)*X(2)*X(3)*X(4) - DAT(1)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! G(2) =
X(1)**2 + X(2)**2 + X(3)**2 + X(4)**2 - DAT(2)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> G(1) =
X(1)*X(2)*X(3)*X(4) - user_data%DDAT(1)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> G(2) = X(1)**2 +
X(2)**2 + X(3)**2 + X(4)**2 - user_data%DDAT(2)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! IERR = 0<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> EV_G = .true.<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>return</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end function</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C =============================================================================<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
Computation of Jacobian of equality constraints<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
=============================================================================<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>function</span></b> EV_JAC_G(N,X,NEW_X,M,NZ,ACON,AVAR,A,PTR_USERDATA)
<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES DLLEXPORT, REFERENCE,
ALIAS : "EV_JAC_G" :: EV_JAC_G </span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!
subroutine EV_JAC_G(TASK,N,X,NEW_X,M,NZ,ACON,AVAR,A,IDAT,DAT,IERR)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b> :: EV_JAC_G <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: N<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE ::
N </span></b><span style='font-size:10.0pt;font-family:
"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: X(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: NEW_X<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: NEW_X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: M<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE ::
M </span></b><span style='font-size:10.0pt;font-family:
"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: NZ<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE ::
NZ </span></b><span style='font-size:10.0pt;font-family:
"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>optional</span></b>,
<b><span style='color:blue'>intent</span></b>(out) :: ACON(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: ACON</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>optional</span></b>,
<b><span style='color:blue'>intent</span></b>(out) :: AVAR(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: AVAR</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>optional</span></b>,
<b><span style='color:blue'>intent</span></b>(out) :: A(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE ::
A </span></b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: PTR_USERDATA<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: PTR_USERDATA</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! double
precision DAT(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! integer
IDAT(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! integer
IERR<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> TASK<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> I<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C structure of
Jacobian:<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> AVAR1(8), ACON1(8)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>data</span></b> AVAR1 /1, 2, 3, 4, 1, 2, 3, 4/<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>data</span></b> ACON1 /1, 1, 1, 1, 2, 2, 2, 2/<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>save</span></b> AVAR1, ACON1<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> TASK = 1<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>if</span></b> (<span style='color:blue'>PRESENT</span>(AVAR)
.and. <span style='color:blue'>PRESENT</span>(ACON)) <b><span style='color:
blue'>then</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> TASK = 0<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end if</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:blue'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>if</span></b>( TASK.eq.0 ) <b><span style='color:blue'>then</span></b><span
style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>do</span></b> I = 1, 8<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> AVAR(I)
= AVAR1(I)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> ACON(I)
= ACON1(I)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>enddo</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>else</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> A(1) =
X(2)*X(3)*X(4)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> A(2) =
X(1)*X(3)*X(4)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> A(3) =
X(1)*X(2)*X(4)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> A(4) =
X(1)*X(2)*X(3)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> A(5) =
2d0*X(1)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> A(6) =
2d0*X(2)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> A(7) =
2d0*X(3)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> A(8) =
2d0*X(4)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>endif</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:blue'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! IERR = 0<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> EV_JAC_G = .true.<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>return</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:blue'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end function</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
=============================================================================<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
Computation of Hessian of Lagrangian<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C
=============================================================================<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>function</span></b> EV_HESS(N,X,NEW_X,OBJFACT,M,LAM,NEW_LAM,NNZH,IRNH,ICNH,<span
style='color:green;background:silver;mso-highlight:silver'>HESS,PTR</span><span
style='color:green;background:yellow;mso-highlight:yellow'>_USERDATA) <o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES DLLEXPORT, REFERENCE,
ALIAS : "EV_HESS" :: EV_HESS</span></b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!
subroutine EV_HESS(TASK, N, X, NEW_X, OBJFACT, M, LAM, NEW_LAM,<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!
1 NNZH, IRNH, ICNH, HESS, IDAT, DAT, IERR)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>implicit none</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b> :: EV_HESS<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: N<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE ::
N </span></b><span style='font-size:10.0pt;font-family:
"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: X(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: NEW_X<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: NEW_X</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: OBJFACT<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: OBJFACT</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: M<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: M</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: LAM(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: LAM</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>logical(1)</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: NEW_LAM<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: NEW_LAM</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: NNZH<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: NNZH</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>optional</span></b>,
<b><span style='color:blue'>intent</span></b>(out) :: IRNH(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: IRNH</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>optional</span></b>,
<b><span style='color:blue'>intent</span></b>(out) :: ICNH(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: ICNH</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>real(8)</span></b>, <b><span style='color:blue'>optional</span></b>,
<b><span style='color:blue'>intent</span></b>(out) :: HESS(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES REFERENCE :: HESS</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b>, <b><span style='color:blue'>intent</span></b>(in)
:: PTR_USERDATA<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>cDEC$ ATTRIBUTES VALUE :: PTR_USERDATA</span></b><span
style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! double
precision DAT(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! integer
IDAT(*)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! integer
IERR<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> TASK<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> i <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C structure of
Hessian:<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>integer</span></b> IRNH1(10), ICNH1(10)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>data</span></b> IRNH1 /1, 2, 2, 3, 3, 3, 4, 4, 4, 4/<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>data</span></b> ICNH1 /1, 1, 2, 1, 2, 3, 1, 2, 3, 4/<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>save</span></b> IRNH1, ICNH1<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> TASK = 1<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>if</span></b> (<span style='color:blue'>PRESENT</span>(IRNH)
.and. <span style='color:blue'>PRESENT</span>(ICNH)) <b><span style='color:
blue'>then</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> TASK = 0<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end if</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>if</span></b>( TASK.eq.0 ) <b><span style='color:blue'>then</span></b><span
style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>do</span></b> i = 1, 10<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> IRNH(i)
= IRNH1(i)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> ICNH(i)
= ICNH1(i)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>enddo</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>else</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>do</span></b> i = 1, 10<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> HESS(i)
= 0d0<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>enddo</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C objective
function<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> HESS(1)
= OBJFACT * 2d0*X(4)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> HESS(2)
= OBJFACT * X(4)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> HESS(4)
= OBJFACT * X(4)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> HESS(7)
= OBJFACT * (2d0*X(1) + X(2) + X(3))<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> HESS(8)
= OBJFACT * X(1)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> HESS(9)
= OBJFACT * X(1)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C first
constraint<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> HESS(2)
= HESS(2) + LAM(1) * X(3)*X(4)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> HESS(4)
= HESS(4) + LAM(1) * X(2)*X(4)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> HESS(5)
= HESS(5) + LAM(1) * X(1)*X(4)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> HESS(7)
= HESS(7) + LAM(1) * X(2)*X(3)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> HESS(8)
= HESS(8) + LAM(1) * X(1)*X(3)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> HESS(9)
= HESS(9) + LAM(1) * X(1)*X(2)<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C second constraint<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>C<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> HESS(1)
= HESS(1) + LAM(2) * 2d0<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> HESS(3)
= HESS(3) + LAM(2) * 2d0<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> HESS(6)
= HESS(6) + LAM(2) * 2d0<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> HESS(10)=
HESS(10)+ LAM(2) * 2d0<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>endif</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:blue'><o:p> </o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>!jdk <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:green'>! IERR = 0<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> EV_HESS = .true.<o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>return</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
font-family:"Courier New";color:red'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'> <b><span
style='color:blue'>end function</span></b><span style='color:blue'><o:p></o:p></span></span></p>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'> </span><span
style='color:#1F497D'> <o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>
<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
ipopt-bounces@list.coin-or.org [mailto:ipopt-bounces@list.coin-or.org] <b>On
Behalf Of </b>Kelly, Jeff (ON0F)<br>
<b>Sent:</b> Wednesday, September 29, 2010 8:36 AM<br>
<b>To:</b> ipopt@list.coin-or.org<br>
<b>Subject:</b> [Ipopt] Calling IPOPT and Running Example HS071_F.F from
IntelFortran v11<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>I am having trouble calling IPOPT from Intel Fortran (using
the HS071_F.F example) and I am looking to simply download a DLL similar to
IPOPT38.dll (found in Ipopt-3.8.1-win32-dll.zip @ <a
href="https://www.coin-or.org/download/binary/Ipopt/">https://www.coin-or.org/download/binary/Ipopt/</a>).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>When I do this it does not recognize IPCREATE(), etc.
– I can interface CreateIpoptProblem() using an interface-block and
STDCALL directives but then the EV_() subroutines in HS071_F.F don’t work
of course.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>I have interfaced XPRESS, GUROBI, LINDO and LPSOLVE to Intel
Fortran but I just can’t get IPOPT to do the same.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Is there something I am missing and/or is there another DLL
binary that I am missing?<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Thanks in advanced - Jeff <o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
</div>
</body>
</html>