undefined references in 6.1.1


Just Got Here
Hello, I compiled 6.1 on the Linux cluster, gcc version 4.4.6 20120305, but I am not able to do it for 6.1.1:

---
cd nwchem-6.1.1-src
cd src
export NWCHEM_TOP=/home/gb/nwchem-6.1.1-src
export NWCHEM_TARGET=LINUX64
export NWCHEM_MODULES="all"
export ARMCI_NETWORK=OPENIB
export USE_NOFSCHECK=TRUE
export LARGE_FILES=TRUE
export USE_MPI=y
export USE_MPIF=y
export USE_MPIF4=y
export LIBMPI="-lmpichf90 -lmpich -lopa -lmpl -lpthread -lrdmacm -libverbs -libumad -ldl -lrt"
export MPI_LIB=/usr/lib64/mvapich2/lib
export MPI_INCLUDE=/usr/include/mvapich2-x86_64
export FC=gfortran
export CC=gcc
make nwchem_config
make >& make.log
---

Errors (only for 6.1.1) are:

gfortran -L/home/gb/nwchem-6.1.1-src/lib/LINUX64 -L/home/gb/nwchem-6.1.1-src/src/tools/install/lib -o /home/gb/nwchem-6.1.1-src/bin/LINUX64/nwchem nwchem.o stubs.o -lnwctask -lccsd -lmcscf -lselci -lmp2 -lmoints -lstepper -ldriver -loptim -lnwdft -lgradients -lcphf -lesp -lddscf -ldangchang -lguess -lhessian -lvib -lnwcutil -lrimp2 -lp
roperty -lnwints -lprepar -lnwmd -lnwpw -lofpw -lpaw -lpspw -lband -lnwpwlib -lcafe -lspace -lanalyze -lqhop -lpfft -ldplot -ldrdy -lvscf -lqmmm -lqmd -letrans -lpspw -ltce -lbq -lcons -lperfm -ldntmc -lccca -lnwcutil -lga -lpeigs -lperfm -lcons -lbq -lnwcutil -llapack -lblas -L/usr/lib64/mvapich2/lib -lmpichf90 -lmpich -lopa -lmpl -lpthread -lrdmacm
-libverbs -libumad -ldl -lrt -libverbs
/home/gb/nwchem-6.1.1-src/lib/LINUX64/libnwcutil.a(output.o): In function `output':
/home/gb/nwchem-6.1.1-src/src/util/output.f:41: undefined reference to `for_write_seq_fmt'
/home/gb/nwchem-6.1.1-src/src/util/output.f:52: undefined reference to `for_write_seq_fmt'
/home/gb/nwchem-6.1.1-src/src/util/output.f:52: undefined reference to `for_write_seq_fmt_xmit'
/home/gb/nwchem-6.1.1-src/src/util/output.f:52: undefined reference to `for_write_seq_fmt_xmit'
... (many similar lines)

Thank you for your advice.

Forum Regular
Hi Goranka,
I think you need to do a "make realclean" first. The symbols the linker cannot find have been introduced by the Intel fortran compiler. Obviously the gfortran compiler does not support these routines in its library. This suggests that somehow you have picked object files or libraries up that were generated with the Intel fortran compiler. Running "make realclean" is your best bet to recover from this.
Best wishes,
Huub

Just Got Here
Hi Huub,

Yes, admins of the cluster I am using changed the compiler from ifort to gfortran, and I did only make clean.

However, make realclean cleans too much in this case, and I had an error:
Making libraries in basis
make[1]: *** No rules to make target `/home/gb/nwchem-6.1.1-src/src/include/stdio.fh', needed by
`/home/gb/nwchem-6.1.1-src/lib/LINUX64/libnwcutil.a(basis.o)'. Stop.
make: *** [libraries] Error 1
I am writing this error message here because it is (perhaps) useful to know.

I have downloaded a new 6.1.1 package and now it compiles. The problem is solved. Thank you very much.

Clicked A Few Times
cp util/*.fh include/.

I guess by doing this after realclean will do the job.


Forum >> NWChem's corner >> Compiling NWChem