> > 3. Re: gromacs/mopac compilation: linking libmopac (Javier Cerezo)
Dear Javier, Thanks for this update and your efforts. Can i put it on the website? Could you check however the outcome (energy and forces) of an am1 or pm3 computations with another program? Best wishes, Gerrit > > Hi all > > I post here the present status of my query in case my findings may be > helpful for someone else. In the case B (using gfortran to compile > libmopac) I have some success building g the gromacs binary for mdrun in > my x86_64 system. > > **A > Regarding the compilation with ifort, making test with simple C code I > relized that (at least in my case), it is needed to add some extra intel > libreries during compilation. Concretely I added the mkl libraries > (maybe libm was enough, but just in case) and the additional libraries > libifcore, libifcore_pic, libimf, libifport and libintlc (actually the > two that seem strongly required were libifcore and libintlc). The case > is that libintlc is only available in shared version, so I fist > recompiled my libmopac library with -fPIC flag: > > ifort -O2 -fPIC -c *f; ar rcv libmopac.a *.o; ranlib libifmopac.a > > In my test C simple program, it was possible to link against the static > libifmopac.a while using other shared libraries (omitting the flag > -static), so I used --enable-shared. The configure script was > subsequently called as follows (with double precision as well): > > ./configure --prefix > /home/cerezo/Programas/gromacs-4.5.5_with_ifort_mopac/ > --program-suffix=_d_ifmopac LDFLAGS="-L/home/cerezo/lib > -L/home/cerezo/lib/fftw/lib -L/usr/share/intel/mkl/lib/intel64 > -L/usr/share/intel/lib/intel64" CPPFLAGS="-DUSE_MOPAC > -I/home/cerezo/lib/fftw/include" --with-qmmm-mopac > LIBS="-lmkl_intel_ilp64 -lmkl_core -lmkl_sequential -lifcore > -lifcore_pic -limf -lirc -lifport -lintlc -lifmopac" --disable-threads > --disable-float > LD_LIBRARY_PATH=/usr/share/intel/mkl/lib/intel64:/usr/share/intel/lib/intel64::LD_LIBRARY_PATH > > Then > > make mdrun -j 4 > > gave the following error: > > cc -O3 -fomit-frame-pointer -finline-functions -Wall -Wno-unused -msse2 > -funroll-all-loops -std=gnu99 -fexcess-precision=fast -o .libs/mdrun > gctio.o ionize.o do_gct.o repl_ex.o xutils.o runner.o md.o mdrun.o > genalg.o md_openmm.o -L/home/cerezo/lib -L/home/cerezo/lib/fftw/lib > -L/usr/share/intel/mkl/lib/intel64 -L/usr/share/intel/lib/intel64 > ./.libs/libgmxpreprocess_d.so > /home/cerezo/Programas/src/GROMACS_vX/gromacs-4.5.5/src/mdlib/.libs/libmd_d.so > > ../mdlib/.libs/libmd_d.so /home/cerezo/lib/fftw/lib/libfftw3.so > /home/cerezo/Programas/src/GROMACS_vX/gromacs-4.5.5/src/gmxlib/.libs/libgmx_d.so > > ../gmxlib/.libs/libgmx_d.so -lnsl -lm -lmkl_intel_ilp64 -lmkl_core > -lmkl_sequential -lifcore -lifcore_pic -limf -lirc -lifport -lintlc > -lifmopac -Wl,--rpath > -Wl,/home/cerezo/Programas/gromacs-4.5.5_with_ifort_mopac/lib > -Wl,--rpath -Wl,/home/cerezo/lib/fftw/lib > /home/cerezo/Programas/src/GROMACS_vX/gromacs-4.5.5/src/mdlib/.libs/libmd_d.so: > > undefined reference to `__svml_asin2' > /home/cerezo/Programas/src/GROMACS_vX/gromacs-4.5.5/src/mdlib/.libs/libmd_d.so: > > undefined reference to `__svml_exp2_mask' > collect2: ld returned 1 exit status > make[1]: *** [mdrun] Error 1 > make[1]: se sale del directorio > «/home/cerezo/Programas/src/GROMACS_vX/gromacs-4.5.5/src/kernel» > > > **B > I succeeded to build gromacs/mopac with gfortran compiled libmopac. > Fisrt I compiled libmopac with: > > gfortran -std=legacy -c *.f; ar rcv libmopac.a *.o; ranlib libmopac.a > (I made the necessary changes to remove the warnings and errors, such as > changing the calls to SECOND(1) by SECOND() in polar.f and writmo.f) > > In this case, gfortran procedures are simply linked with a single > library: libgfortran, with static version. Thus, I deactivated shared > option in the configure script. Then, the configure script for gromacs > looked like: > > ./configure --prefix > /home/cerezo/Programas/gromacs-4.5.5_with_gfor_mopac/ > --program-suffix=_d_mopac LDFLAGS="-L/home/cerezo/lib > -L/home/cerezo/lib/fftw/lib" CPPFLAGS="-DUSE_MOPAC > -I/home/cerezo/lib/fftw/include" --with-qmmm-mopac LIBS="-lmopac > -lgfortran" --disable-threads --disable-float -disable-shared > > make mdrun -j 4 > > make install-mdrun > > All worked correctly. However, I got a segmentation fault when running a > qm/mm calculation, the problem originated at libmopac subroutines. > Actually, the problem is in the subroutine FOCK2 (in fock2.f), at least > in my system compiling with gfortran: GNU Fortran (Ubuntu/Linaro > 4.5.2-8ubuntu4) 4.5.2. The work around comes as follows: > > In fock2.f: > Line 35: IF(ICALCN.NE.NUMCAL) THEN > [This if loop assures that variable initialization is only made the > fisrt time the main program calls the subroutine. However, in my > gfortran compiled binary, the variables were not saved from calls. So I > capped this loop (is should end at line 89), so that now it looks like:] > Line 35: IF(ICALCN.NE.NUMCAL) THEN > Line 36: ICALCN=NUMCAL > Line 37(new): ENDIF [this was moved from line 89] > > And now I could run gromacs/mopac without errors. I guess with another > compiler, this problem will not arise, but at least here is a solution > for (standard?) gfortran in a x86_64 system > > Javier > > > > El 10/11/11 14:35, Javier Cerezo escribió: >> 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@mopac/fortran/folder> $FC -O2 -c *.f (where FC=gfortran >> or ifort) >> javier@mopac/fortran/folder> ar rcv libmopac.a *.o;ranlib libmopac.a >> javier@mopac/fortran/folder> cp libmopac.a ~/lib/ >> >> [in gromacs folder] >> javier@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@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@mopac/fortran/folder> f2c *.f >> javier@mopac/fortran/folder> gcc -O2 -c *.c >> javier@mopac/fortran/folder> ar rcv libmopac.a *.o;ranlib libmopac.a >> javier@mopac/fortran/folder> cp libmopac.a ~/lib >> >> [in gromacs folder] >> javier@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@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) > Tlf.(+34)868887434 > > > > ------------------------------ > > Message: 4 > Date: Thu, 17 Nov 2011 15:51:53 +0530 > From: Ravi Kumar Venkatraman <ravikumarvenkatra...@gmail.com> > Subject: [gmx-users] Regarding TIP4P structure > To: gmx-users@gromacs.org > Message-ID: > <ca+c-nqzzdjz25rkkl5qdun-7snby6p5sacp7zjzlt_vvp3p...@mail.gmail.com> > Content-Type: text/plain; charset="iso-8859-1" > > Dear all, > Could anybody send me the link for getting the tip4p tip3p and > tip5p single water structure in gro/pdb or in anyother format. > > Thank you. > > *With Regards, > Ravi Kumar Venkatraman, > IPC Dept., IISc, > Bangalore, INDIA. > > +91-9686933963.* > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > http://lists.gromacs.org/pipermail/gmx-users/attachments/20111117/4840f654/attachment.html > > ------------------------------ > > -- > gmx-users mailing list > gmx-users@gromacs.org > http://lists.gromacs.org/mailman/listinfo/gmx-users > Please search the archive at > http://www.gromacs.org/Support/Mailing_Lists/Search before posting! > > End of gmx-users Digest, Vol 91, Issue 117 > ****************************************** -- gmx-users mailing list gmx-users@gromacs.org http://lists.gromacs.org/mailman/listinfo/gmx-users Please search the archive at http://www.gromacs.org/Support/Mailing_Lists/Search before posting! Please don't post (un)subscribe requests to the list. Use the www interface or send it to gmx-users-requ...@gromacs.org. Can't post? Read http://www.gromacs.org/Support/Mailing_Lists