Skip to content
Snippets Groups Projects
Commit 34edab7c authored by Giovanni Bussi's avatar Giovanni Bussi
Browse files

Removed old amber patche

parent 72f93001
No related branches found
No related tags found
No related merge requests found
Showing
with 0 additions and 23682 deletions
function plumed_preliminary_test(){
# check if the README contains the word AMBER and if amber has been already configured
grep -q Amber README 1>/dev/null 2>/dev/null
}
function plumed_patch_info(){
cat << EOF
PLUMED can be incorporated into amber (sander module) using the standard patching procedure.
Patching must be done in the root directory of amber _before_
compilation.
To enable PLUMED in a sander simulation one should use
add to the cntrl input namelist these two fields:
plumed=1 , plumedfile='plumed.dat'
The first is switching plumed on, the second is specifying the name of the plumed
input file.
This patch is compatible with the MPI version of sander and support
multisander. However, replica exchange is not supported.
Multisander can thus only be used for multiple walkers
metadynamics or for ensemble restraints.
For more information on amber you should visit http://ambermd.org
EOF
}
#
#************************************************************************
# AMBER **
# **
# Copyright (c) 1986, 1991, 1995, 1997, 1999 **
# Regents of the University of California **
# All Rights Reserved. **
# **
# This software provided pursuant to a license agreement containing **
# restrictions on its disclosure, duplication, and use. This software **
# contains confidential and proprietary information, and may not be **
# extracted or distributed, in whole or in part, for any purpose **
# whatsoever, without the express written permission of the authors. **
# This notice, and the associated author list, must be attached to **
# all copies, or extracts, of this software. Any additional **
# restrictions set forth in the license agreement also apply to this **
# software. **
#************************************************************************
#
# Makefile for Amber 14 SANDER
#
include ../config.h
include ../../../Plumed.inc
CONFIG_FILE=../config.h
CONFIG_COMMAND=configure
PARALLEL_TOKEN=DMPI
# Sander Fortran source files are free format
# Add also search paths for .mod files
LOCALFLAGS = $(FREEFORMAT_FLAG) -I../pbsa -I../sqm -I../rism -I../../../include
SHELL=/bin/sh
VPATH=
EMILOBJ= \
emil.o mdin_emil_dat.o
NCSU_OBJECTS = \
ncsu-abmd-hooks.o ncsu-bbmd-ctxt.o ncsu-bbmd-hooks.o ncsu-cftree.o \
ncsu-colvar.o ncsu-colvar-math.o ncsu-colvar-type.o ncsu-colvar-utils.o \
ncsu-constants.o ncsu-cv-ANGLE.o ncsu-cv-COM_ANGLE.o \
ncsu-cv-COM_DISTANCE.o ncsu-cv-COM_TORSION.o ncsu-cv-COS_OF_DIHEDRAL.o \
ncsu-cv-DISTANCE.o ncsu-cv-HANDEDNESS.o ncsu-cv-LCOD.o \
ncsu-cv-MULTI_RMSD.o ncsu-cv-N_OF_BONDS.o ncsu-cv-N_OF_STRUCTURES.o \
ncsu-cv-R_OF_GYRATION.o ncsu-cv-TORSION.o ncsu-lexer.o ncsu-parser.o \
ncsu-pmd-hooks.o ncsu-rmsd.o ncsu-sander-hooks.o ncsu-sander-proxy.o \
ncsu-cv-PCA.o ncsu-read-pca.o \
ncsu-smd-hooks.o ncsu-umbrella.o ncsu-utils.o ncsu-value.o mt19937.o
EVB_BASE = evb_vars.o evb_mathf.o evb_init.o evb_bcast.o \
evb_dealloc.o check_input.o evb_io.o evb_keywrd.o \
exchange_gauss.o exchange_warshel.o react_flux_init.o \
react_path.o react_flux.o kappa_keck.o \
schlegel_dg.o schlegel_full.o schlegel_diis.o schlegel_gmres.o \
schlegel_gbasis.o schlegel_pgbasis.o \
bnd_strtch.o ang_bend.o dihed_tors.o torinternal.o \
evb_gfchk.o bmat_inv.o bmat_grad.o \
unitv.o crossv.o cart2internal.o wdc_bmat.o select_coord.o \
schlegel_uff.o schlegel_dihed.o schlegel_angle.o \
schlegel_poh_uff.o schlegel_poh_irc.o schlegel_hcn_cart.o \
schlegel_hcn_int_irc.o schlegel_hcn_cart_irc.o evb_outoptions.o
EVB_DEBUG = evb_2stdebug.o egap_umb_2stdebug.o dg_debug.o \
evb_io_debug.o bmat_debug.o bmat_inv_debug.o evb_io_debug2.o \
morse_anal2num.o xwarshel_anal2num.o xgauss_anal2num.o \
vdw_anal2num.o rcdbonds_anal2num.o rcbond_anal2num.o \
dg_grad_anal2num.o
EVBOBJ = $(EVB_BASE) $(EVB_DEBUG) evb_input.o evb_alloc.o evb_matrix.o \
morsify.o mod_vdw.o evb_ntrfc.o evb_force.o out_evb.o \
dbonds_anal2num.o bond_anal2num.o evb_umb.o evb_umb_primitive.o
EVBPIMD = $(EVB_BASE) $(EVB_DEBUG) evb_input.LES.o evb_alloc.LES.o evb_matrix.LES.o \
morsify.LES.o mod_vdw.LES.o evb_ntrfc.LES.o evb_force.LES.o \
evb_pimd_init.LES.o out_evb.LES.o dbonds_anal2num.o bond_anal2num.o \
evb_umb.LES.o evb_umb_primitive.LES.o
AMOEBAOBJ= \
amoeba_valence.o amoeba_multipoles.o amoeba_recip.o amoeba_interface.o\
amoeba_direct.o amoeba_mdin.o amoeba_adjust.o amoeba_self.o\
amoeba_vdw.o amoeba_induced.o amoeba_runmd.o
APBSOBJ= \
file_io_dat.APBS.o apbs_vars.APBS.o apbs.APBS.o \
constants.o state.o memory_module.o stack.o \
nose_hoover.o nose_hoover_init.o \
trace.o rmsgrd.o lmod.o rand2.o lmodC.o xminC.o decomp.o \
icosasurf.o egb.o remd.o findmask.o \
relax_mat.o nmr.o multitmd.o \
multisander.o sander.APBS.o trajene.o cshf.o nmrcal.o mtmdcall.o pearsn.o \
printe.APBS.o runmin.o rdparm.o \
mdread.APBS.o locmem.o runmd.o getcor.o degcnt.o decnvh.o \
fastwt.o parallel.o shake.o ene.o mdwrit.o minrit.o \
set.o dynlib.APBS.o mdfil.o nmlsrc.o \
ew_force.o ew_setup.o ew_box.o ew_bspline.o\
ew_fft.o nonbond_list.o short_ene.o ew_recip.o pcshift.o align.o csa.o \
rfree.o rgroup.o amopen.o \
debug.o ew_recip_reg.o ew_handle_dips.o ew_dipole_recip.o \
mexit.o new_time.o extra_pts.o thermo_int.o \
matinv.o assert.o mmtsb.o mmtsb_client.o erfcfun.o \
constantph.o prn_dipoles.o ips.o sglds.o iwrap2.o emap.o \
$(AMOEBAOBJ) $(SANDER_RISM_INTERFACE) AmberNetcdf.o bintraj.o binrestart.o \
spatial_recip.o spatial_fft.o parms.o softcore.o mbar.o linear_response.o molecule.o xref.o dssp.o \
charmm.o crg_reloc.o sander_lib.o amd.o scaledMD.o barostats.o $(EMILOBJ)
QMOBJ= \
abfqmmm_module.o qm_mm.o qm_ewald.o qmmm_vsolv.o \
qm2_extern_util_module.o qm2_extern_module.o qm2_extern_adf_module.o qm2_read_adf_results.o KFReader.o \
ArrayList.o qm2_extern_gms_module.o qm2_extern_tc_module.o qm2_extern_gau_module.o \
qm2_extern_orc_module.o qm2_extern_nw_module.o qm2_extern_genmpi_module.o \
qmmm_adaptive_module.o prn_qmmm_dipole.o
ifdef LIOLIBS
QMOBJ += qm2_extern_lio_module.o
endif
SEBOMDOBJ = \
sebomd_module.o sebomd_arrays.o
SEBOMDLIB = ../sebomd/sebomd.a
MMOBJ= file_io_dat.o constants.o state.o memory_module.o stack.o \
nose_hoover.o nose_hoover_init.o \
trace.o rmsgrd.o lmod.o rand2.o lmodC.o xminC.o decomp.o \
icosasurf.o egb.o remd.o findmask.o \
relax_mat.o nmr.o multitmd.o \
multisander.o sander.o trajene.o cshf.o nmrcal.o mtmdcall.o pearsn.o \
printe.o runmin.o rdparm.o sander_lib.o \
mdread.o locmem.o runmd.o getcor.o degcnt.o decnvh.o \
fastwt.o parallel.o shake.o ene.o mdwrit.o minrit.o \
set.o dynlib.o mdfil.o nmlsrc.o \
ew_force.o ew_setup.o ew_box.o ew_bspline.o\
ew_fft.o nonbond_list.o short_ene.o ew_recip.o pcshift.o align.o csa.o \
rfree.o rgroup.o amopen.o \
debug.o ew_recip_reg.o ew_handle_dips.o ew_dipole_recip.o \
mexit.o new_time.o extra_pts.o thermo_int.o \
matinv.o assert.o mmtsb.o mmtsb_client.o erfcfun.o \
constantph.o prn_dipoles.o ips.o sglds.o iwrap2.o emap.o\
$(EMILOBJ) $(AMOEBAOBJ) $(SANDER_RISM_INTERFACE) AmberNetcdf.o bintraj.o binrestart.o \
spatial_recip.o spatial_fft.o parms.o softcore.o mbar.o linear_response.o molecule.o xref.o dssp.o \
charmm.o crg_reloc.o amd.o scaledMD.o barostats.o
FULLPIMDOBJ = pimd_vars.o pimd_force.o pimd_init.o cmd_vars.o cmd_matrix.o
PARTPIMDOBJ = pimd_vars.o pimd_force.LES.o pimd_init.LES.o cmd_vars.o cmd_matrix.LES.o
PUPILOBJ= file_io_dat.o constants.o state.o memory_module.o stack.o \
nose_hoover.o nose_hoover_init.o \
trace.o rmsgrd.o lmod.o rand2.o lmodC.o xminC.o decomp.o \
pupildata.o icosasurf.o egb.o findmask.o \
relax_mat.o nmr.o multitmd.o \
multisander.o sander.PUPIL.o trajene.o cshf.o nmrcal.o mtmdcall.o pearsn.o \
printe.PUPIL.o runmin.o force.PUPIL.o rdparm.o \
mdread.PUPIL.o locmem.o runmd.o getcor.o degcnt.o decnvh.o \
fastwt.o parallel.o shake.o ene.o mdwrit.o minrit.o \
set.o dynlib.PUPIL.o mdfil.PUPIL.o nmlsrc.o \
ew_force.o ew_setup.o ew_box.o ew_bspline.o\
ew_fft.o nonbond_list.o short_ene.o ew_recip.o pcshift.o align.o csa.o \
rfree.o rgroup.o amopen.o sander_lib.o \
debug.o ew_recip_reg.o ew_handle_dips.o ew_dipole_recip.o \
mexit.PUPIL.o new_time.o extra_pts.o thermo_int.o \
matinv.o assert.o mmtsb.o mmtsb_client.o erfcfun.o \
constantph.o prn_dipoles.o ips.o sglds.o iwrap2.o emap.o \
$(EMILOBJ) $(AMOEBAOBJ) $(SANDER_RISM_INTERFACE) AmberNetcdf.o bintraj.o binrestart.o \
spatial_recip.o spatial_fft.o parms.o softcore.o mbar.o linear_response.o molecule.o xref.o \
putvalues.o fixport.o dssp.o charmm.o crg_reloc.o amd.o scaledMD.o \
barostats.o
LSCIVROBJ = lscivr_vars.o lsc_init.o lsc_xp.o
LESOBJ= memory_module.o stack.o file_io_dat.o \
constants.o state.o nose_hoover.o nose_hoover_init_LES.o \
trace.o rmsgrd.o rand2.o lmodC.o xminC.o decomp.o icosasurf.o \
egb.LES.o remd.LES.o findmask.o \
relax_mat.o nmr.LES.o multitmd.o \
multisander.LES.o sander.LES.o cshf.o nmrcal.o mtmdcall.o pearsn.o \
printe.o runmin.o nonbond_list.LES.o force.LES.o rdparm.LES.o \
mdread.LES.o locmem.LES.o runmd.LES.o degcnt.LES.o decnvh.o \
fastwt.o parallel.LES.o shake.o ene.LES.o \
dynlib.LES.o nmlsrc.o \
ew_force.LES.o ew_setup.LES.o ew_bspline.o\
ew_fft.o short_ene.LES.o ew_recip.LES.o pcshift.o \
align.o csa.o rfree.o rgroup.o \
amopen.o sander_lib.o \
debug.o ew_recip_reg.o ew_handle_dips.o ew_dipole_recip.o \
mexit.o new_time.o extra_pts.LES.o thermo_int.o matinv.o assert.o \
mmtsb.o mmtsb_client.o erfcfun.o \
constantph.o prn_dipoles.o ips.o sglds.o iwrap2.o emap.o \
$(AMOEBAOBJ) $(EMILOBJ) $(SANDER_RISM_INTERFACE) \
$(SEBOMDOBJ) \
spatial_recip.o spatial_fft.o parms.o softcore.o mbar.o linear_response.o molecule.o xref.o dssp.o \
charmm.o crg_reloc.o barostats.o \
qm_ewald.o qmmm_vsolv.o \
qm2_extern_util_module.o qm2_extern_module.o qm2_extern_adf_module.o qm2_read_adf_results.o KFReader.o \
ArrayList.o qm2_extern_gms_module.o qm2_extern_tc_module.o qm2_extern_gau_module.o \
qm2_extern_orc_module.o qm2_extern_nw_module.o qm2_extern_genmpi_module.o \
qmmm_adaptive_module.o abfqmmm_module.o prn_qmmm_dipole.o \
AmberNetcdf.o bintraj.LES.o binrestart.LES.o getcor.LES.o mdfil.LES.o mdwrit.LES.o \
lmod.LES.o trajene.LES.o ew_box.LES.o minrit.LES.o set.LES.o qm_mm.LES.o amd.o scaledMD.o
ifdef LIOLIBS
LESOBJ += qm2_extern_lio_module.o
endif
# Xray sources are incomplete, but should not interfere with normal SANDER function.
# Add the following to ../config.h to build new X-ray sources:
#
# AMBERBUILDFLAGS=-D_XRAY
# XRAY_OBJS = \
# xray_fftpack.o xray_fourier.o xray_globals.o xray_interface.o \
# xray_real_space.o xray_reciprocal_space.o xray_utils.o
.PHONY: configured configured-serial configured_parallel serial parallel
install: serial
SERIALPROGS = $(BINDIR)/sander$(SFX) $(BINDIR)/sander.LES$(SFX) $(BINDIR)/ambmask$(SFX)
.NOTPARALLEL: $(SERIALPROGS)
serial: configured_serial $(SERIALPROGS)
PARALLELPROGS = $(BINDIR)/sander.MPI$(SFX) $(BINDIR)/sander.LES.MPI$(SFX)
.NOTPARALLEL: $(PARALLELPROGS)
parallel: configured_parallel $(PARALLELPROGS)
all_serial_programs: $(SERIALPROGS)
$(MAKE) $(BINDIR)/sander.PUPIL$(SFX)
$(MAKE) $(BINDIR)/sander.APBS$(SFX)
#---------------------------------------------------------------------------
$(BINDIR)/sander$(SFX): libsqm $(MMOBJ) $(QMOBJ) $(FULLPIMDOBJ) $(EMIL) \
$(SEBOMDOBJ) sebomd \
$(LSCIVROBJ) force.o syslib \
../lib/nxtsec.o netlib configured_serial \
$(NCSU_OBJECTS) $(XRAY_OBJS) libpbsa librism
$(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(MMOBJ) $(QMOBJ) $(SEBOMDOBJ) \
$(FULLPIMDOBJ) $(LSCIVROBJ) force.o -L$(LIBDIR) -lsqm \
$(NCSU_OBJECTS) $(XRAY_OBJS) \
-lFpbsa ../lib/nxtsec.o $(EMILLIB) \
$(SEBOMDLIB) \
../lib/sys.a $(NETCDFLIBF) \
$(FLIBS_RISMSANDER) $(FLIBS_FFTW3) $(FLIBSF) \
$(LDFLAGS) $(AMBERLDFLAGS) $(LIOLIBS) $(PLUMED_LOAD)
#---------------------------------------------------------------------------
$(BINDIR)/sander.MPI$(SFX): libsqm $(MMOBJ) $(QMOBJ) $(FULLPIMDOBJ) $(EMIL) \
$(LSCIVROBJ) $(EVBOBJ) force.o \
$(SEBOMDOBJ) sebomd \
syslib ../lib/nxtsec.o netlib libpbsa librism_mpi configured_parallel $(NCSU_OBJECTS)
$(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(MMOBJ) $(QMOBJ) $(SEBOMDOBJ) \
$(FULLPIMDOBJ) $(LSCIVROBJ) $(EVBOBJ) force.o \
-L$(LIBDIR) -lsqm -lFpbsa $(EMILLIB) \
$(SEBOMDLIB) \
../lib/nxtsec.o ../lib/sys.a $(NCSU_OBJECTS) $(NETCDFLIBF) \
$(FLIBS_RISMSANDER) $(FLIBS_FFTW3) $(FLIBSF) \
$(LDFLAGS) $(AMBERLDFLAGS) $(LIOLIBS) $(PLUMED_LOAD)
#---------------------------------------------------------------------------
$(BINDIR)/sander.PUPIL$(SFX): libsqm $(PUPILOBJ) $(QMOBJ) $(FULLPIMDOBJ) $(EMIL) \
$(LSCIVROBJ) syslib \
$(SEBOMDOBJ) sebomd \
../lib/nxtsec.o netlib libpbsa librism configured_serial $(NCSU_OBJECTS)
$(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(PUPILOBJ) $(QMOBJ) $(SEBOMDOBJ) $(FULLPIMDOBJ) \
$(LSCIVROBJ) -L$(LIBDIR) -lsqm -lFpbsa \
$(SEBOMDLIB) \
../lib/nxtsec.o $(EMILLIB) ../lib/sys.a $(NCSU_OBJECTS) $(NETCDFLIBF) \
$(FLIBS_RISMSANDER) $(FLIBS_FFTW3) $(FLIBSF) \
$(PUPILLIBS) $(LDFLAGS) $(AMBERLDFLAGS) $(LIOLIBS)
#---------------------------------------------------------------------------
$(BINDIR)/sander.LES$(SFX): libsqm $(LESOBJ) $(PARTPIMDOBJ) syslib \
../lib/nxtsec.o netlib \
$(LSCIVROBJ) $(NCSU_OBJECTS) $(XRAY_OBJS) configured_serial \
libpbsa librism $(EMIL) sebomd
$(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(LESOBJ) $(PARTPIMDOBJ) $(LSCIVROBJ) \
$(XRAY_OBJS) -L$(LIBDIR) -lsqm -lFpbsa $(EMILLIB) \
$(SEBOMDLIB) \
../lib/nxtsec.o ../lib/sys.a $(NCSU_OBJECTS) $(NETCDFLIBF) \
$(FLIBS_RISMSANDER) $(FLIBS_FFTW3) $(FLIBSF) \
$(LDFLAGS) $(AMBERLDFLAGS) $(LIOLIBS) $(PLUMED_LOAD)
#---------------------------------------------------------------------------
$(BINDIR)/sander.LES.MPI$(SFX): libsqm $(LESOBJ) $(EVBPIMD) \
$(PARTPIMDOBJ) syslib ../lib/nxtsec.o \
netlib libpbsa librism_mpi $(EMIL) \
$(LSCIVROBJ) $(NCSU_OBJECTS) sebomd configured_parallel
$(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(LESOBJ) $(EVBPIMD) \
$(PARTPIMDOBJ) $(LSCIVROBJ) \
-L$(LIBDIR) -lsqm -lFpbsa $(EMILLIB) \
$(SEBOMDLIB) \
../lib/nxtsec.o ../lib/sys.a $(NCSU_OBJECTS) $(NETCDFLIBF) \
$(FLIBS_RISMSANDER) $(FLIBS_FFTW3) $(FLIBSF) \
$(LDFLAGS) $(AMBERLDFLAGS) $(LIOLIBS) $(PLUMED_LOAD)
#---------------------------------------------------------------------------
$(BINDIR)/sander.APBS$(SFX): libsqm $(APBSOBJ) $(QMOBJ) \
$(LSCIVROBJ) $(FULLPIMDOBJ) $(NCSU_OBJECTS) \
force.APBS.o syslib librism $(EMIL) \
$(SEBOMDOBJ) sebomd \
../lib/nxtsec.o netlib configured_serial
$(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(APBSOBJ) $(QMOBJ) $(SEBOMDOBJ) \
$(FULLPIMDOBJ) $(LSCIVROBJ) force.APBS.o \
-L$(APBS_LIBDIR) $(APBS_LIBS) \
-L$(LIBDIR) -lsqm -lFpbsa $(EMILLIB) \
$(SEBOMDLIB) \
../lib/nxtsec.o ../lib/sys.a $(NCSU_OBJECTS) $(NETCDFLIBF) \
$(FLIBS_RISMSANDER) $(FLIBS_FFTW3) $(FLIBSF) \
$(LDFLAGS) $(AMBERLDFLAGS) $(LIOLIBS)
#---------------------------------------------------------------------------
$(BINDIR)/ambmask$(SFX): ambmask.o findmask.o amopen.o parms.o \
memory_module.o mexit.o ../lib/nxtsec.o
$(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ ambmask.o findmask.o \
amopen.o mexit.o ../lib/nxtsec.o constants.o memory_module.o parms.o \
$(LDFLAGS) $(AMBERLDFLAGS) $(LIOLIBS)
#-----------LIBS
EMIL:
$(MAKE) -C ../emil install
syslib:
cd ../lib && $(MAKE) sys.a
netlib:
cd ../blas && $(MAKE) $(BLAS)
cd ../lapack && $(MAKE) $(LAPACK)
cd ../arpack && $(MAKE) install
sebomd: $(SEBOMDOBJ)
cd ../sebomd && $(MAKE) sebomd.a
../lib/nxtsec.o: ../lib/nxtsec.F
cd ../lib && $(MAKE) nxtsec.o
pmemd_clib:
cd ../pmemd/src && $(CC) -c $(CPPFLAGS) $(CNOOPTFLAGS) \
$(CFLAGS) $(AMBERCFLAGS) pmemd_clib.c
../lib/mexit.o: ../lib/mexit.F
cd ../lib && $(MAKE) mexit.o
rand2.o: ../sff/rand2.c
$(CC) -c $(CNOOPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) \
-o rand2.o ../sff/rand2.c
lmodC.o: ../sff/lmodC.c
$(CC) -c -DSQM $(CNOOPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) \
-o lmodC.o ../sff/lmodC.c
xminC.o: ../sff/xminC.c
$(CC) -c -DSQM $(CNOOPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) \
-o xminC.o ../sff/xminC.c
libsqm:
cd ../sqm && $(MAKE) $@
librism librism_mpi:
if [ -n "$(RISMSANDER)" ]; then \
cd ../rism && $(MAKE) $@; \
fi
libpbsa: decomp.o
cd ../pbsa && $(MAKE) libFpbsa.a
clean:
-/bin/rm -f sander.PUPIL$(SFX)
-/bin/rm -f sander.APBS$(SFX)
/bin/rm -f *.o
/bin/rm -f
/bin/rm -f *.mod
/bin/rm -f *.d
/bin/rm -f *nbflag
uninstall.serial:
-rm -f $(BINDIR)/mopac.sh
-for file in $(SERIALPROGS) ; do \
rm -f $${file} ; \
done
uninstall.parallel:
-for file in $(PARALLELPROGS) ; do \
rm -f $${file} ; \
done
uninstall: uninstall.serial uninstall.parallel
depend::
./makedepend > depend
configured:
@(if [ ! -f $(CONFIG_FILE) ] ; then \
echo "Error: $(CONFIG_COMMAND) must be executed before $(MAKE) !" ;\
exit 2 ;\ # $(CONFIG_COMMAND) ;\
fi ;\
)
configured_serial: configured
@(if grep $(PARALLEL_TOKEN) $(CONFIG_FILE) > /dev/null ; then \
echo "Error: $(CONFIG_FILE) is of type parallel, not serial !" ;\
echo " Rerun $(CONFIG_COMMAND) and do NOT specify -mpi." ;\
exit 2 ;\
fi ;\
)
configured_parallel: configured
@(grep $(PARALLEL_TOKEN) $(CONFIG_FILE) > /dev/null || \
{ echo "Error: $(CONFIG_FILE) is of type serial, not parallel !" ;\
echo " Rerun $(CONFIG_COMMAND) and specify an MPI implementation." ;\
exit 2 ;\
} ;\
)
#----------HEADER DEPENDENCIES (constructed from ./makedepend > depend)
include depend
# DO NOT DELETE
#
#************************************************************************
# AMBER **
# **
# Copyright (c) 1986, 1991, 1995, 1997, 1999 **
# Regents of the University of California **
# All Rights Reserved. **
# **
# This software provided pursuant to a license agreement containing **
# restrictions on its disclosure, duplication, and use. This software **
# contains confidential and proprietary information, and may not be **
# extracted or distributed, in whole or in part, for any purpose **
# whatsoever, without the express written permission of the authors. **
# This notice, and the associated author list, must be attached to **
# all copies, or extracts, of this software. Any additional **
# restrictions set forth in the license agreement also apply to this **
# software. **
#************************************************************************
#
# Makefile for Amber 14 SANDER
#
include ../config.h
CONFIG_FILE=../config.h
CONFIG_COMMAND=configure
PARALLEL_TOKEN=DMPI
# Sander Fortran source files are free format
# Add also search paths for .mod files
LOCALFLAGS = $(FREEFORMAT_FLAG) -I../pbsa -I../sqm -I../rism -I../../../include
SHELL=/bin/sh
VPATH=
EMILOBJ= \
emil.o mdin_emil_dat.o
NCSU_OBJECTS = \
ncsu-abmd-hooks.o ncsu-bbmd-ctxt.o ncsu-bbmd-hooks.o ncsu-cftree.o \
ncsu-colvar.o ncsu-colvar-math.o ncsu-colvar-type.o ncsu-colvar-utils.o \
ncsu-constants.o ncsu-cv-ANGLE.o ncsu-cv-COM_ANGLE.o \
ncsu-cv-COM_DISTANCE.o ncsu-cv-COM_TORSION.o ncsu-cv-COS_OF_DIHEDRAL.o \
ncsu-cv-DISTANCE.o ncsu-cv-HANDEDNESS.o ncsu-cv-LCOD.o \
ncsu-cv-MULTI_RMSD.o ncsu-cv-N_OF_BONDS.o ncsu-cv-N_OF_STRUCTURES.o \
ncsu-cv-R_OF_GYRATION.o ncsu-cv-TORSION.o ncsu-lexer.o ncsu-parser.o \
ncsu-pmd-hooks.o ncsu-rmsd.o ncsu-sander-hooks.o ncsu-sander-proxy.o \
ncsu-cv-PCA.o ncsu-read-pca.o \
ncsu-smd-hooks.o ncsu-umbrella.o ncsu-utils.o ncsu-value.o mt19937.o
EVB_BASE = evb_vars.o evb_mathf.o evb_init.o evb_bcast.o \
evb_dealloc.o check_input.o evb_io.o evb_keywrd.o \
exchange_gauss.o exchange_warshel.o react_flux_init.o \
react_path.o react_flux.o kappa_keck.o \
schlegel_dg.o schlegel_full.o schlegel_diis.o schlegel_gmres.o \
schlegel_gbasis.o schlegel_pgbasis.o \
bnd_strtch.o ang_bend.o dihed_tors.o torinternal.o \
evb_gfchk.o bmat_inv.o bmat_grad.o \
unitv.o crossv.o cart2internal.o wdc_bmat.o select_coord.o \
schlegel_uff.o schlegel_dihed.o schlegel_angle.o \
schlegel_poh_uff.o schlegel_poh_irc.o schlegel_hcn_cart.o \
schlegel_hcn_int_irc.o schlegel_hcn_cart_irc.o evb_outoptions.o
EVB_DEBUG = evb_2stdebug.o egap_umb_2stdebug.o dg_debug.o \
evb_io_debug.o bmat_debug.o bmat_inv_debug.o evb_io_debug2.o \
morse_anal2num.o xwarshel_anal2num.o xgauss_anal2num.o \
vdw_anal2num.o rcdbonds_anal2num.o rcbond_anal2num.o \
dg_grad_anal2num.o
EVBOBJ = $(EVB_BASE) $(EVB_DEBUG) evb_input.o evb_alloc.o evb_matrix.o \
morsify.o mod_vdw.o evb_ntrfc.o evb_force.o out_evb.o \
dbonds_anal2num.o bond_anal2num.o evb_umb.o evb_umb_primitive.o
EVBPIMD = $(EVB_BASE) $(EVB_DEBUG) evb_input.LES.o evb_alloc.LES.o evb_matrix.LES.o \
morsify.LES.o mod_vdw.LES.o evb_ntrfc.LES.o evb_force.LES.o \
evb_pimd_init.LES.o out_evb.LES.o dbonds_anal2num.o bond_anal2num.o \
evb_umb.LES.o evb_umb_primitive.LES.o
AMOEBAOBJ= \
amoeba_valence.o amoeba_multipoles.o amoeba_recip.o amoeba_interface.o\
amoeba_direct.o amoeba_mdin.o amoeba_adjust.o amoeba_self.o\
amoeba_vdw.o amoeba_induced.o amoeba_runmd.o
APBSOBJ= \
file_io_dat.APBS.o apbs_vars.APBS.o apbs.APBS.o \
constants.o state.o memory_module.o stack.o \
nose_hoover.o nose_hoover_init.o \
trace.o rmsgrd.o lmod.o rand2.o lmodC.o xminC.o decomp.o \
icosasurf.o egb.o remd.o findmask.o \
relax_mat.o nmr.o multitmd.o \
multisander.o sander.APBS.o trajene.o cshf.o nmrcal.o mtmdcall.o pearsn.o \
printe.APBS.o runmin.o rdparm.o \
mdread.APBS.o locmem.o runmd.o getcor.o degcnt.o decnvh.o \
fastwt.o parallel.o shake.o ene.o mdwrit.o minrit.o \
set.o dynlib.APBS.o mdfil.o nmlsrc.o \
ew_force.o ew_setup.o ew_box.o ew_bspline.o\
ew_fft.o nonbond_list.o short_ene.o ew_recip.o pcshift.o align.o csa.o \
rfree.o rgroup.o amopen.o \
debug.o ew_recip_reg.o ew_handle_dips.o ew_dipole_recip.o \
mexit.o new_time.o extra_pts.o thermo_int.o \
matinv.o assert.o mmtsb.o mmtsb_client.o erfcfun.o \
constantph.o prn_dipoles.o ips.o sglds.o iwrap2.o emap.o \
$(AMOEBAOBJ) $(SANDER_RISM_INTERFACE) AmberNetcdf.o bintraj.o binrestart.o \
spatial_recip.o spatial_fft.o parms.o softcore.o mbar.o linear_response.o molecule.o xref.o dssp.o \
charmm.o crg_reloc.o sander_lib.o amd.o scaledMD.o barostats.o $(EMILOBJ)
QMOBJ= \
abfqmmm_module.o qm_mm.o qm_ewald.o qmmm_vsolv.o \
qm2_extern_util_module.o qm2_extern_module.o qm2_extern_adf_module.o qm2_read_adf_results.o KFReader.o \
ArrayList.o qm2_extern_gms_module.o qm2_extern_tc_module.o qm2_extern_gau_module.o \
qm2_extern_orc_module.o qm2_extern_nw_module.o qm2_extern_genmpi_module.o \
qmmm_adaptive_module.o prn_qmmm_dipole.o
ifdef LIOLIBS
QMOBJ += qm2_extern_lio_module.o
endif
SEBOMDOBJ = \
sebomd_module.o sebomd_arrays.o
SEBOMDLIB = ../sebomd/sebomd.a
MMOBJ= file_io_dat.o constants.o state.o memory_module.o stack.o \
nose_hoover.o nose_hoover_init.o \
trace.o rmsgrd.o lmod.o rand2.o lmodC.o xminC.o decomp.o \
icosasurf.o egb.o remd.o findmask.o \
relax_mat.o nmr.o multitmd.o \
multisander.o sander.o trajene.o cshf.o nmrcal.o mtmdcall.o pearsn.o \
printe.o runmin.o rdparm.o sander_lib.o \
mdread.o locmem.o runmd.o getcor.o degcnt.o decnvh.o \
fastwt.o parallel.o shake.o ene.o mdwrit.o minrit.o \
set.o dynlib.o mdfil.o nmlsrc.o \
ew_force.o ew_setup.o ew_box.o ew_bspline.o\
ew_fft.o nonbond_list.o short_ene.o ew_recip.o pcshift.o align.o csa.o \
rfree.o rgroup.o amopen.o \
debug.o ew_recip_reg.o ew_handle_dips.o ew_dipole_recip.o \
mexit.o new_time.o extra_pts.o thermo_int.o \
matinv.o assert.o mmtsb.o mmtsb_client.o erfcfun.o \
constantph.o prn_dipoles.o ips.o sglds.o iwrap2.o emap.o\
$(EMILOBJ) $(AMOEBAOBJ) $(SANDER_RISM_INTERFACE) AmberNetcdf.o bintraj.o binrestart.o \
spatial_recip.o spatial_fft.o parms.o softcore.o mbar.o linear_response.o molecule.o xref.o dssp.o \
charmm.o crg_reloc.o amd.o scaledMD.o barostats.o
FULLPIMDOBJ = pimd_vars.o pimd_force.o pimd_init.o cmd_vars.o cmd_matrix.o
PARTPIMDOBJ = pimd_vars.o pimd_force.LES.o pimd_init.LES.o cmd_vars.o cmd_matrix.LES.o
PUPILOBJ= file_io_dat.o constants.o state.o memory_module.o stack.o \
nose_hoover.o nose_hoover_init.o \
trace.o rmsgrd.o lmod.o rand2.o lmodC.o xminC.o decomp.o \
pupildata.o icosasurf.o egb.o findmask.o \
relax_mat.o nmr.o multitmd.o \
multisander.o sander.PUPIL.o trajene.o cshf.o nmrcal.o mtmdcall.o pearsn.o \
printe.PUPIL.o runmin.o force.PUPIL.o rdparm.o \
mdread.PUPIL.o locmem.o runmd.o getcor.o degcnt.o decnvh.o \
fastwt.o parallel.o shake.o ene.o mdwrit.o minrit.o \
set.o dynlib.PUPIL.o mdfil.PUPIL.o nmlsrc.o \
ew_force.o ew_setup.o ew_box.o ew_bspline.o\
ew_fft.o nonbond_list.o short_ene.o ew_recip.o pcshift.o align.o csa.o \
rfree.o rgroup.o amopen.o sander_lib.o \
debug.o ew_recip_reg.o ew_handle_dips.o ew_dipole_recip.o \
mexit.PUPIL.o new_time.o extra_pts.o thermo_int.o \
matinv.o assert.o mmtsb.o mmtsb_client.o erfcfun.o \
constantph.o prn_dipoles.o ips.o sglds.o iwrap2.o emap.o \
$(EMILOBJ) $(AMOEBAOBJ) $(SANDER_RISM_INTERFACE) AmberNetcdf.o bintraj.o binrestart.o \
spatial_recip.o spatial_fft.o parms.o softcore.o mbar.o linear_response.o molecule.o xref.o \
putvalues.o fixport.o dssp.o charmm.o crg_reloc.o amd.o scaledMD.o \
barostats.o
LSCIVROBJ = lscivr_vars.o lsc_init.o lsc_xp.o
LESOBJ= memory_module.o stack.o file_io_dat.o \
constants.o state.o nose_hoover.o nose_hoover_init_LES.o \
trace.o rmsgrd.o rand2.o lmodC.o xminC.o decomp.o icosasurf.o \
egb.LES.o remd.LES.o findmask.o \
relax_mat.o nmr.LES.o multitmd.o \
multisander.LES.o sander.LES.o cshf.o nmrcal.o mtmdcall.o pearsn.o \
printe.o runmin.o nonbond_list.LES.o force.LES.o rdparm.LES.o \
mdread.LES.o locmem.LES.o runmd.LES.o degcnt.LES.o decnvh.o \
fastwt.o parallel.LES.o shake.o ene.LES.o \
dynlib.LES.o nmlsrc.o \
ew_force.LES.o ew_setup.LES.o ew_bspline.o\
ew_fft.o short_ene.LES.o ew_recip.LES.o pcshift.o \
align.o csa.o rfree.o rgroup.o \
amopen.o sander_lib.o \
debug.o ew_recip_reg.o ew_handle_dips.o ew_dipole_recip.o \
mexit.o new_time.o extra_pts.LES.o thermo_int.o matinv.o assert.o \
mmtsb.o mmtsb_client.o erfcfun.o \
constantph.o prn_dipoles.o ips.o sglds.o iwrap2.o emap.o \
$(AMOEBAOBJ) $(EMILOBJ) $(SANDER_RISM_INTERFACE) \
$(SEBOMDOBJ) \
spatial_recip.o spatial_fft.o parms.o softcore.o mbar.o linear_response.o molecule.o xref.o dssp.o \
charmm.o crg_reloc.o barostats.o \
qm_ewald.o qmmm_vsolv.o \
qm2_extern_util_module.o qm2_extern_module.o qm2_extern_adf_module.o qm2_read_adf_results.o KFReader.o \
ArrayList.o qm2_extern_gms_module.o qm2_extern_tc_module.o qm2_extern_gau_module.o \
qm2_extern_orc_module.o qm2_extern_nw_module.o qm2_extern_genmpi_module.o \
qmmm_adaptive_module.o abfqmmm_module.o prn_qmmm_dipole.o \
AmberNetcdf.o bintraj.LES.o binrestart.LES.o getcor.LES.o mdfil.LES.o mdwrit.LES.o \
lmod.LES.o trajene.LES.o ew_box.LES.o minrit.LES.o set.LES.o qm_mm.LES.o amd.o scaledMD.o
ifdef LIOLIBS
LESOBJ += qm2_extern_lio_module.o
endif
# Xray sources are incomplete, but should not interfere with normal SANDER function.
# Add the following to ../config.h to build new X-ray sources:
#
# AMBERBUILDFLAGS=-D_XRAY
# XRAY_OBJS = \
# xray_fftpack.o xray_fourier.o xray_globals.o xray_interface.o \
# xray_real_space.o xray_reciprocal_space.o xray_utils.o
.PHONY: configured configured-serial configured_parallel serial parallel
install: serial
SERIALPROGS = $(BINDIR)/sander$(SFX) $(BINDIR)/sander.LES$(SFX) $(BINDIR)/ambmask$(SFX)
.NOTPARALLEL: $(SERIALPROGS)
serial: configured_serial $(SERIALPROGS)
PARALLELPROGS = $(BINDIR)/sander.MPI$(SFX) $(BINDIR)/sander.LES.MPI$(SFX)
.NOTPARALLEL: $(PARALLELPROGS)
parallel: configured_parallel $(PARALLELPROGS)
all_serial_programs: $(SERIALPROGS)
$(MAKE) $(BINDIR)/sander.PUPIL$(SFX)
$(MAKE) $(BINDIR)/sander.APBS$(SFX)
#---------------------------------------------------------------------------
$(BINDIR)/sander$(SFX): libsqm $(MMOBJ) $(QMOBJ) $(FULLPIMDOBJ) $(EMIL) \
$(SEBOMDOBJ) sebomd \
$(LSCIVROBJ) force.o syslib \
../lib/nxtsec.o netlib configured_serial \
$(NCSU_OBJECTS) $(XRAY_OBJS) libpbsa librism
$(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(MMOBJ) $(QMOBJ) $(SEBOMDOBJ) \
$(FULLPIMDOBJ) $(LSCIVROBJ) force.o -L$(LIBDIR) -lsqm \
$(NCSU_OBJECTS) $(XRAY_OBJS) \
-lFpbsa ../lib/nxtsec.o $(EMILLIB) \
$(SEBOMDLIB) \
../lib/sys.a $(NETCDFLIBF) \
$(FLIBS_RISMSANDER) $(FLIBS_FFTW3) $(FLIBSF) \
$(LDFLAGS) $(AMBERLDFLAGS) $(LIOLIBS)
#---------------------------------------------------------------------------
$(BINDIR)/sander.MPI$(SFX): libsqm $(MMOBJ) $(QMOBJ) $(FULLPIMDOBJ) $(EMIL) \
$(LSCIVROBJ) $(EVBOBJ) force.o \
$(SEBOMDOBJ) sebomd \
syslib ../lib/nxtsec.o netlib libpbsa librism_mpi configured_parallel $(NCSU_OBJECTS)
$(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(MMOBJ) $(QMOBJ) $(SEBOMDOBJ) \
$(FULLPIMDOBJ) $(LSCIVROBJ) $(EVBOBJ) force.o \
-L$(LIBDIR) -lsqm -lFpbsa $(EMILLIB) \
$(SEBOMDLIB) \
../lib/nxtsec.o ../lib/sys.a $(NCSU_OBJECTS) $(NETCDFLIBF) \
$(FLIBS_RISMSANDER) $(FLIBS_FFTW3) $(FLIBSF) \
$(LDFLAGS) $(AMBERLDFLAGS) $(LIOLIBS)
#---------------------------------------------------------------------------
$(BINDIR)/sander.PUPIL$(SFX): libsqm $(PUPILOBJ) $(QMOBJ) $(FULLPIMDOBJ) $(EMIL) \
$(LSCIVROBJ) syslib \
$(SEBOMDOBJ) sebomd \
../lib/nxtsec.o netlib libpbsa librism configured_serial $(NCSU_OBJECTS)
$(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(PUPILOBJ) $(QMOBJ) $(SEBOMDOBJ) $(FULLPIMDOBJ) \
$(LSCIVROBJ) -L$(LIBDIR) -lsqm -lFpbsa \
$(SEBOMDLIB) \
../lib/nxtsec.o $(EMILLIB) ../lib/sys.a $(NCSU_OBJECTS) $(NETCDFLIBF) \
$(FLIBS_RISMSANDER) $(FLIBS_FFTW3) $(FLIBSF) \
$(PUPILLIBS) $(LDFLAGS) $(AMBERLDFLAGS) $(LIOLIBS)
#---------------------------------------------------------------------------
$(BINDIR)/sander.LES$(SFX): libsqm $(LESOBJ) $(PARTPIMDOBJ) syslib \
../lib/nxtsec.o netlib \
$(LSCIVROBJ) $(NCSU_OBJECTS) $(XRAY_OBJS) configured_serial \
libpbsa librism $(EMIL) sebomd
$(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(LESOBJ) $(PARTPIMDOBJ) $(LSCIVROBJ) \
$(XRAY_OBJS) -L$(LIBDIR) -lsqm -lFpbsa $(EMILLIB) \
$(SEBOMDLIB) \
../lib/nxtsec.o ../lib/sys.a $(NCSU_OBJECTS) $(NETCDFLIBF) \
$(FLIBS_RISMSANDER) $(FLIBS_FFTW3) $(FLIBSF) \
$(LDFLAGS) $(AMBERLDFLAGS) $(LIOLIBS)
#---------------------------------------------------------------------------
$(BINDIR)/sander.LES.MPI$(SFX): libsqm $(LESOBJ) $(EVBPIMD) \
$(PARTPIMDOBJ) syslib ../lib/nxtsec.o \
netlib libpbsa librism_mpi $(EMIL) \
$(LSCIVROBJ) $(NCSU_OBJECTS) sebomd configured_parallel
$(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(LESOBJ) $(EVBPIMD) \
$(PARTPIMDOBJ) $(LSCIVROBJ) \
-L$(LIBDIR) -lsqm -lFpbsa $(EMILLIB) \
$(SEBOMDLIB) \
../lib/nxtsec.o ../lib/sys.a $(NCSU_OBJECTS) $(NETCDFLIBF) \
$(FLIBS_RISMSANDER) $(FLIBS_FFTW3) $(FLIBSF) \
$(LDFLAGS) $(AMBERLDFLAGS) $(LIOLIBS)
#---------------------------------------------------------------------------
$(BINDIR)/sander.APBS$(SFX): libsqm $(APBSOBJ) $(QMOBJ) \
$(LSCIVROBJ) $(FULLPIMDOBJ) $(NCSU_OBJECTS) \
force.APBS.o syslib librism $(EMIL) \
$(SEBOMDOBJ) sebomd \
../lib/nxtsec.o netlib configured_serial
$(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $(APBSOBJ) $(QMOBJ) $(SEBOMDOBJ) \
$(FULLPIMDOBJ) $(LSCIVROBJ) force.APBS.o \
-L$(APBS_LIBDIR) $(APBS_LIBS) \
-L$(LIBDIR) -lsqm -lFpbsa $(EMILLIB) \
$(SEBOMDLIB) \
../lib/nxtsec.o ../lib/sys.a $(NCSU_OBJECTS) $(NETCDFLIBF) \
$(FLIBS_RISMSANDER) $(FLIBS_FFTW3) $(FLIBSF) \
$(LDFLAGS) $(AMBERLDFLAGS) $(LIOLIBS)
#---------------------------------------------------------------------------
$(BINDIR)/ambmask$(SFX): ambmask.o findmask.o amopen.o parms.o \
memory_module.o mexit.o ../lib/nxtsec.o
$(FC) $(FPPFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ ambmask.o findmask.o \
amopen.o mexit.o ../lib/nxtsec.o constants.o memory_module.o parms.o \
$(LDFLAGS) $(AMBERLDFLAGS) $(LIOLIBS)
#-----------LIBS
EMIL:
$(MAKE) -C ../emil install
syslib:
cd ../lib && $(MAKE) sys.a
netlib:
cd ../blas && $(MAKE) $(BLAS)
cd ../lapack && $(MAKE) $(LAPACK)
cd ../arpack && $(MAKE) install
sebomd: $(SEBOMDOBJ)
cd ../sebomd && $(MAKE) sebomd.a
../lib/nxtsec.o: ../lib/nxtsec.F
cd ../lib && $(MAKE) nxtsec.o
pmemd_clib:
cd ../pmemd/src && $(CC) -c $(CPPFLAGS) $(CNOOPTFLAGS) \
$(CFLAGS) $(AMBERCFLAGS) pmemd_clib.c
../lib/mexit.o: ../lib/mexit.F
cd ../lib && $(MAKE) mexit.o
rand2.o: ../sff/rand2.c
$(CC) -c $(CNOOPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) \
-o rand2.o ../sff/rand2.c
lmodC.o: ../sff/lmodC.c
$(CC) -c -DSQM $(CNOOPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) \
-o lmodC.o ../sff/lmodC.c
xminC.o: ../sff/xminC.c
$(CC) -c -DSQM $(CNOOPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) \
-o xminC.o ../sff/xminC.c
libsqm:
cd ../sqm && $(MAKE) $@
librism librism_mpi:
if [ -n "$(RISMSANDER)" ]; then \
cd ../rism && $(MAKE) $@; \
fi
libpbsa: decomp.o
cd ../pbsa && $(MAKE) libFpbsa.a
clean:
-/bin/rm -f sander.PUPIL$(SFX)
-/bin/rm -f sander.APBS$(SFX)
/bin/rm -f *.o
/bin/rm -f
/bin/rm -f *.mod
/bin/rm -f *.d
/bin/rm -f *nbflag
uninstall.serial:
-rm -f $(BINDIR)/mopac.sh
-for file in $(SERIALPROGS) ; do \
rm -f $${file} ; \
done
uninstall.parallel:
-for file in $(PARALLELPROGS) ; do \
rm -f $${file} ; \
done
uninstall: uninstall.serial uninstall.parallel
depend::
./makedepend > depend
configured:
@(if [ ! -f $(CONFIG_FILE) ] ; then \
echo "Error: $(CONFIG_COMMAND) must be executed before $(MAKE) !" ;\
exit 2 ;\ # $(CONFIG_COMMAND) ;\
fi ;\
)
configured_serial: configured
@(if grep $(PARALLEL_TOKEN) $(CONFIG_FILE) > /dev/null ; then \
echo "Error: $(CONFIG_FILE) is of type parallel, not serial !" ;\
echo " Rerun $(CONFIG_COMMAND) and do NOT specify -mpi." ;\
exit 2 ;\
fi ;\
)
configured_parallel: configured
@(grep $(PARALLEL_TOKEN) $(CONFIG_FILE) > /dev/null || \
{ echo "Error: $(CONFIG_FILE) is of type serial, not parallel !" ;\
echo " Rerun $(CONFIG_COMMAND) and specify an MPI implementation." ;\
exit 2 ;\
} ;\
)
#----------HEADER DEPENDENCIES (constructed from ./makedepend > depend)
include depend
# DO NOT DELETE
! <compile=optimized>
#include "copyright.h"
#include "../include/dprec.fh"
!+++++++++++++++++++++++++++++++++++++++
!This module contains various parameters
!and constants used by the different
!routines that make up sander.
!
!If you want to use one of the constants
!in your routine you should include the
!line:
!
!use constants, only : xxx, yyy, zzz
!
!where xxx,yyy,zzz are the constants you plan
!to use in your routine.
!This line needs to go before the
!implicit none declaration.
!
! Based on constants.h, a pre Fortran 90 version, by Scott Brozell
! and Dave Case (TSRI, 2002)
! Converted into a Fortran 90 module by: Ross Walker (TSRI, 2005)
! Expanded by others including: Matthew Clark, Andreas Goetz,
!
!++++++++++++++++++++++++++++++++++++++++
module constants
implicit none
! by default everything in this module is public
public
!------------------------------------------------------------
! Generic Floating Point Constants
_REAL_, parameter :: TEN_TO_MINUS2 = 1.0d-2
_REAL_, parameter :: TEN_TO_MINUS3 = 1.0d-3
_REAL_, parameter :: TEN_TO_MINUS4 = 1.0d-4
_REAL_, parameter :: TEN_TO_MINUS5 = 1.0d-5
_REAL_, parameter :: TEN_TO_MINUS6 = 1.0d-6
_REAL_, parameter :: TEN_TO_MINUS8 = 1.0d-8
_REAL_, parameter :: TEN_TO_MINUS10 = 1.0d-10
_REAL_, parameter :: TEN_TO_MINUS25 = 1.0d-25
_REAL_, parameter :: TEN_TO_PLUS3 = 1.0d+3
_REAL_, parameter :: TEN_TO_PLUS10 = 1.0d+10
_REAL_, parameter :: zero = 0.0d0
_REAL_, parameter :: one = 1.0d0
_REAL_, parameter :: two = 2.0d0
_REAL_, parameter :: three = 3.0d0
_REAL_, parameter :: four = 4.0d0
_REAL_, parameter :: five = 5.0d0
_REAL_, parameter :: six = 6.0d0
_REAL_, parameter :: seven = 7.0d0
_REAL_, parameter :: eight = 8.0d0
_REAL_, parameter :: nine = 9.0d0
_REAL_, parameter :: ten = 10.0d0
_REAL_, parameter :: eleven = 11.0d0
_REAL_, parameter :: twelve = 12.0d0
_REAL_, parameter :: sixteen = 16.0d0
_REAL_, parameter :: twenty = 20.0d0
_REAL_, parameter :: thirtytwo = 32.0d0
_REAL_, parameter :: sixtyfour = 64.0d0
_REAL_, parameter :: half = one/two
_REAL_, parameter :: third = one/three
_REAL_, parameter :: fourth = one/four
_REAL_, parameter :: fifth = one/five
_REAL_, parameter :: sixth = one/six
_REAL_, parameter :: seventh = one/seven
_REAL_, parameter :: eighth = one/eight
_REAL_, parameter :: ninth = one/nine
_REAL_, parameter :: tenth = one/ten
_REAL_, parameter :: eleventh = one/eleven
_REAL_, parameter :: twelfth = one/twelve
_REAL_, parameter :: sixteenth = one/sixteen
_REAL_, parameter :: thirtysecond = one/thirtytwo
_REAL_, parameter :: sixtyfourth = one/sixtyfour
_REAL_, parameter :: thirtieth = one/30.0d0
!------------------------------------------------------------
! THE ARRAY FC(I) CONTAINS THE FACTORIALS OF (I-1).
_REAL_, parameter :: FC(1:17) =&
(/ 1.0D0,1.0D0, 2.0D0, 6.0D0, 24.0D0, 120.0D0, 720.0D0, 5040.0D0, &
40320.0D0, 362880.0D0, 3628800.0D0, 39916800.0D0, &
4.790016D+08, 6.2270208D+09, 8.71782912D+10, &
1.307674368D+12, 2.092278989D+13 /)
_REAL_, parameter :: logFC(1:17) = (/ 0.0D0, 0.0D0, 0.6931471805599D0, &
& 1.7917594692281D0, 3.1780538303479D0, 4.7874917427820D0, &
& 6.5792512120101D0, 8.5251613610654D0, 10.6046029027453D0, &
& 12.8018274800815D0, 15.1044125730755D0, 17.5023078458739D0, &
& 19.9872144956619D0, 22.5521638531234D0, 25.1912211827387D0, &
& 27.8992713838409D0, 30.6718601061763D0 /)
! DEFINE C COEFFICIENTS FOR ASSOCIATE LEGENDRE POLYNOMIALS.
_REAL_, parameter::CC(1:21,1:3) = reshape ( (/ &
8.0D0, 8.0D0, 4.0D0, -4.0D0, 4.0D0, &
4.0D0, -12.0D0, -6.0D0, 20.0D0, 5.0D0, &
3.0D0, -30.0D0, -10.0D0, 35.0D0, 7.0D0, &
15.0D0, 7.5D0, -70.0D0, -17.5D0, 63.0D0, &
10.5D0, &
0.0D0, 0.0D0, 0.0D0, 12.0D0, 0.0D0, &
0.0D0, 20.0D0, 30.0D0, 0.0D0, 0.0D0, &
-30.0D0, 70.0D0, 70.0D0, 0.0D0, 0.0D0, &
-70.0D0, -105.D0, 210.0D0, 157.5D0, 0.0D0, &
0.0D0, &
0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, &
0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, &
35.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, &
63.0D0, 157.5D0, 0.0D0, 0.0D0, 0.0D0, &
0.0D0/), (/ 21, 3 /) )
!------------------------------------------------------------
! Physical Constants
_REAL_, parameter :: LIGHT_SPEED = 2.997924d08
_REAL_, parameter :: HBAR = 627.509d0 * 0.0241888d-3 * 20.455d0 !Planck's constant in internal units
_REAL_, parameter :: J_PER_CAL = 4.184d0 ! This is defined as the thermochemical calorie
_REAL_, parameter :: JPKC = J_PER_CAL * 1000.0d0 !kilocalories per joule
_REAL_, parameter :: BOLTZMANN = 1.380658d-23 !Boltzmann's constant in J/K
_REAL_, parameter :: AVOGADRO = 6.0221367d+23 !Avogadro's number
_REAL_, parameter :: KB = (BOLTZMANN * AVOGADRO) / JPKC !Boltzmann's constant in internal units
_REAL_, parameter :: AMBER_ELECTROSTATIC = 18.2223d0
_REAL_, parameter :: AMBER_ELECTROSTATIC2 = AMBER_ELECTROSTATIC * AMBER_ELECTROSTATIC
!Ratio by which to scale amber charges to get electron charges - amberchg * oneqscale = electron charges
! = 1.0 / 18.2223d0
_REAL_, parameter :: INV_AMBER_ELECTROSTATIC = 1.0d0/AMBER_ELECTROSTATIC
_REAL_, parameter :: INV_AMBER_ELECTROSTATIC2 = 1.0d0/AMBER_ELECTROSTATIC2
_REAL_, parameter :: CHARGE_ON_ELEC = 1.60217733d-19 !Charge on an electron in Coulombs
_REAL_, parameter :: BOHR_RADIUS = 52.9177249d-12 ! in meter
_REAL_, parameter :: BOHRS_TO_A = 0.529177249D0 ! Bohrs * this = angstroms - Same constants as used in dynamo v2.
!_REAL_, parameter :: BOHRS_TO_A = 0.52917706D0 ! Bohrs * this = angstroms - Same constants as used in Gaussian 98
!_REAL_, parameter :: BOHRS_TO_A = 0.529177D0 ! Bohrs * this = angstroms - Same constants as used in Mopac6 hcore.f
!_REAL_, parameter :: BOHRS_TO_A = 0.529167D0 ! as used in Mopac6 repp.f
_REAL_, parameter :: A_TO_BOHRS = 1.0d0 / BOHRS_TO_A
!_REAL_, parameter :: A_TO_BOHRS = 1.88976D0 !Same constants as used in Mopac6 gover.f
_REAL_, parameter :: A2_TO_BOHRS2 = A_TO_BOHRS * A_TO_BOHRS !Mopac6 uses 3.5711928576D0 in gover.f for this.
_REAL_, parameter :: A3_TO_BOHRS3 = A2_TO_BOHRS2 * A_TO_BOHRS
_REAL_, parameter :: A4_TO_BOHRS4 = A2_TO_BOHRS2 * A2_TO_BOHRS2
_REAL_, parameter :: ONE_AU = 27.2113962d0 !One atomic unit of energy in eV.
_REAL_, parameter :: HARTREE_TO_JOULE = ONE_AU * CHARGE_ON_ELEC !conversion from hartrees to joules
_REAL_, parameter :: HART_BOHR_TO_JOULE_A = HARTREE_TO_JOULE * BOHRS_TO_A !hartree*bohrs to joules*angstroms
_REAL_, parameter :: COULOMB_CONST_E = HART_BOHR_TO_JOULE_A*AVOGADRO/JPKC
!Coulomb's constant for charges in units of e
!This is the same as AMBER_ELECTROSTATIC2 but to higher precision
!_REAL_, parameter :: AU_TO_EV = ONE_AU !Conversion from AU to EV - not used because we match dynamo v2 below.
_REAL_, parameter :: AU_TO_EV = 27.21d0 !Conversion from AU to EV - Same as dynamo v2 uses and Gaussian 98
!Note (RCW+MC): more precise would be: 1 a.u. 27.211396 eV
!Mopac6 uses 27.21D0 in calpar.f, delri.f and repp.f but in
!ffhpol.f it uses 27.2107 and in the manual it quotes 27.211
_REAL_, parameter :: HALF_AU_TO_EV = AU_TO_EV * half
_REAL_, parameter :: FOURTH_AU_TO_EV = AU_TO_EV * fourth
_REAL_, parameter :: EIGHTH_AU_TO_EV = AU_TO_EV * eighth
_REAL_, parameter :: SXNTH_AU_TO_EV = EIGHTH_AU_TO_EV * half
_REAL_, parameter :: A2_TO_BOHRS2xAU_TO_EV = A2_TO_BOHRS2*AU_TO_EV
!_REAL_, parameter :: EV_TO_KCAL = 23.060362D0 !Conversion from EV to KCAL/MOL
!Dynamo parameter
_REAL_, parameter :: EV_TO_KCAL = 23.061d0 !Dynamo's conversion
!Mopac6 uses 23.061 in ffhpol.f analyt.f compfg.f datin.f dcart.f
! delri1.f delri2.f deritr.f interp.f iter.f
! moldat.f mopac.f
_REAL_, parameter :: KCAL_TO_EV = one / EV_TO_KCAL
_REAL_, parameter :: AU_TO_KCAL = AU_TO_EV*EV_TO_KCAL !1 hartree.
! The following are updated constants from Mohr, Taylor, Newell, Rev. Mod. Phys. 80 (2008) 633-730.
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
! NAME REFERENCE VALUE UNITS !
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
! Avogadro constant (Table XLVIII, p.708) 6.0221417930E23 mol^-1 !
! Bohr radius (Table XLIX, p. 710) 0.5291772085936E-10 m !
! a.u. of energy (Table LII, p. 717) 4.3597439422E-18 J !
! speed of light (vacuum) (Table I, p.637) 299 792 458 m*s^−1 !
! a.u. of charge (Table LIII, p. 717) 1.60217648740E-19 C !
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
_REAL_, parameter :: CODATA08_AVOGADRO = 6.0221417930d23 ! Avogadro's number
_REAL_, parameter :: CODATA08_BOHR_RADIUS = 0.5291772085936d-10
_REAL_, parameter :: CODATA08_ONE_AU = 4.3597439422d-18 ! Atomic unit of energy in joules
_REAL_, parameter :: CODATA08_LIGHT_SPEED = 2.99792458d08
_REAL_, parameter :: CODATA08_CHARGE_ON_ELEC = 1.60217648740d-19
! Derived values
_REAL_, parameter :: CODATA08_A_TO_BOHRS = 1d-10 / CODATA08_BOHR_RADIUS
_REAL_, parameter :: CODATA08_AU_TO_KCAL = CODATA08_ONE_AU / J_PER_CAL / 1000 * CODATA08_AVOGADRO
_REAL_, parameter :: CODATA08_AU_TO_DEBYE = &
CODATA08_LIGHT_SPEED * CODATA08_CHARGE_ON_ELEC * CODATA08_BOHR_RADIUS / 1d-21
!_REAL_, parameter :: AU_TO_DEBYE = 1.0d0/0.393430 ! from http://cccbdb.nist.gov/debye.asp (April 12 2011)
!------------------------------------------------------------
!Numeric Constants
_REAL_, parameter :: PI = 3.1415926535897932384626433832795d0
!The BOOK says :
!
!2Chronicles 4:2 reads thus, 'Also he made a molten sea of ten cubits
!from brim to brim, round in compass, and five cubits the height thereof;
!and a line of thirty cubits did compass it round about.'
!
!Hence, Pi is exactly equal to three and there is nothing more to discuss!
!
!If you want to use the value of PI defined by 'the BOOK' then uncomment
!the following line and comment out the definition above...
!_REAL_, parameter :: PI = 3.0d0
_REAL_, parameter :: PI2 = PI*PI
_REAL_, parameter :: HALFPI = PI * 0.5d0
_REAL_, parameter :: TWOPI = 2.0d0 * PI
_REAL_, parameter :: FOURPI = 4.0d0 * PI
_REAL_, parameter :: INVPI = 1.0d0 / PI
_REAL_, parameter :: SQRTPI = 1.77245385090551602729816748334d0 !sqrt(PI)
_REAL_, parameter :: INVSQRTPI = 1.0d0 / SQRTPI
_REAL_, parameter :: DEG_TO_RAD = PI / 180.0d0
_REAL_, parameter :: RAD_TO_DEG = 180.0d0 / PI
_REAL_, parameter :: LN_TO_LOG = 2.30258509299404568402d0 ! log(1.0d1)
_REAL_, parameter :: SQRT2 = 1.4142135623730950488016887242097d0
_REAL_, parameter :: INVSQRT2 = 1.0d0 / SQRT2
!------------------------------------------------------------
!Generalised Born Constants
_REAL_, parameter :: alpb_alpha = 0.571412d0 !Alpha prefactor for alpb_alpha
!------------------------------------------------------------
! Unusual Constants
integer, parameter :: RETIRED_INPUT_OPTION = -10301 ! first 5 digit palindromic prime
integer, parameter :: NO_INPUT_VALUE = 12344321 ! from Bob Duke
_REAL_, parameter :: NO_INPUT_VALUE_FLOAT = 12344321.d0
integer :: plumed
character(256) :: plumedfile
contains
function BinomialCoefficient(m, n) result (bioCoeff)
integer, intent(in)::m,n
_REAL_::bioCoeff
integer, parameter::size=30
integer, save::bc(size,size)=0
logical, save::initialized=.false.;
integer::i,j,k
if (.not.initialized) then
do i=1,size
bc(i,1)=one
bc(i,2:size)=zero
end do
do i=2, size
do j=2, i
bc(i,j)=bc(i-1,j-1)+bc(i-1,j)
end do
end do
initialized=.true.
end if
bioCoeff=one*bc(m,n)
end function BinomialCoefficient
end module constants
! <compile=optimized>
#include "copyright.h"
#include "../include/dprec.fh"
!+++++++++++++++++++++++++++++++++++++++
!This module contains various parameters
!and constants used by the different
!routines that make up sander.
!
!If you want to use one of the constants
!in your routine you should include the
!line:
!
!use constants, only : xxx, yyy, zzz
!
!where xxx,yyy,zzz are the constants you plan
!to use in your routine.
!This line needs to go before the
!implicit none declaration.
!
! Based on constants.h, a pre Fortran 90 version, by Scott Brozell
! and Dave Case (TSRI, 2002)
! Converted into a Fortran 90 module by: Ross Walker (TSRI, 2005)
! Expanded by others including: Matthew Clark, Andreas Goetz,
!
!++++++++++++++++++++++++++++++++++++++++
module constants
implicit none
! by default everything in this module is public
public
!------------------------------------------------------------
! Generic Floating Point Constants
_REAL_, parameter :: TEN_TO_MINUS2 = 1.0d-2
_REAL_, parameter :: TEN_TO_MINUS3 = 1.0d-3
_REAL_, parameter :: TEN_TO_MINUS4 = 1.0d-4
_REAL_, parameter :: TEN_TO_MINUS5 = 1.0d-5
_REAL_, parameter :: TEN_TO_MINUS6 = 1.0d-6
_REAL_, parameter :: TEN_TO_MINUS8 = 1.0d-8
_REAL_, parameter :: TEN_TO_MINUS10 = 1.0d-10
_REAL_, parameter :: TEN_TO_MINUS25 = 1.0d-25
_REAL_, parameter :: TEN_TO_PLUS3 = 1.0d+3
_REAL_, parameter :: TEN_TO_PLUS10 = 1.0d+10
_REAL_, parameter :: zero = 0.0d0
_REAL_, parameter :: one = 1.0d0
_REAL_, parameter :: two = 2.0d0
_REAL_, parameter :: three = 3.0d0
_REAL_, parameter :: four = 4.0d0
_REAL_, parameter :: five = 5.0d0
_REAL_, parameter :: six = 6.0d0
_REAL_, parameter :: seven = 7.0d0
_REAL_, parameter :: eight = 8.0d0
_REAL_, parameter :: nine = 9.0d0
_REAL_, parameter :: ten = 10.0d0
_REAL_, parameter :: eleven = 11.0d0
_REAL_, parameter :: twelve = 12.0d0
_REAL_, parameter :: sixteen = 16.0d0
_REAL_, parameter :: twenty = 20.0d0
_REAL_, parameter :: thirtytwo = 32.0d0
_REAL_, parameter :: sixtyfour = 64.0d0
_REAL_, parameter :: half = one/two
_REAL_, parameter :: third = one/three
_REAL_, parameter :: fourth = one/four
_REAL_, parameter :: fifth = one/five
_REAL_, parameter :: sixth = one/six
_REAL_, parameter :: seventh = one/seven
_REAL_, parameter :: eighth = one/eight
_REAL_, parameter :: ninth = one/nine
_REAL_, parameter :: tenth = one/ten
_REAL_, parameter :: eleventh = one/eleven
_REAL_, parameter :: twelfth = one/twelve
_REAL_, parameter :: sixteenth = one/sixteen
_REAL_, parameter :: thirtysecond = one/thirtytwo
_REAL_, parameter :: sixtyfourth = one/sixtyfour
_REAL_, parameter :: thirtieth = one/30.0d0
!------------------------------------------------------------
! THE ARRAY FC(I) CONTAINS THE FACTORIALS OF (I-1).
_REAL_, parameter :: FC(1:17) =&
(/ 1.0D0,1.0D0, 2.0D0, 6.0D0, 24.0D0, 120.0D0, 720.0D0, 5040.0D0, &
40320.0D0, 362880.0D0, 3628800.0D0, 39916800.0D0, &
4.790016D+08, 6.2270208D+09, 8.71782912D+10, &
1.307674368D+12, 2.092278989D+13 /)
_REAL_, parameter :: logFC(1:17) = (/ 0.0D0, 0.0D0, 0.6931471805599D0, &
& 1.7917594692281D0, 3.1780538303479D0, 4.7874917427820D0, &
& 6.5792512120101D0, 8.5251613610654D0, 10.6046029027453D0, &
& 12.8018274800815D0, 15.1044125730755D0, 17.5023078458739D0, &
& 19.9872144956619D0, 22.5521638531234D0, 25.1912211827387D0, &
& 27.8992713838409D0, 30.6718601061763D0 /)
! DEFINE C COEFFICIENTS FOR ASSOCIATE LEGENDRE POLYNOMIALS.
_REAL_, parameter::CC(1:21,1:3) = reshape ( (/ &
8.0D0, 8.0D0, 4.0D0, -4.0D0, 4.0D0, &
4.0D0, -12.0D0, -6.0D0, 20.0D0, 5.0D0, &
3.0D0, -30.0D0, -10.0D0, 35.0D0, 7.0D0, &
15.0D0, 7.5D0, -70.0D0, -17.5D0, 63.0D0, &
10.5D0, &
0.0D0, 0.0D0, 0.0D0, 12.0D0, 0.0D0, &
0.0D0, 20.0D0, 30.0D0, 0.0D0, 0.0D0, &
-30.0D0, 70.0D0, 70.0D0, 0.0D0, 0.0D0, &
-70.0D0, -105.D0, 210.0D0, 157.5D0, 0.0D0, &
0.0D0, &
0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, &
0.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, &
35.0D0, 0.0D0, 0.0D0, 0.0D0, 0.0D0, &
63.0D0, 157.5D0, 0.0D0, 0.0D0, 0.0D0, &
0.0D0/), (/ 21, 3 /) )
!------------------------------------------------------------
! Physical Constants
_REAL_, parameter :: LIGHT_SPEED = 2.997924d08
_REAL_, parameter :: HBAR = 627.509d0 * 0.0241888d-3 * 20.455d0 !Planck's constant in internal units
_REAL_, parameter :: J_PER_CAL = 4.184d0 ! This is defined as the thermochemical calorie
_REAL_, parameter :: JPKC = J_PER_CAL * 1000.0d0 !kilocalories per joule
_REAL_, parameter :: BOLTZMANN = 1.380658d-23 !Boltzmann's constant in J/K
_REAL_, parameter :: AVOGADRO = 6.0221367d+23 !Avogadro's number
_REAL_, parameter :: KB = (BOLTZMANN * AVOGADRO) / JPKC !Boltzmann's constant in internal units
_REAL_, parameter :: AMBER_ELECTROSTATIC = 18.2223d0
_REAL_, parameter :: AMBER_ELECTROSTATIC2 = AMBER_ELECTROSTATIC * AMBER_ELECTROSTATIC
!Ratio by which to scale amber charges to get electron charges - amberchg * oneqscale = electron charges
! = 1.0 / 18.2223d0
_REAL_, parameter :: INV_AMBER_ELECTROSTATIC = 1.0d0/AMBER_ELECTROSTATIC
_REAL_, parameter :: INV_AMBER_ELECTROSTATIC2 = 1.0d0/AMBER_ELECTROSTATIC2
_REAL_, parameter :: CHARGE_ON_ELEC = 1.60217733d-19 !Charge on an electron in Coulombs
_REAL_, parameter :: BOHR_RADIUS = 52.9177249d-12 ! in meter
_REAL_, parameter :: BOHRS_TO_A = 0.529177249D0 ! Bohrs * this = angstroms - Same constants as used in dynamo v2.
!_REAL_, parameter :: BOHRS_TO_A = 0.52917706D0 ! Bohrs * this = angstroms - Same constants as used in Gaussian 98
!_REAL_, parameter :: BOHRS_TO_A = 0.529177D0 ! Bohrs * this = angstroms - Same constants as used in Mopac6 hcore.f
!_REAL_, parameter :: BOHRS_TO_A = 0.529167D0 ! as used in Mopac6 repp.f
_REAL_, parameter :: A_TO_BOHRS = 1.0d0 / BOHRS_TO_A
!_REAL_, parameter :: A_TO_BOHRS = 1.88976D0 !Same constants as used in Mopac6 gover.f
_REAL_, parameter :: A2_TO_BOHRS2 = A_TO_BOHRS * A_TO_BOHRS !Mopac6 uses 3.5711928576D0 in gover.f for this.
_REAL_, parameter :: A3_TO_BOHRS3 = A2_TO_BOHRS2 * A_TO_BOHRS
_REAL_, parameter :: A4_TO_BOHRS4 = A2_TO_BOHRS2 * A2_TO_BOHRS2
_REAL_, parameter :: ONE_AU = 27.2113962d0 !One atomic unit of energy in eV.
_REAL_, parameter :: HARTREE_TO_JOULE = ONE_AU * CHARGE_ON_ELEC !conversion from hartrees to joules
_REAL_, parameter :: HART_BOHR_TO_JOULE_A = HARTREE_TO_JOULE * BOHRS_TO_A !hartree*bohrs to joules*angstroms
_REAL_, parameter :: COULOMB_CONST_E = HART_BOHR_TO_JOULE_A*AVOGADRO/JPKC
!Coulomb's constant for charges in units of e
!This is the same as AMBER_ELECTROSTATIC2 but to higher precision
!_REAL_, parameter :: AU_TO_EV = ONE_AU !Conversion from AU to EV - not used because we match dynamo v2 below.
_REAL_, parameter :: AU_TO_EV = 27.21d0 !Conversion from AU to EV - Same as dynamo v2 uses and Gaussian 98
!Note (RCW+MC): more precise would be: 1 a.u. 27.211396 eV
!Mopac6 uses 27.21D0 in calpar.f, delri.f and repp.f but in
!ffhpol.f it uses 27.2107 and in the manual it quotes 27.211
_REAL_, parameter :: HALF_AU_TO_EV = AU_TO_EV * half
_REAL_, parameter :: FOURTH_AU_TO_EV = AU_TO_EV * fourth
_REAL_, parameter :: EIGHTH_AU_TO_EV = AU_TO_EV * eighth
_REAL_, parameter :: SXNTH_AU_TO_EV = EIGHTH_AU_TO_EV * half
_REAL_, parameter :: A2_TO_BOHRS2xAU_TO_EV = A2_TO_BOHRS2*AU_TO_EV
!_REAL_, parameter :: EV_TO_KCAL = 23.060362D0 !Conversion from EV to KCAL/MOL
!Dynamo parameter
_REAL_, parameter :: EV_TO_KCAL = 23.061d0 !Dynamo's conversion
!Mopac6 uses 23.061 in ffhpol.f analyt.f compfg.f datin.f dcart.f
! delri1.f delri2.f deritr.f interp.f iter.f
! moldat.f mopac.f
_REAL_, parameter :: KCAL_TO_EV = one / EV_TO_KCAL
_REAL_, parameter :: AU_TO_KCAL = AU_TO_EV*EV_TO_KCAL !1 hartree.
! The following are updated constants from Mohr, Taylor, Newell, Rev. Mod. Phys. 80 (2008) 633-730.
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
! NAME REFERENCE VALUE UNITS !
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
! Avogadro constant (Table XLVIII, p.708) 6.0221417930E23 mol^-1 !
! Bohr radius (Table XLIX, p. 710) 0.5291772085936E-10 m !
! a.u. of energy (Table LII, p. 717) 4.3597439422E-18 J !
! speed of light (vacuum) (Table I, p.637) 299 792 458 m*s^−1 !
! a.u. of charge (Table LIII, p. 717) 1.60217648740E-19 C !
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
_REAL_, parameter :: CODATA08_AVOGADRO = 6.0221417930d23 ! Avogadro's number
_REAL_, parameter :: CODATA08_BOHR_RADIUS = 0.5291772085936d-10
_REAL_, parameter :: CODATA08_ONE_AU = 4.3597439422d-18 ! Atomic unit of energy in joules
_REAL_, parameter :: CODATA08_LIGHT_SPEED = 2.99792458d08
_REAL_, parameter :: CODATA08_CHARGE_ON_ELEC = 1.60217648740d-19
! Derived values
_REAL_, parameter :: CODATA08_A_TO_BOHRS = 1d-10 / CODATA08_BOHR_RADIUS
_REAL_, parameter :: CODATA08_AU_TO_KCAL = CODATA08_ONE_AU / J_PER_CAL / 1000 * CODATA08_AVOGADRO
_REAL_, parameter :: CODATA08_AU_TO_DEBYE = &
CODATA08_LIGHT_SPEED * CODATA08_CHARGE_ON_ELEC * CODATA08_BOHR_RADIUS / 1d-21
!_REAL_, parameter :: AU_TO_DEBYE = 1.0d0/0.393430 ! from http://cccbdb.nist.gov/debye.asp (April 12 2011)
!------------------------------------------------------------
!Numeric Constants
_REAL_, parameter :: PI = 3.1415926535897932384626433832795d0
!The BOOK says :
!
!2Chronicles 4:2 reads thus, 'Also he made a molten sea of ten cubits
!from brim to brim, round in compass, and five cubits the height thereof;
!and a line of thirty cubits did compass it round about.'
!
!Hence, Pi is exactly equal to three and there is nothing more to discuss!
!
!If you want to use the value of PI defined by 'the BOOK' then uncomment
!the following line and comment out the definition above...
!_REAL_, parameter :: PI = 3.0d0
_REAL_, parameter :: PI2 = PI*PI
_REAL_, parameter :: HALFPI = PI * 0.5d0
_REAL_, parameter :: TWOPI = 2.0d0 * PI
_REAL_, parameter :: FOURPI = 4.0d0 * PI
_REAL_, parameter :: INVPI = 1.0d0 / PI
_REAL_, parameter :: SQRTPI = 1.77245385090551602729816748334d0 !sqrt(PI)
_REAL_, parameter :: INVSQRTPI = 1.0d0 / SQRTPI
_REAL_, parameter :: DEG_TO_RAD = PI / 180.0d0
_REAL_, parameter :: RAD_TO_DEG = 180.0d0 / PI
_REAL_, parameter :: LN_TO_LOG = 2.30258509299404568402d0 ! log(1.0d1)
_REAL_, parameter :: SQRT2 = 1.4142135623730950488016887242097d0
_REAL_, parameter :: INVSQRT2 = 1.0d0 / SQRT2
!------------------------------------------------------------
!Generalised Born Constants
_REAL_, parameter :: alpb_alpha = 0.571412d0 !Alpha prefactor for alpb_alpha
!------------------------------------------------------------
! Unusual Constants
integer, parameter :: RETIRED_INPUT_OPTION = -10301 ! first 5 digit palindromic prime
integer, parameter :: NO_INPUT_VALUE = 12344321 ! from Bob Duke
_REAL_, parameter :: NO_INPUT_VALUE_FLOAT = 12344321.d0
contains
function BinomialCoefficient(m, n) result (bioCoeff)
integer, intent(in)::m,n
_REAL_::bioCoeff
integer, parameter::size=30
integer, save::bc(size,size)=0
logical, save::initialized=.false.;
integer::i,j,k
if (.not.initialized) then
do i=1,size
bc(i,1)=one
bc(i,2:size)=zero
end do
do i=2, size
do j=2, i
bc(i,j)=bc(i-1,j-1)+bc(i-1,j)
end do
end do
initialized=.true.
end if
bioCoeff=one*bc(m,n)
end function BinomialCoefficient
end module constants
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment