<br><font size=2 face="sans-serif">Hi,</font>
<br><font size=2 face="sans-serif">I dont think it is the C_out routine that causes the problems because when I debug the Ipopt.dll, it crashes on the first occurece of any &quot;write&quot;.</font>
<br><font size=2 face="sans-serif">I tested by inserting this line in the head of IPOPT.F :</font>
<br>
<br><font size=2 color=blue face="Courier New"><b>write</b></font><font size=2 face="Courier New">(line,*) 'Test'</font>
<br>
<br><font size=2 face="sans-serif">which gives the funny error:</font>
<br><font size=2 face="sans-serif">First-chance exception at 0x01d37ff5 (Ipopt.dll) in matlab.exe: 0xC0000005: </font>
<br><font size=2 face="sans-serif">Access violation reading location 0x00000000.</font>
<br>
<br><font size=2 face="sans-serif">//Jens</font>
<br>
<br>
<br><font size=1 color=white face="Arial">Message from Andreas Waechter &lt;andreasw@watson.ibm.com&gt; received on 2005-06-20 17:18</font>
<table width=100%>
<tr valign=top>
<td>
<td><font size=1 face="sans-serif">2005-06-20 17:18</font>
<br>
<br>
<td>
<td><font size=1 face="sans-serif"><b>Andreas Waechter &lt;andreasw@watson.ibm.com&gt;</b></font>
<br>
<br></table>
<br>
<table width=100%>
<tr valign=top>
<td>
<div align=center>
<br></div>
<td><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; To: &nbsp; &nbsp; &nbsp; &nbsp;Jens Pettersson/SECRC/ABB@ABB_SECRC</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; cc: &nbsp; &nbsp; &nbsp; &nbsp;hauan@cmu.edu, &lt;Claas.Michalik@rwth-aachen.de&gt;, &lt;coin-ipopt@list.coin-or.org&gt;</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; Subject: &nbsp; &nbsp; &nbsp; &nbsp;Re: WG: [Coin-ipopt] Matlab interface</font></table>
<br>
<br>
<br><font size=2 face="Courier New">Hi<br>
<br>
At some earlier point, a colleague had written a MEX interface for Ipopt<br>
(years back...) and we ran into the same problem.<br>
<br>
If I remember correctly, the problem is that under Windows the MEX<br>
&quot;executable&quot; cannot write to standard output directly. &nbsp;Instead some<br>
Matlab-provided function must be used (something like mexPrintf?).<br>
<br>
Because of those problems, all output of Ipopt to standard out is directed<br>
through the subroutine &quot;C_OUT&quot; (see COIN/Ipopt/IPOPT/ipopt/c_out.f). &nbsp;In<br>
principle, the only change necessary to fix the problem you describe, all<br>
that has to be done is to replace the line containing &quot;WRITE(*,8000)&quot; by<br>
some appropriate call to a Matlab function.<br>
<br>
Since mexPrintf expects a C-style string, this probably has to go through<br>
a C-wrapper function, i.e., instead of those &quot;WRITE(*,8000)&quot; statement a C<br>
function is called that then transfers the Fortran-style string (without<br>
'\0') to a C-style string (adding '\n\0' at the end, after copying!!!) and<br>
then calling mexPrintf from C. &nbsp;Here, the lines with WRITE(*,8000) only in<br>
them (no LINES argument) are responsible for printing empty lines.<br>
<br>
I hope that all output to files is still working, so that it is really<br>
only C_OUT that has to be adapted.<br>
<br>
Andreas<br>
<br>
On Mon, 20 Jun 2005 jens.pettersson@se.abb.com wrote:<br>
<br>
&gt; Hi Steinar,<br>
&gt; &nbsp;to cut a long story short:<br>
&gt;<br>
&gt; I managed to compile and create a mex-Dll using MSVC .NET and your files.<br>
&gt; It is also possible to call this dll from Matlab but for some reasons it<br>
&gt; crashes in the Ipopt-dll.<br>
&gt; I debugged to find the error and it seams that the crash occurs when the<br>
&gt; first &quot;write&quot; commando is excecuted. I tested by manually comment away the<br>
&gt; write commando whcih caused the latest crash but then it only crashed on<br>
&gt; the next one, etc.<br>
&gt;<br>
&gt; Is there any one who knows why the seemingly inocent write- comando in<br>
&gt; Fortran does not work with mex-files??<br>
&gt;<br>
&gt; Also, I mean that the code is full with &quot;write&quot;:s so there is not point in<br>
&gt; commenting away all af them.... ??<br>
&gt;<br>
&gt; //Jens<br>
&gt;<br>
<br>
</font>
<br>
<br>