[MITgcm-support] Re: compiling MITgcm

Ed Hill ed at eh3.com
Wed Feb 16 21:19:03 EST 2005


On Wed, 2005-02-16 at 11:40 -1000, Kelvin Richards wrote:

> >   - Which version of MITgcm are you using?
> >   
> I'm not sure how I check this, but I used CVS yesterday to download
> the latest version using "cvs co MITgcm"


Hi Kelvin,

Very good!  Getting the latest from CVS is generally a good idea.

And thanks for sending a *much* more complete bug report!  I won't
complain about how long the email was since it did include all the
necessary hints.  ;-)


> >   - Which compiler(s) (and versions) are you trying to use?
> >   - Which optfile are you trying to use?  Has it been 
> >     customized?  If so, how?
> >   
> I am using  a modified version of "linux_ia64_efc+mpi_altix" (see
> attached) where I have change the "LIBS", "INCLUDES" and "INCLUDEDIRS"
> lines.
> >   - What was the *exact* sequence of commands you used
> >     to attempt the build?
> >   
> in ...../exp5/include I have typed
> 
> "./genmake2 -mods=../code -of ../linux_ia64_efc+mpi_altix"
> 
> (I had to cp'ed the genmake2 file to the " include" directory)
> 
> "make depend" (see attached file make_depend_out.txt)

Those "make depend" warnings are typical.  Please ignore them.



> "make" (see attached make_out.txt)
> >   - What were the exact error messages?
> See attached files. There is "echo: No match" at the end of
> make_depend_out.txt (which I have ignored)
> 
> On the first run through of make I got a string of messages
> 
> "efc: Warning: The Intel Fortran driver is now named ifort."


OK, thats a key message.  The optfile you've created is trying to use an
Intel v8.x compiler along with libraries for a v7.x compiler.  And the
result is failure as you can see at the link stage.

I suggest that you start with one of the following optfiles:

  in MITgcm/tools/build_options :
    linux_ia64_ifort+mpi_altix_meinesz
    linux_ia64_ifort+mpi_altix_gfdl
    linux_ia64_ifort+mpi_altix_nas

and then modify it for your setup.  Your local sysadmin(s) should be
able to help you select the proper MPI libraries, which is probably the
only major change that you'll have to make.



> plain text document attachment (make_out.txt)
> kelvin at tux.soest.hawaii.edu:/home/moaalii/kelvin/MITgcm/verification/exp5/input% make
> Creating mitgcmuv ...
> timers.o(.text+0x36c2): In function `timer_get_time_':
> : undefined reference to `cloc_'
> /opt/intel/ifort8/8.0-57/lib/libifcoremt.a(cvt_cvtas_x.o)(.text+0x1712): In function `cvt_ieee_x_to_text_ex':
> : undefined reference to `a_mulq'
> /opt/intel/ifort8/8.0-57/lib/libifcoremt.a(cvt_cvtas_x.o)(.text+0x1772): In function `cvt_ieee_x_to_text_ex':
> : undefined reference to `a_divq'
> /opt/intel/efc7/7.1-45/compiler70/ia64/lib/libPEPCF90.so.4: undefined reference to `f_locatefd'
> /opt/intel/efc7/7.1-45/compiler70/ia64/lib/libPEPCF90.so.4: undefined reference to `f90_init'

...

> /opt/intel/efc7/7.1-45/compiler70/ia64/lib/libPEPCF90.so.4: undefined reference to `f_fiomess'
> /opt/intel/efc7/7.1-45/compiler70/ia64/lib/libPEPCF90.so.4: undefined reference to `__float128::operator double() const'
> make: *** [mitgcmuv] Error 1

Again, these errors point out that the libraries for the Intel v7.x
compiler are not suitable for the v8.x compiler.

Please start with an optfile geared towards the newer "ifort" compiler.
And I'll try to help you customize it for your machine.

Ed

-- 
Edward H. Hill III, PhD
office:  MIT Dept. of EAPS;  Rm 54-1424;  77 Massachusetts Ave.
             Cambridge, MA 02139-4307
emails:  eh3 at mit.edu                ed at eh3.com
URLs:    http://web.mit.edu/eh3/    http://eh3.com/
phone:   617-253-0098
fax:     617-253-4464




More information about the MITgcm-support mailing list