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


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...

Forum Vet
please send the output of "cat $NWCHEM_TOP/src/util/util.fh"
Yjleedaniel,
Could you please post the output of the command

cat $NWCHEM_TOP/src/util/util.fh

I have some theories that might explain your failure, but I need to see what's in your util.fh to be sure.

Cheers, Edo

Clicked A Few Times
Thanks a lot, Edoapra!
Thank you, Edoapra! I feel very thankful for your concern about this problem.

Now I can run NWChem. (I got help from one student in other lab) I changed the NWChem scripts in .bashrc file.

This is the new scripts that I wrote.




  ### (same scripts as before) ###
export LARGE_FILES=TRUE
export USE_NOFSCHECK=TRUE
export NWCHEM_TARGET=LINUX64
export NWCHEM_MODULES=all
export TCGRSH=/usr/bin/ssh
export USE_MPI=y
export USE_MPIF=y
export USE_MPIF4=y
export MPI_LIB=$MPI_LOC/lib
export MPI_INCLUDE=$MPI_LOC/include

### (changed) ###
export NWCHEM_TOP=/opt/nwchem/nwchem-6.1 # I changed the path a little for general site running.
export NWCHEM_EXEC=/opt/nwchem/nwchem-6.1-general/bin/nwchem
export BLASOPT="-L/opt/intel/Compiler/11.1/059/mkl/lib/em64t -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lmkl_lapack" # "mkl_lapack" library was added
export MPI_LOC=/opt/mpi/intel/openmpi-1.4.1 # changed from mpich2 to openmpi
export LIBMPI="-L/opt/mpi/intel/openmpi-1.4.1/lib -lmpi -lopen-pal -lopen-rte -lmpi_f90 -lmpi_f77" # libraries in openmpi folder
export FC=$MPI_LOC/bin/mpif90 #here I wrote path for compilers in openmpi folder
export F77=$MPI_LOC/bin/mpif77
export CC=$MPI_LOC/bin/mpicc




I checked the util.fh file after I succeeded. I found that it has "ddot scripts"!!

This is util.fh scripts that I checked after running NWChem.




  #include "printlevels.fh"
c
C$Id: util.fh 19707 2010-10-29 17:59:36Z d3y133 $
logical util_print
double precision ddot
double precision util_cpusec
double precision util_wallsec
double precision util_random
integer util_batch_job_time_remaining
integer util_time_remaining
logical util_test_time_remaining
logical util_nwchemrc_get
external util_print
external ddot
external util_cpusec
external util_wallsec
external util_random
external util_batch_job_time_remaining
external util_time_remaining
external util_test_time_remaining
external util_nwchemrc_get
c
logical util_xyz_seek
external util_xyz_seek
logical util_xyz_nframes
external util_xyz_nframes
c
logical util_get_io_unit
external util_get_io_unit
c
integer nw_max_path_len  ! Maximum path len -> posix standard is what?
parameter (nw_max_path_len = 255)
c





I see the difference between two .bashrc script but still don't understand what made the difference.
(I mean, I couldn't run NWChem before but now I can. Also util.fh has ddot scripts.)
Would you(Edoapra? anyone?) like to explain the difference between two scripts?

Anyway, I'd like to express my thanks again. (Thank you!!)

Forum Vet
Yjleedaniel,
Could you please post the complete compile line that you can in both cases? This should be something like
ifort .... or mpif90 ...
?
Thanks

Clicked A Few Times
Thanks again, Edoapra.
Sorry for late-

Actually, I tried to post about the description that I did, but I couldn't. When I click the submit button after writing the post,
an error message like "The specified URL cannot be found" comes out.

Now I'm going to describe what I did briefly. Still I don't know the reason but it seems when I write a long post, the error message comes out.

I did what the INSTALL manual file says. (I mean, the install file in nwchem-6.1 folder)

Clicked A Few Times
Sorry for this!
I'm trying to post but I can't!
I'm sorry for above post (only one sentence description?!), but when I try to post some more lines, the error message comes out!

Forum Vet
We have found that certain combinations of characters are considered operations/actions and those get blocked. Please send the requested data to edoardo.apra@pnnl.gov.

Bert

Quote:Yjleedaniel Mar 22nd 12:35 pm
I'm trying to post but I can't!
I'm sorry for above post (only one sentence description?!), but when I try to post some more lines, the error message comes out!


Forum >> NWChem's corner >> Compiling NWChem