[BuildTools-tickets] [BuildTools] #69: HSL ThirdParty build system in IpOpt out of date

BuildTools coin-trac at coin-or.org
Tue Jan 4 06:16:57 EST 2011


#69: HSL ThirdParty build system in IpOpt out of date
-------------------+--------------------------------------------------------
Reporter:  jhogg   |        Owner:  andreasw           
    Type:  defect  |       Status:  new                
Priority:  major   |    Component:  configuration tests
 Version:  0.5     |   Resolution:                     
Keywords:          |  
-------------------+--------------------------------------------------------

Comment (by stefan):

 Hi,

 Replying to [ticket:69 jhogg]:
 > STFC now distribute codes and their dependencies in separate files. For
 example let us consider MA57, observing that no naming scheme is given
 when downloading the file (it just appears as text in the browser).
 >
 > We have wlog two files:
 > ma57d.f
 > ma57d.deps.f
 >
 > The current build system expects a single file ma57ad.f. This models how
 things used to be done - since these scripts were written it seems that
 renaming and management practice changes have occurred.
 >
 > Obviously in this case [and for all F77 codes] we can trivially work
 around this by concatenating and renaming the result ma57ad.f.

 Yes. You think one still needs to change the buildsystem then?

 I just downloaded MA57 and got a tar archive, which contained among others
 the files ma57d.f and ddeps.f. I then concatenate these files into
 ma57ad.f and tried a build.

 The build failed on multiple symbols because ddeps.f containes MC21AD and
 MC21BD, which are already in my ma21ad.f, which seem to be used for MA28.

 So I remove the duplicate routines from my ma57ad.f and try again.
 Now !ThirdParty/HSL builds fine but Ipopt does not link because I did not
 provide FD15.

 So I download also FD15, add the fd15d.f to the end of ma57ad.f, try
 again, and things seem to work fine.

 I believe the buildsystem could be adapted to the current way how HSL
 provides the routines, but it then may not work anymore for users who did
 not download the HSL anew.
 Maybe it would be better to update only the Ipopt documentation for the
 current system?


 > I am currently in the process of adding an interface to HSL_MA77 which
 is a Fortran 90 code. As a result we have three files:
 > hsl_ma77d.f90
 > hsl_ma77d.deps.f90
 > hsl_ma77d.deps.f
 >
 > We have dependencies in both fixed and free source formats, so
 concatenating these files will produce compile errors. Further we need to
 add a dependency to ensure that the f90 deps are compiled before the f90
 code so the module files are readable.

 From a look on the buildsystem, it seems that this has all be done.

 > We should also endeavor to ensure the f77 and f90 compilers used are
 compatible - I've seen some nasty messes with automake choosing g77 (GNU)
 and f95 (NAG) compilers which don't produce stuff one can easily link
 together due to underscoring practices. I neat solution might be to
 default to using the F95 ($FC) compiler to compile F77 code in place of
 the ($F77) compiler.
 >
 > I don't have the necessary knowledge of automake and the Ipopt build
 system to easily make these changes myself however.

 There is, as far as I know, no option in the buildsystem to specify a F95
 compiler ($FC). F90 code just gets compiled by $F77, hoping that it's a
 compiler that also supports F95. It gives an error message if this is not
 the case, so the user can specify explicitely which fortran compiler to
 use.[[BR]]
 We also recently changed the order in which compilers are searched for on
 !Linux/Gnu systems. I.e., it now looks first for gfortran, then to fort77.

 Stefan

-- 
Ticket URL: <https://projects.coin-or.org/BuildTools/ticket/69#comment:1>
BuildTools <http://projects.coin-or.org/BuildTools>
Tools for configuring and compiling COIN-OR codes



More information about the BuildTools-tickets mailing list