[Coin-ipopt] Re: some problems about CUTEr interface

Andreas Waechter andreasw at watson.ibm.com
Fri Feb 3 14:26:09 EST 2006


Hi John and Zaiwen,

Thanks for the interesting discussion.

I'm glad you figure out the reason for the fort.60 problem.  Yes, I would
think that you have to compile both CUTEr and Ipopt with the same
(Fortran and other) compilers.

To the second issue that Zaiwen mentioned, regarding the missing parameter
in the IPCREATE call: Thanks for letting us know about this bug!  I fixed
it now in the repository, so it should be correct in tomorrow's tarball.

As for your last point, Zaiwan, yes, your suggestion is one way to fix it.
On the long run, we will have to coordinate with Dominique, how Ipopt and
CUTEr should work together.

Thanks again for your interesting comments,

Andreas


On Fri, 3 Feb 2006, John Hedengren wrote:

> Zaiwen,
>
> Thanks for the info.  The problem occured because IPOPT (ipoma.f) opened a
> file called OUTSDIF.d (UNIT=60) and then passed the unit number to CSETUP
> subroutine of the CUTEr package.  CUTEr was compiled with Intel Fortran and
> IPOPT with gfortran.  Apparently they don't share open files well.  There
> were no linking issues and I didn't have to do steps #1 or #3.  I just
> recompiled CUTEr and SIFDEC with g95.
>
> Another quick piece of advise for those compiling CUTEr and SIFDEC with g95
> option:  I had to make a symbolic link because they changed the name of the
> compiler for the new compiler name in Fedora Core 4.
>
> ln /usr/bin/gfortran /usr/bin/g95 --symbolic
>
>
> -John
>
> 2006/2/2, Zaiwen Wen <zw2109 at columbia.edu>:
> >
> >
> > My configuration for Ipopt is:
> >
> > ./configure --with-blas="-L/opt/intel/mkl721/lib/32 -lmkl_lapack
> > -lmkl_ia32 -lguide -lpthread" \
> >   CXXLIBS='-L/usr/lib/gcc/i386-redhat-linux/4.0.2 -lstdc++ -lm -lgcc '
> >   F77=gfortran
> >
> > My configuration for CUTEr is:
> >   CUTEr.large.pc.lnx.g95
> >
> >
> > I have the following experience:
> >
> > 1. in File /Apps/CUTErInterface/CUTErInterface.f
> >
> > ----------------------------------------
> > C
> > C     Call IPOPT
> > C
> >        IPROBLEM = IPCREATE(N, X_L, X_U, M, G_L, G_U, NELE_JAC, NELE_HESS,
> >       1     EV_F, EV_G, EV_GRAD_F, EV_JAC_G, EV_HESS)
> >
> > ---------------------------------------
> >
> > should be:
> >
> > --------------------------------------
> >
> >
> >        IPROBLEM = IPCREATE(N, X_L, X_U, M, G_L, G_U, NELE_JAC, NELE_HESS,
> >       1   IDX_STY,  EV_F, EV_G, EV_GRAD_F, EV_JAC_G, EV_HESS)
> >
> > one should also  add definition:
> >        integer IDX_STY
> >        parameter  (IDX_STY = 1 )
> > ---------------------------------------
> >
> > The definition of the function "IPCREATE" is in file:
> >         /Interfaces/IpStdFInterface.c
> >
> >
> > 2. According to my experience, if the fortran compiler for ipopt and CUTEr
> > are different, there will be some conflictions during compilation when
> > using "sdipo\ipo".
> >
> >
> > 3.
> >
> > Since the new script "ipo" defines
> >   setenv SYSLIBS "`cat ${MYCUTER}/double/lib/ipo.liblist`",
> > it will probably  cause some problems for the following lines in the
> > script "runpackage" in "CUTEr/mycuter/bin"
> >
> > $LOAD $FFLAGS -o ${PAC}min ELFUN.o GROUP.o RANGE.o $EXTER $DRIVER \
> >        $SUBR $ALT_LIB_PATH -L$LIBDIR $SYSLIBS -lcuter  $BLAS $LAPACK
> >
> > After these two lines  modifed to:
> >
> > $LOAD $FFLAGS -o ${PAC}min ELFUN.o GROUP.o RANGE.o $EXTER $DRIVER \
> >        $SUBR $ALT_LIB_PATH -L$LIBDIR -lcuter  $SYSLIBS
> >
> > sdipo and ipo work perferctly.
> >
> >
> >
> > Wish these information will be  helpful.
> >
> >
> > Best Regards!
> > Zaiwen
> >
>




More information about the Coin-ipopt mailing list