[MITgcm-support] Compiling problem by ifort: undefined reference to '_gfortran_st_write'

H.W. Shu shawn_chou at ees.hokudai.ac.jp
Sat Feb 13 03:36:48 EST 2021


Dear Dr. Martin,

Hi, this is Shawn. Thank you for your advices before, 
I thus re-check my configurations in our system but the problem of "
undefined reference to '_gfortran_st_write'".

By using the option-file: linux_amd64_gfortran,
I inserted our libraries of MPI and netcdf inside that:


elif test -d /usr/local/netcdf-fortran/4.5.2_intel ; then
    INCLUDES='-I/usr/local/netcdf-fortran/4.5.2_intel/include'
    LIBS='-L/usr/local/netcdf-fortran/4.5.2_intel/lib'

and

if [ -n "$MPI_HOME" -a -z "$MPI_INC_DIR" ]; then
        MPI_INC_DIR="/opt/hpe/hpc/mpt/mpt-2.21/include"

which mpi.h is included in this directory. 
However, when I used the command 
>>../../../tools/genmake2 -mods=../code  -mpi -of=/home/my_name/MITgcm_
c66j/tools/build_options/linux_amd64_gfortran
where I added the -mpi flag, 
it still gave me the error message that 
"undefined reference to '_gfortran_st_write_done'"
and
"undefined reference to '_gfortran_transfer_character_write'"

What else the problem you think is possible in my compiling process?
or I inserted the directories of MPI and NectCDF in wrong places?

Thank you for your help!

Best regards,
Shawn

----- Original Message -----
From: "H.W. Shu" <shawn_chou at ees.hokudai.ac.jp>
Sent Date: 18:42:00 Wed February 10, 2021

> Dear Dr. Martin,
> 
> Thank you for your message. 
> In fact, I think I have the problem that I don't really know how to 
> connect all these libraries into my compiling process. 
> For example, 
> I can load my netcdf library by : module load netcdf-fortran/4.5.2_
intel
> I also know my MPI directory: /opt/hpe/hpc/mpt/mpt-2.21/lib
> so, in compiling process, I follow by the commands in "build" file as 
> below:
> $ module load netcdf-fortran/4.5.2_intel
> $ ../../../tools/genmake2 -mods=../code  -mpi -of=/home/my_name/MITgcm
_
> c66j/tools/build_options/linux_amd64_ifort+mpi_ice_nas
> $ make depend
> $ make
> 
> note that I inserted the -mpi as you recommanded in previous mail in 
the 
> command and also change my option file to linux_amd64_ifort+mpi_ice_
nas
> However, although at this moment I don't have the gfortran's problem
> it gave me the other error message that:
> -----
>  -L/nasa/sgi/mpt/2.14r19/lib -lmpi -L/nasa/netcdf/4.0/lib -lnetcdf
> /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/
ld: 
> main.o: in function `main':
> main.f:(.text.startup+0x0): multiple definition of `main'; /opt/intel/
> compilers_and_libraries_2020.0.166/linux/compiler/lib/intel64_lin/for_
> main.o:for_main.c:(.text+0x0): first defined here
> /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/
ld: 
> cannot find -lnetcdf
> make[1]: *** [Makefile:1943: mitgcmuv] Error 1
> make[1]: Leaving directory '/home/shawn_chou/MITgcm_c66j/verification/
> totten_high/build'
> make: *** [Makefile:1939: fwd_exe_target] Error 2
> ------
> 
> I have no further idea what is wrong at this moment.
> I will really appreciate that if can have any hints. 
> 
> Thank you really much!
> 
> ------
> Dear Dr. Gus Correa
> 
> Thank you really much! 
> After changing to other option-file, I dont have the gfortran's 
problem. 
> but there's other one occurred as I described above. 
> 
> I will really appreciate if having any hints on this problem..
> Thank you in advanced!
> 
> Best regards,
> Shawn (Shu)
> 
> 
> 
> 
> > --------------------------------------------------------------------
--
> > 
> > Message: 1
> > Date: Tue, 09 Feb 2021 15:49:49 +0900
> > From: "H.W. Shu" <shawn_chou at ees.hokudai.ac.jp>
> > To: <mitgcm-support at mitgcm.org>
> > Subject: [MITgcm-support] Compiling problem by ifort: undefined
> > 	reference to	'_gfortran_st_write'
> > Message-ID:
> > 	<20210209064949.0032A501.0222 at HINES-WebMail.hines.hokudai.ac.jp>
> > Content-Type: text/plain; charset=US-ASCII
> > 
> > Dear MITgcm users, 
> > 
> > Hello, this is Shawn from Hokkaido University.
> > We are trying compiling an mpi run in our system by default compiler 
> in 
> > tools/build_options: linux_amd64_ifort
> > (we added "-lmpi -03" in flags.)
> > 
> > However, in the process of Make,
> > it told us that "undefined reference to '_gfortran_st_write_done'" 
and 
> " 
> > undefined reference to '_gfortran_transfer'".
> > and leaved by this error. 
> > 
> > I am not familiar with compile problems, 
> > I will really appreciate if can get any hint to start to fix the 
> problem.
> > 
> > Thank you really much,
> > 
> > Best regards,
> > Shawn
> > 
> > 
> > 
> > 
> > ------------------------------
> > 
> > Message: 2
> > Date: Tue, 9 Feb 2021 08:14:25 +0100
> > From: Martin Losch <Martin.Losch at awi.de>
> > To: MITgcm Support <mitgcm-support at mitgcm.org>
> > Subject: Re: [MITgcm-support] Compiling problem by ifort: undefined
> > 	reference to '_gfortran_st_write'
> > Message-ID: <875C3E06-7FC8-456C-B4AD-B1657151B5D0 at awi.de>
> > Content-Type: text/plain; charset="utf-8"
> > 
> > Hi Shawn,
> > 
> > normally you don?t have to add ?-lmpi" to the build options file. 
For 
> MPI simulations it?s important that you add the -mpi flag to genmake2 
> and that you know where your mpi include files are.
> > Before you run genmake2 set the enviroment flag MPI_INC_DIR to the 
> location of your mpifiles. E.g. on my laptop I installed OpenMP and 
have 
> this:
> > 
> > >> echo $MPI_INC_DIR
> > /opt/local/include/openmpi-mp
> > >> ls /opt/local/include/openmpi-mp
> > mpi-ext.h               mpi_portable_platform.h mpif-config.h        
  
>  mpif-ext.h              mpif-handles.h          mpif-io-handles.h     
  
> mpif-sizeof.h           openmpi
> > mpi.h                   mpif-c-constants-decl.h mpif-constants.h     
  
>  mpif-externals.h        mpif-io-constants.h     mpif-sentinels.h      
  
> mpif.h
> > 
> > it?s important that ?mpif.h? is also in that directory.
> > 
> > Martin
> > 
> > 
> > > On 9. Feb 2021, at 07:49, H.W. Shu <shawn_chou at ees.hokudai.ac.jp> 
> wrote:
> > > 
> > > Dear MITgcm users, 
> > > 
> > > Hello, this is Shawn from Hokkaido University.
> > > We are trying compiling an mpi run in our system by default 
compiler 
> in 
> > > tools/build_options: linux_amd64_ifort
> > > (we added "-lmpi -03" in flags.)
> > > 
> > > However, in the process of Make,
> > > it told us that "undefined reference to '_gfortran_st_write_done'" 
> and " 
> > > undefined reference to '_gfortran_transfer'".
> > > and leaved by this error. 
> > > 
> > > I am not familiar with compile problems, 
> > > I will really appreciate if can get any hint to start to fix the 
> problem.
> > > 
> > > Thank you really much,
> > > 
> > > Best regards,
> > > Shawn
> > > 
> > > 
> > > _______________________________________________
> > > MITgcm-support mailing list
> > > MITgcm-support at mitgcm.org
> > > http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support
> > 
> > -------------- next part --------------
> > A non-text attachment was scrubbed...
> > Name: smime.p7s
> > Type: application/pkcs7-signature
> > Size: 1665 bytes
> > Desc: not available
> > URL: <http://mailman.mitgcm.org/pipermail/mitgcm-support/attachments/20210209/cbd2172a/attachment-0001.p7s>

> 
> > 
> > ------------------------------
> > 
> > Message: 3
> > Date: Tue, 9 Feb 2021 02:14:08 -0500
> > From: Gus Correa <gus at ldeo.columbia.edu>
> > To: MITgcm Support <mitgcm-support at mitgcm.org>
> > Subject: Re: [MITgcm-support] Compiling problem by ifort: undefined
> > 	reference to '_gfortran_st_write'
> > Message-ID:
> > 	<CA+TEG=W3fPFcYnFv1bcPzeP12qGRy254xNZbSbVkD32r35HE8Q at mail.gmail.com
>
> > Content-Type: text/plain; charset="utf-8"
> > 
> > Hi H. W. Shu
> > 
> > Those are gfortran symbols that the Intel (ifort) compiler is unable 
> to
> > find,
> > most likely when trying to link a library to the main MITgcm code.
> > 
> > If your MPI and netCDF libraries were compiled with gfortran,
> > or, which is more common, if you installed them from packages in 
your 
> Linux
> > distribution,
> > which normally compiles them with gfortran, it may be easier to try 
to 
> use
> > a build_options file that uses gfortran instead of Intel ifort.
> > This is probably the shortest path to solve the problem.
> > 
> > If you prefer to use ifort, then a more laborious alternative is to 
> compile
> > MPI and netCDF
> > from scratch (i.e., download the MPI and netCDF source code and 
> compile)
> > with Intel icc and ifort, and use them to link the MITgcm.
> > 
> > I hope this helps,
> > 
> > Gus Correa
> > 
> > On Tue, Feb 9, 2021 at 1:50 AM H.W. Shu <shawn_chou at ees.hokudai.ac.
jp>
> > wrote:
> > 
> > > Dear MITgcm users,
> > >
> > > Hello, this is Shawn from Hokkaido University.
> > > We are trying compiling an mpi run in our system by default 
compiler 
> in
> > > tools/build_options: linux_amd64_ifort
> > > (we added "-lmpi -03" in flags.)
> > >
> > > However, in the process of Make,
> > > it told us that "undefined reference to '_gfortran_st_write_done'" 
> and "
> > > undefined reference to '_gfortran_transfer'".
> > > and leaved by this error.
> > >
> > > I am not familiar with compile problems,
> > > I will really appreciate if can get any hint to start to fix the 
> problem.
> > >
> > > Thank you really much,
> > >
> > > Best regards,
> > > Shawn
> > >
> > >
> > > _______________________________________________
> > > MITgcm-support mailing list
> > > MITgcm-support at mitgcm.org
> > > http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support
> > >
> > -------------- next part --------------
> > An HTML attachment was scrubbed...
> > URL: <http://mailman.mitgcm.org/pipermail/mitgcm-support/attachments/20210209/4985757d/attachment-0001.html>

> 
> > 
> > ------------------------------
> > 
> > Subject: Digest Footer
> > 
> > _______________________________________________
> > MITgcm-support mailing list
> > MITgcm-support at mitgcm.org
> > http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support
> > 
> > 
> > ------------------------------
> > 
> > End of MITgcm-support Digest, Vol 212, Issue 6
> > **********************************************
> > 
> 
> 




More information about the MITgcm-support mailing list