[gmx-users] gromacs/mopac compilation: linking libmopac

Javier Cerezo jcb1 at um.es
Thu Nov 10 14:35:24 CET 2011


Hi all

I am trying to compile gromacs with mopac but I'm experience some 
problems using libmopac.a. I have a x86_64 processor and I'm trying with 
gromacs-4.5.5. I've followed the instructions at the website (i.e. to 
compile libmopac.a, I've used the alternte dcart.f and gmxmop.f) but I 
didn't succeed. I've also seen that this topic have some times appeared 
in the mailing list but the trick proposed didn't work for me.

Here you have the steps with different scenarios I've gone through:

**A: Compilation of libmopac.a with fortran compiler then gromacs 
installation**

[ in mopac fortran folder]
javier at mopac/fortran/folder> $FC -O2 -c *.f        (where FC=gfortran or 
ifort)
javier at mopac/fortran/folder> ar rcv libmopac.a *.o;ranlib libmopac.a
javier at mopac/fortran/folder> cp libmopac.a ~/lib/

[in gromacs folder]
javier at gromacs/folder> ./configure --prefix 
/home/cerezo/Programas/gromacs-4.5.5_with_mopac/ --with-qmmm-mopac 
--without-qmmm-gaussian  --disable-threads --disable-shared 
LDFLAGS="-L/home/cerezo/lib" CPPFLAGS="-DUSE_MOPAC" LIBS="-lmopac"
javier at gromacs/folder> make -j 4

Then I get lots of "undefined reference" errors:
cc -O3 -fomit-frame-pointer -finline-functions -Wall -Wno-unused -msse2 
-funroll-all-loops -std=gnu99 -fexcess-precision=fast -o tpbconv 
tpbconv.o  -L/home/cerezo/lib ./.libs/libgmxpreprocess.a 
/home/cerezo/Programas/src/GROMACS_vX/gromacs-4.5.5/src/mdlib/.libs/libmd.a 
../mdlib/.libs/libmd.a -lfftw3f 
/home/cerezo/Programas/src/GROMACS_vX/gromacs-4.5.5/src/gmxlib/.libs/libgmx.a 
../gmxlib/.libs/libgmx.a -ldl -lnsl -lm -lmopac
/bin/bash ../../libtool --tag=CC   --mode=link cc  -O3 
-fomit-frame-pointer -finline-functions -Wall -Wno-unused -msse2 
-funroll-all-loops -std=gnu99 -fexcess-precision=fast  
-L/home/cerezo/lib   -o g_protonate g_protonate.o libgmxpreprocess.la  
../mdlib/libmd.la ../gmxlib/libgmx.la  -lnsl -lm -lmopac
/bin/bash ../../libtool --tag=CC   --mode=link cc  -O3 
-fomit-frame-pointer -finline-functions -Wall -Wno-unused -msse2 
-funroll-all-loops -std=gnu99 -fexcess-precision=fast  
-L/home/cerezo/lib   -o g_luck g_luck.o libgmxpreprocess.la  
../mdlib/libmd.la ../gmxlib/libgmx.la  -lnsl -lm -lmopac
/home/cerezo/lib/libmopac.a(gmxmop.o): In function `donhco_':
gmxmop.f:(.text+0x23e): undefined reference to `for_f90_index'
gmxmop.f:(.text+0x26c): undefined reference to `for_f90_index'
gmxmop.f:(.text+0x298): undefined reference to `for_f90_index'
...
/home/cerezo/lib/libmopac.a(gmxmop.o): In function `deriv_':
gmxmop.f:(.text+0x792): undefined reference to `for_f90_index'
gmxmop.f:(.text+0x7c0): undefined reference to `for_f90_index'
gmxmop.f:(.text+0x7e1): undefined reference to `for_f90_index'
/home/javier/lib/libmopac.a(timer.o)(.text+0x11d): In function `timer_':
: undefined reference to `for_write_seq_fmt'
... (an so on for each mopac object)

Where I think these refer to internal intel fortran functions 
(compilation with ifort, analogous errors come with gfortran internal 
functions). So probably I'm missing something to include this function 
at gromacs compilation time

---

**B: Compilation of libmopac.a with f2c+gcc then gromacs installation**
javier at mopac/fortran/folder>  f2c *.f
javier at mopac/fortran/folder> gcc -O2 -c *.c
javier at mopac/fortran/folder> ar rcv libmopac.a *.o;ranlib libmopac.a
javier at mopac/fortran/folder> cp libmopac.a ~/lib

[in gromacs folder]
javier at gromacs/folder> ./configure --prefix 
/home/cerezo/Programas/gromacs-4.5.5_with_mopac/ --with-qmmm-mopac 
--without-qmmm-gaussian  --disable-threads --disable-shared 
LDFLAGS="-L/home/cerezo/lib" CPPFLAGS="-DUSE_MOPAC" LIBS="-lmopac"
javier at gromacs/folder> make -j 4

This time I also get "undefined reference errors", but related to f2c 
funtions:
+timout.c0x105:)(:. textundefined+ 0x3c8reference) :to  undefined` 
do_fioreference'
totimer.c :`(do_fio.'text

In this case, do I need to include the f2c.h file somewhere in the 
gromacs qmmm interface code?

Could someone point me out where I'm mistaking and what should I do to 
complete the installation?

Thanks

Javier


-- 
Javier CEREZO BASTIDA
PhD Student
Physical Chemistry
Universidad de Murcia
Murcia (Spain)




More information about the gromacs.org_gmx-users mailing list