diff options
author | Maho Nakata <maho@FreeBSD.org> | 2013-03-05 11:43:18 +0000 |
---|---|---|
committer | Maho Nakata <maho@FreeBSD.org> | 2013-03-05 11:43:18 +0000 |
commit | 773f134396248763b048d6247223580f59bc36a4 (patch) | |
tree | b131b2b9bac8972dc9aa26f4577f5a29f51bfff5 /science | |
parent | a795caea20afcda21eb86cbb2437f9a9966473a7 (diff) | |
download | ports-773f134396248763b048d6247223580f59bc36a4.tar.gz ports-773f134396248763b048d6247223580f59bc36a4.zip |
Notes
Diffstat (limited to 'science')
-rw-r--r-- | science/gamess/Makefile | 69 | ||||
-rw-r--r-- | science/gamess/distinfo | 4 | ||||
-rw-r--r-- | science/gamess/files/Makefile.top | 2 | ||||
-rw-r--r-- | science/gamess/files/install.info | 15 | ||||
-rw-r--r-- | science/gamess/files/patch-comp | 408 | ||||
-rw-r--r-- | science/gamess/files/patch-compall | 63 | ||||
-rw-r--r-- | science/gamess/files/patch-compddi | 40 | ||||
-rw-r--r-- | science/gamess/files/patch-gms-files.csh | 13 | ||||
-rw-r--r-- | science/gamess/files/patch-lked | 291 | ||||
-rw-r--r-- | science/gamess/files/patch-rungms | 113 | ||||
-rw-r--r-- | science/gamess/pkg-message | 8 | ||||
-rw-r--r-- | science/gamess/pkg-plist | 105 |
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 |