Installing GAMESS on Mimosa
Getting the Source code
The Source code for the GAMESS installation package can be obtained
For Mimosa, we opted for the version suitable for linux and Intel 32-bit archtecture.
Once you submit the email address, upon verification (within a week), they give you a password
to access their ftp server, their password changes every week.
Once the source code was obtained, we untarred it in /usr/local/apps/gamess using:
"tar -xzvf gamess.tar.gz". The tarred file for June 2005 version resides in /usr/local/apps.
Before you proceed, do read the installation directions @ gamess/misc/readme.unix
Source Code changes
The GAMESS installation package is made very generic; To be installed across multiple platforms and operating systems and also so that we can use the compilers we desire to build it.
Mimosa is a Beowulf Cluster of 32 bit processors running the LINUX operationg system. We decided to use the portland group of
compilers to build GAMESS. Hence certain changes need to be made in the compilation scripts and also in the source code to
reflect these choices. These changes were obtained from the
Portland gourp website for help with compiling GAMESS In the instructions, certain line numbers at which changes
are requested may be approximate but not accurate, so you will have to look around to find the exact location at which to make the changes.
Secondly while building GAMESS we encountered some issues that came in the way of a smooth compilation. This could be because something failed
when trying to convert GAMESS from the generic form to the form specific to our purpose, we have also documented how we overcame those errors.
But first the changes in source as per portland group website. The location for all these files is "gamess/" which on mimosa is at "/usr/local/apps/gamess"
Line 17: set the "TARGET" to "liniux-pc".
- Line 408,409: set "CC" to pgcc and the "CFLAGS" to "-DLINUX -fast -Mscalarsse -I./include". Remove "-Mscalarsse" for non-SSE enabled systems.
- Line 412: Change to 1 underscore, "-D_UNDERSCORES=1".
- Line 15: set the "TARGET" to "linux-pc".
- Line 16: replace the "/u1/mike/gamess" with the root directory of your GAMESS package.
- Line 34: set "CCOMP" to "pgcc".
- Note: You may need to explicitly set your PATH environment variable as well
setenv PATH $PATH\:/usr/pgi/linux86/5.2/bin #Set to your path
Add your compilation flags (ex "-fast -Mscalarsse") to the compilation of zunix (line 68). The actual option used should match the options you use in compiling the Fortran source (See below).
- Determine where your scratch directory is located. For our testing purposes, we created a "scr" directory in the local gamess directory. Set the "SCR" variable (line 38) to this directory. Note that this should be an absolute path.
In the file assignment section, you should change files starting with "~/scr" to the actual directory location. For our tests, we used the local scr directory. You'll also need to set the "ERICFMT" path.
- Line 260: Set the "GMSPATH" to the location of the gamess executable.
These are some changes to the rungms file, beyond those specified by the Portland Group website
Instructions from the Portland Group website:
- Build the activate utility in the tools directory:
cp actvte.code actvte.f
:%s/^\*UNX/ / <--- 4 blanks between the strokes
pgf77 -o actvte.x actvte.f
- Enter the "ddi" directory and type "./compddi". Copy "ddikick.x" to the main directory.
- Type "compall" in the main directory to compile the source.
- Compile the "zheev.f" file in the object directory with your options ("-c -fast -DLINUX" and more) plus "-Kieee" if using >= "-O2".
- Type "lked" from the command line to link the source.
The compilation at step 4 takes quite a bit of time, after compilation if the linking at step 5 fails,
with the error that "int2c.o" cannot be found, the reason is that the compilation of the file "int2c.f"
failed. This file is in the "object" folder,
- replace all occurances of "REAL*16" with "REAL*8" in this file.
- Also there are a couple of other instances where numbers are represented for example as: 1.0Q+00, we think what was intended was an E(exponential), so when replaced
all the occurances of Q with e only in those numbers and we had a successful compile. Note this file can be compiled individually as in step 4 above to get rid of the errors.