aboutsummaryrefslogtreecommitdiff
path: root/science
diff options
context:
space:
mode:
authorMaho Nakata <maho@FreeBSD.org>2013-03-05 11:43:18 +0000
committerMaho Nakata <maho@FreeBSD.org>2013-03-05 11:43:18 +0000
commit773f134396248763b048d6247223580f59bc36a4 (patch)
treeb131b2b9bac8972dc9aa26f4577f5a29f51bfff5 /science
parenta795caea20afcda21eb86cbb2437f9a9966473a7 (diff)
downloadports-773f134396248763b048d6247223580f59bc36a4.tar.gz
ports-773f134396248763b048d6247223580f59bc36a4.zip
Notes
Diffstat (limited to 'science')
-rw-r--r--science/gamess/Makefile69
-rw-r--r--science/gamess/distinfo4
-rw-r--r--science/gamess/files/Makefile.top2
-rw-r--r--science/gamess/files/install.info15
-rw-r--r--science/gamess/files/patch-comp408
-rw-r--r--science/gamess/files/patch-compall63
-rw-r--r--science/gamess/files/patch-compddi40
-rw-r--r--science/gamess/files/patch-gms-files.csh13
-rw-r--r--science/gamess/files/patch-lked291
-rw-r--r--science/gamess/files/patch-rungms113
-rw-r--r--science/gamess/pkg-message8
-rw-r--r--science/gamess/pkg-plist105
12 files changed, 712 insertions, 419 deletions
diff --git a/science/gamess/Makefile b/science/gamess/Makefile
index 5f87186ed1da..40ad23c61a48 100644
--- a/science/gamess/Makefile
+++ b/science/gamess/Makefile
@@ -7,7 +7,6 @@
PORTNAME= gamess
PORTVERSION= ${SNAPDATE}
-PORTREVISION= 2
CATEGORIES= science
MASTER_SITES= #http://www.msg.ameslab.gov/GAMESS/License_Agreement.html
DISTNAME= gamess-current
@@ -18,7 +17,7 @@ COMMENT= A freely obtainable ab-initio molecular orbital calculation program
USE_GMAKE= yes
WRKSRC= ${WRKDIR}/gamess
-SNAPDATE= 20090112.3
+SNAPDATE= 20120501.2
USE_FORTRAN= yes
@@ -55,8 +54,6 @@ BLAS= -lptf77blas
LAPACK= -lalapack -lptcblas
.endif
-MAKE_ENV+= LANG="C"
-
.if defined(WITH_OPTIMIZED_FLAGS)
.if ${ARCH} == "amd64"
CFLAGS+= -pipe -O3 -ffast-math -funroll-all-loops -fpeel-loops -ftracer -funswitch-loops -funit-at-a-time
@@ -88,18 +85,31 @@ FORTRAN= gfortran
.endif
pre-build:
+ ${CP} ${FILESDIR}/install.info ${WRKSRC}
+ ${CP} ${FILESDIR}/Makefile.top ${WRKSRC}/Makefile
+ @${REINPLACE_CMD} -e 's+%%PREFIX%%+${PREFIX}+g' ${WRKSRC}/gms-files.csh
.if ${ARCH} == "amd64"
- @${REINPLACE_CMD} -e 's+%%ARCH%%+freebsd-amd64+g' ${WRKSRC}/comp
- @${REINPLACE_CMD} -e 's+%%ARCH%%+freebsd-amd64+g' ${WRKSRC}/compall
- @${REINPLACE_CMD} -e 's+%%ARCH%%+freebsd-amd64+g' ${WRKSRC}/ddi/compddi
- @${REINPLACE_CMD} -e 's+%%ARCH%%+freebsd-amd64+g' ${WRKSRC}/lked
+ @${REINPLACE_CMD} -e 's+%%ARCH%%+freebsd64+g' ${WRKSRC}/comp
+ @${REINPLACE_CMD} -e 's+%%ARCH%%+freebsd64+g' ${WRKSRC}/compall
+ @${REINPLACE_CMD} -e 's+%%ARCH%%+freebsd64+g' ${WRKSRC}/ddi/compddi
+ @${REINPLACE_CMD} -e 's+%%ARCH%%+freebsd64+g' ${WRKSRC}/lked
+ @${REINPLACE_CMD} -e 's+%%GMS_TARGET%%+freebsd64+g' ${WRKSRC}/install.info
.elif ${ARCH} == "i386"
- @${REINPLACE_CMD} -e 's+%%ARCH%%+freebsd-i386+g' ${WRKSRC}/comp
- @${REINPLACE_CMD} -e 's+%%ARCH%%+freebsd-i386+g' ${WRKSRC}/compall
- @${REINPLACE_CMD} -e 's+%%ARCH%%+freebsd-i386+g' ${WRKSRC}/ddi/compddi
- @${REINPLACE_CMD} -e 's+%%ARCH%%+freebsd-i386+g' ${WRKSRC}/lked
+ @${REINPLACE_CMD} -e 's+%%ARCH%%+freebsd32+g' ${WRKSRC}/comp
+ @${REINPLACE_CMD} -e 's+%%ARCH%%+freebsd32+g' ${WRKSRC}/compall
+ @${REINPLACE_CMD} -e 's+%%ARCH%%+freebsd32+g' ${WRKSRC}/ddi/compddi
+ @${REINPLACE_CMD} -e 's+%%ARCH%%+freebsd32+g' ${WRKSRC}/lked
+ @${REINPLACE_CMD} -e 's+%%GMS_TARGET%%+freebsd32+g' ${WRKSRC}/install.info
.endif
- @${REINPLACE_CMD} -e 's+%%FC%%+${FC}+g ; \
+ @${REINPLACE_CMD} -e 's+%%GMS_PATH%%+${WRKSRC}+g ; \
+ s+%%GMS_BUILD_DIR%%+${WRKSRC}+g ; \
+ s+%%GMS_FORTRAN%%+${FORTRAN}+g ; \
+ s+%%FC%%+${FC}+g ; \
+ s+%%GMS_GFORTRAN_VERNO%%+${GCC_DEFAULT_VERSION}+g ; \
+ s+%%GMS_DDI_COMM%%+sockets+g ; \
+ s+%%GMS_MATHLIB%%+none+g ; \
+ s+%%GMS_MATHLIB_PATH%%+${LOCALBASE}/lib+g' ${WRKSRC}/install.info
+ ${REINPLACE_CMD} -e 's+%%FC%%+${FC}+g ; \
s+%%LDFLAGS%%+${LDFLAGS}+g ; \
s+%%LOCALBASE%%+${LOCALBASE}+g ; \
s+%%LIBSVM%%+${LIBSVM}+g ; \
@@ -107,26 +117,26 @@ pre-build:
s+%%BLAS%%+${BLAS}+g ; \
s+%%PTHREAD_LIBS%%+${PTHREAD_LIBS}+g' \
${WRKSRC}/lked
- @${REINPLACE_CMD} -e 's+%%FC%%+${FC}+g ; \
- s+%%FFLAGS%%+${FFLAGS}+g ; \
- s+%%FORTRAN%%+${FORTRAN}+g' \
+ ${REINPLACE_CMD} -e 's+%%FC%%+${FC}+g ; \
+ s+%%FFLAGS%%+${FFLAGS}+g' \
${WRKSRC}/comp
- @${REINPLACE_CMD} -e 's+%%CC%%+${CC}+g' \
+ ${REINPLACE_CMD} -e 's+%%CC%%+${CC}+g' \
${WRKSRC}/compall
- @${REINPLACE_CMD} -e 's+%%PREFIX%%+${PREFIX}+g' \
+ ${REINPLACE_CMD} -e 's+%%PREFIX%%+${PREFIX}+g' \
${WRKSRC}/rungms
- @${REINPLACE_CMD} -e 's+%%PTHREAD_CFLAGS%%+${PTHREAD_CFLAGS}+g ; \
+ ${REINPLACE_CMD} -e 's+%%FC%%+${FC}+g ; \
+ s+%%GMS_FORTRAN%%+${FORTRAN}+g ; \
+ s+%%PTHREAD_CFLAGS%%+${PTHREAD_CFLAGS}+g ; \
s+%%PTHREAD_LIBS%%+${PTHREAD_LIBS}+g ; \
s+%%UNDERSCORES%%+${UNDERSCORES}+g ; \
- s+%%FORTRAN%%+${FORTRAN}+g ; \
s+%%CC%%+${CC}+g' \
${WRKSRC}/ddi/compddi
- ${CP} ${FILESDIR}/Makefile.top ${WRKSRC}/Makefile
${CP} ${FILESDIR}/Makefile.tools ${WRKSRC}/tools/Makefile
- @${REINPLACE_CMD} -e 's+%%FC%%+${FC}+g ; \
+ ${REINPLACE_CMD} -e 's+%%FC%%+${FC}+g ; \
s+%%FFLAGS%%+${FFLAGS}+g' \
${WRKSRC}/tools/Makefile
+
do-build:
(cd ${WRKSRC}; ${GMAKE})
@@ -138,12 +148,21 @@ do-install:
${MKDIR} ${PREFIX}/share/examples/gamess
${INSTALL_SCRIPT} ${WRKDIR}/gamess/rungms ${PREFIX}/bin/gamess
${CHMOD} 555 ${PREFIX}/bin/gamess
+ ${INSTALL_SCRIPT} ${WRKDIR}/gamess/gms-files.csh ${PREFIX}/bin/gms
${INSTALL_PROGRAM} ${WRKDIR}/gamess/gamess.00.x ${PREFIX}/bin/gms
${INSTALL_PROGRAM} ${WRKDIR}/gamess/ddi/ddikick.x ${PREFIX}/bin/gms
${INSTALL_DATA} ${WRKDIR}/gamess/*.DOC ${PREFIX}/share/doc/gamess/
- ${INSTALL_DATA} ${WRKDIR}/gamess/tests/*.inp ${PREFIX}/share/examples/gamess/
- ${INSTALL_DATA} ${WRKDIR}/gamess/ericfmt.dat ${PREFIX}/share/gamess/
- ${INSTALL_DATA} ${WRKDIR}/gamess/mcpdata/* ${PREFIX}/share/gamess/mcpdata/
+ ${INSTALL_DATA} ${WRKDIR}/gamess/tests/standard/*.inp ${PREFIX}/share/examples/gamess/
+ ${MKDIR} ${PREFIX}/share/gamess/auxdata
+ ${MKDIR} ${PREFIX}/share/gamess/auxdata/BASES
+ ${MKDIR} ${PREFIX}/share/gamess/auxdata/EFP
+ ${MKDIR} ${PREFIX}/share/gamess/auxdata/MCP
+ ${MKDIR} ${PREFIX}/share/gamess/auxdata/QUANPOL
+ ${INSTALL_DATA} ${WRKDIR}/gamess/auxdata/ericfmt.dat ${PREFIX}/share/gamess/auxdata/
+ ${INSTALL_DATA} ${WRKDIR}/gamess/auxdata/BASES/* ${PREFIX}/share/gamess/auxdata/BASES
+ ${INSTALL_DATA} ${WRKDIR}/gamess/auxdata/EFP/* ${PREFIX}/share/gamess/auxdata/EFP
+ ${INSTALL_DATA} ${WRKDIR}/gamess/auxdata/MCP/* ${PREFIX}/share/gamess/auxdata/MCP
+ ${INSTALL_DATA} ${WRKDIR}/gamess/auxdata/QUANPOL/* ${PREFIX}/share/gamess/auxdata/QUANPOL
${INSTALL_DATA} ${WRKDIR}/gamess/ddi/readme.ddi ${PREFIX}/share/doc/gamess/
.include <bsd.port.post.mk>
diff --git a/science/gamess/distinfo b/science/gamess/distinfo
index 02eff671f712..269b84b8cd13 100644
--- a/science/gamess/distinfo
+++ b/science/gamess/distinfo
@@ -1,2 +1,2 @@
-SHA256 (gamess/20090112.3/gamess-current.tar.gz) = 0502c216c792a1c0fcebd6d3955f0feaeb4f9295b75cf0cb3af04c3516cec0bd
-SIZE (gamess/20090112.3/gamess-current.tar.gz) = 11000803
+SHA256 (gamess/20120501.2/gamess-current.tar.gz) = 8004bcc09e7a18252144b54934668786eeb02ff382b9762186568844e4b749c1
+SIZE (gamess/20120501.2/gamess-current.tar.gz) = 28353096
diff --git a/science/gamess/files/Makefile.top b/science/gamess/files/Makefile.top
index edf2d8d88424..f39cbaa33782 100644
--- a/science/gamess/files/Makefile.top
+++ b/science/gamess/files/Makefile.top
@@ -2,7 +2,7 @@
all: gamess_exe
gamess_exe:
- (cd tools ; make )
+ (cd tools ; ${MAKE} )
(cd ddi ; ./compddi )
./compall
csh lked
diff --git a/science/gamess/files/install.info b/science/gamess/files/install.info
new file mode 100644
index 000000000000..4fe3c0fc6f73
--- /dev/null
+++ b/science/gamess/files/install.info
@@ -0,0 +1,15 @@
+#!/bin/csh
+# $FreeBSD$
+# compilation configuration for GAMESS
+setenv GMS_PATH %%GMS_PATH%%
+setenv GMS_BUILD_DIR %%GMS_BUILD_DIR%%
+# machine type
+setenv GMS_TARGET %%GMS_TARGET%%
+# FORTRAN compiler setup
+setenv GMS_FORTRAN %%GMS_FORTRAN%%
+setenv GMS_GFORTRAN_VERNO %%GMS_GFORTRAN_VERNO%%
+# mathematical library setup
+setenv GMS_MATHLIB %%GMS_MATHLIB%%
+setenv GMS_MATHLIB_PATH %%GMS_MATHLIB_PATH%%
+# parallel message passing model setup
+setenv GMS_DDI_COMM %%GMS_DDI_COMM%%
diff --git a/science/gamess/files/patch-comp b/science/gamess/files/patch-comp
index 67f1301b08d7..7d76843c8846 100644
--- a/science/gamess/files/patch-comp
+++ b/science/gamess/files/patch-comp
@@ -1,292 +1,322 @@
---- comp.orig 2009-01-11 00:10:02.000000000 +0900
-+++ comp 2009-05-08 12:12:09.000000000 +0900
-@@ -9,11 +9,11 @@
- # axp64,compaq-sc,cray-pvp,cray-t3e,cray-x1,cray-xd1,cray-xt3,
- # fuji-pp32,fuji-pp64,hpux32,hpux64,ibm32,ibm64,ibm64-sp,ibm-bg,
- # linux32,linux64,linux-ia64,mac32,mac64,macG5,necsx,
--# sgi32,sgi64,sun32,sun64
-+# sgi32,sgi64,sun32,sun64,freebsd-amd64,freebsd-i386
- # 2. Choose your GAMESS directory tree.
- #
--set TARGET=ibm64
--chdir /u1/mike/gamess
-+set TARGET=%%ARCH%%
-+#chdir /u1/mike/gamess
- #
- # ---- and now the script begins...
- #
-@@ -49,6 +49,8 @@
+--- comp.orig 2012-12-05 05:49:41.000000000 +0900
++++ comp 2013-02-27 15:56:56.000000000 +0900
+@@ -97,6 +97,8 @@
+ if ($TARGET == ibm-bg) set OK=true
if ($TARGET == linux32) set OK=true
if ($TARGET == linux64) set OK=true
- if ($TARGET == linux-ia64) set OK=true
-+if ($TARGET == freebsd-amd64) set OK=true
-+if ($TARGET == freebsd-i386) set OK=true
++if ($TARGET == freebsd32) set OK=true
++if ($TARGET == freebsd64) set OK=true
if ($TARGET == mac32) set OK=true
if ($TARGET == mac64) set OK=true
- if ($TARGET == macG5) set OK=true
-@@ -110,6 +112,8 @@
+ if ($TARGET == necsx) set OK=true
+@@ -149,6 +151,8 @@
+ if ($TARGET == ibm-bg) set BLAS3=true
+ if (($TARGET == linux32) && ($GMS_MATHLIB != none)) set BLAS3=true
+ if (($TARGET == linux64) && ($GMS_MATHLIB != none)) set BLAS3=true
++if (($TARGET == freebsd32) && ($GMS_MATHLIB != none)) set BLAS3=true
++if (($TARGET == freebsd64) && ($GMS_MATHLIB != none)) set BLAS3=true
if ($TARGET == mac32) set BLAS3=true
if ($TARGET == mac64) set BLAS3=true
- if ($TARGET == macG5) set BLAS3=true
-+if ($TARGET == freebsd-i386) set BLAS3=true
-+if ($TARGET == freebsd-amd64) set BLAS3=true
if ($TARGET == sgi32) set BLAS3=true
- if ($TARGET == sgi64) set BLAS3=true
- if (($TARGET == sun32) && (-e /opt/SUNWspro/lib/libsunperf.so)) set BLAS3=true
-@@ -493,6 +497,19 @@
- if ($MODULE == iolib) setenv MACHIN '*UNX'
- if ($MODULE == unport) setenv MACHIN '*INT'
+@@ -579,6 +583,26 @@
+ endif
endif
-+if ($TARGET == freebsd-amd64) then
-+ setenv MACHIN '*I64'
+ #
++if ($TARGET == freebsd32) then
++ setenv MACHIN '*I32'
+ if ($MODULE == ddi) setenv MACHIN '*SOC'
+ if ($MODULE == iolib) setenv MACHIN '*UNX'
-+ if ($MODULE == unport) setenv MACHIN '*L64'
++ if ($MODULE == unport) setenv MACHIN '*L32'
+endif
-+if ($TARGET == freebsd-i386) then
-+ setenv MACHIN '*I32'
++#
++if ($TARGET == freebsd64) then
++ setenv MACHIN '*I64'
+ if ($MODULE == ddi) setenv MACHIN '*SOC'
+ if ($MODULE == iolib) setenv MACHIN '*UNX'
-+ if ($MODULE == unport) setenv MACHIN '*L32'
++ if ($MODULE == unport) then
++ if ($GMS_FORTRAN == ifort) then
++ setenv MACHIN '*INT'
++ else
++ setenv MACHIN '*L64'
++ endif
++ endif
+endif
+
- if (($TARGET == mac32) || ($TARGET == macG5)) then
+ if ($TARGET == mac32) then
setenv MACHIN '*I32'
if ($MODULE == ddi) setenv MACHIN '*SOC'
-@@ -1832,6 +1849,236 @@
- #-- f77 -c $OPT -stackvar $MODULE.f
- #-- unset echo
- #--endif
-+
-+#
-+# FreeBSD (i386)
-+#
-+if ($TARGET == freebsd-i386) then
+@@ -1640,6 +1664,137 @@
+ endsw
+ # ... end of Linux on 32 bit processors.
+ endif
++if ($TARGET == freebsd32) then
+#
-+# The target of freebsd-i386 requires that you select a FORTRAN compiler.
-+# There are five choices,
++# there are three supported 32 bit compilers: g77, gfortran, ifort
+# g77,
-+# the default, because it is on our PCs at Iowa State!
++# the gnu FORTRAN being included in older Linux distributions
+# lacks support for unit numbers over 99, or REAL*16
+# gfortran,
-+# the gnu FORTRAN being included in recent Linux distributions
++# the gnu FORTRAN being included in newer Linux distributions
+# this allows unit numbers over 99, but not REAL*16
+# Intel's commercial ifort,
-+# this is usually a bit faster, and supports both unit
-+# numbers above 99 and REAL*16 (i.e. runs all of GAMESS)
-+# Portland's commercial pgf77,
-+# lacks support for REAL*16
-+# the obsolete combination of f2c/gcc.
-+# lacks support for unit numbers over 99, or REAL*16
-+#
-+# Note that the source code is the same for any of the possibilities, so
-+# something missing means only that you can't run that particular thing:
-+# Use of RUNTYP=TDHFX requires file numbers over 99.
-+# Use of quadruple precision (MODEQR) in relativity requires REAL*16.
-+#
-+# The only thing you need to change is the next line.
-+# Note: you must make the analogous choice in compddi and lked, as well.
-+#
-+ set FORTRAN=%%FORTRAN%% # choose from g77, gfortran, ifort, pgf77, f2c
-+#
-+ switch ($FORTRAN)
-+#
-+# 1. Using g77 compiler. compiler version query: rpm -q gcc-g77
-+# If your RedHat is older than 6.0, see the f2c/gcc clause below.
++# supports unit numbers above 99 and REAL*16 (runs all of GAMESS)
++
++ switch ($GMS_FORTRAN)
+#
+# The meaning of g77's flags are
+# -O0, -O1, -O2, -O3 are the optimization levels, -O means -O1
+# -Wno-globals -fno-globals together suppress argument type checking.
+# -fautomatic defeats use of static storage
+# -malign-double uses 64 bit data alignment
-+# Tests on a representative GAMESS test suite (executing energy, gradient
-+# hessian code, as well as various SCF, MCSCF, MP2 runs, show that each
-+# of the more aggressive optimizations -ffast-math, -march=i586, and -O3
-+# gave speedups of less than 1% each. (-march=i686 slows a Celeron type
-+# Pentium II fractionally). None of these optimizations are used below.
++# g77 does not support FORTRAN logical units above 99, or 128 bit math.
+#
+ case g77:
+ set OPT = '-O2'
+ if ($MODULE == ormas1) set OPT='-O2 -fno-move-all-movables' # RH9, g77 3.3
+ if ($MODULE == zheev) set OPT='-O0' # defensive compiling
-+#
-+# g77 does not support FORTRAN logical units above 99, or 128 bit math.
-+#
+ if (($MODULE == qeigen) || ($MODULE == int2c)) then
-+ mv $MODULE.f $MODULE.junk
++ mv -f $MODULE_F $MODULE.junk
+ sed -e "s/Q-/D-/g" \
+ -e "s/Q+00/D+00/g" \
-+ -e "s/REAL\*16/DOUBLE PRECISION/" $MODULE.junk > $MODULE.f
++ -e "s/REAL\*16/DOUBLE PRECISION/" $MODULE.junk > $MODULE_F
+ rm -f $MODULE.junk
+ endif
-+ if (($MODULE == iolib) || ($MODULE == inputa)) then
-+ mv $MODULE.f $MODULE.junk
-+ sed -e "s/MXUNIT=299/MXUNIT=99/g" $MODULE.junk > $MODULE.f
++ if (($MODULE == iolib) || ($MODULE == inputa) || \
++ ($MODULE == gamess) || ($MODULE == mp2ims)) then
++ mv -f $MODULE_F $MODULE.junk
++ sed -e "s/MXUNIT=299/MXUNIT=99/g" $MODULE.junk > $MODULE_F
+ rm -f $MODULE.junk
+ endif
+ set echo
-+ %%FC%% -c %%FFLAGS%% $OPT -malign-double -fautomatic \
-+ -Wno-globals -fno-globals $MODULE.f
++ g77 -c $OPT -malign-double -fautomatic \
++ -Wno-globals -fno-globals $MODULE_F
+ unset echo
+ breaksw
+#
-+# 2. Using gfortran compiler. Tested with gfortran 4.1.1 on FC5.
+# gfortran was included with Fedora Core distributions starting around FC4.
-+# compiler version query: rpm -q gcc-gfortran
-+#
+# This is a 32 bit version, i.e. not using -fdefault-integer-8!
+# Unlike g77, gfortran allows for unit numbers above 100.
+# Like g77, gfortran does not support quadruple precision.
-+#
+# -Ox optimization level is from the gcc back end, x can be 0,1,2,3
+# -std=legacy suppresses warnings about use of f77 constructs.
+#
+ case gfortran:
+ set OPT='-O2'
+ if ($MODULE == zheev) set OPT='-O0' # defensive compiling
-+ if (($MODULE == qeigen) || ($MODULE == int2c)) then
-+ mv $MODULE.f $MODULE.junk
-+ sed -e "s/Q-/D-/g" \
-+ -e "s/Q+00/D+00/g" \
-+ -e "s/REAL\*16/DOUBLE PRECISION/" $MODULE.junk > $MODULE.f
-+ rm -f $MODULE.junk
++ if ($MODULE == pcmcv2) set OPT='-O1' # EFP+CPCM, ala Francois, v4.1.2
++ if ($GMS_GFORTRAN_VERNO == 4.6) then
++ if ($MODULE == cosmo) set OPT='-O0' # this issue seen in 4.6.x
++ if ($MODULE == tddgrd) set OPT='-O0' # this issue seen in 4.6.1
++ endif
++ if ($GMS_GFORTRAN_VERNO == 4.7) then
++ if ($MODULE == cosmo) set OPT='-O0'
++ if ($MODULE == dcscf) set OPT='-O0'
++ if ($MODULE == rohfcc) set OPT='-O0'
++ if ($MODULE == tddgrd) set OPT='-O0'
+ endif
++# as of 4.6 tested in late 2011, gfortran can do q.p.!
++ switch ($GMS_GFORTRAN_VERNO)
++ case 4.0:
++ case 4.1:
++ case 4.2:
++ case 4.3:
++ case 4.4:
++ case 4.5:
++ set extraflags=''
++ if (($MODULE == qeigen) || ($MODULE == int2c)) then
++ mv -f $MODULE_F $MODULE.junk
++ sed -e "s/Q-/D-/g" \
++ -e "s/Q+00/D+00/g" \
++ -e "s/REAL\*16/DOUBLE PRECISION/" $MODULE.junk > $MODULE_F
++ rm -f $MODULE.junk
++ endif
++ breaksw
++ case 4.6:
++ case 4.7:
++ set extraflags='-fno-whole-file'
++ breaksw
++ default:
++ echo Unrecognized gfortran version
++ exit 4
++ breaksw
++ endsw
++#
+ set echo
-+ %%FC%% -c $OPT %%FFLAGS%% -std=legacy $MODULE.f
++ %%FC%% -c $OPT -std=legacy $MODULE_F
+ unset echo
+ breaksw
+#
+# 3. Intel Fortran Compiler for Linux
-+# Please see the 64 bit Linux target for more details as to where
-+# to get this compiler, and its cost, and for an explanation of
-+# the command line arguments.
+#
+# Note that this is more agressive (-O3 compared to -O2) than the
-+# other two places in this file where ifort is used. If some
-+# version gives you problems, drop this back to -O2.
-+#
++# 64 bit compile below. If an ifort version gives you problems,
++# drop the optimization back to -O2.
+# Dmitri likes to use "-O3 -xN -ssp -unroll8 -ip -pad -opt_report",
+# but that may cause certain ifort versions to fail on some files.
++# See http://staff.aist.go.jp/d.g.fedorov/compgms.html for aggressive
++# optimizations in 32 bit mode, as a function of the ifort version.
+#
+ case ifort:
+ set OPT = '-O3'
+ if ($MODULE == delocl) set OPT='-O0' # from Cheol
++ if ($MODULE == prpamm) set OPT='-O0' # for exam13
+ if ($MODULE == zheev) set OPT='-O0'
++ set EXTRAOPT=" "
++ if ($GMS_IFORT_VERNO >= 8) set EXTRAOPT="$EXTRAOPT -assume byterecl"
++ if ($GMS_IFORT_VERNO >= 10) set EXTRAOPT="$EXTRAOPT -vec-report0"
++ if ($GMS_IFORT_VERNO < 12) set EXTRAOPT="$EXTRAOPT -w95 -cm"
++ if ($GMS_IFORT_VERNO >= 12) set EXTRAOPT="$EXTRAOPT -warn nousage -inline-level=0"
+ set echo
-+ %%FC%% -c -i4 $OPT -auto -assume byterecl -w95 -cm $MODULE.f
-+ unset echo
-+ breaksw
-+#
-+# 4. Portland Group compiler.
-+# This is a synthesis of recommendations from Fred Arnold and Brian
-+# Salter-Duke. -fast means -O2 -Munroll -Mnoframe, the latter option
-+# seems to be the source of several incorrect results. It is said that
-+# "-Munroll" and "-tp p6" gives no significant improvement in run times.
-+# The -Mlfs flag is supposed to cure the 2 GB file size limit.
-+# exam19 may hang when using this compiler. -Mlfs at link-time
-+# enables large file support. Your login script must set
-+# up the use of this compiler, along the lines of
-+# setenv PATH $PATH\:/usr/pgi/linux86/bin
-+# setenv PGI /usr/pgi
-+#
-+ case pgf77:
-+ if (($MODULE == qfmm) || ($MODULE == solib) || ($MODULE == zheev)) then
-+ mv $MODULE.f $MODULE.junk
-+ sed -e s/DREAL/DBLE/g $MODULE.junk > $MODULE.f
-+ rm -f $MODULE.junk
-+ endif
-+ if (($MODULE == qeigen) || ($MODULE == int2c)) then
-+ mv $MODULE.f $MODULE.junk
-+ sed -e "s/Q-/D-/g" \
-+ -e "s/Q+00/D+00/g" \
-+ -e "s/REAL\*16/DOUBLE PRECISION/" $MODULE.junk > $MODULE.f
-+ rm -f $MODULE.junk
-+ endif
-+ set OPT = '-O2'
-+ if ($MODULE == zheev) set OPT = '-O2 -Kieee'
-+ if ($MODULE == bassto) set OPT = '-O0' # Takako
-+ set echo
-+ pgf77 -c $OPT -Msecond_underscore $MODULE.f
-+ unset echo
-+ breaksw
-+#
-+# 5. RedHat 4.x and 5.x's FORTRAN compiler was f2c/gcc.
-+# This is a totally obsolete option, actually.
-+#
-+ case f2c:
-+ if (($MODULE == qfmm) || ($MODULE == solib) || ($MODULE == zheev)) then
-+ mv $MODULE.f $MODULE.junk
-+ sed -e s/DREAL/DBLE/g $MODULE.junk > $MODULE.f
-+ rm -f $MODULE.junk
-+ endif
-+ if (($MODULE == qeigen) || ($MODULE == int2c)) then
-+ mv $MODULE.f $MODULE.junk
-+ sed -e "s/Q-/D-/g" \
-+ -e "s/Q+00/D+00/g" \
-+ -e "s/REAL\*16/DOUBLE PRECISION/" $MODULE.junk > $MODULE.f
-+ rm -f $MODULE.junk
-+ endif
-+ if (($MODULE == iolib) || ($MODULE == inputa)) then
-+ mv $MODULE.f $MODULE.junk
-+ sed -e "s/MXUNIT=299/MXUNIT=99/g" $MODULE.junk > $MODULE.f
-+ rm -f $MODULE.junk
-+ endif
-+ set OPT = '-O3 -malign-double'
-+ set echo
-+ f2c -w66 -a -Nn1604 -Nx800 $MODULE.f
-+ gcc -c $OPT $MODULE.c
-+ rm -f $MODULE.c
++ ifort -c -i4 $OPT -ftz -auto $EXTRAOPT $MODULE_F
+ unset echo
+ breaksw
+#
+ default:
-+ echo Please spell your ia32 compiler correctly.
++ echo "Please spell your Linux 32 bit FORTRAN compiler name correctly."
+ exit 4
+ breaksw
+ endsw
-+# ... end of FreeBSD on 32 bit PC compiler choices.
++# ... end of FreeBSD on 32 bit processors.
+endif
-+if ($TARGET == freebsd-amd64) then
-+#
-+# The only thing you need to change is the next line.
-+# Note: you must make the analogous choice in compddi and lked, as well.
++
++
+ #
+ # ------ Linux on 64 bit chips ------
+ # This should work on any 64 bit Linux release, for any type of
+@@ -1897,6 +2052,136 @@
+ endsw
+ # ... end of Linux on 64 bit processors.
+ endif
++
++if ($TARGET == freebsd64) then
+#
-+ set FORTRAN=%%FORTRAN%% # choose from gfortran, ifort
++# there are two supported 64 bit compilers: gfortran, ifort
+#
-+ switch ($FORTRAN)
++ switch ($GMS_FORTRAN)
+
+ case gfortran:
++# -finit-real=<zero|inf|-inf|nan> could be interesting debug opt
++# -fno-automatic forces static storage of all local variables
++# -fno-whole-file suppresses argument's data type checking
+ set OPT='-O2'
++ if (".$GMS_DEBUG_FLAGS" != .) set OPT="$GMS_DEBUG_FLAGS"
++
++ if ($GMS_GFORTRAN_VERNO == 4.6) then
++ if ($MODULE == cosmo) set OPT='-O0' # this issue seen in 4.6.1
++ if ($MODULE == tddgrd) set OPT='-O0' # exam41, seen in 4.6.1
++ endif
++ if ($GMS_GFORTRAN_VERNO == 4.7) then
++ if ($MODULE == cosmo) set OPT='-O0'
++ if ($MODULE == dcscf) set OPT='-O0' # exam44, seen in 4.7 only
++ if ($MODULE == rohfcc) set OPT='-O0' # exam47, seen in 4.7 only
++ if ($MODULE == tddgrd) set OPT='-O0'
++ endif
+ if ($MODULE == zheev) set OPT='-O0' # defensive compiling
-+ if (($MODULE == qeigen) || ($MODULE == int2c)) then
-+ mv -f $MODULE.f $MODULE.junk
-+ sed -e "s/Q-/D-/g" \
-+ -e "s/Q+00/D+00/g" \
-+ -e "s/REAL\*16/DOUBLE PRECISION/" $MODULE.junk > $MODULE.f
-+ rm -f $MODULE.junk
++
++ set EXTRAOPT=" "
++
++ if (($MODULE == cchem) || ($MODULE == ga)) then
++ mv $MODULE.f $MODULE.F
++ set MODULE_F=$MODULE.F
++ if ($GMS_LIBCCHEM == true) then
++ if ($MODULE == cchem) set EXTRAOPT="-DHAVE_CCHEM $extraflags"
++ if ($MODULE == ga) set EXTRAOPT="-I$GMS_PATH/libcchem/ga/include"
++ endif
+ endif
++#
++# as of 4.6 tested in late 2011, gfortran can do q.p.!
++ switch ($GMS_GFORTRAN_VERNO)
++ case 4.0:
++ case 4.1:
++ case 4.2:
++ case 4.3:
++ case 4.4:
++ case 4.5:
++ if (($MODULE == qeigen) || ($MODULE == int2c)) then
++ mv -f $MODULE_F $MODULE.junk
++ sed -e "s/Q-/D-/g" \
++ -e "s/Q+00/D+00/g" \
++ -e "s/REAL\*16/DOUBLE PRECISION/" $MODULE.junk > $MODULE_F
++ rm -f $MODULE.junk
++ endif
++ breaksw
++ case 4.6:
++ case 4.7:
++ set EXTRAOPT="$EXTRAOPT -fno-whole-file"
++ breaksw
++ default:
++ echo Unrecognized gfortran version
++ exit 4
++ breaksw
++ endsw
++
+ set echo
-+ %%FC%% -c %%FFLAGS%% -fdefault-integer-8 $OPT -std=legacy $MODULE.f
++ %%FC%% -c -fdefault-integer-8 $OPT -std=legacy $EXTRAOPT $MODULE_F
+ unset echo
+ breaksw
+
+ case ifort:
++# -i4/-i8 set default integer length
++# -On can have n=1,2,3. Use of 3 caused problems with earlier
++# compilers, so it isn't being used here. Try it if you like.
++# stack storage for locals is governed by -auto versus -save.
++# -assume byterecl was introduced at ifort 8.0 (older versions will
++# print a message saying this flag is ignored). Newer versions
++# need this so that direct access file opens are measured in
++# bytes rather than the new default in v8.0, namely 4-byte units.
++# -vec-report0 suppresses loop vectorization messages (new in 10.0)
++# -w95 suppresses Hollerith initialization and other f90-like warnings
++# -cm means suppress comments about programming practices,
++# these two options spelled '-warn nousage' at version 12.
++# -WB means warn but don't fail on out-of-bounds array references
++# -ftz flushes underflow results to zero
++#
+ set OPT = '-O2'
-+ if ($MODULE == delocl) set OPT='-O0'
-+ if ($MODULE == zheev) set OPT='-O0'
++ if (".$GMS_DEBUG_FLAGS" != .) set OPT="$GMS_DEBUG_FLAGS"
++# alas, I'm so tired of hearing about so many versions failing to
++# diagonalize, that this time critical code is run w/o optimization.
++# Very many (all?) ifort versions have problems with eigen.src.
++ if ($MODULE == eigen) set OPT='-O0' # read note just above.
++ if ($MODULE == fmo) set OPT='-O1' # 12.0.4, exam37
++ if ($MODULE == guess) set OPT='-O0' # 10.0, exam39
++ if ($MODULE == locpol) set OPT='-O1' # 10.0, makefp/gmres
++ if ($MODULE == morokm) set OPT='-O0' # Jan Fredin
++ if ($MODULE == prpel) set OPT='-O1' # 10.0, exam13
++ if (($MODULE == rohfcc) && ($GMS_IFORT_VERNO == 12)) \
++ set OPT='-O0' # exam42+exam47 (op.sh.CC,IP-EOM)
++ if ($MODULE == tdxitr) set OPT='-O1' # 10.0, exam39
++ if ($MODULE == vscf) set OPT='-O0' # intensities for combinations
++ if ($MODULE == zheev) set OPT='-O0' # defensive compiling
++
++ set EXTRAOPT=" "
++
++ if (($MODULE == cchem) || ($MODULE == ga)) then
++ mv $MODULE.f $MODULE.F
++ set MODULE_F=$MODULE.F
++ if ($GMS_LIBCCHEM == true) then
++ if ($MODULE == cchem) set EXTRAOPT="-DHAVE_CCHEM"
++ if ($MODULE == ga) set EXTRAOPT="-I$GMS_PATH/libcchem/ga/include"
++ endif
++ endif
++
++ if ($GMS_IFORT_VERNO >= 8) set EXTRAOPT="$EXTRAOPT -assume byterecl"
++ if ($GMS_IFORT_VERNO >= 10) set EXTRAOPT="$EXTRAOPT -vec-report0"
++ if ($GMS_IFORT_VERNO < 12) set EXTRAOPT="$EXTRAOPT -w95 -cm"
++ if ($GMS_IFORT_VERNO >= 12) set EXTRAOPT="$EXTRAOPT -warn nousage -inline-level=0"
+ set echo
-+ %%FC%% -c -i8 %%FFLAGS%% $OPT -auto -assume byterecl -w95 -cm $MODULE.f
++ ifort -c -i8 $OPT -ftz -auto $EXTRAOPT $MODULE_F
+ unset echo
+ breaksw
+#
+ default:
-+ echo "Please spell your AMD64's FORTRAN compiler name correctly."
++ echo "Please spell your FreeBSD 64 bit FORTRAN compiler name correctly."
+ exit 4
+ breaksw
+ endsw
-+# ... end of FreeBSD on 64 bit AMD processors.
++# ... end of FreeBSD on 64 bit processors.
+endif
+
++
#
- # Store the generated object code, clean up, and quit
- #
+ # Apple Macintosh system using OS X
+ # jargon: 10.0=cheetah, 10.1=puma, 10.2=jaguar, 10.3=panther,
diff --git a/science/gamess/files/patch-compall b/science/gamess/files/patch-compall
index b9b38b4c6370..27a1c1e4ec88 100644
--- a/science/gamess/files/patch-compall
+++ b/science/gamess/files/patch-compall
@@ -1,35 +1,38 @@
---- compall.orig 2009-01-07 06:20:46.000000000 +0900
-+++ compall 2009-05-08 12:14:14.000000000 +0900
-@@ -10,11 +10,11 @@
- # axp64,compaq-sc,cray-pvp,cray-t3e,cray-x1,cray-xd1,cray-xt3,
- # fuji-pp32,fuji-pp64,hpux32,hpux64,ibm32,ibm64,ibm64-sp,ibm-bg,
- # linux32,linux64,linux-ia64,mac32,mac64,macG5,necsx,
--# sgi32,sgi64,sun32,sun64
-+# sgi32,sgi64,sun32,sun64,freebsd-i386,freebsd-amd64
- # 2. Choose your GAMESS directory tree.
- #
--set TARGET=ibm64
--chdir /u1/mike/gamess
-+set TARGET=%%ARCH%%
-+#chdir /u1/mike/gamess
- #
- # ----- and now the script begins...
- #
-@@ -69,6 +69,8 @@
- if ($TARGET == linux64) set CCOMP='gcc'
- if ($TARGET == linux-ia64) set CCOMP='gcc'
- if ($TARGET == necsx) set CCOMP='c++'
-+if ($TARGET == freebsd-amd64) set CCOMP=%%CC%%
-+if ($TARGET == freebsd-i386) set CCOMP=%%CC%%
+--- compall.orig 2012-09-07 22:32:57.000000000 +0900
++++ compall 2013-02-27 15:59:37.000000000 +0900
+@@ -58,6 +58,8 @@
+ if (($TARGET == ibm-bg) && ($GMS_BG_MODEL == P)) set CCOMP='bgxlc_r'
+ if ($TARGET == linux32) set CCOMP='gcc'
+ if ($TARGET == linux64) set CCOMP='gcc'
++if ($TARGET == freebsd32) set CCOMP='%%CC%%'
++if ($TARGET == freebsd64) set CCOMP='%%CC%%'
+ if ($TARGET == necsx) set CCOMP='c++'
#
unset extraflags
- if ($TARGET == axp64) set extraflags='-DCOMPAQ'
-@@ -99,6 +101,8 @@
- if (`uname -p` == x86_64) set extraflags='-DLINUX64 -m64'
- if (`uname -p` == ia64) set extraflags='-DLINUX64' # its always 64 bits
+@@ -96,6 +98,8 @@
+ if ($chip == x86_64) set extraflags='-DLINUX64 -m64'
+ if ($chip == ia64) set extraflags='-DLINUX64' # this always 64 bits
endif
-+if ($TARGET == freebsd-amd64) set extraflags='-DLINUX64 -m64'
-+if ($TARGET == freebsd-i386) set extraflags='-DLINUX32'
++if ($TARGET == freebsd32) set extraflags='-DLINUX32'
++if ($TARGET == freebsd64) set extraflags='-DLINUX64 -m64'
if ($TARGET == mac32) set extraflags='-DLINUX32'
if ($TARGET == mac64) set extraflags='-DLINUX64 -m64 -I/usr/include/malloc'
- if ($TARGET == macG5) set extraflags='-DLINUX32'
+ if ($TARGET == necsx) set extraflags='-DNECSX -size_t64'
+@@ -211,6 +215,8 @@
+ if ($TARGET == ibm-bg) ./comp blas
+ if ($TARGET == linux32) ./comp blas
+ if ($TARGET == linux64) ./comp blas
++if ($TARGET == freebsd32) ./comp blas
++if ($TARGET == freebsd64) ./comp blas
+ if ($TARGET == mac64) ./comp blas
+ if ($TARGET == sun32) ./comp blas
+ if ($TARGET == sun64) ./comp blas
+@@ -547,6 +553,8 @@
+ set VB2000=false
+ if ($TARGET == linux64) set VB2000=true
+ if ($TARGET == linux32) set VB2000=true
++if ($TARGET == freebsd64) set VB2000=true
++if ($TARGET == freebsd32) set VB2000=true
+ if ($TARGET == mac64) set VB2000=true
+ if ($VB2000 == true) then
+ ./comp vb2000
diff --git a/science/gamess/files/patch-compddi b/science/gamess/files/patch-compddi
index 5e683c03de66..b80836382993 100644
--- a/science/gamess/files/patch-compddi
+++ b/science/gamess/files/patch-compddi
@@ -1,28 +1,16 @@
---- ddi/compddi.orig 2008-12-04 01:22:29.000000000 +0900
-+++ ddi/compddi 2009-05-08 12:15:46.000000000 +0900
-@@ -13,9 +13,9 @@
- # axp64,compaq-sc,cray-pvp,cray-t3e,cray-x1,cray-xd1,cray-xt3,
- # fuji-pp32,fuji-pp64,hpux32,hpux64,ibm32,ibm64,ibm64-sp,ibm-bg,
- # linux32,linux64,linux-ia64,mac32,mac64,macG5,necsx,
--# sgi32,sgi64,sun32,sun64
-+# sgi32,sgi64,sun32,sun64,freebsd-i386,freebsd-amd64
- #
-- set TARGET = ibm64
-+ set TARGET = %%ARCH%%
-
- # 2. Choose DDI communication layer, the only legal values are
- # sockets,mixed,mpi,shmem,lapi,armci
-@@ -639,7 +639,77 @@
- set RANLIB_FLAGS = ' '
-
+--- ddi/compddi.orig 2013-03-05 12:39:40.000000000 +0900
++++ ddi/compddi 2013-03-05 12:40:52.000000000 +0900
+@@ -630,7 +630,79 @@
+ set FORT_FLAGS = '-O2 -qarch=440 -qflag=W:W -qhalt=W -qnosave '
+ set FORT_LIBS = ''
endif
+# --------------------------------------- #
+# FreeBSD for x86 PCs #
+# --------------------------------------- #
-+ if($TARGET == freebsd-i386) then
++ if($TARGET == freebsd32) then
+
-+ set FORTRAN=%%FORTRAN%% # choose from g77, gfortran, ifort, pgf77, f2c
++ set FORTRAN=%%GMS_FORTRAN%% # choose from g77, gfortran, ifort, pgf77, f2c
+
+ set CC = %%CC%%
+ set CFLAGS = "-DLINUX -O3 -fstrict-aliasing -I./include"
@@ -48,20 +36,21 @@
+
+ set CLIBS = "%%PTHREAD_LIBS%%"
+ set F77_OPTS = "-DINT_SIZE=int -D_UNDERSCORES=$NumUS"
++ set FORT_FLAGS = '-O2'
+ set AR_FLAGS = 'cr'
+ set RANLIB_FLAGS = ' '
-+
++ set FORT_LIBS = ' '
+ endif
+
+# ------------- #
+# FreeBSD amd64 #
+# ------------- #
-+ if($TARGET == freebsd-amd64) then
++ if($TARGET == freebsd64) then
+
+ set CC = %%CC%%
+ set CFLAGS = "-DLINUX -m64 -O3 -fstrict-aliasing -I./include"
+
-+ set FORTRAN=%%FORTRAN%%
++ set FORTRAN=%%GMS_FORTRAN%%
+ switch ($FORTRAN)
+ case g77:
+ case pgf77:
@@ -71,6 +60,7 @@
+ case gfortran:
+ set CFLAGS = "$CFLAGS -Dgetarg_=_gfortran_getarg_i4"
+ set CFLAGS = "$CFLAGS -Diargc_=_gfortran_iargc"
++ set FORT_FLAGS = "-O2 $ARCH -fdefault-integer-8 -std=legacy"
+ set NumUS=1
+ breaksw
+ case ifort:
@@ -85,8 +75,8 @@
+ set F77_OPTS = "-DINT_SIZE=long -D_UNDERSCORES=$NumUS"
+ set AR_FLAGS = 'cr'
+ set RANLIB_FLAGS = ' '
-+
++ set FORT_LIBS = ' '
+ endif
- # -------- #
- # Mac OS X #
+ # ---------------------------------------- #
+ # Linux for 32 bit systems (Red Hat, etc.) #
diff --git a/science/gamess/files/patch-gms-files.csh b/science/gamess/files/patch-gms-files.csh
new file mode 100644
index 000000000000..b6bf0b877f34
--- /dev/null
+++ b/science/gamess/files/patch-gms-files.csh
@@ -0,0 +1,13 @@
+$FreeBSD$
+
+--- gms-files.csh 2013-03-05 18:04:02.000000000 +0900
++++ gms-files.csh 2013-03-05 18:05:38.000000000 +0900
+@@ -28,7 +28,7 @@
+ # to see all the file definitions (one is just below).
+ #
+ #---quiet---set echo
+-setenv AUXDATA $GMSPATH/auxdata
++setenv AUXDATA %%PREFIX%%/share/gamess/auxdata
+ setenv EXTBAS /dev/null
+ setenv NUCBAS /dev/null
+ setenv POSBAS /dev/null
diff --git a/science/gamess/files/patch-lked b/science/gamess/files/patch-lked
index a45c76e5f23f..e9075b2fc12d 100644
--- a/science/gamess/files/patch-lked
+++ b/science/gamess/files/patch-lked
@@ -1,26 +1,264 @@
---- lked.orig 2009-05-05 05:59:41.000000000 +0900
-+++ lked 2010-02-01 10:29:52.000000000 +0900
-@@ -12,11 +12,11 @@
- # axp64,compaq-sc,cray-pvp,cray-t3e,cray-x1,cray-xd1,cray-xt3,
- # fuji-pp32,fuji-pp64,hpux32,hpux64,ibm32,ibm64,ibm64-sp,ibm-bg,
- # linux32,linux64,linux-ia64,mac32,mac64,macG5,necsx,
--# sgi32,sgi64,sun32,sun64
-+# sgi32,sgi64,sun32,sun64,freebsd-i386,freebsd-amd64
- # 2. Choose your GAMESS directory tree.
+--- lked.orig 2012-10-27 01:12:07.000000000 +0900
++++ lked 2013-02-27 16:06:32.000000000 +0900
+@@ -57,6 +57,8 @@
+ set VB2000=false
+ if ($TARGET == linux64) set VB2000=true
+ if ($TARGET == linux32) set VB2000=true
++if ($TARGET == freebsd64) set VB2000=true
++if ($TARGET == freebsd32) set VB2000=true
+ if ($TARGET == mac64) set VB2000=true
+ set XMVB=false
#
--set TARGET=ibm64
--chdir /u1/mike/gamess
-+set TARGET=%%ARCH%%
-+#chdir /u1/mike/gamess
+@@ -632,6 +634,243 @@
+ endif
#
- # ---- and now the script begins...
+ endif
++
++if ($TARGET == freebsd32) then
++ set VECTOR=' '
++ set QUICHE='zunix.o'
++#
++# settings which depend on the compiler choice:
++#
++ switch ($GMS_FORTRAN)
++ case g77:
++ set LDR='g77'
++ set LDOPTS=' ' # add '-Wl,-M' to see load map
++ set FORTLIBS=' '
++ breaksw
++ case gfortran:
++ set LDR=%%FC%%
++ set LDOPTS=' '
++ set FORTLIBS=' '
++ breaksw
++ case ifort:
++ set LDR='ifort'
++ set LDOPTS=' ' # add '-Wl,-M' to see load map
++ set FORTLIBS='-Vaxlib'
++ breaksw
++ case f2c:
++ set LDR='gcc'
++ set LDOPTS=' '
++ set FORTLIBS='-lf2c -lm'
++ breaksw
++ default:
++ echo Please spell your freebsd32 compiler correctly.
++ exit 4
++ endsw
++#
++# settings which depend on the math library: mkl, atlas, acml, none
++#
++ switch ($GMS_MATHLIB)
++
++# for MKL, we lack experience. The following is the 64-bit
++# stuff, with all 64's removed. It might be right!
++# For the case of "11", this has actually been verified.
++ case mkl:
++ set mpath=$GMS_MATHLIB_PATH
++ switch ($GMS_MKL_VERNO)
++ case 8:
++ set MATHLIBS="-L$mpath -lmkl_lapack -lmkl -lguide -lpthread"
++ breaksw
++ case 9:
++ set MATHLIBS="-L$mpath -lmkl_lapack -lmkl -lguide -lpthread"
++ breaksw
++ case 10:
++ # next one forces single-threaded usage only...exactly what we want.
++ set MATHLIBS="-L$mpath -lmkl_intel -lmkl_sequential -lmkl_core"
++ breaksw
++ case 11:
++ case 12:
++ # next attempts a static link, whereas 10 above is a dynamic link.
++ # if this fails to work, try the version 10 lines shown just above.
++ set MATHLIBS="$mpath/libmkl_intel.a"
++ set MATHLIBS="$MATHLIBS $mpath/libmkl_sequential.a"
++ set MATHLIBS="$MATHLIBS $mpath/libmkl_core.a"
++ breaksw
++ default:
++ echo "unknown version number for MKL/linux32"
++ echo "please edit 'lked' to select the right 32 bit MKL libraries."
++ exit
++ breaksw
++ endsw
++ set BLAS=' '
++ breaksw
++
++ case atlas:
++ # If the ATLAS comes with static libraries, link to them,
++ # so that only the compile node has to have the libraries.
++ # Otherwise, attempt a link against shared object libs.
++ # See the 64 bit Atlas below for a way to fix the linker's
++ # not being able to locate -lf77blas, if that happens.
++ if (-e $GMS_MATHLIB_PATH/libf77blas.a) then
++ set MATHLIBS="$GMS_MATHLIB_PATH/libf77blas.a"
++ set MATHLIBS="$MATHLIBS $GMS_MATHLIB_PATH/libatlas.a"
++ else
++ set MATHLIBS="-L$GMS_MATHLIB_PATH -lf77blas -latlas"
++ endif
++ set BLAS=' '
++ breaksw
++
++ case acml:
++ # do a static link so that only compile node needs to install ACML
++ set MATHLIBS="$GMS_MATHLIB_PATH/libacml.a"
++ set BLAS=' '
++ breaksw
++
++ case none:
++ default:
++ echo "Warning. No math library was found, you should install one."
++ echo " MP2 calculations speed up about 2x with a math library."
++ echo "CCSD(T) calculations speed up about 5x with a math library."
++ set BLAS='%%BLAS%% %%LAPACK%%'
++ set MATHLIBS=' '
++ breaksw
++ endsw
++#
++ set LIBRARIES="$FORTLIBS $MATHLIBS"
++endif
++#
++# ------ FreeBSD on 64 bit chips -----
++#
++if ($TARGET == freebsd64) then
++ set VECTOR=' '
++ set QUICHE='zunix.o'
++#
++# settings which depend on the FORTRAN:
++#
++ switch ($GMS_FORTRAN)
++ case gfortran:
++ set LDR=%%FC%%
++ set LDOPTS=' '
++ set FORTLIBS=' '
++ breaksw
++ case ifort:
++ set LDR='ifort'
++ set LDOPTS='-i8' # -Wl,-M generates a load map
++# this auxiliary library seems to have disappeared in ifort 10
++ set FORTLIBS=' '
++ if($GMS_IFORT_VERNO < 10) set FORTLIBS='-Vaxlib'
++ breaksw
++ default:
++ echo "don't know how to use a freebsd64 compiler named $GMS_FORTRAN"
++ exit 4
++ breaksw
++ endsw
++#
++# settings which depend on the math library: mkl, atlas, acml, none
++#
++ switch ($GMS_MATHLIB)
++
++ case mkl:
++ set mpath=$GMS_MATHLIB_PATH
++ set mklver=$GMS_MKL_VERNO
++ if ($CCHEM == true) set mklver=${mklver}-so
++ switch ($mklver)
++ case 8:
++ set MATHLIBS="-L$mpath -lmkl_lapack64 -lmkl -lguide -lpthread"
++ breaksw
++ case 9:
++ set MATHLIBS="-L$mpath -lmkl_lapack -lmkl -lguide -lpthread"
++ breaksw
++ breaksw
++ case 10:
++ case 11:
++ case 12:
++ # next are a static link, in single-threaded mode (serial BLAS).
++ # The choices preclude any need to
++ # a) install .so shared object libraries on every node,
++ # b) define LD_LIBRARY_PATH to find the .so libraries, or
++ # c) define MKL_NUM_THREADS=1
++ # If desired, there is a single-threaded shared object link below.
++ # Note, there's now a gfortran-specific compiler interface library.
++ set iflib=intel
++ if ($GMS_FORTRAN == gfortran) set iflib=gf
++ set MATHLIBS=" $mpath/libmkl_${iflib}_ilp64.a"
++ set MATHLIBS="$MATHLIBS $mpath/libmkl_sequential.a"
++ set MATHLIBS="$MATHLIBS $mpath/libmkl_core.a"
++ breaksw
++ case 10-so:
++ case 11-so:
++ case 12-so:
++ # next one chooses dynamic linking (so= shared object libs)
++ # Just hand edit GMS_MKL_VERNO in your 'install.info' to use this.
++ # run-time libs (and LD_LIBRARY_PATH) needed on every compute node!
++ # note that it does force single-threaded usage.
++ # LIBCCHEM fails to link properly against static libraries.
++ # LIBCCHEM prefers to use threading
++ set iflib=intel
++ if ($GMS_FORTRAN == gfortran) set iflib=gf
++ if ($CCHEM == false) then
++ set MATHLIBS="-L$mpath -lmkl_${iflib}_ilp64 -lmkl_sequential -lmkl_core"
++ else
++ set MATHLIBS="-L$mpath -lmkl_${iflib}_ilp64 -lmkl_${iflib}_thread -lmkl_core -liomp5"
++ endif
++ breaksw
++ default:
++ echo "unknown version number for MKL/linux64"
++ echo "please edit 'lked' to select the right 64 bit MKL libraries."
++ exit
++ breaksw
++ endsw
++ set BLAS=' '
++ breaksw
++
++ case atlas:
++ # If the ATLAS comes with static libraries, link to them,
++ # so that only the compile node has to have the libraries.
++ # Otherwise, attempt a link against shared object libs.
++ #
++ # Some versions of Atlas come without proper setup to use them.
++ # For example, you may need to give some specific version such
++ # as 3.0 some generic names, by doing the right soft links:
++ # chdir /usr/lib64/atlas (just 'lib' for linux32)
++ # ln -s libatlas.so.3.0 libatlas.so
++ # ln -s libblas.so.3.0 libblas.so
++ # ln -s libcblas.so.3.0 libcblas.so
++ # ln -s libf77blas.so.3.0 libf77blas.so
++ # ln -s liblapack_atlas.so.3.0 liblapack.so
++ # ln -s liblapack.so.3.0 liblapack.so
++ # It is strange the RPM's don't do these soft links for us.
++ if (-e $GMS_MATHLIB_PATH/libf77blas.a) then
++ set MATHLIBS="$GMS_MATHLIB_PATH/libf77blas.a"
++ set MATHLIBS="$MATHLIBS $GMS_MATHLIB_PATH/libatlas.a"
++ else
++ set MATHLIBS="-L$GMS_MATHLIB_PATH -lf77blas -latlas"
++ endif
++ set BLAS=' '
++ breaksw
++
++ case acml:
++ # do a static link so that only compile node needs to install ACML
++ set MATHLIBS="$GMS_MATHLIB_PATH/libacml.a"
++ # if you want to try a dynamic link, use this:
++ #---set MATHLIBS="-L$GMS_MATHLIB_PATH -lacml -lacml_mv"
++ set BLAS=' '
++ breaksw
++
++ case none:
++ default:
++ echo "Warning. No math library was found, you should install one."
++ echo " MP2 calculations speed up about 2x with a math library."
++ echo "CCSD(T) calculations speed up about 5x with a math library."
++ set BLAS='%%BLAS%% %%LAPACK%%'
++ set MATHLIBS=' '
++ breaksw
++ endsw
++#
++ set LIBRARIES="$FORTLIBS $MATHLIBS"
++endif
++#
++endif
++
#
-@@ -605,6 +605,23 @@
+ # MacIntosh
+ #
+@@ -675,6 +914,23 @@
set VECTOR=' '
set QUICHE='zunix.o'
endif
+#FreeBSD settings
-+if ($TARGET == freebsd-i386) then
++if ($TARGET == freebsd32) then
+ set LDR=%%FC%%
+ set LDOPTS='%%LDFLAGS%%'
+ set LIBRARIES=''
@@ -28,7 +266,7 @@
+ set VECTOR=' '
+ set QUICHE='zunix.o'
+endif
-+if ($TARGET == freebsd-amd64) then
++if ($TARGET == freebsd64) then
+ set LDR=%%FC%%
+ set LDOPTS='%%LDFLAGS%%'
+ set LIBRARIES=''
@@ -39,21 +277,12 @@
#
if ($TARGET == necsx) then
set LDR='f90'
-@@ -693,6 +710,8 @@
+@@ -1199,6 +1199,8 @@
+ case ibm64:
case linux32:
case linux64:
- case linux-ia64:
-+ case freebsd-amd64:
-+ case freebsd-i386:
++ case freebsd32:
++ case freebsd64:
case mac32:
case mac64:
- case macG5:
-@@ -707,7 +726,7 @@
- # -lmpigf -lmpigi -lrt -lpthread'
- # The following is for TCP/IP sockets.
- #
-- set MSG_LIBRARIES='../ddi/libddi.a -lpthread'
-+ set MSG_LIBRARIES='../ddi/libddi.a %%PTHREAD_LIBS%%'
- # Solaris 2.6 needs -lposix4 instead of -lrt
- if (($TARGET == sun32) || ($TARGET == sun64) || \
- ($TARGET == fuji-pp32) || ($TARGET == fuji-pp64)) then
+ case sgi32:
diff --git a/science/gamess/files/patch-rungms b/science/gamess/files/patch-rungms
index c02ad6c565fc..910b99fa94fa 100644
--- a/science/gamess/files/patch-rungms
+++ b/science/gamess/files/patch-rungms
@@ -1,114 +1,21 @@
---- rungms.orig 2009-01-17 03:17:33.000000000 +0900
-+++ rungms 2009-05-08 14:27:35.000000000 +0900
+--- rungms 2013-03-05 17:53:14.000000000 +0900
++++ rungms 2013-03-05 17:53:45.000000000 +0900
@@ -1,4 +1,4 @@
-#!/bin/csh
-+#!/bin/csh -f
++#!/bin/csh -f
#
- # last update = 6 January 2009
+ # last update = 26 October 2012
#
-@@ -55,7 +55,13 @@
- # of using LoadLeveler via a "llgms" front end in ~/gamess/misc.
+@@ -60,9 +60,9 @@
+ # See also a very old LoadLeveler "ll-gms" for some IBM systems.
#
set TARGET=sockets
-set SCR=/scr/$USER
+-set USERSCR=~$USER/scr
+-set GMSPATH=/u1/mike/gamess
+set SCR=.
-+if ($#argv == 0 ) then
-+ echo "Usage: gamess <input file>"
-+ exit
-+endif
-+set GMSPATH=%%PREFIX%%/bin/gms
-+
++set USERSCR=.
++set GMSPATH=%%PREFIX%%/bin/gms/
#
set JOB=$1 # name of the input file xxx.inp, give only the xxx part
set VERNO=$2 # revision number of the executable created by 'lked' step
-@@ -67,36 +73,29 @@
- #
- # ---- the top third of the script is input and other file assignments ----
- #
--echo ----- GAMESS execution script -----
-+#echo ----- GAMESS execution script -----
- set master=`hostname`
--echo This job is running on host $master
--echo under operating system `uname` at `date`
--echo "Available scratch disk space (Kbyte units) at beginning of the job is"
--df -k $SCR
-+#echo This job is running on host $master
-+#echo under operating system `uname` at `date`
-+#echo "Available scratch disk space (Kbyte units) at beginning of the job is"
-+#df -k $SCR
-
- # this added as experiment, February 2007
- # its intent is to detect large arrays allocated off the stack
--limit stacksize 8192
-+#limit stacksize 8192
-+
-+set JOBORG=$JOB
-+set JOB=$JOB:r # strip off possible .inp
-+
-+if (-e $JOBORG) then
-+ cp $JOBORG $SCR/$JOB.F05
-+else
-+ echo "Input file $JOBORG does not exist. Please fix and resubmit."
-+ exit 4
-+endif
-
- # Grab a copy of the input file.
- # In the case of EXAMnn jobs, this file might be in the "tests" subdirectory.
--if ($JOB:r.inp == $JOB) set JOB=$JOB:r # strip off possible .inp
--if (-e $JOB.inp) then
-- set echo
-- cp $JOB.inp $SCR/$JOB.F05
-- unset echo
--else
-- if (-e tests/$JOB.inp) then
-- set echo
-- cp tests/$JOB.inp $SCR/$JOB.F05
-- unset echo
-- else
-- echo "Input file $JOB.inp does not exist."
-- echo "This job expected the input file to be in directory `pwd`"
-- echo "Please fix your file name problem, and resubmit."
-- exit 4
-- endif
--endif
-
- # file assignments.
- #
-@@ -120,19 +119,20 @@
- # d. see NEO plug-in code's documentation regarding the NUCBAS file.
- # Note that you must edit a+b, but will probably skip c+d.
- #
--set echo
-+# set echo
- # ASCII input files (see explanation above)
--setenv ERICFMT ~mike/gamess/ericfmt.dat
--setenv MCPPATH ~mike/gamess/mcpdata
-+setenv ERICFMT %%PREFIX%%/share/gamess/ericfmt.dat
-+setenv MCPPATH %%PREFIX%%/share/gamess/mcpdata
- setenv EXTBAS /dev/null
- setenv NUCBAS /dev/null
- #
--setenv MAKEFP ~$USER/scr/$JOB.efp
--setenv GAMMA ~$USER/scr/$JOB.gamma
--setenv TRAJECT ~$USER/scr/$JOB.trj
--setenv RESTART ~$USER/scr/$JOB.rst
-+setenv MAKEFP $SCR/scr/$JOB.efp
-+setenv GAMMA $SCR/scr/$JOB.gamma
-+setenv TRAJECT $SCR/scr/$JOB.trj
-+setenv RESTART $SCR/scr/$JOB.rst
-+setenv IRCDATA $SCR/$JOB.irc
- setenv INPUT $SCR/$JOB.F05
--setenv PUNCH ~$USER/scr/$JOB.dat
-+setenv PUNCH $SCR/$JOB.dat
- setenv AOINTS $SCR/$JOB.F08
- setenv MOINTS $SCR/$JOB.F09
- setenv DICTNRY $SCR/$JOB.F10
-@@ -308,7 +308,7 @@
- if (null$4 == null) set ELGNAME=ELGFILE
- set echo
- setenv AOINTS $SCR/$ELGNAME.F08
-- setenv ELGDOS ~$USER/scr/$JOB.ldos
-+ setenv ELGDOS $SCR/$JOB.ldos
- setenv ELGDAT $SCR/$ELGNAME.F71
- setenv ELGPAR $SCR/$ELGNAME.F72
- setenv ELGCUT $SCR/$ELGNAME.F74
diff --git a/science/gamess/pkg-message b/science/gamess/pkg-message
index 08b396ab437f..e445f5a70499 100644
--- a/science/gamess/pkg-message
+++ b/science/gamess/pkg-message
@@ -3,11 +3,11 @@ WARNING!!WARNING!!WARNING!!WARNING!!
If you got the following error
'Error ENOMEM: Not enough memory to allocate ** bytes of shared memory.',
then add ipc memory by:
-sudo sysctl -w kern.ipc.shmmax=67108864
-sudo sysctl -w kern.ipc.shmall=32768
+sudo sysctl -w kern.ipc.shmmax=3064372224
+sudo sysctl -w kern.ipc.shmall=748137
or if you want to enable at boot time
add following lines to
-kern.ipc.shmmax=67108864
-kern.ipc.shmall=32768
+kern.ipc.shmmax=3064372224
+kern.ipc.shmall=748137
/boot/loader.conf
.
diff --git a/science/gamess/pkg-plist b/science/gamess/pkg-plist
index 7b7419741918..01bd8768f86b 100644
--- a/science/gamess/pkg-plist
+++ b/science/gamess/pkg-plist
@@ -1,6 +1,7 @@
bin/gamess
bin/gms/ddikick.x
bin/gms/gamess.00.x
+bin/gms/gms-files.csh
share/doc/gamess/INPUT.DOC
share/doc/gamess/INTRO.DOC
share/doc/gamess/IRON.DOC
@@ -8,14 +9,92 @@ share/doc/gamess/PROG.DOC
share/doc/gamess/REFS.DOC
share/doc/gamess/TESTS.DOC
share/doc/gamess/readme.ddi
-share/gamess/ericfmt.dat
-share/gamess/mcpdata/IMCP-NR1
-share/gamess/mcpdata/IMCP-NR2
-share/gamess/mcpdata/IMCP-SR1
-share/gamess/mcpdata/IMCP-SR2
-share/gamess/mcpdata/MCP-DZP
-share/gamess/mcpdata/MCP-QZP
-share/gamess/mcpdata/MCP-TZP
+share/gamess/auxdata/ericfmt.dat
+share/gamess/auxdata/BASES/SPK-TZP
+share/gamess/auxdata/BASES/SPKRDZC
+share/gamess/auxdata/BASES/SPK-DZC
+share/gamess/auxdata/BASES/SPKRQZCD
+share/gamess/auxdata/BASES/SPK-QZP
+share/gamess/auxdata/BASES/SPKRTZP
+share/gamess/auxdata/BASES/SPKRAQZP
+share/gamess/auxdata/BASES/SPK-ADZP
+share/gamess/auxdata/BASES/SPKRTZC
+share/gamess/auxdata/BASES/SPK-ATZP
+share/gamess/auxdata/BASES/SPKRDZP
+share/gamess/auxdata/BASES/SPK-AQZP
+share/gamess/auxdata/BASES/SPKRQZP
+share/gamess/auxdata/BASES/SPKRQZC
+share/gamess/auxdata/BASES/SPKRATZP
+share/gamess/auxdata/BASES/SPK-QZC
+share/gamess/auxdata/BASES/SPKRADZP
+share/gamess/auxdata/BASES/SPKRDZCD
+share/gamess/auxdata/BASES/SPKRTZCD
+share/gamess/auxdata/BASES/SPK-DZP
+share/gamess/auxdata/BASES/SPK-QZCD
+share/gamess/auxdata/BASES/SPK-TZC
+share/gamess/auxdata/BASES/SPK-DZCD
+share/gamess/auxdata/BASES/SPK-TZCD
+share/gamess/auxdata/EFP/ADENI2.efp
+share/gamess/auxdata/EFP/THYMI2.efp
+share/gamess/auxdata/EFP/PYRAZI.efp
+share/gamess/auxdata/EFP/ADENIN.efp
+share/gamess/auxdata/EFP/PENTAN.efp
+share/gamess/auxdata/EFP/INDOLE.efp
+share/gamess/auxdata/EFP/PHENOL.efp
+share/gamess/auxdata/EFP/ACNH2B.efp
+share/gamess/auxdata/EFP/FORMID.efp
+share/gamess/auxdata/EFP/CYCPEN.efp
+share/gamess/auxdata/EFP/HCN.efp
+share/gamess/auxdata/EFP/URACIL.efp
+share/gamess/auxdata/EFP/BENZEN.efp
+share/gamess/auxdata/EFP/MENH2.efp
+share/gamess/auxdata/EFP/FORMIC.efp
+share/gamess/auxdata/EFP/PEPTID.efp
+share/gamess/auxdata/EFP/ACOHG.efp
+share/gamess/auxdata/EFP/METHAN.efp
+share/gamess/auxdata/EFP/MEOH.efp
+share/gamess/auxdata/EFP/THYMIN.efp
+share/gamess/auxdata/EFP/NEOPEN.efp
+share/gamess/auxdata/EFP/AMINOP.efp
+share/gamess/auxdata/EFP/PYRIDI.efp
+share/gamess/auxdata/EFP/AMONIA.efp
+share/gamess/auxdata/EFP/WATER.efp
+share/gamess/auxdata/EFP/PYRIDO.efp
+share/gamess/auxdata/EFP/ACNH2G.efp
+share/gamess/auxdata/EFP/ETHENE.efp
+share/gamess/auxdata/EFP/URACG.efp
+share/gamess/auxdata/EFP/ETHYNE.efp
+share/gamess/auxdata/EFP/ACOHB.efp
+share/gamess/auxdata/MCP/MCP-ATZP
+share/gamess/auxdata/MCP/MCPCDZP
+share/gamess/auxdata/MCP/ZFK5-DK3
+share/gamess/auxdata/MCP/MCPCTZP
+share/gamess/auxdata/MCP/MCPACQZP
+share/gamess/auxdata/MCP/ZFK4-DK3
+share/gamess/auxdata/MCP/IMCP-SR2
+share/gamess/auxdata/MCP/MCP-DZP
+share/gamess/auxdata/MCP/MCP-QZP
+share/gamess/auxdata/MCP/MCP-TZP
+share/gamess/auxdata/MCP/ZFK3-DK3
+share/gamess/auxdata/MCP/MCPACTZP
+share/gamess/auxdata/MCP/IMCP-NR1
+share/gamess/auxdata/MCP/ZFK5LDK3
+share/gamess/auxdata/MCP/MCPCQZP
+share/gamess/auxdata/MCP/ZFK3LDK3
+share/gamess/auxdata/MCP/MCPACDZP
+share/gamess/auxdata/MCP/ZFK4LDK3
+share/gamess/auxdata/MCP/IMCP-SR1
+share/gamess/auxdata/MCP/MCP-AQZP
+share/gamess/auxdata/MCP/IMCP-NR2
+share/gamess/auxdata/QUANPOL/RXNFLD3840.DAT
+share/gamess/auxdata/QUANPOL/CHARMM22.CMAP
+share/gamess/auxdata/QUANPOL/RXNFLD0060.DAT
+share/gamess/auxdata/QUANPOL/RXNFLD0240.DAT
+share/gamess/auxdata/QUANPOL/LOUT314159.TOP
+share/gamess/auxdata/QUANPOL/CHARMM22.LIB
+share/gamess/auxdata/QUANPOL/RXNFLD0960.DAT
+share/gamess/auxdata/QUANPOL/WATER4096.DAT
+share/gamess/auxdata/QUANPOL/LOUT314159.PAR
share/examples/gamess/exam01.inp
share/examples/gamess/exam02.inp
share/examples/gamess/exam03.inp
@@ -60,8 +139,16 @@ share/examples/gamess/exam41.inp
share/examples/gamess/exam42.inp
share/examples/gamess/exam43.inp
share/examples/gamess/exam44.inp
+share/examples/gamess/exam45.inp
+share/examples/gamess/exam46.inp
+share/examples/gamess/exam47.inp
@dirrm bin/gms
@dirrm share/doc/gamess
@dirrm share/gamess/mcpdata
-@dirrm share/gamess
@dirrm share/examples/gamess
+@dirrm share/gamess/auxdata/QUANPOL
+@dirrm share/gamess/auxdata/MCP
+@dirrm share/gamess/auxdata/EFP
+@dirrm share/gamess/auxdata/BASES
+@dirrm share/gamess/auxdata
+@dirrm share/gamess