Amber on Seawulf (compilation)
compiling Amber9
Follow the steps in the INSTALL file.
At step 5, edit config.h by change g95 to gfortrain.
The following lib file is not found by the compiler
/usr/include/X11/extensions/shape.h
I copied the following dir from another machine:
/usr/include/X11/extensions
and put it in my home dir in:
~/usr/include/X11/extensions
I modified the files changing the reported line number:
/nfs/user03/tbalius/amber9/src/leap/src/Xmu/ShapeWidg.c line: 27 /nfs/user03/tbalius/amber9/src/leap/src/Xraw/Logo.c line: 26 /nfs/user03/tbalius/amber9/src/leap/src/Xraw/Mailbox.c line: 64 from: #include <X11/extensions/shape.h> to: #include </nfs/user03/tbalius/usr/include/X11/extensions/shape.h>
instead we should have
/usr/include/X11/extensions/shape.h x11proto-xext-dev
installed.
I get the following Error:
/usr/bin/ld: cannot find -lXext
possible solutions:
cd /usr/lib ln -s ./libXext.so.6.4.0 ./libXext.so
instead I did the following:
cd ~/user mkdir lib ln -s /usr/lib/libXext.so.6.4.0 libXext.so cd ../ ln -s lib lib64 ln -s lib lib32
Then I changed the following file at the specified line:
amber9/src/leap/src/leap/Makefile line:117
from:
../Xmu/libXmu.a $(XLIBS) -lXt -lXext -lSM -lICE -lX11 $(LM) -lpthread
to:
../Xmu/libXmu.a -L/nfs/user03/tbalius/usr/lib/ -lXext -L/usr/lib/ -lXt -lSM -lICE -lX11 -lm -lpthread
MAKE PARALLEL
./configure -mpich2 -p4 gfortran AMBERHOME is set to /nfs/user03/tbalius/amber9 Setting up Amber configuration file for architecture: gfortran Using parallel communications library: mpich2 MPI_HOME is set to /nfs/user03/tbalius/mpich2-install ./configure: line 314: /nfs/user03/tbalius/mpich2-install/bin/mpif90: No such file or directory The MKL_HOME environment variable is not defined. The configuration file, config.h, was successfully created.
Because of the bold error, we change configure file at line 313:
from:
loadlib=`$MPI_HOME/bin/mpif90 -show | perl -p -e 's/(-[lL]\S+\s)|\S+\s/$1/g'`
to:
loadlib=`$MPI_HOME/bin/mpif77 -show | perl -p -e 's/(-[lL]\S+\s)|\S+\s/$1/g'`
compiling Amber10
while making amber10 tools I get the following error:
ShapeWidg.c:27:34: error: X11/extensions/shape.h: No such file or directory
Like above changed the same files:
From:
Xmu/ShapeWidg.c:#include <X11/extensions/shape.h> Xraw/Logo.c:#include <X11/extensions/shape.h> Xraw/Mailbox.c:#include <X11/extensions/shape.h>
To:
Xmu/ShapeWidg.c:#include </nfs/user03/tbalius/usr/include/X11/extensions/shape.h> Xraw/Logo.c:#include </nfs/user03/tbalius/usr/include/X11/extensions/shape.h> Xraw/Mailbox.c:#include </nfs/user03/tbalius/usr/include/X11/extensions/shape.h>
Next, I get the same error as in amber9.
/usr/bin/ld: cannot find -lXext
During linking.
I change the following file at the specified line:
amber10/src/leap/src/leap/Makefile at line 114 from ../Xmu/libXmu.a $(XLIBS) -lXt -lXext -lSM -lICE -lX11 -lXau -lXdmcp $(LM) -lpthread to ../Xmu/libXmu.a $(XLIBS) -lXt -lSM -lICE -lX11 -lXau -lXdmcp -L/nfs/user03/tbalius/usr/lib -lXext $(LM) -lpthread
Problem with testing amber tools:
Running test to compute GB Newton-Raphson and normal modes:
/nfs/user03/tbalius/amber10/lib/libnab.a(newton.o): In function `newton': newton.c:(.text+0xba8): undefined reference to `assert' /nfs/user03/tbalius/amber10/lib/libnab.a(nmode.o): In function `nmode': nmode.c:(.text+0x511e): undefined reference to `assert' collect2: ld returned 1 exit status cc failed! make[1]: *** [asp_test] Error 1 make[1]: Leaving directory `/nfs/user03/tbalius/amber10/test/nab' make: *** [test.nab] Error 2
every thing else ran.
configure amber with gfortran
./configure_amber gfortran
Because I am compiling a cheek out from the CVS tree I had to modify 4 files in the source code and cp one file (qmmm_module.mod ) to a different dir
when running
make serial
First is seems that the following file need to be placed to the following dir and it is not being copied there:
after:
make serial cp sander/qmmm_module.mod dcqtp/mod/ make serial
I get the following error:
gfortran: ../../sander: linker input file unused because linking not done gfortran -c -O1 -fno-automatic -ffree-form ../../sander -I../src/include -DHAS_LAPACK -DQMMM -o ../obj/freq_qmmm.o ../src/freq/freq.F90 ../src/freq/freq.F90:11.38:
use qmmm_module, only: qmmm_struct, qmmm_div 1 Error: Symbol 'qmmm_div' referenced at (1) not found in module 'qmmm_module'
../src/freq/freq.F90:38.26:
dimension dcl(3,qmmm_div%ntotatm+qmmm_struct%nlink) 1 Error: Expected another dimension in array declaration at (1) make[3]: *** [../obj/freq_qmmm.o] Error 1 make[3]: Leaving directory `/nfs/user03/tbalius/amber10/src/dcqtp/mod' make[2]: *** [libdivcon.a] Error 2 make[2]: Leaving directory `/nfs/user03/tbalius/amber10/src/dcqtp' make[1]: *** [divcon] Error 2 make[1]: Leaving directory `/nfs/user03/tbalius/amber10/src/sander' make: *** [serial] Error 2
change the following lines:
1)amber10/src/dcqtp/src/freq/freq.F90:11: use qmmm_module, only: qmmm_struct, qmmm_div amber10/src/dcqtp/src/freq/freq.F90:38: dimension dcl(3,qmmm_div%ntotatm+qmmm_struct%nlink) 2)amber10/src/dcqtp/src/mem/allocateScrfVars.F90:10: use qmmm_module, only : qmmm_struct, qmmm_div amber10/src/dcqtp/src/mem/allocateScrfVars.F90:45: allocate (atarea(qmmm_div%ntotatm+qmmm_struct%nlink), stat=ierror) 3)amber10/src/dcqtp/src/pb/pbsolver.F90:36: use qmmm_module, only : qmmm_struct, qmmm_nml, qmmm_div amber10/src/dcqtp/src/pb/pbsolver.F90:73: allocate(charges(qmmm_div%ntotatm+qmmm_struct%nlink),stat=ier) amber10/src/dcqtp/src/pb/pbsolver.F90:123: do i=1,qmmm_div%ntotatm+qmmm_struct%nlink amber10/src/dcqtp/src/pb/pbsolver.F90:131: call divpb(qmmm_div%ntotatm+qmmm_struct%nlink, & amber10/src/dcqtp/src/pb/pbsolver.F90:133: qmmm_div%all_atom_numbers, & amber10/src/dcqtp/src/pb/pbsolver.F90:142: do i=1,qmmm_div%ntotatm+qmmm_struct%nlink amber10/src/dcqtp/src/pb/pbsolver.F90:151: do j=qmmm_div%ntotatm+qmmm_struct%nlink,i,-1 amber10/src/dcqtp/src/pb/pbsolver.F90:162: do j=qmmm_div%ntotatm+qmmm_struct%nlink,i,-1 amber10/src/dcqtp/src/pb/pbsolver.F90:163: temp = qmmm_div%all_atom_numbers(j-1) amber10/src/dcqtp/src/pb/pbsolver.F90:164: qmmm_div%all_atom_numbers(j)=temp amber10/src/dcqtp/src/pb/pbsolver.F90:166: qmmm_div%all_atom_numbers(i)=1 amber10/src/dcqtp/src/pb/pbsolver.F90:184: call divpb(qmmm_div%ntotatm+qmmm_struct%nlink, & amber10/src/dcqtp/src/pb/pbsolver.F90:186: qmmm_div%all_atom_numbers, &
for the frist occurence in every file remove qmmm_div; eg, change
from:
use qmmm_module, only: qmmm_struct, qmmm_div
to:
use qmmm_module, only: qmmm_struct
for other occurences change qmmm_div to qmmm_struct
To change this with ease do the following:
cd ${AMBERHOME}/src/dcqtp/src sed -i 's/qmmm_div/qmmm_struct/g' freq/freq.F90 sed -i 's/qmmm_div/qmmm_struct/g' mem/allocateScrfVars.F90 sed -i 's/qmmm_div/qmmm_struct/g' pb/pbsolver.F90
sed -i is for in place edits (meaning modifying the input file).