(Help!) Compiling NWChem6.1 with ifort,icc,mpich2, and mkl library


Click here for full thread
Clicked A Few Times
Hello everyone

These days I'm struggling to install NWChem6.1 on my lab's cluster PC.

I tried to find informations from internet and this forum. I could understand some part of them but not everything, and now I think I've got stuck.
(I'm not so familiar with linux system and commands)

Would you like to help me, please?

I briefly wrote about things I did below, but actually
I tried many times to compile NWChem with a little bit different bash scripts.
I think, however, below description would be enough to explain what I did.



This is the script that I wrote on "~/.bashrc" file.

export LARGE_FILES=TRUE
export USE_NOFSCHECK=TRUE
export NWCHEM_TOP=/opt/nwchem-6.1 # where I unzipped the tar file
export NWCHEM_TARGET=LINUX64
export NWCHEM_MODULES=all

export BLASOPT="-L/opt/intel/Compiler/11.1/059/mkl/lib/em64t -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core" # I found my cluster has these libraries in this directory
export FC=ifort
export CC=icc

export TCGRSH=/usr/bin/ssh
export USE_MPI=y
export USE_MPIF=y
export USE_MPIF4=y
export MPI_LOC=/opt/mpi/intel/mpich2-1.2.1p1
export LIBMPI="-L/opt/mpi/intel/mpich2-1.2.1p1/lib/ -lmpich -lopa" # I found my cluster has these libraries in this directory
export MPI_LIB=$MPI_LOC/lib
export MPI_INCLUDE=$MPI_LOC/include



Then I did
   ] $ source ~/.bashrc
] $ cd /opt/nwchem-6.1/src
src] $ make nwchem_config # I got about one page of messages after typing this.
src] $ make >& make.log #Then I waited. More than 5 or 10 minutes were needed.



After that, I checked the "make.log" file. (contains about 13,000 lines)
At the end of that file, I found these error messages.

tce_residual_t1.F(72): error #6404: This name does not have a type, and must have an explicit type. [DDOT]
             residual = ddot(size,dbl_mb(k_r1),1,dbl_mb(k_r1),1)

^
tce_residual_t1.F(176): error #6404: This name does not have a type, and must have an explicit type. [DDOT]
             residual = ddot(size,dbl_mb(k_r1),1,dbl_mb(k_r1),1)

^
compilation aborted for tce_residual_t1.F (code 1)make[2]: *** [/opt/nwchem-6.1/lib/LINUX64/libtce.a(tce_residual_t1.o)] Error 1
make[2]: *** Waiting for unfinished jobs....make[1]: *** [optimized] Error 2
make[1]: *** Waiting for unfinished jobs....make: *** [libraries] Error 1



I first checked 72nd and 176th line of the "tce_residual_t1.F"
and found "residual = ddot(......)" script as wrotten above.

I tried google search about this and found that this error may come from "util.fh" file.
(http://www.emsl.pnl.gov/docs/nwchem/nwchem-support/2009/11/0026.Re:_NWCHEM_error_compiling...)

Then I manually added "double precision ddot" and "external ddot" on "util.fh" file and saved.



After that, I did "make" again.

src] $ make realclean
src] $ make nwchem_config
src] $ make FC=ifort >& make.log



After about 10 minutes again, I checked the make.log file.
And I found the same error message!
So I checked the util.fh file again, and found that they don't have two "ddot" lines that I added!



Now I have no idea what to do.

Actually I'm not sure whether I wrote the bash script appropriately.
(Is the grammer correct? Did I missed some scripts that should be included? Did I missed some environment of my cluster PC?)

I feel sorry to ask this kind of lengthy question.
I would be really grateful if you could give me some advice...